Project Planning Project Management..
Project Planning
Many things in the world of technology benefit from an enthusiastic, experimental approach. But one area where experience is really key is in project planning. Having a realistic plan to guide the course of your project is essential for giving the:
project team a framework in which they’re free to create and add value to the project.
sponsors a level of confidence that we know what we need to achieve and that it fits their vision.
benchmark with which we can measure our success and make adjustments where necessary as the project progresses.
MCAREL’s consultants have helped provide customers with realistic and actionable project plans on multiple projects. We’re very experienced in delivering multi-release, phased implementations.
Releases
A Release Represents a phased development cycle that delivers working code into a production environment. Generally, releases are split into phases where specific activities are performed. We endeavour to keep release cycles short by delivering program increments on a three-month basis.
Pre-Inception Phase
This is where we first engage with the customer to ensure that they have a vision for the project, discover what they hope to achieve, and how they wish to achieve it.
The phase includes:
Workshops with the Business to ensure that the business requirements are known and understood
Workshops with the customer’s architects to identify and document any architectural goals that need to be fulfilled by the project
Workshops with infrastructure to identify and discuss the requirements for the development, DevOps and production infrastructure.
During pre-inception, we endeavour to determine the business requirements and the number of releases (program increments) required to implement those requirements. We also place priorities on the requirements and determine which ones to deliver first. In addition, we strive to get the required infrastructure in place, ready for the start of development after the subsequent inception phase is complete.
Not every release will require a pre-inception phase. The main objective is to determine the customer’s readiness to start the inception and development phases. It’s also a good time to put the project governance in place by identifying the members of the steering committee and providing a 75% accurate estimate of the overall program duration.
Inception Phase
This is where we compile our product backlog (our list of programme requirements) and create a set of user stories from the basic requirements. We’ll work with business analysts, subject matter experts, developers, and testers to define and size the user stories based on the requirements we collated in pre-inception.
The requirements are transformed from raw requirements into user stories with enough detail to allow a developer to implement them in code and a tester to test them effectively. We do this for all the requirements to be included in the first release (or “program increment”). During inception, we’ll revisit the priorities we applied to the requirements in pre-inception. The priorities determined in this second pass will determine the contents of the first release (PI). We’ll focus on the highest priority items first, and it is these that will determine the contents of our first release, forming our PI backlog. Depending on customer preference, we will apply the stories to our estimation model to provide an 85% accurate estimate for the first release.
By the end of inception, we should have:
A Release Backlog Detailing all stories we need to complete for the first release
A high-level sprint plan detailing all start and finish dates for each iteration
All development infrastructure in place and ready for use by the development teams
Defined the dependencies between our stories and identified opportunities for parallel development.
Defined and staffed our development streams( release trains) and assigned stories to work on.
Source Control, Agile Project Management tooling, Continuous Integration and DevOps configured and deployed for use by the development teams.
A set of test environments available to allow the test team to work.
Project Management
Once we move from the Pre-Inception and Inception Phases, we move from planning to project management.
Development Phase
In general, we use a mixture of Kanban and Scrum to manage the development process. Each “Program Increment” (release) is divided into a number of iterations (or sprints). These last from two to four weeks (two weeks is preferred), depending on the team’s familiarity with scrum. At the beginning of each sprint, there’s a planning session where stories from the top of the backlog are assigned to team members to work on. Developers work with BAs and Testers to determine the best way to implement the story. Once the code is completed, the developer checks in their code, which is then deployed to a test server for testing by the test team. Once the story tests successfully, it’s marked as complete, and the developer can move on to the next one.
It’s expected that all stories that have been assigned to a sprint will be completed by the end of that sprint. A retrospective meeting is held at the end of the sprint to discuss how things went and any improvements to the process that can be made.
Daily standup meetings are within the agile teams. These are designed to throw up issues quickly for immediate remediation by the scrum master. Weekly status reports are prepared by the project manager and passed to the steering committee. The Steering Committee meets on a biweekly basis to discuss progress.