Agile is the ability to create and respond to change. It is a way of dealing with, and ultimately succeeding in, an uncertain and turbulent environment.

The authors of the Agile Manifesto chose “Agile” as the label for this whole idea because that word represented the adaptiveness and response to change which was so important to their approach.

It’s really about thinking through how you can understand what’s going on in the environment that you’re in today, identify what uncertainty you’re facing, and figure out how you can adapt to that as you go along.

The agile software development emphasizes on four core values.

  1. Individual and team 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

Agile software development is more than frameworks such as Scrum, Extreme Programming or Feature-Driven Development (FDD).

Agile software development is more than practices such as pair programming, test-driven development, stand-ups, planning sessions and sprints.

Agile software development is an umbrella term for a set of frameworks and practices based on the values and principles expressed in the Manifesto for Agile Software Development and the 12 Principles behind it. When you approach software development in a particular manner, it’s generally good to live by these values and principles and use them to help figure out the right things to do given your particular context.

One thing that separates Agile from other approaches to software development is the focus on the people doing the work and how they work together. Solutions evolve through collaboration between self-organizing cross-functional teams utilizing the appropriate practices for their context.

There’s a big focus in the Agile software development community on collaboration and the self-organizing team.

That doesn’t mean that there aren’t managers. It means that teams have the ability to figure out how they’re going to approach things on their own.

It means that those teams are cross-functional. Those teams don’t have to have specific roles involved so much as that when you get the team together, you make sure that you have all the right skill sets on the team.

There still is a place for managers. Managers make sure team members have, or obtain, the right skill sets. Managers provide the environment that allows the team to be successful. Managers mostly step back and let their team figure out how they are going to deliver products, but they step in when the teams try but are unable to resolve issues.

When most teams and organizations start doing Agile software development, they focus on the practices that help with collaboration and organizing the work, which is great. However, another key set of practices that are not as frequently followed but should be are specific technical practices that directly deal with developing software in a way that help your team deal with uncertainty. Those technical practices are essential and something you shouldn’t overlook.

Ultimately, Agile is a mindset informed by the values contained in the Agile Manifesto and the 12 Principles behind the Agile Manifesto. Those values and principles provide guidance on how to create and respond to change and how to deal with uncertainty.

You could say that the first sentence of the Agile Manifesto encapsulates the whole idea: “We are uncovering better ways of developing software by doing it and helping others do it.”

When you face uncertainty, try something you think might work, get feedback, and adjust accordingly.

Keep the values and principles in mind when you do this. Let your context guide which frameworks, practices, and techniques you use to collaborate with your team and deliver value to your customers.

As Agile Software Development became more popular, people that were involved with software development activities but who didn’t personally develop software looked for some way to figure out how these Agile ideas applied in their line of work.

The Agile Manifesto and the 12 Principles were written by a group of software developers (and a tester) to address issues that software developers faced. When you think of Agile as a mindset, that mindset can be applied to other activities.

When you do that, Agile becomes an adjective. It describes the way in which you perform some activity. It does not create a new methodology for the reasons explained above.

When you want to understand Agile project management, ask “How might we perform project management in a way that allows us to create and respond to change and deal with uncertainty?” Agile Alliance and Project Management Institute (PMI) explored this question through a joint effort to create the Agile Practice Guide (Available to Agile Alliance Members).

When you want to understand Agile business analysis, ask “How might we perform business analysis in a way that allows us to create and respond to change and deal with uncertainty?” Agile Alliance and International Institute of Business Analysis (IIBA) explored this question through a joint effort to create the Agile Extension to the Business Analysis Body of Knowledge (Available to Agile Alliance Members).

If Agile is a mindset, then what does that say about the idea of Agile methodologies? To answer this question, you may find it helpful to have a clear definition of methodology.

Alistair Cockburn suggested that a methodology is the set of conventions that a team agrees to follow. That means that each team is going to have its own methodology, which will be different in either small or large ways from every other team’s methodology.

So Agile methodologies are the conventions that a team chooses to follow in a way that follows Agile values and principles.

“Wait,” you’re probably saying, “I thought Scrum and XP were Agile methodologies.” Alistair applied the term framework to those concepts. They certainly were born from a single team’s methodology, but they became frameworks when they were generalized to be used by other teams. Those frameworks help to inform where a team starts with their methodology, but they shouldn’t be the team’s methodology. The team will always need to adapt its use of a framework to fit properly in its context.

The two concepts noted above are examples of an attempt to move Agile “outside of software.” Those efforts have resulted recently in the Business Agility movement.

If you extend the idea of Agile as a mindset, then people seeking Business Agility ask themselves, “How might we structure and operate our organization in a way that allows us to create and respond to change and deal with uncertainty?”

You might say that business agility is a recognition that in order for people in an organization to operate with an Agile mindset, the entire organization needs to support that mindset. Agile software development was never truly Agile until the organization changed its structure and operations to work in an uncertain environment.

The Agile Manifesto in Project Management is a formal proclamation of four key values and 12 principles to guide an iterative and people-centric approach to software development.

The four key values of Agile are:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

There are 12 key principles that guide the agile project management.

  1. Customer satisfaction is always the highest priority and is achieved through rapid and continuous delivery.
  2. Changing environments are embraced at any stage of the process to provide the customer with a competitive advantage.
  3. A product or service is delivered with higher frequency.
  4. Stakeholders and developers collaborate closely on a daily basis.
  5. All stakeholders and team members remain motivated for optimal project outcomes, while teams are provided with all the necessary tools and support, and are trusted to accomplish project goals.
  6. Face-to-face meetings are deemed the most efficient and effective format for project success.
  7. A final working product is the ultimate measure of success.
  8. Sustainable development is accomplished through agile processes whereby development teams and stakeholders are able to maintain a constant and ongoing pace.
  9. Agility is enhanced through a continuous focus on technical excellence and proper design.
  10. Simplicity is an essential element.
  11. Self-organizing teams are most likely to develop the best architectures and designs and to meet requirements.
  12. Regular intervals are used by teams to improve efficiency through fine-tuning behaviors.

Within agile there are some frequently used with Scrum, Kanban, and Lean being the most popular. Some agile methods include:

  • Scrum
  • Kanban
  • Lean (LN)
  • Dynamic System Development Model, (DSDM)
  • Extreme Programming (XP)
  • Crystal
  • Adaptive software development (ASD)
  • Agile Unified Process (AUP)
  • Crystal Clear methods
  • Disciplined agile delivery
  • Feature-driven development (FDD)
  • Scrumban
  • RAD(Rapid Application Development)

The goal of agile is to produce shorter development cycles and more frequent product releases than traditional waterfall project management. This shorter time frame enables project teams to react to changes in the client’s needs more effectively.

There are a few Agile frameworks you can use but the most commonly used ones are Scrum and Kanban.

Despite of the frameworks being used, a project management only has the usual 5 phases which are
1. Project Initiation.
2. Project Planning.
3. Project Execution.
4. Project Monitoring and Control.
5. Project Closure.

The only thing that changes is how these frameworks approach these five phases.

In a traditional project management methodology such as a Waterfall model, managing project scope, cost, quality, personnel, reporting status to stakeholders, managing risk, and adapting as requirements change all falls under the responsibility of a project manager. Agile project management divides these huge responsibilities among three agile roles:

  • Product Owner
  • Scrum Master
  • Team Members

The Product Owner handles setting up the project goals, managing the schedule against the scope, adapting to the change in project requirements and setting up priorities for product features.

The Scrum Master helps the team in managing the tasks and resolve any issues involved in the execution of the task.

The Team Members manages the tasks assigned to them as well as managing daily details. They report to the Scrum Master regarding the progress of their task and coordinate with them for quality control.

Traditional Project Management Methodologies can be quite rigid, whereas the Agile methodology is known for its flexibility. Also agile lets you can change the requirements after the project execution has started which is usually not possible in Waterfall methodology. Other project management methodologies does not focus on involving the Customers in development life cycle but agile software development approach focuses on customer satisfaction and thus, involves the participation of customers throughout the development phase.

These are some of the benefits in choosing Agile over other methodologies.

  1. Better product quality
  2. Higher Customer Satisfaction
  3. Higher Team Morale
  4. Increased Collaboration and Ownership
  5. Customized Team Structures
  6. Improved Performance Visibility
  7. Increased Project Control
  8. Improved Project Predictability
  9. Reduced Risks
To read about

ITSM is complicated,

so Monosoft going to cut through the jargon, break ITSM into its elements, and address some common misconceptions.
To read about