You’re in charge of delivering your company’s latest and greatest initiative that’s going to change the face of “Widgets International” forever. It’s a software project that’ll engage and enthrall your customers, make your colleagues’ lives easier, and make the company millions in revenue. There’s a great deal of anticipation, fervor, excitement, and expectation. You need to get it done as quickly as possible so your business can start to reap the benefits. The future success of the company depends on you. All eyes are on you. You cannot fail.
At first, you’re thinking to yourself, “Awesome, I’m up for the challenge. Let’s get this thing done!” You pause for a moment, step back, and think to yourself “Okay, so how do we do this?” You start to talk to your colleagues and peers. You spend time searching for best practice software development and project management techniques, but the options and approaches are countless. There are acronyms and methodologies aplenty. Notable ones rise to the top. Doubt creeps in. Which one should we use? How can I guarantee success? What if I make the wrong decisions?
When it comes to managing software projects, there’s a heady mix of options supported by myriad opinions. Voices from the corners of the room whisper, “Try doing it this way”; others shout, “This is the only way to do it”; and the rest just whimper, “Don’t manage it at all, just get on with it.” In reality, all those voices speak some truth. But what’s important is working out what’s right for your needs, your team, your business, and your customers.
Setting the Scene
There was a time when software project management sat squarely in one of three camps. There were the heavy frameworks that let you make decisions on how you execute and deliver while offering a structure to maintain control and governance. There were prescriptive sequential methodologies like waterfall that forced you to plan lengthy projects, understand and commit to all your requirements, design and sign off complex systems, write lots of code, and then test (all before your customer gets to see it for the first time). And finally, the less prescriptive but iterative software development life cycles (SDLC) that encourage rapid prototyping or larger systems to be designed, built, and delivered in incremental steps, each building on top of the other.
Agile software development and Agile project management were born out of the inadequacies of the waterfall and the benefits of the iterative approaches to software delivery. They can trace their roots to the 1950s, thought leadership in the 70s, maturity in the 90s, and adoption through the 00s. In 2001, a group of practitioners and experts created the Agile Manifesto, aimed at defining 4 values and 12 guiding principles that seek to embody the spirit of Agile software development and to encourage its evolution. And it has definitely evolved.
Now, simply calling something Agile isn’t particularly helpful. The word, even in a software context, means different things to different people or organizations. There are many facets, definitions, implementations, and interpretations. Each body that embraces Agile tends to try to give it its own definition.
Suffice it to say that Agile software development and project management are a group of related behaviors, frameworks, techniques, and concepts that fundamentally favor the delivery of the right working software as early and as frequently as realistically possible.
I mentioned earlier that Agile, as applied to software development or project management, can be different things. In a nutshell, Agile software development takes care of developing great software in a business as usual (BAU) or project context. Agile project management, on the other hand, takes care of the governance and control required to deliver complex projects including but not limited to software.
There are many Agile software development methods available, such as Scrum, Kanban, XP, and Lean Software Development. But just as the game of rugby is about more than the scrum, so is Agile. In isolation, these Agile paradigms do not address the full lifecycle of project management required in complex projects such as governance, resourcing, financial, explicit risk management, and many other important project management concepts. For these, you might want to consider PMI Agile or PRINCE2 Agile—think of it as “Governed Agility.”
Comments are closed.