The saying goes – every business is a software business. Brands across industries are skyrocketing with the help of good software. Brands across industries take rough hits due to poor software. Whatever line of business you are in, however traditional it may seem: your survival in the unavoidable digitalization period will depend on good software.
So how do you get your hands on that elusive “good software”? Tell your IT department to kick off an RFI + RFP round, rank vendors based on formal references and low hourly prices, burn a few millions, wait for years until it’s ready for launch and hope to get a return on investment 5 years later?
Sorry, won’t work. In digital business, it’s no longer sufficient to do a brand renewal project every 5 years or re-launch a site every 3 years or publish a new mobile app every 2 years. To find your competitive advantage and to outsmart your competitors, you have to try out new business models and customer experience approaches at a rapid pace. And that – most likely – means crunching out software at a rapid pace. Monthly, weekly, even daily. Intra-daily if you are extreme. Build a minimum viable product, try it with the market, fail fast if it doesn’t work, correct your direction, add more meat, re-launch. Lean Startup Methodology, within your old, prestigious enterprise.
But how do you do that, when all IT projects are slow, expensive and flaky? History and experience may tell you that meticulously planned RFIs, RFPs, ITIL/ITSM practices, steering committees etc are your only chance to keep IT projects in scope and budget… and yet, regardless of all that rigorous control, your projects are still running late, over budget, and you run into arguments with your multiple vendors who play ping-pong with your tickets.
You – as a business or as a solution vendor – may need to completely re-think your way of engineering and co-operating across boundaries.
A pretty good approach to start with is DevOps. DevOps is not a strictly defined methodology, a role, a team or a set of technologies. It’s about culture, ways of working, blowing silos, mutual trust and co-ownership of challenges across functions. It’s about tight communication, strong and fast feedback loops, monitoring business outcome along with system performance. Eliminating waste, shortening the path from business idea to and business outcome.
To get started, try to pinpoint your key bottlenecks:
- What stops you from pushing out new software releases daily? Is it a lack of business ideas, a lack of analytics to act on, a lack of business understanding among developers, inefficient communication between development teams, slow testing cycles, a fear of bugs which won’t be found until go-live, or is it the painful transition to production which holds you down?
- What stops you from operating existing software in an efficient, stable manner, ensuring brand growth and customer experience excellence?
Depending on your biggest bottlenecks, the cure will be different. DevOps isn’t a one-size-fits-all cure or a pre-defined program to success. But once you solve all the bottlenecks, one by one, you’ll soon notice you’re working in a DevOps way, capable of keeping up velocity and quality in digital service development.
Some things to consider:
- Generate and prioritize development ideas based on measured facts and validated learning about how your service is performing. It helps if you start by agreeing on the KPIs which reflect your digital success!
- Put business and developers in the same room, working on new features in your agile way of choice – you may consider Kanban if Scrum seems too focused on time-boxed sprints.
- Boring, repetitive tasks should be automated. Let robots do the routine tasks which require precise execution but no creativity.
- Deploy continuous integration, continuous delivery and test automation tools, allowing each single change to be tested in an environment identical with production.
- Consider Infrastructure as Code: Make capacity related problems go away. Turn labor-intensive and error-prone server & platform installations into fully scripted tasks, which allow you to provision any number of new instances with the click of a button or automatically scale your capacity to meet growing demand on-the-fly.
- Deploy monitoring which measures not only infrastructure load, but also monitors application behavior, user behavior and adds business process execution facts on top.
- Work together. I repeat, work together. Burn the silos. Share the pain and the gain across traditional team/vendor/responsibility domains.
Sounds easy enough? You may have to start by scratching your traditional contract models, RACI matrices and them-against-us mentality, and put in a good dose of trust instead. Scary big things, but there’s plenty of success stories out there, and a digital business landscape to win.
Can you afford not to try?
PS. Thanks to @ErnoAapa, @TimoStordell, @iiuusit, Tapio Rautonen and Chris Rowett for inspiring talks on DevOps today. Keep spreading the passion for Better IT!