Agile

AGILE: EVERYTHING YOU NEED TO KNOW


If you are looking to build a career in project management or are already doing so, chances are Agile is likely to be a concept you have at least heard of - particularly if you work in software or technology.

The first thing to understand is that Agile is more a set of principles than one specific project management methodology. In short, it’s characterised by a series of tasks that are conceived, executed and adapted as the situation demands, rather than a pre-planned process. It is a practice based on continuous iterations of development and testing, where such activities can run concurrently.

In this Agile guide, we will unpack some of its core principles and applications in the context of managing projects. But let’s go back to where it all began.

 


 

Topics covered in this article

What is the history of Agile in project management? 
What are the Four Values of the Agile Manifesto?
What are the 12 Principles of Agile? 
What is the Agile development process? 
Who makes up the Agile team?
What are the different Agile methodologies?
Which Agile method should I choose?
Is Agile good for any project? 

 






WHAT IS THE HISTORY OF AGILE IN PROJECT MANAGEMENT?

Agile’s core principles were formulated over an extended weekend in 2001 by 17 technology leaders on retreat in Snowbird in the mountains of Utah. These 17 leaders are now known as the “Snowbird 17”.

As leaders in software development they had come together to tackle a problem many companies faced. Over-planning and excessive documentation of software development cycles had led to a general lack of focus on delivering for the customer.

What emerged was the “Agile Manifesto”, a short statement that expressed the four values and 12 supporting principles that underpin the Agile approach to software development.

Over the next 20 years, the “Agile Manifesto” has provided the foundation for countless projects, teams, and companies. It has spawned a whole industry of project management methodologies, known as the “Agile Movement” from Scrum, Extreme Programming, Kanban to Crystal and more.

 

Download Now: Agile Project Management Whitepaper

 



WHAT ARE THE FOUR VALUES OF THE AGILE MANIFESTO?

As prescribed by the “Snowbird 17” the Agile Manifesto states the following:


“We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

  1. Individuals and interactions over processes and tools

  2. Working software over comprehensive documentation

  3. Customer collaboration over contract negotiation

  4. Responding to change over following a plan.

That is, while there is value in the items on the right, we value the items on the left more.”
 


Central to these values is putting the people involved (customers, team members and stakeholders) at the centre of the process. The aim of following an Agile approach is to create software that works or have a project that meets its goals, yet is responsive to learnings and change over the development life-cycle.

Also key to Agile, is flexibility in the process and methodology for project delivery. An Agile team should modify a process to make it fit the requirements of the specific team rather than forcing a team to work with a process that doesn’t quite fit.

 



WHAT ARE THE 12 PRINCIPLES OF AGILE?

Fleshing out the Four Values of The Agile Manifesto further are the 12 Principles, which seek to align the development process even more closely with what a business or organisation requires. They are stated as follows:

  1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

  2. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.

  3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.

  4. Business people and developers must work together daily throughout the project.

  5. Build projects around motivated individuals. Give them the environment and support they need and trust them to get the job done.

  6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.

  7. Working software is the primary measure of progress.

  8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

  9. Continuous attention to technical excellence and good design enhances agility.

  10. Simplicity--the art of maximising the amount of work not done--is essential.

  11. The best architectures, requirements, and designs emerge from self-organising teams.

  12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behaviour accordingly.


Here is a snapshot of what the 12 Principles entail:

 
  • Aligning development with business needs and having a customer focus with a commitment to shorter and more flexible, or “agile” development cycles.

  • Having motivated people on the project that work together, negotiate and communicate.

  • Working and designing smartly to minimise, not maximise, the work and effort required.

  • Streamlined documentation which acts as a support to, not replacement of communication and human interaction.

  • Actively embracing and encouraging reviews, iteration and change in approach, processes and deliverables as a project evolves, so that outcomes are more likely to match expectations by the time the project is complete.




WHAT IS THE AGILE DEVELOPMENT PROCESS?

So what does the typical Agile development or project management cycle look like? The first thing to understand is that its various stages may not happen in what you would imagine to be a logical sequence where one step always precedes or follows another. They may evolve and change over time or happen in parallel.

At its core, Agile project management is incremental and iterative. Unlike approaches such as Waterfall, Agile does not rely on a project to be completely planned and scoped before the work can begin. Working in an Agile way, means being open to changes along the way or perhaps not having an entirely clear picture of where you might end up. It relies upon constant feedback from end users and customers and course corrections along the way.

Depending on the approach used, stages may vary but generally, it looks like this:

  1. Conception: This is where we begin. The project is outlined by the relevant experts and, as much as possible, all its tasks and goals are set. A product backlog is created that captures every detail, idea and task. These are then planned out into “sprints” (more on these later).

  2. Inception: Next agile teams are formed to complete all of the required tasks in their assigned sprints.

  3. Development and Iteration: The teams start work on their sprints and work their way through the task list.

  4. Release: Once the sprints are complete, the product or work is released to customers, stakeholders or end users to make sure its meeting expectations and performing as required. This feedback is then used to make the necessary adjustments, be they big or small, to make sure the end-product delivers.

  5. Retirement: Once everything is done, all work is finished and the customer is happy, the project manager ends the sprint or project.

It’s worth noting again that different Agile methodologies will have their own variations on an Agile workflow but the same principles will usually apply. Sprint’s are “bit-size” pieces of work that can be completed quickly by teams and there may be many of them in any given project.



Agile-projects-(2).jpg




WHO MAKES UP THE AGILE TEAM?

We can’t say it enough. People and teams are at the heart of using the Agile approach. Agile processes rely on members of the team, often who specialise in a range of functions, such as developers, product managers and marketers, coming together to deliver. So, what traits and mindsets are required for team success in an Agile environment?

  • Respect for team members and customers alike: As with many things in life, having respect for fellow humans is essential for any kind of team success. Projects are often intense and high-pressure undertakings. Respecting the pressure people are working under and being mindful of the potential for burn-out is critical. Motivated, energised and supported team members with reasonable, self-determined project or sprint responsibilities are more likely to deliver, enjoy doing it and stick around for the next initiative.

  • Laser-focus on the top priorities: Agile teams work together to first solve the most critical challenges or deliver on the most important tasks. Great Agile teams often have deep expertise in a particular area but are able to add value in others. Therefore, whatever the priority everyone in the team can contribute something. It’s important for members of an Agile team to remember what the top priorities are to ensure that before they move onto the next sprint the current one is completed. That way the sprint flow won’t be interrupted, and resources are optimised for the good of the overall project. 

  • Iterate often and rapidly: Fundamental to deploying an Agile approach is recognising that it’s virtually impossible to know before you begin what the right solution will be for a particular problem. Even if you are pretty sure it’s right as of now, chances are things could be quite different by the time of delivery. The only way to make sure what you deliver at the end meets those future unknown expectations is to involve users and customers along the way, listen to their feedback and adjust accordingly.

  • Crave feedback and metrics: Agile teams thrive on accurate, real-time data to help them make better decisions. They are also not afraid to fail from time to time and in doing so seek to learn from the experience and react accordingly. The ability to absorb feedback, even when particularly negative, is also an important skill to nurture. Agile projects work best when they are in tune with the end goal and can adapt rapidly.

  • Design for efficiency: High performing agile teams will always look for opportunities to improve and do things quicker or better. A mindset that is focused on the “old way of doing things” needs to be replaced with a pragmatic stance. Developing templates and programs that increase speed, capacity and capability to respond to changing environments or expectations is key. And when these no longer work effectively, create new programs and templates that do.

  • Never lose sight of the end goal: Working in sprints and checking off tasks can often feel like accomplishments in their own right. But, of course, they are just milestones along the way to the desired outcome or delivery. Keeping an eye on that end goal is critical to make sure the right tasks are prioritised and project changes and iterations are made when they are needed. Not being overly rigid about the end goal itself is often helpful. Future circumstances and environments may well change and continuing down a pre-determined path without accounting for change might well lead to an outcome that no longer meets the new expectations.

Working in Agile teams requires a very open and flexible mindset without compromising on the need to deliver high quality work and outcomes. But if done correctly, the experience of working as part of an Agile team will be motivating, enjoyable and satisfying.



WHAT ARE THE DIFFERENT AGILE METHODOLOGIES?

Agile is a set of values and principles which, over the last 20 years has created a whole new industry and way of approaching software development and project management. Numerous project management methodologies and frameworks have been developed based on Agile. Here’s a summary of a few of the major ones:
 

Scrum

Perhaps the most widely used Agile methodology is Scrum. Scrum is defined by its creators as “a framework within which people can address complex adaptive problems, while productively and creatively delivering products of the highest possible value. Scrum is lightweight; simple to understand; but difficult to master.”

Scrum is applied very broadly by many organisations to guide their projects and day to day operations, including developing software, hardware, education, government, marketing and organisational operations - just to name a few.

At its core is the Scrum Team which is comprised of a Product Owner, the Development Team, and a Scrum Master. Scrum Teams are self-organising and cross-functional that decide for themselves how to accomplish their work. 

The Product Owner is responsible for setting the overall direction of the project and is responsible for maximising the value of the Development Team. The Development Team are those that do the work. They organise and manage their own work. The Scrum Master is a “servant-leader” for the Scrum Team. They are responsible for ensuring everyone understands Scrum theory, practices, rules, and values.

Work blocks are described as Sprints. Each Sprint is a project with a maximum one-month horizon. Like projects, every Sprint has a goal of what is to be built or achieved, a design and flexible plan that guides the work and the desired product increment or outcomes.
 

Kanban

Kanban is a workflow management method designed to help teams visualise work, maximise efficiency and be agile. It focuses on getting things done and is built around four basic principles and six practices. The 4 Core Principles of Kanban are:

  1. Start with what you do now;
  2. Agree to pursue incremental, evolutionary change;
  3. Respect the current process, roles & responsibilities;
  4. Encourage acts of leadership at all levels.

The 6 Practices of Kanban are:

  1. Visualise the workflow;
  2. Limit Work in Progress;
  3. Manage flow;
  4. Make process policies explicit;
  5. Implement feedback loops;
  6. Improve collaboratively (using models & the scientific method).

A key component of the approach is the Kanban Board which generally consists of three columns – “Requested”, “In Progress” and “Done”. The Kanban Board serves as a real-time information repository that highlights bottlenecks and issues that might get in the way of the project running smoothly.

Other key elements include Kanban Cards which are visual representation of tasks and contain key information, deadlines and status. On the board are Kanban Columns which represent different workflow stages. Cards move through the workflow until finished. Work-in-Progress Limits restrict the maximum amount of tasks in each stage of the workflow with the aim of helping the team to focus only on current tasks. Kanban Swim lanes are horizontal lanes used to separate different types of activities, teams and classes of service.

 

Extreme programming (XP)

Extreme programming (XP) supports frequent releases in short development cycles to improve software quality by allowing developers to respond to changing customer requirements. While this approach seems similar to most Agile methodologies, the difference here is XP takes these practices to “extreme” levels. It too has its own set of core values: simplicity, communication, feedback, and courage.

It advocates high levels of customer involvement, rapid feedback loops, continuous testing and planning and close teamwork that delivers working software in one to three weeks. In XP, the customers work very closely with the development team to define and prioritise user stories. User stories are the smallest unit of work in an Agile framework.

It is not a feature, but an end goal expressed from the software user’s perspective. On an iteration-by-iteration basis, the development team estimates, plans, and delivers working, tested software based on the highest priority user stories.

XP emphasises customer satisfaction. Instead of working to deliver absolutely everything required by some date far off in the future, the process delivers software incrementally. This approach means developers can respond to changing customer requirements, even late in the life cycle.

XP works best for teams that experience constantly changing requirements or work with customers who aren’t exactly sure what they ultimately need a system to deliver and have very tight deadlines. It works most effectively with smaller development teams and those that can work very closely with customers.

 

The Crystal Method

Crystal is an agile approach that focuses on individuals and their interactions, as opposed to processes and tools. Central to the Crystal agile framework is the belief that projects are unique and constantly changing and the project’s teams are best suited to determine how the work will be done and find the best way to improve and optimise workflows.

The core characteristics of the Crystal method are based around the team. It is human-powered which means the project should be tailored around the preferred work modalities and needs of the people involved. It is adaptive and does not have required tool and techniques of development. Its ultra-light - meaning it forgoes heavy documentation or reporting.

This method recognises that a project’s properties change depending on the number of people involved, its level of criticality and priority. In each case a project may require particular policies, practices and processes in the attempt to achieve its goals.  




WHICH AGILE METHOD SHOULD I CHOOSE?

A quick internet search will reveal that by no means are these four methodologies the only ones that have Agile at their core. Finding the right one for you and your project team is worth some further research and consideration. Every organisation is different, every project is different and every team is different.

Know your project goals and determine the variables, dependencies and activities that are crucial for your project. Identify the metrics and success factors that are most critical and review each methodology for the best match.

Engage your team in the decision-making process and assess their familiarity and experience with different methodologies. Consider your organisational culture and how it might gel with the required team dynamics of each approach.

Finally, whatever choice you make, stick to it! Changing horse mid-race rarely ends well.





IS AGILE GOOD FOR ANY PROJECT?

Agile methodology, while formulated to deal with the complexities and challenges of software development, is very applicable to teams focused on many different types of projects who are prepared to shift to the Agile mind set.

There are numerous examples of non-tech organisations using Agile to improve productivity, deliver products and improve operational efficiency. Its application is widespread in industries as diverse as marketing, education and auto manufacturing.

The truth is that in a lot of circumstances, teams don’t use pure agile methodology in their work but rather an amalgam of enterprise rules, tactics, agile and non-agile practices. The beauty of Agile is that as a mindset its designed to allow for flexibility and adaption.
But if you are looking to adopt the framework to your non-tech projects there are a few key tenets to keep in mind alongside Agile’s values and principles:

  1. Organise work into shorter periods of less than one month and focus on the most important tasks that will have the most impact in achieving the end goal.

  2. Review, adapt and reiterate. After every “sprint” review the progress and what is and isn’t working.

  3. Let the project team decide how the work is to be carried out and encourage self-determination and adaption. Construct teams that have the required expertise but have a breadth of knowledge, so that all can participate in completing tasks and solving problems.

  4. Communicate, communicate, communicate. Openness and honest feedback is fundamental to continuous, iterative project management. Working closely with the key stakeholders, customers or end users throughout the project ensures the project deliverables are always aligned with expected outcomes, even if they change.



LEARNING MORE

From short self-directed online courses, to certifications to academic degrees - there is no shortage of opportunities to educate yourself more deeply on project management, Agile and its companion methodologies. Here’s a few specific courses:

Agile methodology. The Scaled Agile Framework®: Sydney University Centre for Continuing Education - This program offers courses developed around the Scaled Agile Framework® (SAFe®). SAFe® empowers organisations to achieve the benefits of Lean-Agile software and systems development at scale. Completing these courses qualifies students to take the relevant Certified SAFe® Practitioner exams.

Agile Certified Practitioner (PMI-ACP) - the Project Management Institute’s (PMI) Agile Certified Practitioner Scrum Master is a comprehensive certification that requires at least 2000 hours of project experience, 1500 hours working on Agile projects, and at least 21 hours of training in Agile practices. It also covers Agile methods such as Scrum, Kanban, Lean and Extreme Programming.

Scrum Certification Courses - There is no shortage of organisations offering Scrum training and certification programs, with some being more widely recognised and accepted in the Agile world. Scrum Alliance and Scrum.org are two of the better known providers:

  1. Professional Scrum Master (PSM) - one of the most recognised multi-level Scrum Master certifications managed by Scrum.org, it offers 3 levels of certification - PSM I, PSM II and PSM III - following successful completion of the preceding level.

  2. Certified Scrum Master (CSM) - the Scrum Alliance offers CSM training and certification. CSM holders will need to renew their certification every two years.

Did you know the AIPM will automatically grant the Certified Practising Project Practitioner (CPPP) level of RegPM certification to individuals who have completed selected courses or certification which includes some Agile credentials? Visit our Automatic Recognition page to find more. 
 

Agile-whitpaper-CTA.jpg