views:

164

answers:

2

Hi, I'm looking for some references or best practices with regard to the proportion of different skill sets that needs to me on a typical medium sized software development team.

Assuming 40 development staff, what proportion should be SQA, UI designers, project managers, data specialists etc?

The problem domain is general engineering. I realize this is seems like a vague question but the correct answer will provide references to industry standards and best practices as opposed to a bunch of numbers.

Opinions and words of wisdom also appreciated! Regards.

+1  A: 

Similiar question was asked here.. the accepted answer is very good quality.

Optimal Software Development Team

Chris Kannon
+6  A: 

You may want to consider the "controversial" Surgical Team structure, first proposed by Harlan Mills, and described in detail by Fred Brooks in The Mythical Man Month.

The Surgical Team structure is led by one chief-person performing the most critical work himself while directing his team to assist with or overtake other important but less critical parts.

Books defines the surgical team as in the following summary:

The Surgical Team

  • The surgeon is the chief programmer of the whole team. He produces all the specifications, codes the entire system the team is responsible for, tests it, and drafts its supporting documentation.

  • The copilot is the surgeon’s right-hand man. His main purpose is to share in the thinking about design issues. The copilot represents the team in meetings with other teams. He knows the code intimately, and serves as insurance in case of disaster to the surgeon.

  • The toolsmith supports the surgeon and builds specialized utilities and tools as may be required by his surgeon. Each team has its dedicated toolsmith in addition to any central services provided by the rest of the project infrastructure.

  • The tester is responsible for maintaining test cases for testing the surgeon’s work as he writes it. He is both an adversary who devises test cases to measure against the formal specs and devises test data to be used in debugging.

  • The language lawyer, which can serve several surgeons, is a widely consulted specialist who delights in the mastery of the intricacies of the programming languages and the operating systems upon which the software must perform.

  • The administrator handles money, people, space, and machines. The surgeon is the ultimate boss, with the last word on all these issues, but the day to day management of the issues and interfacing with the administrative machinery of the project is the role of a professional administrator. One administrator may serve more than one team.

  • The editor edits and revises the documentation as drafted or dictated by the surgeon and oversees the mechanics of its production.

  • The program clerk, trained as a secretary, is responsible for maintaining all the machine-readable and human-readable technical records generated by the team. All the filing and indexing is the responsibility of the program clerk.

  • The secretaries handle the project correspondence and non-project files.

Sources and Further Reading (Pro and Against):

Daniel Vassallo
It's been tried, and found not to work too well.
anon
Neil, thanks for your comment. Do you have some good references for arguments against the surgical team structure? I am willing to include them in the answer... In my case I am not actually suggesting it, but merely suggesting to investigate it... In fact I tried to add external sources which accept this theory with reserve, but I am not aware of others.
Daniel Vassallo
Neil, I found http://stackoverflow.com/questions/820693/how-much-of-the-mythical-man-month-still-applies/820708#820708 where you cited that Charles Simonyi was against the surgical team model. I investigated further and found that his Ph.D. dissertation on metaprogramming sought to defeat Brooks' law by requiring all programmers to communicate through the manager rather than directly. Do you have further info apart from this?
Daniel Vassallo