Eddie Kenny, agile software development manager at Betfair, presented a standalone look at agile development at Enterprise Apps World last month. We caught up with him to find out his top tips for breaking app development down in to smaller bite-sized chunks.
Why is agile development important?
"The alternatives such as Waterfall and JFDI simply don’t cut the mustard! Agile isn’t a silver bullet. When it's poorly implemented it doesn’t provide much value. However when implemented well it can provide huge benefits to an enterprise. These include early visibility of progress, earlier realisation of value, reduced risk of failure, fast failure, more engaged and productive teams, a culture of improvement, increased emphasis on quality, sustainable delivery... the list goes on."
What are your top tips for breaking down app development?
a) "Focus on first delivering the absolute “must haves” to functionally achieve your goal, the Minimum Marketable Feature-Set (MMF). Once you’ve banked that, then iterate over your solution and implement the bells and whistles. If you run out of time then at least you have a solution that matches your requirements, it’s just not as polished as you would like.
b) Break big projects into smaller deliverables and prioritise. This sounds obvious but you would be amazed by how many people view their projects as an “all or nothing” deliverable. Everything is P1.
c) Continuously look for opportunities to break your requirements down into smaller batches. By breaking down a P1 requirement, you may uncover that part of it is a lower priority which could be deferred to a later date. Doing this relentlessly adds up to big time and cost savings in the end.
d) Do “thin vertical slices of functionality”. Something that works end to end, rather than building component parts in isolation and then integrating them at the end.
e) Limit your work in progress. Having lots of items in progress in parallel actually slows down development. It's far more efficient to do fewer things but complete them fully. Build it then ship it, move on to the next thing, build it then ship it. What we tend to see is lots of stuff being worked on, but not being completed and shipped until much later. There’s a great saying, “starting something doesn’t finish it, finishing it does”. Rather than start lots of development, start smaller amounts but finish them completely. You’ll be amazed by the results!"
The principles of agile development encourage greater empowerment of all team members within the development process – how should this be best managed?
"Empowered teams are more motivated. This comes from the extra sense of ownership they get when they feel like they have a strong influence over the work that they do and how they do it. To fully empower teams you need to break some of your existing organisational norms. The people who are closest to the work have the best view of how the work should be done. Waiting for direction from above only slows down your delivery. When organisations embrace a culture of empowerment it means managers need to let go of a large portion of decision making and pass that responsibility onto the team. The team feels more responsible and therefore takes more ownership of the solution."
What is the biggest issue the enterprise apps arena is facing currently?
"The number one issue is building quality apps and finding developers who can build quality apps with enterprise class engineering skills. Enterprise apps usually need to factor in quality more than a game or social app - especially if you are dealing with customer funds or credit card details. Unit testing, automated functional testing and continuous integration can help with quality control. Finding app developers with those skills is quite difficult.
Eddie spoke at Enterprise Apps world in June. His colleague Paul Cutter, chief technology officer of Betfair, will be speaking at Apps World Europe from 12-13 November at London's Excel. You can book your place here.