In Smart projects a lot of different role settings have been applied. However, a common set of roles is applied in most of these projects. Projects do not differ that much in which roles are filled in. They mainly differ in who
fills in these roles.
Roles in Smart projects include:
- Project owner. The project owner is the business sponsor of the project. In most cases the project owner pays for the project.
- User. The user, end user, ambassador user or even the user representative is the role that is most influential in the project. The user is responsible for determining which smart use cases are handled during an iteration, and also for accepting the tested smart use cases. Even more important is that the user is involved in improving the requirements, user interface and business rules during the realization of the smart use cases. Preferably users are involved on a daily basis. However, in lots of projects this is not the case. There are lots of alternative models where the involvement of users is concerned; from one day per week, to a number of afternoons.
- Project manager. The project manager of a Smart project handles the project, interacts with the project sponsor, and most important, allows the team to do the work. In this respect, the project managers is more a facilitator than a traditional manager. However, he holds the responsibility for budget, timeline, resources on the project, the interaction between the project and her environment, etc.
- Analyst. Although this role is often not forfilled by a specific team member, I've found that on larger projects, having a functional analyst on board is very practical. In such projects, the analyst will take care of modeling and describing the requirements in smart use cases. When there are enough of these, for instance over a hundred, elaborating on them is quite a handful. On smaller projects however, this work is mostly executed by developers.
- Lead developer. The lead developer is responsible for the software architecture, coaching other developers in the team, and for guarding the handover processfrom business to software development.
- Developer. The developers in a Smart project (including the lead developer) are responsible for delivering the software as modeled and described in the smart use cases. They participate in setting up the test scenarios, generate the code where applicable, develop the user interface for the application, write the business logic and also write test logic (in unit tests) where appropriate. Last but not least developers deploy versions of the application on a daily basis (to the test environment).
- Tester. In Smart projects testers play an important role, even from the beginning of the project. Testers are responsible for defining the test scenarios for the smart use cases in close collaboration with the users and the developers. Any flaws in the analysis and design of the smart use cases thus become apparent before the use case is being implemented. They then write the test cases, and test the use case as it is delivered by the developers. If all is well, the tested smart use cases are then presented to the users for acceptance.
- Configuration manager. Every project should have a configuration manager. He or she is responsible for maintaining the project environments, and making sure they are up and running. The configuration manager is concerned with version control, release management, dashboard administration, check-in policies and other related tooling. In this project the configuration manager is responsible for instance for the SharePoint server, any associated middleware and the hand-over process to the production environment. This role is especially convenient in distributed and offshore projects when it comes to distributed version management.