Agile Basics, Manifesto & Principles

Market dynamics are making this mandatory for professionals to have knowledge of agile. There is penalty of data and knowledge available on the internet especially for agile and confusion is where to start. Another challenge we are facing is skip the basics and jumping to the advance discussions of agile or its flavours with half cooked information. This creates lot of gaps in understanding as well as create gaps in foundation for agile as knowledge.

Agile Manifesto

In this article we shall be focusing on building the base for agile understanding. Many of the agile practitioners have this gap of not knowing basics, manifesto and principles but knowing scrum and using it. Let’s have a look at the founding stones i.e. agile manifesto and principles.

Basics of Agile

Agile manifesto

In 2001, a group of 17 “lightweight” meteorologists met in Snowbird, Utah, to discuss their suggestions to delivering software. They had long discussion on the new ways of developing and creating software. This is the way agile manifesto was written and we shall discuss the manifesto next

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

There are total 5 values mentioned in the manifesto quoted above. I am saying 5 and not 4 because fifth line is as important as other four. Let’s discuss on it one by one

Individuals and Interactions over Processes and Tools

Manifesto has told in a bold way that individuals and interactions are more important. The basis of this is, processes and tools are for teams i.e. individuals to help in their work. Therefore they are indirectly for individuals but in the course, focus has been moved more to Processes and tools on place of individuals and interactions.

Working Software over Comprehensive Documentation

Manifesto has insisted that nothing can be better than demonstrating working software. The issue with documentation is highlighted as it becomes stale. It’s sometimes not even feasible to make it up to date as effort involves is huge.

Customer Collaboration over Contract Negotiation

Agile Manifesto and principles value Business and Customer at outmost level and with highest priority. The trend with agile wave as mentioned by manifesto too is close customer collaboration Customer has to be working very closely with team so that requirements can be flexibly maintained. This value also says that there is not point doing long discussion on contract and negotiations and then being very strict with those numbers/dates.

Responding to Change over Following a Plan

Manifesto has envisaged this need of market and mentioned upfront that sticking to plan which was made assuming few things/situations which eventually changes and plans doesn’t work. So most effective way to work with dynamics of market is responding to change, flexibility of taking changes on the go of the project helps client as well in managing the doing investment analysis. ROI for customer increases with this approach.

Fifth value

That is, while there is value in the items on the right, we value the items on the left more” This value is equally important because it confirms on the fact that agile doesn’t say right side items are not required but it says agile values more on left side items and uses right side items as required

Agile Principles

There are total twelve agile principles which echoes the values mentioned in the manifesto. These principles was also written along with Manifesto and has to be understood in conjunction with manifesto. It’s very simple English principles as explained below:

  • Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
    • Customer value is very important and being flexible to change brings that advantage to customer. This welcoming change even late in development cycle becomes natural the way agile works incrementally.
  • Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
    • This principle focuses on iterative and incremental approach which is basis of agile. It also talks about highest priority as customer satisfaction which eventually makes projects successful
  • Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
    • Increments of working software are created iteration after iteration. This principle focuses on the fact that agile teams should always thrive for shorter iteration as much as possible.
  • Business people and developers must work together daily throughout the project.
    • Collaboration is the best way to work. Here the fact that business work force is close to end user requirements and developers are technical people going to work or working on requirements. More closely they work on daily basis, better will be result
  • Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
    • This principle again echoes on the manifesto value of individuals and interactions. Motivated individuals and trust on them is required. Making required resources and environment available to team is another focus area so that individuals are only focusing on work
  • The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
    • In this principle, emphasis is on face to face conversations so that whatever we can discuss and close quickly, shouldn’t be parked in documents and emails
  • Working software is the primary measure of progress.
    • In agile, the progress is not module wise and % wise. It’s just by showing working software. No other measure is considered.
  • Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
    • It’s understood that the agile way of working is thought as hectic as there is delivery after every iteration. There should be a constant pace maintained by agile teams by maintaining quality of work life balance.
  • Continuous attention to technical excellence and good design enhances agility.
    • Designs and technical excellence is foundation of any product. Agile emphasizes on it because with good and simple designs changes can be accommodated easily which enhances agility and flexibility
  • Simplicity—the art of maximizing the amount of work not done—is essential.
    • Amount of work not done means amount of work not required as per the mentioned requirements. There is something called gold plating which is not required here. Effort should be to make it simple and identify as much as work not required
  • The best architectures, requirements, and designs emerge from self-organizing teams.
    • Self-organization gives flexibility as well as accountability to the team directly. Beauty of humans is, they perform the best in that environment. This principle also emphasizes on it.
  • At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
    • This principle talks about retrospectives which is required in agile environment where team get together and evaluate their own work to adapt themselves. This adaptation help in performing better in next iteration.

Conclusion

Understanding values and principles of agile with gives a strong base in agile journey for anyone. There are many certifications also in the market which doesn’t cover much on this. Therefore its important as agile team member or agile practitioners to understand the reason why agile was evolved and what came as this evolution.

About Sparsh Goyal

A passionate IT professional, Sparsh Goyal boasts of 4.3+ years of experience. He has worked for various projects under AWS, Google Cloud Platform, Spring Boot, Python, Microservices, RESTful, RESTFUL APIs/SOAP, Scripting, Shell and JAVA. He is also working towards gaining proficiency in Oracle Cloud PaaS, DevOps, SaaS and Docker/Kubernetes. His primary and secondary skills validate his relentless pursuits of expanding his horizon and developing more as an IT person. He boasts of the following certifications: *Google Professional Cloud Security Engineer. *AWS Cloud Solutions Architect Associate. *Oracle certified JAVA programmer.

Leave a Comment

Your email address will not be published. Required fields are marked *


Scroll to Top