![]() |
|
| Team skills and communication | |
|
Regardless of the size of the team, there are certain areas of software development that must be covered. The necessary skills to cover these areas are often independent of the organization of roles within the team, but making both roles and skill assignments should be made explicit. This is the first touchstone of good communication: make decisions explicit -if necessary put them on paper. Roles Roles can be split into two groups: those to do with the software itself, and those to do with managing the project. On the software side they are: Architect - has primary responsibility for the large-scale modeling and decision making. Build specialist - has control of source code versions, generating builds and documentation of the implementation. User interface specialist - makes sure that the system is usable by the end users. Technology specialists - if needed, these people look after databsaes, networking, OS issues, etc. Hardware specialist - ensures that the team has adequate hardware and helps install it. Third-party software specialist - interfaces with third parties and integrates their software into the system. Testing specialist - if necessary, prepares test cases for the development team, and carries out testing. The roles on the project management side are: Project manager - handles scheduling, team meetings, cost estimates, etc. Documentation specialist - prepares and disseminates all documentation inside the team, and to the customer and their users. Communication Somewhat independent of the roles within the team is the communication among the team members. In a true "egoless" team, everyone communicates with everyone else, and, for each communication instance, the people involved "put on the hat" of the relevant role. So the architect can talk to the testing specialist at one time, and the same two people might talk as project manager and documentation specialist at another time. The other main way to organize communication is as a hierarchy, where one person "controls" the activities of the people below him in the organization chart. In a strict hierarchy, no cross communication is allowed, only up and down the hierachy (the military is somewhat like this). |