What is Agile Project management?
Many people’s first reaction to this question might seem simplistic: “Isn’t it simply managing an agile project?” However, the first hurdle to answering this question correctly is to ensure that there is a clear understanding of what ‘agile’ is before expanding on what agile project management entails.
A principled approach to human efficiency
Agile is a set of principles set out in the Agile Manifesto that ascribe to the following beliefs:
- Clients prefer working software as it is easier to understand the implications of the design in a tangible model, and Agile measures success based on this tangible output
- Requirements can change, and agile is responsive to changing needs
- Let multi-skilled, self-reflective teams manage and organize themselves, with face-to-face interaction a key aspect of streamlining the team
- Simple designs executed with a high degree of technical excellence and operational efficiency is desired
- The team regularly interacts with business, ensuring that the requirements are easily understood and executed
Before diving into more detail, let’s quickly dispel what agile isn’t. Agile principles are not chaotic or unplanned, nor is it a quick, knee-jerk solution to getting results out faster. Agile methodologies that are derived from these principles require a high-degree of discipline, planning and autonomy, and organizations will have to realize the scale of change needed to utilize any of the agile methodologies in their projects.
With the principles defined, there are a number of Agile frameworks that have emerged that meet these principles, with the most well-known being Scrum, Kanban and Dynamic systems development method (DSDM). Where Agile is a way of thinking, these frameworks help organizations to develop their own methodologies that guide a team on the steps they need to take in order to execute solutions using Agile principles.
How is this different from waterfall and other development frameworks?
Most organizations will be migrating from some form of a waterfall framework of development, and the most common questions gravitate towards the differences between Agile and waterfall frameworks.
Waterfall development came first In the field of software development. It emerged in the late 1970’s and early 1980’s as a dominant approach because of its practicality. Using a set of logical steps, it guides many projects and organizations through a methodical approach to producing a solution or product.
However, in today’s technological and economic environment, it may be too costly in many ways to wait for the full length of waterfall’s framework to see the final product. Considering that the analysis and design phases can consume the most amount of time, it can be years between the conception and testing phases. This gives ample time for scope changes and has raised major issues, such as the reality that some shortcomings of a solution can only be revealed when the solution is in a tangible, working state.
Agile frameworks, such as Scrum, are an evolution of development frameworks like waterfall. Instead of throwing all the ideas of waterfall, it compacts them into much smaller components and executes many of the traditional framework steps simultaneously to achieve the same result.
There’s an old saying built on a question that goes: “how do you eat an elephant? One bite at a time”. Frameworks like Scrum have this ‘bite-sized’ approach with streamlined ideas to meetings, design, development and testing that eliminates traditional pockets of inefficiency and produces tangible products far quicker for review.
Aren’t Agile frameworks designed for small teams and organizations?
Historically, yes. Currently, no. While this bite-sized approach has been difficult to scale in the past, new frameworks such as the Nexus Scrum framework have provided large organizations and development teams with an approach to scaling Scrum into larger teams while still retaining the efficiency.
Also, it is possible to apply Agile frameworks through breaking up large software solutions into functional modules. This has worked well with new software development architectures, such as micro-service architecture, where it is easy for smaller discrete development teams to work in parallel on different components of a solution, while still maintaining congruency across the solution.
This leads to the most important element in getting results with Agile frameworks: your Agile Project management approach.
The (Agile) project manager is still your key to success
Your project methodology might have changed, but the requirement for organizations to have a disciplined project management competency hasn’t changed. In fact, it seems that in order for your Agile methodology to be a success, it’s even more important to ensure your foundations are correctly in place.
There are 8 core areas that require agile project management disciplines:
1.Ensuring the solution has the correct Agile architecture and an agile architect
Without the correct blueprint, the solution or project will struggle to produce the expected results. An agile architect will need to take all the business requirements, and produce a design that can meet the business need within the constraints of output, time and resources. The architect will also guide the developers during the development processes, and validate that the final outputs meet requirements.
Due to the constantly changing solution environment and the requirement that outputs be broken into smaller components and executed incrementally, the architect plays an oversight and guidance role that the solution is heading in the right direction and that all outputs are cohesive in nature.
Having an architect is a requirement for large Agile implementations who helps to control and stabilize many work teams that need to produce solutions that will work as a single, functional product.
[Read more on Agile Architecture ]
2.Governance for agile projects, including financial and regulatory compliance
While Agile focuses on reducing unnecessary documentation, it does not mean no documentation or governance. Your agile project manager is still responsible for ensuring that the project runs within budget, is clearly and simply documented, and meets any regulatory compliance that might be necessary. Considering many software solutions are deployed to be internet-facing, security and compliance are now massively important issues that need to be managed by the project manager.
It is also up to your project manager to drive the working methodology for your projects. With coding best practices defined, document libraries simple and easily accessible, and your methodology easy to follow, it makes future Agile projects a breeze to initiate and control.
3.Business requirements, and product backlog management
Your project manager is also responsible for coordinating the interaction with the greater business and traditional project sponsors, and ensuring an essential two-way flow of communication and interaction that is vital for any Agile framework.
Many business requirements will still come in “waterfall-size” requirements, and your team of project managers and business analysts will need to break these down into competent epics and user stories that fall within your organization’s agile methodology.
4.Daily operational management of the agile framework and your methodology that you’ve developed
Your project manager will be essential to ensuring that daily roadblocks that are inhibiting the team from executing are removed quickly, and not all organizational functions will be used to this new way of working. With email and Slack messages piling up, it will be the responsibility of your project manager to cut through the clutter and keep the team focused, while ensuring they have everything they need to execute their assigned tasks.
It is also very easy to slip into bad habits or other ways of working, especially for organizations who are transitioning to Agile frameworks. Your project manager plays an important role in keeping the team in check, and that daily habits are maintained.
5.Development management, including people management, continuous integration and source code management
Leading onto that, your project manager will need to ensure that the development environment is suitable for your agile methodology. As Agile requires rapid development and integration of the coded solution into the core code, systems of continuous integration are required with solid source code management.
Software tools and systems do exist to help with this challenge, but it is a combination of effective system deployment with change management within the development team to achieve it without development conflicts that can dramatically slow the output.
6.Testing, including unit tests, functional testing, regression testing and testing automation
Testing in production is never the smart move. Your project manager will have to guide your team in defining the testing scenarios and ensuring that the tests are executed. Testing does not have to be a chore – many automated testing tools can streamline testing, from IDE-integrated unit testing to automated regression testing of the solution.
Testing is sometimes the most overlooked requirement in a migration to Agile. Waterfall has a clearly-defined window on when the code changes, and testing has been ring-fenced either to a select group of testers, or a specific period on the project. Agile turns this requirement on its head as developers are continuously integrating new code or code changes, making automated unit testing and proper regular regression essential in maintaining code quality.
7.Organizational change management
Your agile project manager will also have to coordinate all organizational change management that is required. Similar to testing, with agile frameworks, the organization will experience incremental, frequent changes to an environment, rather than single events that can be managed.
This places the demand for a continuous change management team and the necessary tools such as online training documentation and other approaches to keeping operational and support people in the loop with the latest changes.
[Read more on Change Management ]
8.Documentation, including all the documentation repositories, training manuals and code wikis
Last, but definitely not least, is the requirement of managing the documentation requirements of the project and solution. Agile will place new demands that will make the need for old-school printed documentation obsolete, with new online solutions essential to streamlining the administration functions.
Like the code, documentation will also require incremental and continuous alteration that parallels the development cycle, and will be an integrated function, not a standalone task, of your methodology.
[Read more on Documentation Solutions ]
Agile frameworks compliment many development processes
Agile frameworks can be applied to various software development processes to derive your organizational methodology. These include processes such as:
- Test-driven development (TTD)
- Behavior-driven development (BDD)
- Rapid application development and other prototyping approaches
All of these can benefit from Agile frameworks and the correct structuring of tailored methodologies that allow you have the benefits from these software development processes with the structured principles Agile commands.