Engineering a Software Startup


The Essential Startup (Engineering) Team

Posted in Hiring DO's,Startup DO's by Rajeev Kalavar on November 8, 2007
Tags: , , , , , ,

An interesting question that always seems to pop up during conversations with fellow entrepreneurs is what constitutes an ideal engineering team for an Internet startup when getting off the block. Assume you had to select the smallest set of individuals possible for your engineering function when starting your company, who would you hire? What are the bare minimum skills you’d need?

I thought it would be nice to start our journey by addressing this head-on and highlight what we did different, why it worked for us, and why I believe it’s an option you SHOULD consider when building your startup team.

Ask a first time entrepreneur, and the most likely answer is that a couple of senior developers, one with UI experience, and one with experience with the server stack and a domain expert should suffice. If the luxury of an additional resource could be added, it would be another junior developer. After all, you’re just getting started, there’s not much of a product definition, and the priority is to get a working (well designed) prototype that can later be tweaked and given a face lift when some decent functionality is in place, right?

At first, we felt the same. But as I will cover in a later post, one of the earliest (and best) decisions we made was to get out of stealth mode as quickly as possible. This driver made us question common wisdom to see how we could go ‘live’ faster. We wanted to accelerate as quickly as possible, build momentum and have a product on-line and *usable* by the general public as soon as possible.

“Usable”… That’s right! Usability – it’s a key component that we felt would ultimately determine our success in this space. Our product was trying to make a convoluted process as easy as 1-2-3. So for us, the usability aspects and the UI design had to be at the forefront, and not an afterthought. For that reason, the first step we took was to hire a UI designer/Usability expert, even before we thought of hiring any additional developers.

And it’s worked out well – from the onset we had a product that was UI focused and driven, and stories were created from the user’s perspective. There was a time when the walls of our office were just pasted with reams and reams of paper documenting different screens and how one flowed into the other. We had actual UI mockups of the application and flows in place even before the first line of code was written.

When you’re planning iterations, having the UI specs and design/stories in place at the start of an iteration is a boon. Not only did we have a great UI experience already visualized and captured on file, we also had the UI specs available from which to plan each iteration. And if you’ve done development with XP or SCRUM, you know the benefits of having a user story defined through actual UI mockups.

So in my opinion, the bare-essential startup team would be the following:

1 Architect/Senior Developer/Manager. 8-10 years experience. If you can get a hands-on architect with great coding skills who has led development teams in the past, that’s gravy! He is the guy with the big picure who will define the iterations, architect the application, implement server code, lead the developers and effectively run the engineering organization. Each type is not difficult to find, but if you find someone who can wear all 3 hats, you’re at an advantage.

1 UI developer. Coding rock-star, minimum 2-3 years startup experience with Javascript expertise along with CSS, Ruby On Rails (RoR) and Ajax support in RoR. If he knows Php, that’s gravy too! He will be the UI go-to guy.

1 Domain Expert. Generally, the founders will be the domain experts (since they identified the opportunity, that’s the likely case). And there’s empirical evidence that most successful startups generally have 2 founders (checks and balances, bouncing ideas off each other, etc. etc.). So it’s quite likely you’ll have 2 domain experts.

1 Server Developer. Coding rock-star, minimum 2-3 years startup experience Since we used Ruby on Rails, someone with RoR experience, and has deployed applications to production environments before. Deployment experience is a must.

1 UI Designer/Usability Expert. Generates the user experience, defines the user personas that represent the customer, orchestrates the screens and application flow. Generates the UI specifications each iteration that forms the basis of the engineering effort for that iteration. 

Net: 5 (or 6 if two founders). And don’t worry about Q/A… just ensure you define a good test plan, and folks will be able to find cycles to dedicate towards this.

In my opinion, this is the ‘bare-essential’ engineering team to give you that turbo-start. Some might argue that having 2 senior developers negates the need for 1 senior and 2 junior developers. On the contrary, I think 1 senior and 2 junior developers trumps a combination of even 3 senior developers for two simple reasons:

  1. Your younger kick-ass coding rockstars have the hunger, drive and TIME you’re just not going to see in your senior developers, period!
  2. If your 1 senior developer has managerial skills, he along with the younger developers will always give you a superior ROI in the long run.

And select the right technology stack and you can effectively quadruple your ROI. But more on that in a later post.

Leave a comment