fundamentals of agile

Fundamentals of Agile: A Simple Yet Comprehensive Guide for Beginners

The last couple of decades or so, have seen rapid change in the manner businesses operate. And these changes have necessitated that businesses find new ways of working. Agile practices are forefront on the guiding the businesses through the transformation. In this article, we try to understand the fundamentals of agile, what are its guiding values and principles, and how can it help businesses.

What is Agility?

The businesses now work increasingly in a global environment. The competition has increased greatly. The ever-evolving technology landscape and changing social, political, and economic landscape around the world mean businesses need to adapt and respond to newer challenges quicker than ever and in the most efficient manner possible.  

As a result, the delivery teams worldwide have been facing increasing pressure to shorten the go-to-market time and deliver business value quickly. As a result of globalization and outsourcing, the teams are spread across geographies. This has given rise to more communication and collaboration challenges. 

Prefer an ebook over a blog post? Click here to download the Agile Fundamentals ebook.

Why Understanding the Fundamentals of Agile Is Critical for Businesses?

As a result, today’s projects face newer challenges. The first of the challenges is to identify and satisfy critical business needs at the earliest. The constantly evolving nature of the business means that the project teams need to respond to those changes quickly to ensure that business interests are protected from the impact of changes. This also means that teams have an increasingly smaller time window to build and take their products to market and deliver business value. This requires greater teamwork and collaboration between multiple entities related to the project.  

The software engineering community was facing these challenges for quite a long time ago. The limitations of traditional project management and waterfall or sequential software engineering practices were a challenge as far as the above challenges were concerned. Many of the practices were already being implemented in isolation in many places. Methodologies like Extreme Programming, Kanban, Lean, etc., were already being practiced in various scenarios by various people and organizations. 

The Agile Manifesto

From February 11 to 13, 2001, seventeen people representing various agile paradigms mentioned above met near Utah. Their deliberations over the course of three days resulted in what was identified as the Agile Manifesto. 

The agile manifesto identified four major values and 12 principles to drive software development. The manifesto states that; 

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

Individuals and interactions over processes and tools 
Working software over comprehensive documentation 
Customer collaboration over contract negotiation 
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. 

Now let us see the values stated in Agile manifesto one by one. 

Responding to Changes

We will start with the value which talks about responding to change. The value statement says that we value responding to changes over following a plan. Let us see why this is important. 

Projects are live systems, in the sense that its characteristics are always changing through interactions of its parts, sub-parts, and subsystems. For example, when a person working on the project leaves, it changes the team composition. In addition to such internal events, the project’s context concerning its external environment also keeps changing. Requirements evolve. Priorities are shifted. Other variables change. For example, old technology gets obsolete, or innovative technology is introduced. Government produces new regulations affecting the project. Economic and social environments change. What this means is that projects are never static. A plan-focused project does not consider these changes, at least to the extent they deserve to be. Now, if the environment is as dynamic as we discussed earlier, it becomes imperative that change must be considered seriously and be embraced. It has become a fact of business life.  

One thing to note is Agile Manifesto does not rule out the requirements of having a plan. That is why it says that “while there is value in the items on the right, we value the items on the left more..” So, when we consider change, we are not ruling out the existence of the plan. However, the focus shifts from a static plan to embracing change to achieve ultimate project success.  

Let us now move on to other values. 

Focus On Individuals and Interactions

The first value statement says that we value individuals and interactions, moreover processes, and tools. Let us try to understand what exactly the authors of Agile Manifesto meant by this. 

Processes are important for organizations, because of three major things they do; 

  1. They provide direction and guidelines about how the project activities should take place.  
  1. They try to provide predictability of the outcome through repetition of successful practices which have been used previously by project and organization 
  1. Processes provide control points to management to track and monitor activities and their outcome 

However, while doing this, processes also put boundaries around what people can do. They channelize creativity in the right direction for the organization, but they also restrict what is known as “Out-of-the-Box” solutions. Also, it hampers the ability to quickly and swiftly react to changing circumstances and contexts.  

The same dilemma is also demonstrated by tools. Tools are meant to ensure that procedures are followed as defined. They also implement necessary controls for management visibility. However, the limitation of specific tools becomes the limitation of what a team can do. It has been observed many times that value gets sacrificed because the tools being used does not support the actions required for that value generation. And when these limitations imposed by processes and tools are encountered by project teams, the team’s ability to deliver value reduces greatly.  

Agile, by placing more focus on individuals and interactions between them, tries to promote quick and creative responses to project situations and business needs. These generate value for both the performing organization as well as the client organization. As mentioned earlier, this does not rule out processes and tools; agile merely says that instead of individuals and interactions being built around processes and tools, processes and tools must revolve around individuals and interaction. 

Outcomes are the Progress

The second value is Working Software over Comprehensive documentation. Remember the famous quote by Confucius; I hear, and I forget; I read, and I remember; I do, and I Understand. Doing is the key to understanding. Documentation alone cannot answer whether the product will deliver value to the business or not; if it delivers, how? And if it does not; Why not? Investing efforts in all kinds of documentation at the expense of the product has been a hallmark of traditional projects. When we talk about improving the next project, we focus on how well we will document requirements, how well we will write project plans, how well and in formats we will produce design documents, etc. All this has value. But the kind of understanding and experience provided by a working product cannot be simply delivered by documentation.

When we play with the working product, we understand its exact- not merely perceived- characteristics and functions. And that helps uncover hidden nuances. A working product helps to make a better judgment about how well the product will deliver value. It also helps in uncovering any deficiencies and allows for an early course correction. 

Collaboration is the Key

The third definition says, Customer collaboration over contract negotiation. Contracts are a way of life for businesses. You cannot simply do away with it. But throwing contract terms every time in the face of a customer is detrimental to your own business. It might gain you short-term benefits, but it affects your image as an inflexible organization. Also, when contracts are written down, which is usually even before the project begins, many project details will not be known. Also, contract negotiations do not happen every day. Agile advocates continuous customer collaborations to receive customer inputs about their priorities and needs. The collaboration may take within the broader boundaries put forth by the contract. Agile builds flexibility to better respond to customer needs on a continuous basis. 

It is again important to note that Agile does not ask you to do away with processes and tools, documentation, contracts, or plan. It merely states that these aspects are there to support value delivery to customers, which happens better through placing more focus on individuals and their interactions, delivering working software early and often, welcoming, embracing, and responding to changes and customer collaboration.  

What Are Agile Principles?

This brings us to the end of discussions on agile values. Next on the agenda are twelve agile principles. So, let us see what those principles are and what do they mean. 

Agile Principle #1

The first agile principle states that “our highest priority is to satisfy the customer through early and continuous delivery of valuable software.”  

With traditional projects, customers get to see the product only after completing the entire project. Depending upon the size, this period can be in months or even in years. This means that the customer will have to wait for the entire project duration before starting using the product and generating any business value out of it. This is sometimes called a “big bang” approach. Instead, agile provides continuous and incremental delivery, so that customers can start generating partial value early on. 

Agile Principle #2

The second principle states that “Welcome changing requirements, even late in development. “Agile teams embrace change. The project work is planned and executed in such a manner to make incorporating changes, which might provide customers with an edge at any point in time of the project. This provides for course corrections and enables customers to exploit any emerging opportunities. 

Agile Principle #3

The third principle states that “Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to a short timescale.” The third principle correlates tightly with the first principle. Customers can start extracting the value of the product if the usable product is given to them. Agile tries to minimize the time required for producing a working piece of the product as soon as possible.  

Agile Principle #4

The fourth principle is, “Business people and developers must work together daily throughout the project.” Only through close collaboration with the customers, the project team can understand the product’s nuances and ensure that what they are doing is going to satisfy customer requirements. It tries to make the customers equal and active partners in the entire process. Such continuous and consistent collaboration ensures that project teams can deliver higher quality products. 

Agile Principle #5

The fifth principle states that “Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.” Agile embraces the concept of servant leadership instead of a command and control structure. When the people working on the project are motivated enough, they produce higher quality output and provide more creative solutions. A leader’s role in such a case is to ensure that the team has all right tools available to them, and they can work on project activities without any outside negative influences.  

Agile Principle #6

The sixth agile principle states that “The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.” Agile places a great emphasis on the collocation to facilitate direct communication between everybody involved in the project. Direct face-to-face communication removes many barriers that other communication mediums like emails place on the correct understanding of the message. Better communications mean better teamwork, better understanding, and better teamwork. 

Agile Principle #7

The seventh principle is also concerned with the early and continuous delivery of the product. It states that “Working software is the primary measure of progress.” Though status reports, dashboards, etc., might be necessary to reach out to every concerned person, the real measure of the progress must be linked with whether the customer can extract value from the project deliverables or not. The working, usable product is what becomes the yardstick for measuring the project progress and team performance. 

Agile Principle #8

The eighth principle states that “Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.” Often, projects suffer from elongated periods of inactivity when the project team is either waiting for approvals and future directions. There will also be a time when they would require working at a frenzied pace to meet tight deadlines. Both situations may lead to lower product quality and lower overall productivity and such periods are not sustainable in the long term. Agile emphasizes a pace, which is constant yet comfortable to be sustained over an extended period. 

Agile Principle #9

The ninth principle says that “Continuous attention to technical excellence and good design enhances quality.” Good Quality Management principles profess prevention over inspection. When you provide continuous attention to ensuring that what is being designed and developed is excellent at every point in time, it saves rework. It also ensures the greater quality of the deliverable. 

Agile Principle #10

The tenth principle talks about eliminating wasteful work on the project. It states that “Simplicity – the art of maximizing the amount of work not done – is essential.” Many times, project teams add features to the product, which are not critical for business value. Such work is waste. Agile practices promote the concept of prioritization to see which features are important and focus on them and do away with work which does not provide real value to customers. 

Agile Principle #11

The eleventh principle is again about what motivated teams; the term agile uses is “Self-Organizing team.” It states that “The best architectures, requirements, and design emerge from self-organizing teams.”  People who do the actual work are most knowledgeable about what needs to be done and how it needs to be done. Teams that are empowered to figure out the best viable solutions usually provide creative solutions to complex problems. Agile emphasizes harnessing the power of such teams for the best solutions. 

Agile Principle #12

The twelfth and last principle states that “At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.” By looking inwards, teams can find out inefficiencies in their work. Such reviews, happen periodically and at a shorter interval to facilitate course corrections as early as possible, thus helping team efficiency and effectiveness. 

These twelve principles together, provide a direction to solve repetitive issues faced by projects, helping teams achieve their objectives of delivering useful products in the most effective manner. 

What Are Agile Methodologies?

Agile Manifesto does not specify any fixed set of practices for implementing agile values and principles. Various Agile Methodologies implement different practices, which implement these principles. However, every agile methodology implements a few common concepts, including user stories to define end-user interaction with the product, continuous integration to ensure frequent delivery of a working product, backlogs and backlog grooming for prioritization, burndown and burnup charts for progress tracking, collective ownership for deliverables by all members of the team, and exploratory testing to find out subtle nuances of the product. Some of these methodologies, like Extreme Programming (XP) and Lean, are related to technical aspects of product development, while others like Scrum, DSDM, Crystal, Kanban, etc., are project management-oriented. In the next few articles, we will be looking at each of these methodologies separately and in detail. 

Not A Silver Bullet

Agile is not meant to solve all delivery problems. However, when implemented in appropriate environments, they tend to deliver huge benefits. Organizations looking to adopt Agile practices must assess their current environment to see whether agile will be effective in the given organizational culture and structure and determine what needs to change to agile becoming effective. What is the management structure of the organization? Is it a command and control structure or more collaborative? Whether agile has required internal buy-in by various parts of the organization? Is the culture open enough to embrace agile concepts like self-organizing teams? Only by assessing these factors can an organization ensure that agile practices become effective and deliver intended results. 

What Changes Are Required to Adopt Agile?

If the organization decides that the structure is right, they also need to ensure that they have the right expectations from agile. Often, lack of agile knowledge makes organizations believe that agile is the answer to all their problems. Such organizations also tend to look at agile practices as rigid structures and stick to those no matter whether they are really providing any benefits. They tend to lose out on the flexibility that agile intends to offer instead again become methodology-driven organizations that they already were.  

Agile does not recommend larger or temporary teams. It also deemphasizes specialization. The team size is subjective, based on the project complexities, but agile really recommends teams as small as possible, with members having generalized skills. Agile also does not mean no planning. Instead, it promotes planning, which is dynamic and flexible.  

Once an organization adopts agile, it impacts various aspects of how the organization functions. It makes organizations and teams more adaptive and responsive to changes. It promotes quicker value delivery, this bringing in customer satisfaction and early business benefits. Agile also forces organizations and teams to focus on quality, by considering it as an integral part of the process not something that is to be inspected in.

Increased customer communication makes the team responsive to customer expectations and increases customer loyalty. As a result of higher confidence in them, the teams are more motivated and committed to their success. In turn, these impacts bring in benefits for the organization in the form of faster time to market at reduced risks and costs. It creates an environment that breeds and promotes innovations and creative solutions and helps improve customer satisfaction and retention. All these, together, improve overall business performance in the short as well as long term.  

With this, let us conclude this article. We have discussed the fundamentals of agile, understood why agile was required and came about, values and principles defined by the agile manifesto, and various agile methodologies. We saw the requirements for adopting agile in organizations and the benefits it brings to the business. In the next articles, we will take a detailed look at various agile methodologies, starting with Scrum, and see exactly how they work. 

Till then, have an enjoyable time. 

Prefer an ebook over a blog post? Click here to download the Agile Fundamentals ebook.

Read Agile Manifesto here

3 thoughts on “Fundamentals of Agile: A Simple Yet Comprehensive Guide for Beginners”

  1. Pingback: What Is Scrum? A Deep Dive Into The Framework And Its Successful Adoption (Part I) - Beyond Optics

  2. Pingback: What Is Kanban? A Capable First Step Into Agile World - AGILE KEN

  3. Pingback: 7 Lean Principles That Enable The Success of Enterprises - AGILE KEN

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.