If you were to visit Facebook’s Menlo Park campus just a few years ago, you’d see the company’s famous motto – “Move fast and break things” – plastered on the walls. It was born out of the company’s hacker mindset of young software engineers building a rapidly growing startup.
The ability to quickly deliver new features and functionality and put it into the hands of users was of paramount importance, even if it meant breaking a few things along the way.
Then all that changed.
At the company’s F8 conference in 2014, CEO Mark Zuckerberg introduced a new motto:
“Move fast with stable infrastructure.”
It “may not be quite as catchy as ‘move fast and break things,'” Zuckerberg said. “But it’s how we operate now.”
“As developers, moving quickly was so important, we would even tolerate a few bugs to do it.”
Now that the company has grown to such mammoth proportions, spending time fixing bugs was slowing it down faster than its attitude towards development.
Today’s software engineering landscape is very different to the one we all knew several years ago.
The ability to speedily deliver software applications on a massive scale, while also maintaining consistently reliable user experiences is well within reach for every company.
Choosing between speed and quality is no longer necessary. These days, you can move fast and fix things too.
Solving bugs is no longer a time-consuming task
Bug tracking and resolution used to be an incredibly manual and unforgiving task.
Not only to have users report the problems they experience themselves, but to also log them all individually into a tracking tool and allocate developer time to reproduce and fix them using limited technical details.
Now this error detection and diagnosis process can be automated, teams no longer need to let bug fixing slow them down.
That’s where modern, dedicated, error monitoring tools like Raygun can ensure developers get a real-time view into production errors and crashes their users are experiencing and reproduce them in minutes.
Software Architect, Luis Alonzo, is responsible for executing the DevOps side of HealthCare.com.
“Knowing when, where and how an error occurred helps make the resolution process much faster and easier than when we were using an in-house error logging system”, Luis explains.
“The possibility of seeing an error happening almost in real time helps us to provide a better experience to our users and a more reliable platform for our partners.”
Great performance should be a feature
Users are also becoming fickle when it comes to app reliability and performance with a low tolerance for applications that don’t perform.
According to a survey by Compuware, only 16% of users will try a failing app more than twice.
The sheer number of operating systems, devices, browsers and Internet speeds that users could experience your application on means real user monitoring tools are growing quickly in popularity. Due to their ability to give developers frontend performance data from, you guessed it – real user sessions of their apps.
Since 40% of users will abandon a website that takes more than 3 seconds to load, teams that ignore the importance of application performance monitoring are likely losing out on far more than they realize.
After all, user’s don’t tend to report the poor load times they encounter, instead, they just close their browser windows in frustration.
It’s never been easier to maintain high-quality software
Robust software that performed as expected for users certainly used to be all down to the knowledge, skill, and craft of individual developers on your team.
Though having great engineers in your team is just as important today, the tools we use to help us build software offer far more insights into what’s happening under the hood.
Now errors, crashes, and performance problems can be detected and delivered into team workflows automatically. A self-populating to-do list if you will of things you can do to improve your software. Right down to the exact line of code an issue occurs on.
It’s actually very easy to move fast and break things when it comes to software development. Anyone can do that.
There has never been such sophistication and innovation in the tools available to software teams than there is today.
If you can set up your team to move with great speed and improve your software quality at the same time, you’ll be an unstoppable force.
So be sure to move fast and
break fix things.