Owen on software

The Pyramid of Doom

14 September 2015 - Comments

No, this isn’t the next instalment in the ‘Indian Jones’ movie franchise! In this post, I want to look at how org charts embody much of the fundamental problems with the way we think about companies and software development.

...

Continuing with the ‘We’ve got it all wrong’ series, let’s look at the inherent evils of org charts. ‘But what could be wrong with the humble organisation chart?’, I hear you cry. It’s just a chart, right? Or is it?

What’s wrong with this picture?

So, in some respects the org chart is just a visualisation of an organisation’s leadership and management structure. And yet, in so many other ways, it embodies the way we subconsciously think about our companies.

The trouble is, we often read these charts as shown below.

...

Okay, so I’ve been a bit tongue in cheek about it, but still. We do this. Right?

(As an aside: this isn’t a post knocking leadership and management. Both are vital to successful organisations. In fact, I think Western culture has too little respect for both. But that’s a post for another day.)

What’s missing from this picture?

If we’re reading it like this, as a measure of importance within our organisations and as a pointer for where we need to focus, then this picture is missing something.

In fact, it’s missing two things without which commercial organisations cannot exist: customers and product.

...

So, we don’t put them on our charts because they are not part of our organisations. But it is useful to include them, when thinking about the shape and structure of our organisations, and trying to determine what is truly important.

So what is most important?

So, back to our chart of importance. Really, it should be inverted right? After all, customers are the most important thing. Our organisations can’t exist without them. Next is our product, or service; the reason that we have customers and market share.

Next? Yes, that’s right, the next most important thing is your capability as a company to create and support your product and service. And that is 100% about people and process.

...

Foundations or Empires?

Companies understand the importance of customers. They make considerable efforts to gain insight into their customers and market. Yet many companies, whose product/service is software-based, don’t get software people or process. And that, right there, is where it all goes horribly horribly wrong.

For want of a better name, let’s call the layer of product creation and support the Capability Layer. It is the front-line of your company’s ability to create and support your product and service. Everything, and I mean absolutely everything1, within the other layers of your organisation only has value in as much as it supports the activites within your Capability Layer.

Don’t get me wrong. I am not saying that the activities and roles in the other layers are unimportant. In fact I’m saying they are vital, that they are foundational; as long as they can be traced to the successful delivery and support of your product and services. If they can’t then they are quite possibly superfluous. Maybe it’s a case of ‘If you can’t trace it, bin it’?

Laser Focus

We’ve all seen pictures of what happens when houses are built without adequate foundations. It’s not pretty. A company full of great software engineers and nothing else is just a company with beautifully crafted software and no customers. Quite possibly, no product either.

But the tragedy unravelling in many enterprises today is that they have no real idea of how to create and maintain their Capability Layer. For many, it’s simply not a priority. It’s not their focus. And that is a mistake of biblical proportions. These organisations do not know how to:

  • hire great engineers
  • develop and grow great engineers
  • create and maintain great development and support processes

Here’s my contention. It’s simple. If your enterprise is building a software product, or a service that relies on in-house software, your organisation should be laser focused on building expertise in the creation and support of software.

Can I outsource it?

Sure, you can outsource your software development, as long as you can do the following:

  • engage great outsourcing companies
  • build a great working relationship with them
  • build great in-house quality and technical assurance capability

The last point is crucial. I have yet to see any organisation do this well. Building software in-house is hard. Outsourcing is near impossible.

I’m not saying don’t outsource. I’m just saying that to make it work well you need much, if not all, of the expertise that you require for in-house software development.

Shifting Paradigms

I think we need an entirely new way of looking at the Enterprise. We need a paradigm shift. Am I saying we should draw all our org charts the other way up from now on? Maybe. It just might help us make the shift.

We need a focus on creating software development, and support, capability in our organisations as a priority. The organisations that make this leap, that think hard about this challenge and address it, are killing it. Just take Netflix as an example, they are clearly up there at the top with those companies setting the bar in the industry for technical excellence. They have a fantastic product. They are reaping the rewards of their efforts.

It is not easy. It takes effort, focus, determination. But the rewards are obvious. The logic clear. You’d be crazy not to make your software capability and culture a priority.

  1. Okay, so there are a few functions like corporate accounting, etc, that you can’t trace directly to product development and support. But everything else … 

Tags: Soapbox All-Wrong


comments powered by Disqus