In this article, we’ll walk you through the Software Development Life Cycle (SDLC). We'll also cover the need and role of a Project Manager (PM) to lead and drive the entire process from start to finish.
What is a Project Manager?
More than ever, software development projects are carried out by remote teams - with many in home offices scattered across the globe. These projects are increasingly complex, yet take place within a much more competitive market. Never before have quality and time-to-market been so important to any business model. The good news is that both can be greatly improved through effective and efficient project management.
The Project Manager is both the glue and the oil in any software development project. They act as the liaison between the stakeholders who commissioned the project and the developers who carry it out. They ensure that all requirements and deadlines are met, if not overdelivered and early. They need to be aware of any potential obstacles, risks, setbacks, delays and hiccups and nip them all in the bud before they happen. Or, at the very least, have a realistic and flexible contingency plan. One that can adjust accordingly and quickly to maintain quality and remain on-time and on-budget.
Probably the most important duty of the Project Manager is to manage expectations. Not to overpromise or make commitments before getting buy-in from the development team. Not to be a bottleneck: to share immediately any client feedback (positive or negative). They need to create a productive, enabling and encouraging team atmosphere. The PM is at once the voice of their team to the client and the client’s advocate to their team. They create the overall tone and pace of the project at all stages of its life cycle.
Before we dive into the Software Development Life Cycle, we need to view it through the lens of what are known as the ‘Agile’ development ‘values’. There are four in their manifesto: the output of twelve principles that we will also briefly cover. They create a development framework that is both guide and guardian for the Project Manager, the client and the development team.
The Agile development framework values:
Individuals and interactions over processes and tools;
Working software over comprehensive documentation;
Customer collaboration over contract negotiation;
Responding to change over following a plan.
This framework and its underlying principles create a much more ‘collaborative’ and transparent software development approach. It’s one that involves more key stakeholders, more often for shorter periods. But it produces more working software faster and more frequently (in ‘sprints’). This happens within a constant feedback loop that keeps the project moving along smoothly. It allows for the constant and consistent optimizing of processes, workflow and methods themselves. This enables the team to not only learn lessons for the next project, but apply those very lessons to the current one. It relies on daily face-to-face contact and self-organizing cross-functional teams. It creates an atmosphere of mutual trust and respect. It allows for flexibility and space for expanded, and even late-cycle, requirements. It makes space for the reallocation of resources on the fly. In other words: agile. With these values and principles in mind, let’s look at:
The role of the Project Manager in all five stages of the SDLC
Initiation: The Project Manager is responsible for the initial project estimation. This includes:
time (duration, deadlines, some bigger milestones and their respective deliverables)
effort (staffing and manhours)
cost (total budget)
This is the most important part of the pre-planning stage. It goes without saying that the more accurate this estimation is, the easier the project will go. By following the Agile framework, you’ll make sure that everyone is on the same page. A typical output of this stage is a project charter that is agreed upon by all key stakeholders.
Planning: At this stage, we’re ready to take our charter and create a detailed roadmap (plan) of the entire project. We document:
specific requirements, goals and dependencies
milestones and deliverables
a comprehensive communication plan
allocate and commit human resources
create a complete and detailed projected budget distribution
establish KPIs (Key Performance Indicators) and CSFs (Critical Success Factors)
Execution: Here we actually get to the work of getting to work. Teams will build themselves organically. Members may overlap to ensure better collaboration and communication among the diverse cross-functional teams.
Monitoring and Controlling: This stage actually extends over the entire life cycle of the project. It’s a good time to test against KPIs and CSFs. We clarify, streamline and document processes to smooth any bumps in the workflow.
Closure: The team delivers complete and working software after rigorous testing and quality assurance (QA). Then comes a period of reflection, review and input from all stakeholders to improve the process for even better performance in the future.
The Project Manager must ensure that the work is steady with timely output. They facilitate communication among teams and stakeholders. They guarantee that the project remains on-time and on-budget. And they do it all while constantly adjusting according to changing needs and circumstances. Following the Agile model makes this all the easier by sharing, delegating and mitigating much of the burden. The PM will also supervise, if not write themselves, any associated documentation (release notes, installation, deployment and end-user guides).
This may all seem very daunting, but adhering to the Agile framework and making use of collaborative project management software will ease the burden. Encouraging an innovative, productive and cooperative working environment will go even further. But remaining flexible and taking it all step-by-step are the foundation of success in any project. The PM is the main driver and guarantor of pace and mood. While sitting on neither the business nor development side, the PM has one leg in each, forming a bridge. They encourage all sides to work together closely and frequently. More than a leadership role, the PM has to monitor all people, pieces and parts of the project. They are much like a spider waiting in the center of its web – ready to quickly dash to the furthest reaches of its domain to repair or modify any broken bits.
Here at Blocshop, we’re committed to the Agile framework and principles at all levels. We have also developed our own unique and adaptable approaches to bring even more value to our customers. These allow for even faster and more frequent delivery of cleaner code and life-cycle flexibility – all on time and budget. See how we’ve applied Agile for our customers here.