Over the past few years, I have managed several SaaS development projects. For some of these projects, the team composition worked very well; for others, not so well. After reading the book entitled “Getting Real” by 37 Signals, I am convinced that a “less is more” approach is best. So, without further adieu, here is what I would consider the best team composition for not only a SaaS project but for any web application development project.

The Product Manager is primarily responsible for drafting the requirements. Ideally, the Product Manager is a “visual thinker” and graphic designer who can illustrate the requirements and build out all of the design elements and graphics (for more information about illustrating requirements click here). Developers should be able to build directly from the requirements. Requirements must be “signed off” by the Product Owner before development commences. The Product Manager also assists with the launch of the product, including training, user guides, marketing, etc.

The Product Owner is the business person ultimately responsible for the product. She works closely with the Product Manager to ensure that the product is being designed correctly and that her vision is being realized. The Product Owner has the final say in design decisions and reviews and approves each completed feature.
The Development Manager manages the development team and ensures that each developer is productive and that the team hits its deadlines. In addition, the Development Manager is responsible for architecture, database design, resource allocation, task management, coding standards, release management, application configuration, IT, and quality control.
The Development Team consists of Developers and Testers. They are responsible for coding the application and keeping it bug free through continuous testing. Ideally, all of the design is done by the Product Manager but there may be a need to also hire a Designer.
That’s it! No need for expensive specialists such as architects, systems analysts, DBAs, scrum masters, database designers, release managers, etc. Instead I recommend hiring generalists as managers who can wear multiple hats and only hire specialists for the actual coding.