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.
Here are some excerpts of the interview:
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.
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.
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.