Revolutionary ideas are usually born from the frustration, and Agile wasn’t different. It was created to mitigate Waterfall limitations, and today we can confidently say that it’s revolutionised the way we work. In today’s fast changing society, we need to be able to respond to customers' needs very quickly and Agile takes this principle very seriously, giving customers a fundamental role in the development process. Customer satisfaction, continuous improvement, innovation, collaboration, transparency, adaptability and quality are some of the ingredients that make Agile a powerful ally.
But what’s Agile?
Agile is more a mindset than a methodology. “Divide and conquer”, they said. Act small, validate and test your solutions soon, so that you can adapt to any changes that come up along the way. Because changes will come up and mistakes will happen but the impact will be predictable, limited and manageable with Agile. If you’re wondering how, this is the formula:
User storiesBreak down your project into little pieces called user stories. This will help you estimate how long each of them will take and prioritize the important stuff. Ask your customers what are their priorities and work on that first. Working on features that may have been prioritised based on assumptions will make you waste precious time.
Deliver value early and oftenAs opposed to Waterfall, with Agile we deliver working software early in the process and we continuously seek out customers’ feedback, from which we learn and implement any required changes. Continuous improvement based on customers’ feedback allow us to make informed decisions at every stage, which is vital for our project success.
Be adaptableAs you incorporate customers’ feedback, requirements may change, and it’s okay. Only embracing changes, you will be able to deliver the product that customers need. Visibility, cooperation and adaptability, these are the 3 pillars that we need to start building up our projects and that will support us throughout the entire process.
How has Agile revolutionised the way we work?Before we can dive into this topic, we need to understand the model that most companies used before Agile, and where we come from. Waterfall originated in the manufacturing and construction industries where changes in design were too expensive. Later on, it would be brought into software development.
This model is characterized by a progress that flows from the top to the bottom, with divided phases: Requirements > Design > Coding > Testing > Maintenance. Processes and results are very well documented and, in each phase, deliverables are very specific. For these, amongst other reasons, Waterfall works very well for small projects.
However, most of the times in software development, projects are too big and consequently, results take much longer. This usually means that, by the end of the project, initial requirements may no longer be valid, and all the work and the resources put into it simply go to waste. To avoid this, in Agile, we take a big project and break it down into smaller projects. We involve the customer and business people in the process from the very start.
The development process has the same phases than Waterfall does, but they are not as divided, and we may need to go through each phase more than once in each small project. In between phases, we seek out customers and stakeholders' feedback to prevent working on the wrong requirements during the whole project, and also to make necessary adjustments.
Whilst in Waterfall the product is released after going through all the stages of the development process, Agile delivers working software from an early stage of the project. The first working product is called Minimum Viable Product. Once this is validated by our customers, and we’ll keep adding on new features to our project. Our project will grow gradually and safely thanks to customers’ validation.
We embrace changes because our main focus is to build a working software that provides value to the customer. And we know that the sooner we test, the less time we’ll have invested in things that don’t work, and the more we can invest in experiments that bring on innovative solutions. But this isn’t all. There are also changes to the way teams face their daily job, and again, flexibility plays a huge part in Agile success. Projects are managed by the entire team and teams are cross-functional. Everyone has access to everything and there’s a high sense of trust that goes in both ways.
Face to face communication is essential not only amongst the members of the team, but also with stakeholders and customers, where possible. Agile empowers teams to make decisions and achieve goals, so they no longer rely on processes or tools as in other traditional models. Because all the members of the team are directly and highly involved in the decision making, engagement and performance increase.
All in all, Agile has undoubtedly revolutionised the way we work and think, and has given us the flexibility and transparency we needed to adapt to today’s changing world. This is why Agile is going beyond software development and is founding its place in marketing, accounting and others. Who else wants to join the community?