What Organizations Can Learn From Software Development
Otto Berkes is a developer-turned-CEO of Acendre, Inquisiq and Vacancy Filler. In this blog, he shares how his time as a software engineer shaped his current approach to business and organizational success—and how you can apply those same strategies at your company.
If you’ve walked into an area where software developers are working, you’ve probably been impressed by the quietly humming, peaceful atmosphere and their Zen-like focus. Developers describe this as “being in the zone.” Research shows that programmers do their best work without distraction.
When I joined Microsoft in the mid-90s as a developer, part of the appeal was that all software engineers were guaranteed their own, separate office. The company understood that its success depended on the software its developers created and that providing the right environment to enable individual focus was essential.
As many of us plan to return to the office after extended remote work, I’ve been reflecting on my experiences building software and strategies like minimizing distractions with this question: Are there other practices that could be applied broadly to business and organizational success?
I believe the answer to be a solid “yes” and suggest these four software development principles that can benefit all businesses seeking higher performance:
- Smaller Is Better
In the context of developing software, Agile is a methodology that includes a set of core principles that guide the work of software developers as outlined in the Agile Manifesto. Key concepts include an emphasis on collaboration and breaking down large projects into smaller, more manageable goals and teams.
For a large software project with millions of lines of code, an approach like this is an absolutely necessity. Dividing up the work into self-contained subsets is a powerful way to enable focus and make steady progress on every piece of the software system being built.
The same principles can be used by any organization struggling to manage complexity. It’s difficult, sometimes impossible, to focus day-to-day work on dauntingly broad and challenging objectives. But when complex tasks are broken down to specific goals and smaller deliverables, focus and productivity flourish.
- Productivity, Not Activity
Strong communication and coordination are vital in any software development organization. In fact, software development has always relied on software tools to help ensure coordination among sometimes thousands of developers and hundreds of teams. One wrong version of a file or a few lines of code that don’t match a few other lines of code somewhere else can be enough to wreak havoc in any software project.
Productivity apps for online collaboration, communication and coordination to help manage details of our day-to-day work life have proliferated; we now often don’t realize we’re using them. While these apps can fill time with continuous activity, that’s no guarantee that progress is being made on the things that matter. Being busy can be misleading, and too much productivity app “noise” may actually reduce productivity.
In software development, the focus is on the code. The software being written is what matters, and progress is measured with specific, quantifiable metrics. The tools used to coordinate and manage the process for building software are simply a means to the end. Similarly, organizations can benefit by bringing focus back to their desired outcomes and continuously measuring and assessing their progress.
Identify the set of key data that indicates the quantity and quality of progress and use ongoing assessments of that data — rather than the level of “activity” — to guide your way forward.
- Build For The Whole
As a tech company, it’s not enough for us to have great designers and stellar software talent. What matters is delivering great software that solves valuable challenges for our customers.
Building for the whole is integral to software development. Any software product is only as good as the sum of its parts and how well they work together. Outstanding individual efforts in some areas cannot overcome fundamental weaknesses in other areas of the code or make up for a flawed architecture. Great software requires strong individual contributions and a shared understanding of how all the pieces fit and work together.
This principle of shared understanding and common purpose applies to any high-performing organization. It’s impossible for anyone to do their best work if they don’t understand how their efforts fit into the bigger picture.
- Solve The Right Problem
A powerful best practice is a constant focus on solving the right problem. Software development seeks to find the most general and durable way to solve problems. Good software product design aims to understand the meaning and pain points behind customer input (the real problems to solve) and to build solutions that address those underlying needs for as many customers as possible. This principle applies to the implementation of the code itself. Developers try to avoid “special cases” that take focus away from solving the core problem in the most universal way possible.
It’s common to take a step back and ask: “What’s the problem we’re really trying to solve?” This is a fundamentally basic question, yet organizations get caught up in simply doing what they’ve always done. Just like a software team, all businesses can benefit by establishing an ongoing feedback loop to ask the basic questions, understand if they are still solving the right problems the right way and adjust as needed.
This article originally appeared in Forbes
Follow Acendre on Twitter - @AcendreTalent
Back To List