‘Move fast and break things’ is a development mantra popularised by Facebook and picked up with enthusiasm by software development teams both small and large. The idea is that if you aren’t breaking things you’re delivering value too slowly. Don’t spend all that time designing, functional testing, load testing, stress testing, soak testing etc. – build code, get it out there and see if it works. With so many teams and big companies like Facebook adopting this approach, if it works for them surely it’ll work for me too.
But does it work for them?
Not according to Facebook CEO Mark Zuckerberg. At a conference in 2014 he announced a shift of strategy and backed away from Move Fast and Break Things: “We used to have this famous mantra ... and the idea here is that as developers, moving quickly is so important that we were even willing to tolerate a few bugs in order to do it,” he said. “What we realized over time is that it wasn't helping us to move faster because we had to slow down to fix these bugs and it wasn't improving our speed.”
Indeed these graphs shared by a Facebook employee show that best user experience occurs when the developers aren’t around breaking things – during the weekend and the Christmas holiday period:
And as Zuckerberg now realises, broken things slow everyone down. After all, it’s well documented that fixing before code release is an order of magnitude more efficient than fixing afterwards. So moving fast and breaking things leads to moving slowly (and still breaking things)! Not to mention the impact on user experience and customer satisfaction. Maybe it didn’t really matter too much to facebook if a few users got annoyed (after all, what social media platform could they switch to?). But in a competitive market poor ecommerce experience has a much more severe impact on reputation and ultimately on revenue…
So how can we ‘move fast’, deliver value quickly and efficiently, without just slowing ourselves down even more later on? Or are we entering the realms of fantasy now?
Move Fast by Breaking Fewer Things may not be so catchy a slogan but it’s key to resolving this dilemma. Making sure your code works and performs correctly before release is going to help you move faster. But why start (or stop) there? You could be moving faster still by testing even earlier – before you have all your components integrated, before the final build comes together, before code is checked in. ‘Shift left testing’ has become a catchphrase often associated with a DevOps methodology: shift your testing left, earlier and earlier in the lifecycle – and as a result break fewer things. Issues with individual components are caught early and as a result there are fewer issues with the integrated product.
But why only testing?
Better still let’s take the time to make sure we are building in quality from the word go – when defining requirements, when creating designs, when writing the first line of code. Quality Assurance shouldn’t be an activity that takes place when everything else is done – it should impact every activity throughout the lifecycle.
And a core part of quality is performance and efficiency. This is often the hardest type of issue to diagnose in production, and notoriously costly in time and resources during regression testing. So the earlier that performance is built into the application the faster you’ll move and the more value you’ll deliver to the business. Capacitas’ Software Performance Engineering service kicks in right at the requirements and design phase of the project, identifying and eliminating risk as soon as possible. This means less time is needed in early testing, which in turn reduces time spent regression testing before release. Which finally reduces the number of bugs in production. And because things aren’t broken - everyone can move faster. New functionality is added on time and to budget. And to quote Mark Zuckerberg, “When you build something that you don't have to fix 10 times, you can move forward on top of what you've built”
If you would like to learn more about our Modelling and Performance testing solutions, please click below, to see our latest webinar.