If you are an organisation with a dynamic online product or service offering, chances are you are already using agile software development.
Agile, or at least flavours of it, have certainly changed the way we've looked at software development at carsales.com.au. It has many benefits - but comes with an equal measure of risks - both of which I'll outline below.
But first, it might be helpful to know where it came from.
There was a stage in my life when my core job was to manage a project from start to completion. This was achieved by the collection of project requirements upfront and the adherence to a strict project plan. In almost every project that I worked on though I saw requirements changing as the project progressed.
More often than not when the project was completed, I would compare the original requirements to what was finally implemented. For any experienced IT professional this will not come as a surprise; in most cases the final product evolved so significantly from the original requirements that it was like comparing a “sports car” to a “utility”.
This often made me wonder whether or not I wasted a lot of time in the project collecting the complete requirements upfront. Did I fail in project delivery if the final product was different to what was originally envisaged? Should I have pushed back on scope creep? How could I have deployed the project earlier?
While projects have a start and a finish, in today’s world with everything moving so fast, products are changing and evolving continuously. Change is good if it delivers a quality product that the customer actually needs.
In our fast moving world, no company or product can take their position for granted. The meaning of “time” itself seems to have taken a whole new measure. It is hard to believe that Google is merely 15 years old and already has a market capitalisation that is double that of the Citi Group, a 200 year old company. Yahoo, by contrast, went from being one of the most successful companies in the world in 1995 to a company whose market value is now a tenth that of Google.
Right now we are undergoing an age of “change and disruption” where traditional business models are being challenged. The companies who can’t move fast enough or cope with the change are in danger of being left behind.
The goal is certainly not to produce thousands of unwanted product features; instead the aim is to produce a product that is relevant to your customers. Further, getting your product offering to market first often offers competitive advantage.
How does agile help deliver that competitive advantage?
- Agile encourages adopters to iterate through product requirements and frequently deploy a fully tested product to market. This increases speed to market, reduces cost of failure, thereby, encouraging incremental innovation and continuous improvement.
- Agile is a customer focused methodology that encourages “good scope creep that is relevant to customers”. This in turn increases the relevance of your product.
- Agile discourages the upfront documentation of a complete set of requirements and instead encourages more just in time requirements (called stories). This cuts waste.
- Agile allows effective measurement and comparison of the units of work completed by team members between each work interval (called sprints). In short, Agile helps a team manager quickly measure, benchmark and improve team performance.
- Agile encourages direct and constant contact between the development team, business stakeholders and customers. This increases communication.
While I continue to believe in agile and my understanding of what I want from it keeps evolving, it is not without its challenges:
- Many businesses stakeholders complain that it is hard to plan for major releases with agile as requirements are seldom collected upfront. This can throw planning out and can develop into an issue. For me, a happy medium is ensuring adequate requirements are prepared upfront that allow you to roughly estimate and size the project. This way the team manager can be held accountable to a balanced KPI of quality and deadline.
- Agile should be reflected in culture and thinking of an organisation above just the process. If there is an over-emphasis on process then you will often find staff hiding behind that very process rather than keeping to the key goals of agile of being relevant, fast and productive. The whole organisation needs to come on the journey and this requires cultural change that starts with the executive leadership team.
- In my view it is also very important to implement agile in a way that it does not become a religion at your workplace. This starts off by employing developers who are inspired by the principles of agile (and are therefore flexible) rather than those who can recite the whole agile Manifesto. Take anything to the extreme and it will surely not work. Agile is no different. Ensuring your staff have the basics right - a passionate attitude, a “can do” personality, smart thinking, social skills and team spirit - are far more important.
- Agile is only one aspect of the puzzle. Your technology stack needs to be set up correctly to take advantage of it. For example, if you don’t have sufficient number of automated tests, or if supporting teams like QA and Operations are not ready for agile, then implementing the methodology won’t work.
- Be flexible. Every organisation is different and most often teams within an organisation have different dynamics. If stakeholders prefer a more strict change process, don’t push back by citing agile but rather accommodate their needs. If more documentation delivers a better outcome for a particular team and the product, embrace it. Cultural change takes time and if you are rigid, it won’t help your organisation make the journey.
At Carsales.com, we are learning every day and improving our adoption of agile practices. It has been a great learning experience and our golden rule has always been to be “better than yesterday”.
I am confident that “the agile way of thinking” has helped us enormously with this goal.
But above and beyond all that, I haven't lost sight of the fact that we have the best and most passionate bunch of people in the industry working here. That, more than any methodology, ensures our products and organisation are a success.
Ajay Bhatia is CIO of carsales.com.au.
More opinions, analysis at iTnews' agile topic page.