Chapter 5. Best Practices for Staffing the Contractor's Software Project Team
Software development has been and will continue to be very dependent on the caliber of the individuals involved. The reason, of course, is that software development is an intellectual exercise. More importantly, teams produce successful software development projects. The trends of outsourcing and offshoring extend this concept further by introducing groups of teams that must work well together (hence, the reason for a separate chapter covering the outsourcing organization's team). In his book Object Solutions: Managing the Object-Oriented Project, Grady Booch, one of the creators of the RUP, states, "It is time that I come clean and unveil one of the dirty little secrets of software engineering: People are more important than any process."
Successful teams are fascinating to analyze. After observing hundreds of teams over the years, I believe that good teams transcend process and technology. A successful software development team has much in common with a successful sports team. In particular, the following are characteristics of a good team:
This chapter describes the major roles on a modern, high-performance software development team. It discusses the best practices for creating a team that will eventually exhibit the characteristics just listed (but this does not occur overnight!). This chapter also discusses how these teams are best managed.