“Engineering challenges & skills needed for technology teams” – An interview with John Moore of Swimfish
John Moore, SVP Engineering and Chief Technology Officer of Swimfish Collaborative Technologies, a provider of business solutions and CRM, agreed to do an interview with us recently. John is a well known figure in technology and CRM circles. For the last decade he has worked as a senior engineering manager for SaaS applications built upon the Microsoft technology stack. His background as a hands-on developer combined with strong QA experience has enabled him to consistently deliver high quality software on-time.
John: First off, thank you for inviting me to do this interview. I enjoy these conversations a great deal.
Q: In the recent past, you’ve built engineering teams for 2 startup SaaS companies – what do you look for when building these teams and what were the major challenges you’ve faced?
John: I have been very fortunate in my career to have worked with a lot of talented people. Early in my career I worked at Lotus Development on products like 1-2-3 and Lotus Notes and was able to learn a lot about how great teams are put together and, equally important, how energy, excitement, and motivation is maintained while working on projects.
Putting together a great team in any company starts with having a clear understanding of your goals, looking out from 3 – 24 months. From this understanding you build an understanding of your needs, enough to recognize the skills required. From an individual perspective, the keys are character and skills. The key attributes that I look for include:
- An expert understanding of the skills required for the job. If I need a C# developer with 5 years of experience and knowledge of MVC I expect to hire people with those skills.
- I look for past examples of flexibility in their job roles. In startups you will be challenged to fill many roles, not just the one you were originally hired for. I love these challenges; you learn a lot and become a much more rounded individual. However, not everyone thrives under these conditions.
- I look for ethics and honesty. I want to work with people who can be honest about their failures, their shortcomings. When I ask people if they agree with a course of action I expect honesty. I will never know all the answers and I want people who are unafraid to speak up for the betterment of the team.
The most difficult thing in a startup environment is to bring enough attention to team and personnel development. I preach the importance of these things, I believe in these things, and I do better than many people I know. However, I find it very difficult to meet my own personal standards on this front. The challenges are varied, ranging from lack of money for training, lack of time for focusing on individual goals. At the end of the day this is an area where I know I want to focus more energy.
Q. MS Sharepoint’s collaboration features and IBM’s Lotus connections are some of the attempts by the big players to integrate Web 2.0 technologies into their products. How would you compare them to stand-alone commercial Web 2.0 tools from Communispace, Jive software, Newsgator technologies and others (which are typically more user-friendly/intuitive)? And who do you think will win out eventually?
John: I have drank the SharePoint kool-aid and I believe in the power of it’s enterprise search, it’s workflow capabilities, it’s ease of extensibility, and much, much more. However, with that said I am the first to say that the user interface of the base SharePoint installation is horrible. It is confusing and users often have difficulty making use of base functionality.
What saves SharePoint is the fact that it is easily extended, easily modified. Microsoft has invested a lot of energy, time, and money into it’s partners to ensure that there are enough consultants available to make SharePoint work for any company. This is a failure, in my opinion, on Microsoft’s part as it is a disservice to customers. You should not have to bring in consultants to make someone’s software usable.
Answering broadly, there are many Enterprise 2.0 products in this space that are feature rich and easier to use “out of the box”. They lack, however, the deep integration with the Microsoft Office product line and it is difficult to argue their use for any company that has an investment in the Microsoft product stack.
Q. Is software usability a true differentiator when it comes to enterprise products?
John: Yes, and no. Many enterprise products are more difficult to use than they should be. Businesses will often have usability as a single item on a long checklist of features, and will sacrifice it over some other critical features. As some Enterprise products are commoditized, however, you see a stronger emphasis on usability arising, as it becomes more important when product pricing brace to the bottom.
Q. From a software engineering perspective, what are the key things you would focus on to build highly scalable software?
John: As with everything else you need to understand the corporate goals and expected growth patterns for your software. While there are no one-size-fits-all rule that I would provide I would always urge focusing on database scalability first. It’s easier to scale web servers than database servers. From a performance perspective, however, I often see the biggest performance bottlenecks arising client-side with an over-use, or incorrect use, of AJAX capabilities. It is easy to bring the browser to a crawl if you are not diligent in your coding and testing efforts.
Q. It really helps when a technology team has a good understanding of the solution they are developing and are closely integrated with the business. What is your experience with this?
John: I couldn’t agree more. The engineering organization must have a solid understanding of the product goals and a respect for the business needs. I often find myself teaching engineers that we are building solutions that are intended to produce revenue for the company, we’re not working on computer science class projects.
Many engineers have difficulty with the iterative product development approach that I feel is critical for corporate success. For example, when you begin work on a new product or feature, you may have a good understanding of the requirements and understand how to build a solution to meet the “spec”. The reality is, however, that coding to the spec may result in a product that is not acceptable to end-users. Once customers interact with software, you may discover that it needs to be modified, sometimes significantly.
Q. Finally, having worked with 2 startups recently, what advice would you give to technology entrepreneurs bootstrapping now?
John: You’re insane, go spend your time on something with less risk, something like skydiving, bull fighting, etc… If you still want to do it: