Industry Best Practices for Application Development
In the software development process, there are a number of roles for people that must be accomplished in order to see the project to a successful conclusion. We suggest the roles shown in the SDLC Outline. All roles are not always required, and there is no reason that the roles be mutually exclusive; the same person may invoke multiple roles.
The Project Sponsor could be roughly described as the project champion. Generally someone either inside or outside of the organization who can acquire resources and support for the project and who also bears ultimate responsibility for its success or failure.
The Chief Information Officer is responsible for the overall control of the data processing enterprise and while generally not directly involved in a project, has control of many of the resources needed and may have technical review of all projects and resource allocations.
The Client is the person, group or organization that will be the primary user of the software product. The Users role is part of the Client role.
The Client Liaison is the person responsible for interfacing with the client for the software. This is an important task because project success is often dependent more on the client's view of the product than the technical results. This person is responsible for much of the requirements development of the project, ongoing demonstrations of the product, and change orders in both directions and scheduling.
The Configuration Lead is responsible for maintaining the repository for all materials associated with the project. While this is primarily a matter of maintaining a version control system for development and QA, it vital that all materials be available to all members of the team as needed. The ideal solution is a web site for the information, but it should be protected from outside viewing. Some parts of the project may need to have limited access, such as the project planning and reports, and a variety of data formats may be needed.
The Deployment Lead is responsible for packaging up all of the compiled code and configuration files and deploying it through the appropriate environments or on the appropriate systems. The deployment role is focused on getting the solution used. To that end the role may include automated software installation procedures or may be as simple as copying the files to the appropriate place and running them.
The Documentation Lead is responsible for leading the technical writers in developing the documentation for the product and the users, and possibly for portions of the training.
The Maintenance Team is responsible for maintaining the product after implementation. They are not a major part of the SDLC but do need to be recognized. Often, these people are part of the Project Team.
The Procurement Officer is responsible for obtaining resources for the project and supports the Project Manager in handling resource allocation.
The Project Team is everyone in the project that doesn't have a particular role at any given time. They may be software developers or testers, designers; systems support personnel or anyone else that needs to be considered in completing the project.
The Project Manager is ultimately responsible for the overall progress of the project and for reporting to the Project Sponsor as needed.
The Quality Assurance Lead is responsible for the development of the testing plans and for insuring that all testing is properly done, possibly through the maintenance cycle.
The Requirements Lead is responsible for collecting requirements information and organizing it for the design team. This person may need more technical expertise than the Client Liaison, depending on the personnel available.
The Security Lead is responsible for the security aspects of the software and the implementation, possible through the maintenance cycle.
The Support Team is responsible for providing customer care after release. They are typically not involved in project development.
The System Architect is responsible for the design phase of the project.
The Integration Lead is responsible for developing the infrastructure and support tools for the software and for the configuration and execution of the system builds. This person is also responsible for interfacing with the system support personnel as part of the process of insuring that computers for development and testing are available and properly configured.
The Trainer Lead is responsible for organizing and executing the training program for the Users.
The Users are the people who will actually use the product and the documentation and will be the recipients of training. The Users role is part of the Client role.