Skip to main content

Being AGILE

AGILE! many of us had heard of this or even following it, so what it is. Lets start with simple word explanation in English dictionary it says "Able to move quickly and easily". That's it, the methodology is all about moving quickly and easily.

What is AGILE?

Agile is a project management technique or you can say a open methodology, projects can be of any nature and field, it can be applied to almost any kind of project. In this article we will talk more about software development projects.
  • Its a methodology
  • Not a process, it's a philosophy or set of values
  • Agile breaks down larger projects into small, manageable chunks called iterations.
  • At the end of each iteration (which generally takes place over a consistent time interval) something of value is produced.
  • Agile has different method implementation like XP (extreme programming), Scrum, Crystal, Kanban, RUP etc.read more methods here 

So how we will move quickly and easily. By making small goals out of a big projects (quite bookish language hmm) OK let's make it practical, suppose you have to fill a large 100 gallon tank with water (Obviously on client's demand), what will be your approach? filling the tank at once with all the water after getting all the details and designs or filling the tank with small 1 gallon buckets 100 times by making a iteration of 1 gallon at a time and suppose in between the process, client who wants to visit and monitor the progress every fortnight, requests that I want it filled with half beer (Cheers 👍) which approach will suit this scenario.
Unlike Waterfall project management, which is strictly sequenced, you don’t start design until research is done and you don’t start development until the designs are signed off on; agile has designers, developers and business people working together simultaneously.

Values, Goals or popularly Manifesto of Agile

In 2011, the Agile Alliance created the Guide to Agile Practices (renamed the Agile Glossary in 2016), an evolving open-source compendium of the working definitions of agile practices, terms, and elements, along with interpretations and experience guidelines from the worldwide community of agile practitioners. Based on their combined experience of developing software and helping others do that, the seventeen signatories to the manifesto proclaimed that they value:
  • Individual and interaction over process and tool
  • 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, they value the items on the left more. The meanings of the above is up-to some extent is explained here:
Individual and Interaction - self-organization and motivation are important, as are interactions like co-location and pair programming.
Working Software - working software will be more useful and welcome than just presenting documents to clients in meetings.
Customer Collaboration - requirements cannot be fully collected at the beginning of the software development cycle, therefore continuous customer or stakeholder involvement is very important.
Responding to Change - Agile development is focused on quick responses to change and continuous development.

To understand this manifesto better we need to see the 12 principles from which this manifesto was derived.

The 12 Principles

  1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
  2. Deliver working software frequently, from a couple of week to a couple of months, with a preference to the shorter timescale.
  3. Welcome changing requirements, even late in development. Agile’s processes harness change for the customer’s competitive advantage.
  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. (It has to be as it's our primary goal)
  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 maximizing the amount of work not done — is essential. (personally I like this the most, the power of simplicity).
  11. The best architectures, requirements, and designs emerge from self-organizing teams.
  12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

So we have seen what is agile and what is the basis of this methodology, it is clear that it's an adaptive and practical approach rather than of following a strict set of rules. Following Agile requires continuous overall growth, self organization and increase in degree of adaptation.

How to start (5 steps)

  1. Select a project and a motivated team to start with, as its requires every single one in that project to indulge in. Its not the responsibility for only managers who can follow it and force the team to follow some rules.
  2. Choose a method of Agile (XP/Scrum/Kanban etc) that suits you, I would recommend SCRUM in software as it's an easy transition form what you are currently doing with out turbulence.
  3. Form/Prepare the team by providing short on the job training and get in touch with the roles and terminology of chosen Agile method say Scrum.
  4. Start with taking less complex tasks and modules.
  5. Keep in mind the values of Agile and you are all set to go.
At the beginning you may not be perfect no body is perfect but with continuous practice you can achieve near perfection and as I always say Take the first step to cover that extra mile.
Hope you had liked the article, soon we will talk about SCRUM and later how to implement SCRUM in your project.
Also read my other articles in this blog and do comment your suggestions so that I can improve.

Comments

Popular posts from this blog

A dip into DeepSeek

  Introduction to DeepSeek  DeepSeek is a Chinese AI company founded in 2023 by Liang Wenfeng. It is located in Hangzhou, Zhejiang. DeepSeek has focused on open-source large language models. Within a very short time, the company has caught people's attention through its new models, DeepSeek-V3 and DeepSeek-R1, which could soon become the new benchmark to rival leading AI models from other tech companies. About DeepSeek DeepSeek's models are highly performing and efficient. DeepSeek stresses more on open-source development, therefore, models, and training facts about them are free to use and alter. Such practices helped DeepSeek grow by leaps and bounds and now it is one of the market leaders in the AI domain. DeepSeek's models have been developed under serious challenges from U.S. export bans on advanced hardware, notwithstanding such challenges, DeepSeek has been amazing. Comparison with ChatGPT, Microsoft Copilot, and Gemini Model Key Featur...

.Net 8 - A look for Technical Architect

 .NET 8, the latest Long-Term Support (LTS) release from Microsoft, arrived in November 2023.  As a technical architect, you're likely interested in what this means for your development and the applications you're building.  Performance Boost .NET 8 comes with significant performance improvements. Such as garbage collection optimizations and core library enhancements, your applications will see a noticeable speedup. This results in a better user experiences and improved scalability. Geared up with C# 12 .NET 8 introduces C# 12. C# 12 offers several new features that improve code readability and maintainability, such as global using and improved pattern matching. These features empower developers to write cleaner and more efficient code. Cross-Platform Development .NET 8 strengthens the cross platform capabilities of .Net. Whether you're targeting Windows, Linux, macOS, or mobile platforms, .NET 8 provides the tools and libraries you need to build robust applications. Expa...