This article was originally published on Technology.Info.
As part of our continuing strategy for growth, ITProPortal has joined forces with Technology.Info to help us bring you the very best coverage we possibly can.
Agile is a word that is thrown around a lot at the moment. Companies need to be agile, marketing should be agile, services can be agile, and development projects should be run in an agile way. But what does it really mean to be agile?
Bad agile is everywhere. Like all good buzz words, agile has been transplanted into any and all situations and has become unrecognisable from its founding ideals.
Agile is taken to mean working iteratively and being reactive to your environment. Iterate your product as a reaction to customer needs or competitor advances. Iterate your service to make the most of changing environmental trends or the availability of new technology. Do not work to a grand plan. Release quickly and often. Fix things as you go along.
This representation of agile is close enough to the truth to be seductive. But it is also far enough away from the truth to go horribly wrong.
This brand of bad agile has led to the idea that software and systems engineered under this framework are ill considered, rushed, and buggy.
Discipline, quality, control
Of course, any successfully run project - whether agile, waterfall or anything else - must be a disciplined process. Lack of a disciplined process will cause a systems development program of any type to have problems.
In the case of agile software development - mature, enterprise-level agile - code standardisation, build automation and integrated testing are key components of our software development processes. With these practices in place it is very hard to not deliver solutions of a higher quality.
The Manifesto for Agile Software Development
The Principles of Agile Development is what we have used to guide the evolution of our process.
- - Satisfy the customer
- - Welcome changing requirements
- - Deliver something that works
- - Stakeholders and developers must work together daily
- - Build a project around motivated individuals and trust them to get the job done
- - The most effective way of conveying information is face to face
- - Working software is the primary measure of progress
- - All project processes should facilitate a constant, sustainable pace of production
- - Build it right. Always choose technical and design excellence over shortcuts
- - Build it simply. Maximise the amount of work *not* done
- - The best work always comes from self organising teams. Trust your team
- - Regularly reflect on what you are doing and how you are doing it. Continually refine the process
If you can tick all these boxes then you have a process that reflects something of the truth behind agile.
With a disciplined process in place, it is possible to release quickly and often (even continuously) and not have a negative impact on quality. In fact with a focus on technical excellence, simplicity and working deliverables, quality will increase.
Allowing the production team and the stakeholders to work tightly together means that prioritisation of deliverables can change as the world changes around you - you can iterate and you can adapt. By not pinning down what the solution will look like in 12 months time, you will inevitably end up with a more relevant solution and often one that it would not have been possible to envisage at project initiation.
Try not to solve problems ahead of time and try to resist the temptation to second guess the future. Find a solution to the problem in hand. Other requirements that are further down your backlog may simply go away in time.
Technology is moving at a pace that we have not experienced before and it is driving business and social change as it goes. Moreover, this process is accelerating. In the rapidly changing world, in whatever domain you operate, all that you can be sure of is that your solutions will be needed to solve problems. You do not yet know what those problems are. Engaging with a truly agile process does not mean just waiting to see what happens so that you can react to it - quite the opposite. Developing a disciplined and mature agile approach is the only way to plan and prepare in such an environment.
Rob Borley founded enterprise development and mobility company Dootrix. Together with his team down on a Hampshire farm, Dootrix designs and builds software for global organisations while encouraging them to think differently about how projects are run, teams work together and how we should all do business in the 21st Century. He has 10 years of experience as a developer, project manager and consultant.