These days I’m reading articles from the agile community attacking the figure of the project manager and the project management discipline. I get the message that project managers are no longer needed in software projects. We are on the dark side because we prevent good team performance, good quality work, value orientation, sustainable pace, team building, creativity, common sense, etc.
When software projects fail that way, should we always blame the project manager? When the project manager is the one to blame, is he or she a good project manager?
These readings have great impact on me because I consider myself an active member of the agile community, like many other colleagues, and we really do not feel we are on the dark side when it comes to leading an agile project.
When they talk about avoiding our role, we ask ourselves: Who is going to be responsible for finishing the project on time and on budget? Organization managers will ask themselves: Who is the one to blame when the project goes wrong? ;-D
Demonizing the project manager, or the project management practice, is an unfair and ill-advised simplification. Project management trending topics go just in the opposite direction:
Agile frameworks do not mention the role of the project manager because they were designed for product management, not project management. However, the PM role is required when the organization approves a project that must be completed within a certain period of time and below a certain budget. Professional PMs are responsible, among other things, for the agile project to end on time and on budget, meeting stakeholders’ requirements.
Project Managers are not complete professionals if they do not know how to manage the two types of projects:
Predictive projects try to close all requirements at the beginning, and then they go in sequential phases. This is the case for EPC projects—Engineering, Procurement and Construction. Predictive project managers try to close a project management plan, including a Gantt chart and many other components that can be changed if needed. The project plan is used as a “music sheet”. The orchestra leader conducts the musicians with the music sheet, the same way the project manager conducts the team members with the project plan. In the project review meetings, actual performance is compared to plan and corrective actions are taken to get back on track. Measuring and adjusting continuously we get the project on time, on budget, etc.
Some software projects follow the waterfall model: Progress flows in largely one direction—“downwards” like a waterfall—through the phases of conception, initiation, analysis, design, construction, testing, deployment and maintenance.
When solution requirements are closed, and it is clear what to do, then working in batches is very efficient. For example: if we deliver an information system in English language, it is quick to deliver also in Spanish… As water is not going up in a waterfall, we are not going back in a waterfall lifecycle. As everybody knows, waterfall lifecycles is pointless in most software projects, but it is still recommended in some software projects: mission critical—aeronautic systems—, embebbed systems—autonomous vehicles—, software with many non functional requirements, software with a fixed product roadmap, etc.
Why would the waterfall model turn useless at most user centric software projects? Because no one can imagine all the information system’s use cases and requirements precisely. If we deliver first release after 5 months, chances are that most features are rejected and lots of rework should be done.
When I managed software projects for customers, I usually criticized them when they did not make up their minds and wanted changes day in day out. Now I am a customer myself with the PMPeople software development outsourced to a software factory in India. Despite I consider myself an expert when modeling information systems, I was not able to make up my mind on requirements from the very beginning. I like chaning requirements progressively. Not a sinble mockup I developed 3 years ago has something to do with the real screens and logic customers are using right now.
There is a sad truth on software projects we have to live with:
“Software customers don’t know what they want. They only know what they don’t want when they see it.”
We have to confirm value frequently, typically every 2 weeks, making them see something working. When my colleagues in India show me a demo, then and only then I’m clear on what I want. Choosing a predictive lifecycle would have been a clear mistake in this project. We would have failed long time ago. The key factor of this project was to choose a value driven lifecycle:
How did we manage this agile project? We limited schedule to 12-18 moths, the project goal being a commercial version for clients (B2B). Beyond that milestone, corrective maintenance and small evolutions were no longer project management but operation management. Mobile version was a new project. We reused the software factory project team and the product owner. Freemium model for general users (B2C SaaS) was another project again.
Initial high level requirements have been more or less stable from the very beginning. Project budget calculation is simple math, since the team is stable for a given period of time. Following Scrum terminology, I can consider myself as a stakeholder— “chicken” —, along with other colleagues I invited for validations. Regarding the project, I am the project manager and the business analyst. I talk quite often with the Product Owner, and behind him, we had a development team and a Scrum Master.
We use Asana to manage backlogs and virtual boards and Slack for continuous communication. I share the product backlog with the product owner. I do not access the sprint backlogs, neither attend daily standups—too early in Spain. I can see the size in ideal hours for each story. They practice continuous integration: when a story is finished, they deploy the software on testing environment. I get an Asana notification when the card is moved from “in progress” to “testing”. I test is passed, then I move the card to “done”, otherwise I move it back to “in progress” and explain why in Asana comments.
Scrum Master can update the burndown chart every day using an Excel sheet. Click here to download the Excel template.
Most agile projects do not need Gantt charts. Agile projects are usually on time, since scope is changed to deliver the most value features progressively. Notice the example below, so simple and linear, one release after another, the only schedule deviation due to a spike.
We executed a plan with 5 releases:
My practice as a project manager was aligned with the PMI Agile Certified Practitioner Examination Content Outline (pdf). This document describes 7 domain areas of responsibility for an agile project manager.
Explore, embrace, and apply agile principles and mindset within the context of the project team and organization.
Deliver valuable results by producing high value increments for review, early and often, based on stakeholder priorities. Have the stakeholders provide feedback on these increments, and use this feedback to prioritize and improve future increments.
Engage current and future interested parties by building a trusting environment that aligns their needs and expectations and balances their request with understanding of the cost/effort involved. Promote participation and collaboration throughout the project lifecycle and provide the tools for effective and informed decision-making.
Create an environment of trust, learning, collaboration, and conflict resolution that promotes team self-organization, enhances relationships amongst team members, and cultivates a culture of high performance.
Produce and maintain an evolving plan, from initiation to closure, based on goals, values, risks, constraints, stakeholder feedback, and review findings.
Continuously identify problems, impediments, and risks; prioritize and resolve in a timely manner; monitor and communicate the problem resolution status, and implement process improvements to prevent them occurring again.