Author: Nicolás Quartieri (Tech lead at Globant)
Agile Methodologies work among several principles like responsibility, commitment and freedom which at the end represents a self-organized team. Astrong word if you think about it a little bit; plays time-boxed ceremonies like Planning Meetings, Review Meetings (Daily), Retrospectives (Groomings) and holds some artifacts like Product Backlog, Sprint Backlog.
Do you wanna start rolling out Agile ? Top 5 overview reason to go for it:
1. FINANCE BENEFITS Every one wants to get to the end of the shining path with every new project they’re on and reducing risks is one of the keys to do so. Remember we are estimating something that is not even in a blue print so chances are you will go over your budget before the project is complete. Why is Agile the way to go? In the traditional model (Waterfall) clients invest their money for months, even years, without seeing the final product until it is finished and when its done we find out its not exactly what they wanted or the market requirements have changed and this product is obsolete at this point. So Agile provides us with a Sales Argument. Because Agile allows us to deliver something of value every two or three weeks we don’t have to wait for months or years to deliver features. We reduce risk and increase value in every delivery, ( 2 / 3 week sprints ) besides the client gets a ROI ( Return on Investment ) and doesn’t have to wait until the project is completely and delivered.
2. VALUE INCREASE We can understand business value as the relevant items needed to achieve business objective. Remember Pareto’s ? When we talk about value items (PBI) we talk about this 20% responsable over the 80% of all business value inside our own final product so we have to focus on that during the whole process. Of course dividing the product in several sprints is not enough, we have to do it the right way so every delivery must contain the right amount of value for the final user. This is what we call Minimal Market Feature (MMF) which represents the smallest amount of functionality with a market value. 3. TECHNICAL IMPROVEMENTS Since Agile enforces us constantly to avoiding waste throw Continuous Delivery we must focus on testing all features before get into production. This implies covering most of our code, so techniques like TDD/ATDD help us A-LOT specially because TDD drive us the design of our software not just Unit Testing its beyond that. Agile also:
- Provides concrete evidence that your code works.
- Feedback in seconds/minutes.
- Like it or not almost nobody reads documentation, we prefer reading working code in this case sample tested working pieces of code.
- Less time spent debugging.
- Get closer to the problem quickly.
- Ensures changes and new code don’t break the existing code.
- Simplicity; many bug comes from complexity.
- Cuts time to Market; code is usually much shorter.
- Makes developers accountable.
Remember increase coverage doesn’t means better quality.
4. PEOPLE’S VALUE This is the main success factor during an Agile software development project. I dare say that in all kinds of projects. In fact it is more important to get the right team than the right context. Forcing or even waiting for teams to adapt to the context is one of the most common errors, Agile encourage us to let teams choose their own context and their own process based on actual needs.
5. FUN AT WORK Having fun at work? That sounds a little unusual but honestly most people do not enjoy being isolated in front of their laptops every day without talking with someone next to them. We, as human beings, are based on human interaction so communication is one of the most important activities during our lives. Improved communication is a key factor that makes Agile more fun and when people are having fun they like being at work, more motivated and will engage more in fact been fun at work increase collaboration ended up with an increase productivity. How increase communication ?
- Daily stand-up: Every day for just 15 minutes allow developers to share a problem and show what they are involved and causes the load decreases effectively ; they make sure they make progress every day ; They discover that their co-workers actually have useful input.
- Retrospective: This is the time to give the team an opportunity to share lessons learned showing the wrong and the right steps taken in the last sprint. If we want to improve our future sprint cycles this is the moment to improve team’s development process.
We have been working for decades using Traditional software development methodologies ( Waterfall most of the time) with disappointing results. As you may see this is just an overview of what is capable of another way of doing things focus on Individuals and Interactions over process and tools ; getting a Working Software over comprehensive documentation ; empower Custom Collaboration over contract negotiation and Responding to Change over following a plan.