Over the decades, companies across the globe have been adopting different project management frameworks and methodologies they feel are best suited to the nature of work they do. Be it IT, healthcare, fast-moving consumer goods, electronics, or automobile, organizations across domains adopt frameworks that enable them to achieve their organizational goals and best fulfil their customers’ needs.
Much before the birth of the term ‘Agile’, several project management practices like Waterfall, Kanban and XP were being followed. However, there was a wide dissatisfaction with the rigidity of some of these practices. Over the years, academicians and leaders in the industry began to discuss the need for processes that would give them more flexibility and enable them to ship software on time.
After much planning, seventeen innovative industry leaders, many of them from the software community, gathered in February of 2001 at the famous Snowbird Ski Retreat at the Wasatch mountains of Utah, US. This small, three-day retreat ended up shaping much of software is imagined, created, and delivered - and probably even how the world works.
What is the Agile Methodology all about?
Agile is a mindset, a methodology that provides different frameworks working in an iterative and incremental manner to arrive at a solution. The Agile methodology focuses on creating a red-carpet, a smooth path for teams to work and deliver exceptional results to satisfy customer needs. Over the last two decades, the Agile methodology has dominated the IT industry in a big way.
Not only is the Agile methodology customer focused, but it also helps teams to scale up, learn and grow. There was a time when organizations thought about Agile as a fairy-tale wand, something that could magically fix all their problems. Thankfully, with much help from the Agile front-liners, the enchanted fairy dust has now evaporated. People now understand that it indeed takes a lot of effort, awareness, coaching, and dedication to fix problems through Agile. Like any other method, Agile too takes time, but if applied in its true sense, the results can be very fulfilling.
The Magic Potion: Agile Values and Principles
With the coining of the term ‘Agile’, its foundation was laid, the beautiful truth on how to move forward and abide by the rules and values of Agile. At the Snowbird retreat, the seventeen leaders put together a manifesto. The Agile Manifesto is unique among typical manifestos in that it does not declare truths self-evident. Rather, it compares: We value this over that.
At Snowbird, the leaders began to lay out what they had in common and when they compared how they did their work, they were amazed at the things that were the same. They went on to finalize the four lines of the manifesto which forms the backbone of all the frameworks that come under the Agile umbrella. Every line has deep meaning associated with it and you will be surprised by its wide-spread relevance across domains.
So, what is the Agile manifesto? The preamble reads, “We are uncovering better ways of developing software by doing it and helping others do it.” It then lays out the four core values:
The document concludes that “while there is value in the items on the right, we value the items on the left more.”
Although the words can be interpreted differently, the basic gist is this: Put people over process. Focus on making software that works, not documents about that software. Work with your client rather than fight over a contract. And along the way, be open to change.
With the above four core values, the authors also devised twelve principles that help teams to understand and adopt Agile as their way of working. Even if teams are yet to learn how to use any of the frameworks or how to work around the ceremonies, if they understand and adopt the four values and twelve principles, the battle is won.
Here are the twelve principles laid out in the Agile Manifesto:
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
- Welcome changing requirements, even late in development. Agile processes harness change. for the customer's competitive advantage.
- Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
- Business people and developers must work together daily throughout the project.
- Build projects around motivated individuals. Give them the environment and support they need and trust them to get the job done.
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
- Working software is the primary measure of progress.
- Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
- Continuous attention to technical excellence and good design enhances agility.
- Simplicity, the art of maximizing the amount of work not done, is essential.
- The best architectures, requirements, and designs emerge from self-organizing teams.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
What are the various Agile Methodologies?
Under the overarching Agile umbrella, many frameworks operate and cater to different industries and market needs. Let us look at some of the most widely used Agile frameworks:
Scrum is an incremental and iterative way of working in a time-boxed manner to solve complex adaptive problems. It is a widely used approach as per the 14th Annual Report by Version One and has 58% on the total market share in terms of framework adoption.
It is a concept of a scheduling system for lean manufacturing and just-in-time manufacturing. Derived from a Japanese word, it signifies a signboard or the physical board with lanes to track the activity. This system helps to improve and optimize the flow of work items.
XP (Extreme Programming)
Originated by Kent Beck, Extreme Programming is a software development methodology conceived to improve the quality of the product and its capability to suitably adjust to the shifting needs of the stakeholders. It is a set of engineering practices.
FDD (Feature Driven Development)
It is customer-centric, iterative, and incremental, to deliver tangible software results often and efficiently. FDD in Agile encourages status reporting at all levels, which helps to track progress and results.
DSDM (Dynamic System Development Method)
This has been developed to work on usual problems confronted by projects such as late delivery, rate overruns or the final outcome not being accepted by the clients. It is an Agile-based approach that is collaborative and flexible yet remaining attentive on reaching goals and sustaining the suitable level of excellence and consistency.
What is the Scrum Methodology?
Scrum is an agile project management framework that revolves around an incremental and iterative approach where the focus is on delivering increments in a time-boxed manner. Scrum supports the collaborative approach of working towards a solution and is based on the Agile Manifesto and principles. The Scrum framework comprises of:
Scrum Master, development team and the product owner
Sprint Planning, Daily Standup, Sprint Review, and Sprint Retrospective.
Product Backlog, Sprint Backlog, Task-Board, Burndown charts, Sprint Goal
Agile vs. Scrum: Similarities and Differences
While Agile provides an umbrella for different frameworks that share common values and principles as prescribed by the Agile Manifesto, Scrum is a subset of Agile and has inherited the foundation and beliefs from its superset.
Let us look at some of the similarities and differences between Agile and Scrum:
|Is a Mindset/philosophy||Yes|
|Is a Framework||Yes|
|Has defined roles||Yes|
|Focus on Continuous Improvement||Yes||Yes|
|Focus on Faster Delivery||Yes||Yes|
Best practices in Agile
Though Agile has certain principles and values to define how teams should function, it is also necessary to adhere to the best practices to get the finest implementation of the methodology. Here are some of them:
Deliver in Increments
Incrementing helps the teams and stakeholders stay in control of the development step-by-step. They discover and refine the backlog as they move forward rather than create a huge backlog upfront as was the case traditionally.
Communication is the key to success. The more collaboratively the team works along with the client, the more the satisfaction on both ends. This helps to meet the expected requirements and greater clarity on the next assignment.
It is critical to introspect as an individual and retrospect as a team to see how they are functioning and what can be improved to make it much better.
Best Practices in Scrum
With extensive use of Scrum, organizations now have their own success stories along with a bundle of learning on what went well and where they had to struggle. This paved way for expanding the list of best practices one can follow to stay on track with the framework. To list out few:
Have a live storyboard, let the team update their deliverables. The Scrum Master can help the team understand the value they can derive from it.
Stick to the agenda of the scrum ceremonies, make it time boxed.
Plan your sprint as per the available capacity so that the teams are not overburdened.
Make the impediments very much visible to all the stakeholders and the management.
Effectively manage the backlog, as much as possible, refine, and prioritize.
Create a collaborative healthy environment where the individuals can voice out their concerns.
Continuously improve the way team interacts and communicates with the clients.
Mirror Your work
Be transparent and honest with the metrics and burndown charts amongst the team.
Follow scrum values
They really help in the long run.
And last, but not the least, be agile!
While every framework is different, applying each one in the right spirit and context is the key to success.
The Agile methodology is a fantastic way of working and is helpful to everyone involved. Best of all, it aims to help individuals attain their highest potential in terms of capacity and capability.
It is worthwhile reiterating that Agile is not limited to software development. It is a mindset and a way of life. And with the world constantly adapting to newer ways of working, Agile is the way to go!