I’m a software maker by trade and by training, but now I work on strategy, organizational development, supporting company culture, and studying emerging technology in search of the great software platforms of the future.
Updated Mar 19, 2019
I believe one of the most important aspects of a highly successful software product team is safety. Without safety, innovation grinds to a halt.
At GenUI, when we talk about safety, we’re not talking about avoiding falling from a ladder (not most of the time, anyway). We’re talking about building a company culture that respects and encourages innovative risk-taking, on top of a safety net made from risk-mitigating engineering best practices.
Culture of Safety
In a safe culture, team members can take risks without feeling insecure or embarrassed.
Innovation is difficult in an environment where risks are too great, or where risk-taking is shamed or punished. If engineers are faced with a large amount of technical debt, or with the possibility of causing real harm to the business, they will hesitate to introduce any novel ideas. So it’s no coincidence that those of our customers who operate in complex, high-risk, or high-compliance businesses tend to have the hardest time innovating.
Courage when faced with true and present risk can be pure foolishness. So a culture of safety is not enough. Meaningful change can only be made with confidence when you have first constructed a safety net.
A safety net means safe engineering practices together with infrastructure that serves to de-risk the process of innovation. A software engineering team working without a safety net becomes paralyzed, and this sort of paralysis tends to dominate - and stifle - entire industries across our global economy.
Safety through DevOps
No one would expect to see a skyscraper construction site lacking safety equipment. Too many software product teams start out just this way, having been given neither hard hats nor climbing harnesses. Today there are a wide variety of DevOps tools and practices that can be used to give a team the safety it needs to do highly innovative work.
Infrastructure that supports incremental, automated testing and continuous integration is critical, because it gives engineers quick feedback on the viability of new work. Continuous delivery with real-time feedback and telemetry promote incremental change, and provides the ability to quickly understand and respond when production is impacted.
Puppet Labs’ 2018 State of DevOps Report highlights the value of automated configuration management, which makes infrastructure as code, and self-service resources to contemporary team environments. The shortened feedback loops and operational efficiencies supported by these practices also helps de-risk engineering activities and boosts the speed of innovation.
Safety through Collaboration
Essential to safety is a team’s ability to communicate, collaborate, and support one another.
Most project safety and code sustainability issues arise out of a lack of information. The collaboration ability of the team increases the bandwidth at which the team can share information with one another, and with their customer.
At GenUI, we hold regular safety meetings, where team members can raise safety or technical debt issues for discussion. We also do a lot of pairing, which is a wonderful practice for promoting communication and trust in the context of a codebase.
When we pair, 100% of code is peer-reviewed, as it’s being written. We’re also able to help one another both uphold and advance our commitment to continuous quality engineering techniques. When team members are constantly communicating, we are able to address specific safety concerns but also our strategies for long-term sustainability.
The greatest impact in 2019 is going to come from innovation teams with a solid foundation of safety, and sustainable engineering practices. So fostering and supporting a safety culture should be a high priority for technology leadership. The future we create together depends on it.