Agile & DevOps - the dynamic duo
The recent meet up in Cambridge to see Donovan Brown talk about DevOps reinforced for me how important DevOps to an organisation which wants remain relevant in todays rapidly changing marketplace. I mean, who could have predicted Amazon buying up Whole Foods for $14bn? This move has put the retail industry on edge as now Amazon has a major foothold in the 'bricks and mortar' players turf. Whats the next move going to be? Will it affect your business?
Lean Startup - learning by failing small
Innovation at pace is difficult to do but they key is failure and lots of it! Betting the farm on one big gamble isn't how the industry is moving any more. Eric Reis, author of Lean Startup, talks about making lots of small bets, learning from the outcome and either doubling down on it or pivoting to a new business model. Hypothesis driven development - using a Minimum Viable Product to get out to market quickly so feedback can be sought.
But how can we fail small and learn quickly? This is where Agile & DevOps come in, they are two sides of the same coin.
Agile - producing value
An agile software development team is a great way to get to that Lean Startup mindset. If you're using Scrum, the Product Owner will be the one driving the way product evolves whilst the Scrum master will be helping the team deliver on the Product Owners vision but also improve the team and organisation along the way. Hey, well done team! You have created a potentially shippable product increment at the end of the sprint. But where are you going to put it? Leave it on some server to gather dust whilst you write a 30 page installation document?
Why is DevOps important? Because your competition is already doing it.
DevOps - delivering value
DevOps compliments Agile software development by following similar principles to deploy software quickly, safely & reliably. It's not about automating all of the delivery pipeline, it's about automating enough that the release cadence quickens up.
Consider a manual process for getting an application deployed to QA. You have to do all the administration by hand, filling out tickets & making sure they are in the correct workflow step on your Jira system (other tools are available). Have you assigned it to a DBA if you have a database script change? Great but you'll have to wait for the DBA to become free before they can action it. After that, whoever does the manual deploys must be given the green light. Hopefully they will read the release notes and deploy the app properly. Oh damn - after all that, a Priority 1 bug right at the login screen. Time to get on the merry go round again!
You don't need fancy tools or expensive cloud-based infrastructure to make a dent into DevOps. Getting the developers feedback early means bugs are cheaper to fix, less context switching for the dev's too. You can hooked up Jenkins (opensource build system) to build & deploy a website or webservice to a QA box then run a set of smoke tests using Selenium or SoapUI to guarantee that the basic or most used functionality is in tact. Automated testing enables Scrum teams who release every sprint to have confidence they haven't introduced regression bugs - some say it's essential. Manual regression testing is expensive and invalidated as soon as another line is checked in, it's money down the toilet. Money spent on automation, or training on staff to automate, is money in the bank.
DevOps brings the support team and the development team together - if not literally, then figuratively: People, processes & tools - in that order.
A company which can execute on the product discovery, creation and delivery quickly will be a formidable player in any marketplace it chooses to enter.
Dont believe the hype, I was there