I recently discovered that the original meaning of the verb "to manage" was closer in meaning to "to cope with" rather than "to direct", as in "my house burned down and I lost my job but I managed." Having managed software development in a startup for the past few years, I sense a great deal of truth in that description!
This is the article I wish I had read four years ago when we started our software company. While a lot has been written about the business side of startups, there is not much about the technology aspects. In this article, I will describe how the software development process evolved in my company and then present some lessons learned.
Evolution of the Software Development Process at My Company
My company works in the area of wireless LAN equipment, specifically in the areas of security and mobility. Our products are quite complex and are aimed at corporate IT departments. As we shall see, this has had a significant impact on the way we have managed our development activities. If your company's products are aimed at individuals or the SOHO market, it is likely that your development processes will be different from ours.
Initially, all of our developers, including myself, came from a research background. While all of us were experienced developers, not all of us had worked in formally structured software development projects. Several developers had significant Linux experience, so Linux was chosen as the platform for our product. Since we were VC funded, we had the luxury of being able to spend some time exploring alternatives before having to begin product development in earnest.