Back in 2001, a group of developers published what they called the Agile Manifesto. It read as follows:
“We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
That is, while there is value in the items on the right, we value the items on the left more.”
This simple but profound philosophy was further developed through a series of 12 principles - principles that set out why agile working is not only good for developers but for the clients they serve.
If you’re sceptical that agile is anything other than a buzzword that will soon be replaced by the Next Big Thing then read on. Here are 12 reasons why agile software development will make your project a success.
Principle 01: Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
An agile approach begins with diving deep into what the client actually needs - not just the ones paying the invoice but their end users too. We work closely with our clients to understand their goals, their vision and their priorities to determine their requirements. It’s vital that we understand what value looks like to our clients. After that we can focus the delivery process so that you start getting that value as soon as possible rather than having to wait until the end of the project.
Principle 02: Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
Imagine this: you start a project thinking you need one thing. Six months later you’re given a solution. You realise it’s not quite what you need. You have to start again, wasting huge amounts of time and money. Wouldn’t it be better if your developers were constantly showing you what they were working on and not just accepting continuous change requests but encouraging them? After all, you don’t always know what you need from a solution until you start using it. And business needs are constantly changing too. With agile project management you get an end product that is not necessary exactly what you set out to build at the start but is far better at meeting your business needs.
Principle 03: Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
Forget sitting there in the dark wondering what on earth the developers are doing for weeks and months at a time. With an agile project management approach you’ll have agreed a schedule with your development team at the start and will be able to test the software solution regularly throughout. This not only means you’ll always know what’s happening but you’ll also be able to make changes or add new ideas as necessary, reducing risk and increasing the likelihood of getting an end product that meets all of your business needs.
Principle 04: Business people and developers must work together daily throughout the project.
Agile isn’t just a process; it’s a whole way of working and applies equally to all project stakeholders. In an agile team the client-side product owner plays an important part and is kept in the loop through daily catch-ups with the development team. This transparent approach is a world apart from traditional software development methodologies, which often left clients in the dark for long periods of time. Although there is a time commitment involved in staying in such close contact, it avoids costly mistakes and misunderstandings and ultimately means the project is more likely to finish on time, on budget and with all goals being met.
Principle 05: Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
One of the underlying principles of agile is choosing the best people for the job and then trusting their expertise. At Ghyston we let our developers pick the best technology for each job they work on. Our project managers aren’t there to tell everyone what to do but to create an environment where the developers are supported and motivated to do their best work. By building a project around people as well as processes, the agile approach takes on a life of its own and produces far more creative and effective results than it otherwise might.
Principle 06: The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
Do you despair of your never ending email inbox? With agile you won’t need to worry about it. The founders of the agile philosophy believe strongly in face-to-face communication, with daily standup meetings - ideally around a whiteboard. Because we work with clients both in and outside of Bristol we sometimes conduct these catch ups via Skype. But the principle is the same: having a quick chat is much more efficient than writing lengthy emails and having to wait on people’s responses before we can crack on, and more effective in terms of output where it’s easier to collaborate face-to-face than via email.
Principle 07: Working software is the primary measure of progress.
This principle links back into the first one. By this we mean that it is not up to us to say whether your needs have been met. The agile approach means we’re constantly looking to our clients to check that the solution we are creating is working to meet their needs. The regular updates inherent in agile are more than progress reports. They’re a way for you to test what’s being developed, check on the quality, make sure it’s acceptable to the end users and so on. Again, this massively reduces risk and can save a lot of time and money in the long run.
Principle 08: Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
Regular check-ins might seem like a lot of effort at first. Wouldn’t it just be easier to let everyone get on with things and then all check in at the end once the solution is ready? Well, apart from the reasons we’ve already mentioned above - risk reduction, being able to make changes, embracing new opportunities and so on - an agile approach is much more sustainable. By putting in lots of little sprint deadlines rather than one big project deadline, the team can maintain a predictable velocity. No one burns out as the project ramps up to the final deadline and no one is tempted to cut corners to get the job done on time.
Principle 09: Continuous attention to technical excellence and good design enhances agility.
There’s something about knowing we need to deliver to regular sprint deadlines that we find really motivates us to produce our very best work. As a developer you need to be confident in the changes you are making to release that often. That means you’ll be more focused on creating a strong architecture and clean code. You’ll take time to create the right solution rather than opting for one that’s a bit quicker and easier but not quite right. For you as the client this means you’ll get a much higher quality of product.
Principle 10: Simplicity--the art of maximizing the amount of work not done--is essential.
You know how some businesses always seem to be in meetings? And meetings about those meetings? And meetings to discuss the outcomes of those meetings? Agile strips those out. Yes there are regular check-ins but they are quick and productive. At a process level, agile focuses on working on the highest value items to reduce waste. Even the code itself is simple. Because we know that around 80% of software features are never used so it’s far better to get the other 20% working perfectly before we even start looking at anything else.
Principle 11: The best architectures, requirements and designs emerge from self-organising teams.
The days of a project manager taking full control over a project are long gone. Instead we understand that if you’re going to create a cross-functional team of experts then it makes sense to actually utilise that expertise. For example, there’s no point in a project manager estimating how long a task will take when the developer is going to have a far more realistic idea. Or setting priorities that the product owner is likely to understand far better. That’s why we aim to put together top quality teams and then let them set their own goals, empower them to make their own decisions, manage internal dependencies and so on. As we said before, it’s all about good communication rather than rigid project management procedures.
Principle 12: At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behaviour accordingly.
When you’re deep into a complex project it can be easy to forget the importance of stepping back and reflecting. That’s why agile software development builds this in as a vital component of every project. By working closely and communicating regularly a project team can constantly monitor the way it’s functioning and make the necessary adjustments to not only stay on track but actually become more effective as the project goes on.
At Ghyston we love working in an agile way. Not just because it suits us and allows us to produce our best work in an environment of collaboration, support and trust. But because it gives us the opportunity to serve our clients in a way that is efficient, effective and ultimately delivers the right solution.