Use all RUP roles in small teams

RUP itself has many different roles (Project manager, System Analyst, Software Architect, Technical Writer). So what's the use of having so many roles, while you know that you surely will not easily have enough people in your team to have a 1-1 relation. Most teams I come across are 6-15 people. According to the Standish Group it is best to have a project of 4 people, which may take at most 4 months. Now what to do with all the roles defined in RUP when having a small team?

By assigning a role to a person, you are not just saying 'you have some importance in this project'. No, you are also handing out responsibility. Because a role is responsible for artifact(s). And if you are using a Development Case, in which you have stated the artifacts your project will deliver, then you can use RUP to verify which roles to hand out. Say for instance that you want to have User Support Material. Just use RUP to look up the role assigned to the artifact. Looks like you should assign the Technical Writer role to one of your team members. And with it, s/he will also become responsible for the Manual Styleguide (if you will create one, according to your Development Case).

Make sure that all the roles (related to the artifacts from the Development Case) are divided amongst the team members. Now you can be sure that there is always a team member that should feel responsible for any artifact that is mentioned in the Development case.

It is very easy and straightforward, and avoids people saying: I wasn't supposed to do that, but I also do not know who was! I though the Project Manager had things covered.

I have seen projects where not all roles were assigned. The good thing was that all team members where team players, and they decided to perform the work (not even knowing which role they were missing) that was left to do. At the end, during the evaluation of the project, it became clear that the role of Deployment Manager had not been assigned to anyone.

Besides using your Development Case, you could also take a different approach. Sum up all the roles within RUP, and see if you want to have this role in your project, and who should have it. If you do not have a certain RUP role assigned to a person, check the related artifacts, and verify that you really do not want to deliver those artifacts. Or verify that you have made a change based on RUP, and that another role is now responsible for the artifact. For example, sometimes the System Analyst also creates the Analysis Model.

Conclusion: Use the roles to assign responsibilities about artifacts, it ensures that the team members know what is expected from them, and what it is they need to deliver.