Software Engineering, Project Management, and Effectiveness
One of the most common things I get asked, wherever I go is, “What were the team roles and responsibilities on your Microsoft patterns & practices project teams?”
Effectively, there were a set of repeatable roles that people signed up for, or covered in some way. In this case, a role is simply a logical collection of tasks. The role is the label for that collection of tasks.
As an Agile bunch, we were self-organizing. In practice, what that means is the team defined the roles and responsibilities at project kickoff. As the project progressed, people would shuffle around responsibilities among the team, to produce the best output, and to find ways to get people spending more time in their strengths, or learning new skills. It's all about owning your executing, playing well with others, and making the most of the talent you have at hand.
Here is a simple list of the team roles and responsibilities each team generally had to cover:
Roles Architect Lead Writer Developer Development Lead Product Manager Program Manager Test Test Lead Subject Matter Expert
Responsibilities Architecture and Design Budget Business Investment Collateral (screen casts, blogs, decks, demo scripts) Content structure Customer connection Design Quality Development Evangelism (screen casts, web presence, road shows, conferences, customer briefings, press & analysts) Feedback Product Group Alignment Product Planning Project Planning Quality (technical accuracy, consumability, readability) Release Requirements Scope Schedule Simplicity Support / Sustained-Engineering Team and People Test execution Test planning Usability