Stop Debugging the Code, Start Debugging the Company


Tell me if you've heard this story before.

A company is building a software product. The initial prototypes are promising. They quickly add new features and start attracting customers. Things look good; they secure more funding and grow the team.

Fast-forward a year or two, and things look less rosy.

  • The business team is frustrated because each new feature seems to take more time than the last.
  • Developers are frustrated because they never seem to get clear requirements.
  • Users are frustrated with the product becoming slower and less usable.

The developers feel they're working harder than ever, trying to do good work, but the result is never quite right, and morale plummets.

There are different versions of this story, with different symptoms, but the cause is always the same: a dysfunctional socio-technical system. We need to shift our focus from the software product itself to the entire system that creates it.

The System That Creates the Software

Nowadays, most end-user software is sold as a service. It's developed and released incrementally, growing and evolving day by day.

But it’s not just the software that grows. The entire system that creates and maintains the software grows and evolves, too. This is a socio-technical system, made up of both people and the technology they interact with.

On the people side, we have three main groups: the tech team, business and management, and the end-users. On the technological side, we have the software artifact itself, along with:

  • Developer tooling
  • Servers and developer machines
  • CI/CD systems
  • Build pipelines
  • Issue trackers
  • Chat apps and email inboxes

A digital product company doesn't just create a software product; it creates a complex socio-technical system that delivers a software product. The success of the company depends on the quality of this system and the experiences these three groups have as they interact with it.

A Developer's Place in the System

This is a vital perspective shift, especially for developers. We're trained to think about the code we write and the technical problems we solve. We're less used to taking a step back and considering how our work impacts the end user's experience. We might build a feature exactly as specified, but we often don't truly understand the business problem it's meant to solve. We may not ask the critical question: "Does this feature actually solve problems for the customer?" This narrow focus can lead to building features that are technically sound but fail to deliver real value.

Once you understand that you, too, are co-creating the company's organizational structure day by day, you gain the agency to improve it. Developers are often the best-placed individuals to diagnose organizational and communication dysfunction. We're on the front lines, dealing with the direct consequences of unclear requirements and fragmented processes. We see firsthand where the bottlenecks are and where information gets lost. By acknowledging our place within this larger system, we can begin to see these dysfunctions not as fixed constraints but as problems to be solved, just like bugs in the code.

Simplicity and elegance are great virtues, both in software and in the complex socio-technical organization of a software company. Rather than heavy-handed methodologies, look for ways to make things straightforward.

For example:

  • Find yourself in endless "status update" meetings? Use planning software or a simple announcement channel to create visibility without having to block off everyone's calendar.
  • Is feature delivery slow or underwhelming? Get the right people talking to each other, including someone representing the business side and someone representing the customer. Get people aligned on business goals, then get out of their way.

This shift in perspective is what transforms a decent engineer into a true catalyst for the company and the product. We can help your organization make that shift.

Ready to transform your development organization from the ground up? Let's talk about building a healthier system.


What have been the biggest "socio-technical" headaches you've faced? Drop a comment below! 👇