Background : I first came across Agile methodologies during my graduate school program (Distributed and Multimedia Information Systems at Heriot-Watt University in Edinburgh, UK) . My first thoughts after learning the concepts such as Agile unified process (AUP), Extreme programming (XP), Test-driven development (TDD) and Pair programming was, why would companies/teams use anything other than these new software development practices.
Later, when I worked at PayPal, Yodlee and CareFirst BCBS, I could clearly see the benefits of using Agile methodologies in the real world. These companies had very mature Agile practices and used them very effectively to speed up development, get rid of inefficiencies and deliver features quickly to end users.
Side note : If you are a developer/engineer, I highly recommend reading one of the best books about writing code in an Agile environment : Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin (a proponent of agile software development)
A case for Agile:
- PayPal transformed from a relatively small start-up to one the most innovative FinTech companies by embracing Agile at Enterprise level (White paper). Not into reading research papers?, You can watch these videos : short-video and long-video.
- Spotify even created their own version of Agile : The Spotify model
- Not just Tech companies, but Media companies like NPR and NYTimes use Agile/Scrum at the enterprise level.
- CareFirst BCBS went through similar transformation using Agile/SCRUM practices.
Agile is as much of a mind-set as it is a software development methodology
- In my experience, people stuck in old ways (often lazy thinking) tend to resist adopting to Agile practices.
- The beauty of Agile is, its flexible and variant, and comes in different flavors such as Scrum, Kanban, Scrumban, SAFe etc. to suit your needs.
Agile and high performant teams
These days engineering teams and project management teams use the below offshoots of Agile almost everyday.
- Rapid prototyping and Proof of Concepts (RAD: Rapid-application development)
- Code reviews (Pair programming).
- Automated Testing (TDD:Test Driven Development and BDD : Behavior-driven development)
- Modern DevOps (Continuous Integration, Continuous Delivery, Continuous Deployment)
- Collaboration (Cross-functional teams)
- Speed to market (Time boxing, Iterative development and incremental delivery)
IMO, In the rapidly evolving technology sector, The Manifesto for Agile Software Development is ever more imporant. In order for Agile practices to take root and produce results, the top leadership of that company need to push for them. Once you decide and define which Agile framework works for your company/teams (this could take several years), it changes work culture, empowers individual teams to make certain decisions and speeds up software delivery.