How agile is your software provider?
By Neil Dyke, chief technology officer, Phoebus
The agile way of working has been around for over two decades and although its roots are in software development, all types of firms use it, but what is agile?
Agile is a form of project management based around teamwork and collaboration resulting in higher productivity. A recent Harvard Business Review article highlighted that agile innovation methods have revolutionised information technology, moving away from the functional silos of business analysts, developers, testers, etc, to cross functional teams.
This has resulted in higher success rates in software development, improved quality and speed to market, as well as boosting the motivation and productivity of IT teams.
Phoebus has been using this approach for a while now and reaping excellent benefits from it but it is also increasingly becoming a requirement for existing and particularly new clients. Several recent request for proposals have required us to provide case studies of how we engage with clients in an agile manner.
So, if you are unfamiliar with it or just want to know a bit more about it in layman’s terms, read on.
What is agile?
Ultimately, agile is a mindset informed by the Agile Manifesto’s four values and 12 principles, which provides guidance on how to create and respond to change and how to deal with uncertainty. For agile to work effectively, the whole organisation needs to support that mindset and be on the same wavelength.
The Agile Manifesto was originally developed in 2001 by a group of like-minded software developers and, according to recent research, over 70% of US companies now follow an agile approach.
One thing that separates agile from other approaches to software development is the focus on the people doing the work and how they work together. Solutions evolve through collaboration between self-organising cross-functional teams that value human communication and feedback, adapting to change, and producing working results.
The Agile Manifesto describes four overarching values:
- Individuals and interactions over processes and tools. As soon as an organisation starts talking about steps in a process, and tools being used, they have stopped being agile.
- Working software over comprehensive documentation. The target of agile development is software that works, and iterations to continuously improve it, versus a focus on detailed “requirements” that can’t change. Documentation is still important, but it is not the overarching focus.
- Customer collaboration over contract negotiation. Engagement and collaboration are key tenants of agile development versus a proscriptive “contract”.
- Responding to change over following a plan. Agile means being able to respond to changes in priorities or requirements versus being locked into a predefined plan.
Sprints and scrums
Agile is iterative, meaning that it is done in pieces (called sprints), with each sprint building and improving on the lessons from the previous sprint. This is where the scrum comes into play. Scrum methodology is a workflow framework made up of sprints and reviews used to promote agile project management.
Key to agile project management is efficient communication as opposed to lots of documentation, convoluted email chains or excessive meetings. According to the 12 principles behind the Agile Manifesto: “The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.” If you can communicate something with a short conversation instead of an email, you should.
Agile is about producing tangible, working results after each iteration. According to the 12 principles: “Working software is the primary measure of progress.” Let’s use a non-technology example and apply agile to a newspaper editorial process – a writer delivers a rough draft, which is then revised based on the editor’s suggestions. One piece is not delivered all at once on the day it goes to press.
Productivity improves with the maturity of the scrum team, the more you work in this way the better you become. Allowing the team to remain together, gaining maturity and experience enables productivity to improve significantly.
The advantages of working in an agile way can be seen for both the software provider and their clients. By building up the project as we go along, the client can see the progress and make changes if they wish, giving them more control over the final outcome.