Great Development Teams Have a Culture of Discipline
Picture a rowing team gliding gracefully across the water, strokes in perfect synchronicity. Every rowman's oar drives in lockstep with his those of his teammates. Their rhythm is perfect. Reliable, repeatable, disciplined.
We should all aspire to create engineering teams that are as disciplined as that rowing team.
In his book Good to Great, Jim Collins explains how history’s greatest companies embodied a foundational culture of discipline. He describes how these companies, ones that outperformed the market over extended periods of time, practiced that discipline:
A culture of discipline is not just about action. It is about getting disciplined people . . . who engage in disciplined thought and . . . who then take disciplined action.
Below are a number of ways that you too can embody such a culture in your own world-class engineering teams.
Value Craftsmanship As Highly As You Value Execution. You can get good short-term results while throwing craftsmanship out the window, but that typically leads to very serious issues longer-term. Design elegant, simple, and intuitive user experiences. Build systems that will scale beyond your immediate needs. Write code that is reusable and well documented. Take test coverage seriously and fix test failures immediately. Automate everything. Push back on arbitrary product timelines that prevent you from achieving a desired level of craftsmanship.
Attack Each Problem You Face With A Tremendous Sense of Urgency. Your team is like a ship and every site issue or metrics deviation that crops up is like a gaping hole in your ship's hull. You may survive an unplugged hole or two for some time, but without rooting out each and every problem, you will inevitably sink. Problems do not appear by themselves - they always have a root cause, and they certainly do not disappear by themselves. Attack them with a tremendous sense of urgency or they will sink your ship.
Instrument Everything - You Can’t Fix What You Don’t Measure. David Henke, former SVP Operations at LinkedIn, would repeat this lesson to his team on a near-daily basis. Define the KPIs for every feature you develop and instrument the code to measure those KPIs, even if you won’t have time to immediately do the analysis. Measure page load times, deployment speeds, bug counts, and error rates. You will be surprised by the abundance of low-hanging fruit that will be discovered to make your product better.
Fewer Things Done Better - The Disciplined Pursuit of Less. It is human nature to brainstorm new, brilliant products for our businesses instead of focusing on core, existing ones. Our entrepreneurial urge breeds excitement in pursuit of these new opportunities but also leads us to spread ourselves too thin. We must resist that urge and focus on our core, bringing to bear as many of our resources as possible on the few most important things.
Be Rigorous in Prioritization and Planning. The key to unlocking the value of Fewer Things Done Better is establishing a rigorous process by which we pick what to focus on. The breadth of product features and infrastructure you could tackle at any moment in time is tremendous. Assess the impact and scope the effort of each of those initiatives so that you can rank them based on ROI. Then, be ruthless with prioritization to ensure the most important, needle-moving initiatives are completed with certainty.
Establish A High Hiring Bar – You’re Creating An Enduring Culture. This is one of Jeff Bezo’s mantras and something you’ve likely heard a hundred times. Like most critical business lessons, it is so important that it is worth repeating. We have all interviewed the brilliant candidate who was a complete cultural misfit or who over-designed the solution to every question they were asked. Don’t let yourself be fooled - the risk of hiring the wrong candidate is too great. Have the fortitude to hold out for the perfect candidate.
Note that a culture of discipline is not mutually exclusive with a culture of fun. In fact, it is quite the opposite - the teams which successfully balance these two are often the most productive. I consider myself quite fortunate to be a member of one of those teams at LinkedIn.
Software Engineer
7yErran, this is a post that keeps on giving. It has inspired conversations & promoted engineering values at more than one company.
Good stuff..
VP Platform Engineering at The D. E. Shaw Group
10yGreat points and well written!