Stakeholders: Stakeholders are usually the people who either pay for the project or have decision-making rights about what to build. We like to also include end users in this group so not only management has a stake in a project.
Business manager: Somebody has to decide that a development activity is going to start. After initial analysis of the business needs, a business manager decides to initiate a project to develop an application or system that will deliver the expected business value. A business manager, for instance, must be involved in the approval process for a new suggested project, including portfolio rationalization, before the company makes a decision to go ahead. IT managers are also part of this process, of course, because IT staff will probably be involved in the projects development and deployment into the infrastructure.
Project manager, product owner, or Scrum master: Suitable individuals are selected to fill these roles, and they set to work on the project after the company decides to go ahead with the project. Ideally, these people continue leading the project all the way through, so that you have continuity in project management.
Project Management Office (PMO) decision makers: These individuals are also involved in planning, because a new project may change or expand the companys portfolio.
Business analyst: After requirements collection starts, the business analyst has much to do. Usually, initial requirements are gathered when the business need arises, but the real work often begins after portfolio rationalization. A business analyst is responsible for analyzing the business needs and requirements of the stakeholders, to help identify business problems and propose solutions. Within the systems development lifecycle , the business analyst typically performs a collaborative function between the business side of an enterprise and the providers of services to the enterprise.
Architect: The architect draws an initial picture of the solution. We dont go into detail here, because Chapter does that. But briefly, the architect draws the blueprint of the system, and the system designers or engineers use this blueprint. The blueprint includes the level of freedom necessary in the system: scalability, hardware replacement, new user interfaces, and so on. The architect must consider all these issues.
User experience (UX) design team: UX design should be a core deliverable and not something you leave to the developers to handle. Unfortunately, its often overlooked; it should be given more consideration. Its important to have close collaboration between the UX team (which could be just one person) and the development team. The best solution is obviously to have a UX expert on the development team throughout the project, but sometimes that isnt possible. The UX design is important in making sure users can perceive the value of the system. You can write the best business logic in the world, but if the UX is badly designed, users probably wont think the system is any good.
Database administrators (DBAs): Almost every business system or application uses a database in some way. DBAs can make your databases run like lightning with good up-time, so its essential to use their expertise in any project involving a database. Be nice to them; they can give you lots of tips about how to make a smarter system. Alas for DBAs, developers handle this work more and more frequently. This means developers are expected to have vertical knowledge and not just focus on coding.
Developers: Developers, developers, developers! as Microsoft CEO Steve Ballmer shouted in a famous video. And who can blame him? These are the people working their magic to realize the system by using the architecture blueprint drawn from the requirements. Moreover, developers modify or extend the code when change requests come in.
Testers: Id rather not see testing as a separate activity. Dont get me wrong, its a role, but testing is something you should consider from the first time you write down a requirement and continue doing during the whole process. Testers and test managers help you secure quality, but modern development practices include testing by developers as well. For instance, in Test Driven Development (TDD), developers write tests that can be automated and run at build time or as part of checking in to version control.
Operations and maintenance staff: When an application or system is finished, its handed over to operations. The operations staff takes care of it until it retires, often with the help of the original developers, who come in to do bug fixes and new upgrades. Dont forget to involve these people early in the process, at the point when the initial architecture is considered, and keep them involved with the project until everything is done. They can provide great input about what can and cant be done within the company infrastructure. So, operations is just one partalthough an important oneof ALM.