The Agile Manifesto

Agile is an approach to software project management intended to develop products more efficiently and get them to the market faster.  

It all started a manifesto. In the early 2000s, a group of software industry leaders got together at a ski resort to have fun and talk business. The result of this gathering generated the Agile Manifesto – as the creators themselves like to point out, the meeting originated “the need for an alternative to documentation driven, heavyweight software development processes convened.” 

You can read the full story here

 

 

The Agile Manifesto is composed of four values that must be carried on by organizations and leaders. They are: 

  1. Individuals and 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 practitioners also follow a set of twelve principles that cannot be forgotten: 

  1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software 
  2. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage 
  3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale 
  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 
  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 
  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 

In short, these principles were laid out to make sure customers received constant and regular deliverables, regardless of any last-minute changes that were required. For that to be more efficient, there has to be ongoing communication among everyone involved in the project. 

With the right people placed in the right positions, projects can be designed well, with the possibility to co-locate at any given moment, for the sake of the project’s completion. The goal of Agile is to improve during iterations, only to achieve a good end product for the client.

 

 

When an Agile team gets together to develop a project, there is a defined set of steps they must logically follow. 

Project Planning:  

Served to understand the end goal and value, the Agile team needs to first plan the project methodically. 

Product Roadmap:  

Up until the end product is finally achieved, all the features must be broken down. Similar to project planning, this stage involves the team discussing what will go into the project – only that a product backlog is created once tasks are laid out. The product backlog contains a list of such tasks that the team can slowly perform. 

Release Planning: 

At set intervals in the phases of the project, the team releases certain features. Each release is carefully planned and evaluated with each sprint. 

Sprint Planning: 

It is during this stage that tasks are defined and distributed to each team member. Up until when releases should happen, there are duties to be accomplished and workflows to be defined during iteration – and these are all laid out during sprint planning. 

Daily Sprint: 

Concealed in the format of a short 15-minutes meeting, this event is when team members assess their accomplishments and roadblocks from the previous day, and what they plan to do next. 

Sprint Review: 

Once sprints are done, the Agile team reviews the iteration and everything that was achieved. The final product should be introduced here, as well as what could have been done better. If a team is new to Agile, this meeting is of utmost importance. 

 

 

Agile has great, proven internal benefits for the companies that opt to use it. However, that does not mean adopting the methodology is right for everyone – as Wrike pointed out in their Agile article, not all businesses need Agile to make a project succeed. 

If the project is well understood, for example, there is no need to apply Agile. That is because Agile is meant to break down the project in different stages with the goal of reducing insecurities of how the end product might turn out. If all the necessary steps and tasks are already clear enough – there is no need for constant planning. Applying Agile could also result in different products when those are supposed to be exactly the same. 

Another example is when stakeholders do not want Agile, as they cannot offer their time for constant communication, or a company is, simply put, not ready for the methodology. 

But how would one know their company is not ready for Agile? 

The stakeholders, as was mentioned above, might not be able to take part in it. Or the company requires, for some reason, a lot of physical documentation to gather data. Or staff just does not understand Agile well, and are unable to be cross-functional because of their roles. A shift in the company culture and appropriate training are required for a business to start going Agile. 

Once it is decided that changes will be made to accommodate this set of practices, the Agile benefits come to light. 

Agile can provide a business with speed to market. It can be faster to produce and provide value to users and their preferences thanks to constant iterations and feedback. This can also bring great flexibility – Agile is also about accommodating change, after all. 

With these changes, the product can then be constantly tested, allowing defects to be found quicker and easier – when this happens, developers can manage risks easier. There is also the scope of launching a product sooner while not spending so much money in the process, which assures teams can stick to a budget they have previously set. The constant user-feedback and constant delivery tests also assure an overall quality achieved in the product. 

Agile is a great approach to develop products, and many successful enterprises make use of it to keep themselves in the market. Since its creation, Agile has spread and gained massive popularity, going beyond the technological field. 

Agile also goes beyond software – as we have talked about before, DevOps is a strain of Agile itself. If you would like to understand more, head over to this Atlassian article

And stay tuned for more writing pieces!

No Comments Yet.

Leave a comment