What do you think are the advantages of having such an evolutionary team structure for software development?

The advantages of having such a system is that work is allocated according to the needs of the project at the particular point in time. As such software development can theoretically be faster as the workforce is fully utilized for essential requirements for that point in time.


What are the inherent problems in such a team structure?

With such a team structure the one of the problems is that the changing type of work for the individual members will result in disruption of continuity for that particular area of work. And the work progress for certain areas of the software development will be of a different pace as compared to other areas. As such some members may not be ready to change over to the different work allocation. Another problem is that the evolutionary team structure does not factor in the different specializations of the team members. For example some one who specializes in system architecture may find him or herself doing software assessment. This will result in unproductivity.


Modify the diagram and show how you would improve the team structure.
To improve the team structure i would minimize change in team structure so as to allocate more workforce to the critical areas in that point in time of the software development process and yet it would not be to the extent where work in the individual areas will be disrupted. The modified diagram is as follows: