I believe that for a good project manager it is important to be aware of all the phases of their project so that at any moment they can be prepared to take the right decision in the given context.
The general life cycle of a fixed cost web project that I usually manage has the following phases:
- Initiation and Discovery
- Project Execution
- Monitoring and Controlling
- User Acceptance Testing
- Closing and Go Live
At the first glance, the project life cycle is almost identical with the one that PMI promotes. However, the internals are adapted to the realities of web projects development.
Below are some details of each phase and the usual actors that are participating:
Initiation and Discovery Phase
During project Initiation and Discovery phase the project takes life. The first people that are assigned to the project are the project manager, the business analyst and the solutions architect. This small team has the important mission to discuss in detail the business and functional requirements, as well the high-level architecture of the project. Usually, in a true Agile environment, this should be only a high-level requirements discovery step, which will be detailed later during sprints. However, giving the fact that customers which have a fixed budget want predictability and good visibility, much discovery of the requirements is done immediately after the signature.
There are often cases when creative services are needed on the project. If that’s the case, specialized roles are included in discovery like UX and UI architects.
At the end of this phase, several documents will be delivered to the customer, like:
- Business Requirements
- Functional Specifications
- Stakeholders List
- High-level Architecture
- Integrations Specifications
- Wireframes and Design Guidelines.
During planning phase, the specifications gathered until that point are organized in JIRA (or any task management tool) and scheduled for development. Furthermore, a detail project management plan is created and shared with the customer. During this process, a risks and constraints assessment is being performed in order to evaluate the confidence level of the planning and the full team composition is decided.
In parallel, the solutions architect is requesting the deployment of the staging and UAT environments, and defines the requirements for the development environments.
At the end of this phase, the deliverables are the following:
- Project Plan
- Staging and UAT Environments
- User Stories
- Full Team Composition
During the project execution phase, the team is engaged in delivery of the project features. The development activities are organized in sprints. From the beginning of the project and until the project has enough UI components to be demoed, a sprint takes 3 weeks. After that, the size of it decreases to two weeks and finally, to the completion of the project, it is reduced in some cases to 1 week.
In regards to communication, there are 4 meeting types during each sprint:
- Daily meetup. During which the classical 3 questions are asked and should not exceed 15 minutes.
- Sprint planning. During which the team and the product owner decide together the scope of the sprint.
- Sprint demo. Where the progress of the sprint is demonstrated to the key stakeholders.
- Sprint retrospective. During which the team sits together to discuss the good and bad things that happened during the sprint.
At the end of the project execution phase, the team should be able to deliver the following deliverables:
- All the requested features of the product
- Technical Specifications
- Test Cases.
All the project features should be deployed by the end of the phase on the customer UAT environment.
Monitoring and Controlling
The monitoring and controlling phase spans across the entire project execution phase and it has the purpose of keeping the project on track and of providing transparency to all the stakeholders regarding overall status.
Keeping the project on track is achieved at several levels:
- At code level. The solutions architect and lead developers are responsible of performing regular code reviews in order to ensure the quality of the code remains constant.
- At project management level. The project manager is compiling several KPIs like timesheets, velocity analysis and earned value management in order to detect any deviations from the baselines.
- At stakeholders level. The stakeholders are notified on a weekly and monthly basis of the project progress, baselines changes or priority shifts. Furthermore, periodically, the project plan is revised by the project manager in order to reflect any baseline change that occurred during project execution.
User Acceptance Testing
The user acceptance testing phase marks the beginning of the validation process that the customer needs to do in order to consider the project as completed. During this phase the final adjustments are done to the project, the website editors are onboarded on the platform and user trainings are being made.
At the end of the UAT phase, the project should be prepared for go live.
- User trainings
- Final round of feature adjustments
- Final round of testing
Closing and Go Live
The first thing performed in the closing phase is to push the project to the live environment. Immediately after this process in completed, the QA team needs to do a smoke testing across the entire project in order to make sure nothing broke during the code and content migration.
Once the project is live and everything works as expected, the final sign-off of the project is obtained. After that, the stakeholders need to come together and document any lessons learned during the project execution.
As a final step, the team needs to mark this great achievement with a great party!
This is the project lifecycle which I am the most comfortable with. It uses enough tools and procedures in order to provide at any moment the transparency I need. However, this is not one size fits all structure. Some customers want early prototyping, some other customer aren’t too much involved in the execution process. In these scenarios I need to adapt to the situation and find ways to assure the customer that they get the best possible value for their investment.