Film director Robert Altman famously said that 90 percent of a director's job is casting. The same is true for software development. Getting the right team in place is, without question, the most important thing you can do to ensure the success of a software development project. But wait! You may ask, “How do I build a team when I don't even know the technology I'm choosing? Don't my team members have to be familiar with the technology?
The answer to all these questions is “not necessarily.” First, let's discuss teams.
Over the years, I have noticed that businesses tend to be unfamiliar with the roles necessary on a software project. There are lots of blurred lines, mixed up roles, missing roles, double teaming roles, and so forth. It's like a soccer game where you're not even clear who's on offense and who's on defense, never mind identifying the goalie.
Without a clear understanding of roles, it's impossible to staff a project. Whom are we looking for, and what holes do we need to plug? Sticking with the sports metaphor, it would be like an NFL team owner going into the draft meeting without a clear understanding of what a cornerback does.
Of course, the members and designated roles on a software development project are more flexible than those of the NFL and can vary greatly depending on the project. Here, however, I'm going to discuss the major roles and give you advice on how to fill ...