People who work in Information Technology often get accused of using too many acronyms and esoteric concepts. Today we would like to take the time to explain a way of working that you may of heard of and that we personally love – Agile.
So what is Agile?
Agile isn’t just getting together for 15 minute team meetings every day (stand-ups) or using a Trello board. Infact agile isn’t even a noun – it’s an adjective.
When used to talk about software development (or any process that that creates an outcome really) it’s a set of values and principles that forms the approach in how the work will be delivered.
The Four Values (of Agile Software development)
1.Individuals and Interactions Over Processes and Tools
Valuing people more highly than processes or tools is easy to understand because it is the people who respond to business needs and drive the development process. If the process or the tools drive development, the team is less responsive to change and less likely to meet customer needs. Communication is an example of the difference between valuing individuals versus process. In the case of individuals, communication is fluid and happens when a need arises. In the case of process, communication is scheduled and requires specific content.
2. Working Software Over Comprehensive Documentation
Historically, enormous amounts of time were spent on documenting the product for development and ultimate delivery. Technical specifications, technical requirements, technical prospectus, interface design documents, test plans, documentation plans, and approvals required for each. The list was extensive and was a cause for the long delays in development. Agile does not eliminate documentation, but it streamlines it in a form that gives what is needed to do the work without getting bogged down in minutiae.
3.Customer Collaboration Over Contract Negotiation
Negotiation is the period when the customer and the product manager work out the details of a delivery, with points along the way where the details may be renegotiated. Collaboration is a different creature entirely. The Agile Manifesto describes a customer who is engaged and collaborates throughout the development process, making. This makes it far easier for development to meet their needs of the customer. Agile methods may include the customer at intervals for periodic demos, but a project could just as easily have an end-user as a daily part of the team and attending all meetings, ensuring the product meets the business needs of the customer.
4.Responding to Change Over Following a Plan
Traditional software development regarded change as an expense, so it was to be avoided. The intention was to develop detailed, elaborate plans, with a defined set of features and with everything, generally, having as high a priority as everything else, and with a large number of many dependencies on delivering in a certain order so that the team can work on the next piece of the puzzle. Agile’s view is that changes always improve a project; changes provide additional value.
The Twelve Principles
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
- Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
- Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
- Business people and developers must work together daily throughout the project.
- Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
- Working software is the primary measure of progress.
- Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
- Continuous attention to technical excellence and good design enhances agility.
- Simplicity–the art of maximising the amount of work not done–is essential.
- The best architectures, requirements, and designs emerge from self-organising teams.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behaviour accordingly.
What does this mean for DRS? It means that our focus is on collaborating with our customers to understand their needs and prioritise our work to deliver the highest value to our customers. It means that in every step of our process we try to put customer value first and strive to deliver value quickly through iterative cycles. It means we take the time to frequently review how we are working as a team and with our customers and ask ourselves ‘is there anything we could improve?. We welcome feedback and seek it out because as Mark Twain once said ‘Continuous improvement is better then delayed perfection.’