RuairĂ­'s Site

Why, in big companies, is it easy to do bad things and hard to do good things? (with many memes)

2023-06-08

I've worked in a wide variety of jobs and companies. In my experience, the bigger the company, the bigger the problems and the harder it is to make changes to solve them.

Image description

This is all anecdotal, and this is all in the context of working in software development. I'm not talking about any particular company. This is based on a conglomeration of many experiences, conversations and much reading.

Most companies are trying to adopt technology and "transform". As hard as things are at large technology companies, they're so much worse at older companies. In these, engineering is a cost center.

Image description

Making positive change is hard but making things worse is somehow far easier.

Image description

This is not to be defeatist. You can always make things better. Working in Software is still one of the best jobs around. It's no harm to talk about the issues every so often though.

It's easy to introduce more bureaucracy but hard to reduce toil

You may have encountered Westrum's organisational model.

Image description

Many large companies trend towards Bureaucratic. In Mark Schwartz's book The (Delicate) Art of Bureaucracy, there are some fantastic explanations of this. Bureaucracy is not inherently bad but it goes against all good software development principles.

Image description

Making things better is often the simple act of removing something or making a thing easier to do. In bureaucratic organisations, adding a new painful process is pretty easy. Removing one is not.

Image description

For a software developer trying to do good work, bureaucratic organisations can be the toughest to deal with. The company may be great to work for. You may really like your team but the constant struggle to improve the most basic things can be tough.

Image description

In a bureaucratic organisation solutions like ticketing systems often take hold. Improving DevX and automation would be far more beneficial but difficult. Buying some COTS to cover over structural issues is easy. My deep dislike for how that turns out inspired me to create ticketculturecon.

Image description

So many people, every day, waste so much time doing busy work that never means anything and that's very sad.

Image description

Small iterations are hard, long projects are easy

Agile is almost a bad word in tech these days. A lot of companies claim to be doing it while fighting very hard against some of the most basic principles. For example, doing things in small iterations.

Image description

The book Project to Product does a good job of explaining this. Large companies still do everything in projects. Projects have a specific timeline, budget, definition of done. Good software development doesn't work like that.

Image description

A product needs constant tending until it's no longer needed. It's rare for large companies to understand this.

Image description

There are always exceptions but in general software development is iterative. Even software development for spaceships is iterative. Iterative doesn't mean broken until done. It means we deliver a small slice of value, as fast as we can, so we learn and make better decisions for the next iteration.

Image description

At SpaceX they applause when a test launch explodes after takeoff. They do this because they have learned something, not because the rocket exploded exactly as planned. Companies would benefit from optimising for good decision making and learning. Not fortune telling.

Image description

There are many bad side effects of not putting in the hard work and providing a good vision and strategy. One is many people end up trying to predict how long things will take and keeping track of what's going on.

Meta work is easy, valuable work is hard

A good friend of mine refers to a large amount of activities that go on in big corps as Meta Work. These are the activities that don't produce any real value. They do however produce a lot of information and require a lot of people to manage them. Those people in turn need to ask a lot of time from those attempting to do valuable work by getting them to attend meetings, report progress, come up with wild guesses for how long things will take and so on.

Image description

I am not trying to be cruel. There are so many great people involved in planning, reporting and such. Nobody actually wants to be doing meta work. That's what the incentives have us do. Focusing on building out backlogs is such a waste but so easy at big companies. Having a vision and focusing on the most important thing right now to move in the right direction is hard.

Image description

Architecting systems for autonomy is hard.

Image description

Building trust is hard.

Image description

Technical Strategy is hard, productivity theatre is easy

A clear strategy is powerful. I only fully appreciated this after reading the book Good Strategy Bad Strategy.

It's easy to make plans but hard to build a good strategy. A plan is not a strategy.

Image description

It's easy to do a reorg but not easy to get the organisation behind a technical strategy.

Image description

Often organising people is leadership's greatest lever. Lack of resolve under political pressure squanders it.

Image description

Inventing rules that don't help anything is easy, prioritising what's valuable is hard.

Image description

Coming up with a backlog of ideas is easy, true innovation is hard.

Image description

Putting in good engineering work and fixing a mess is hard. Massively overcomplicating everything to avoid working on fixing things is easy.

Image description

Software engineering is hard. Not just shipping new features and closing tickets but really engineering solid solutions.

Image description

Convincing everyone of the need to make improvements is hard. Being a hero and sacrificing to maintain the status quo is easy.

Image description

Conclusion

It's so hard to convey but there's a massive corpus on what works and it feels like a minority of people in tech are aware of it. Just some examples:

There are so many good books and resources out there. Many people have worked in excellent technical organisations and know what works.

Doing what's right should be easy but it rarely is. Exercise is hard. Good diet is hard. Interesting problems are hard. It just seems to be how this crazy world works.

There are many reasons why big companies get into a place where doing good is harder than it needs to be.

Image description

Ultimately, we're all just human and everyone is trying to do their best. Hopefully you'll make some good change today and not just publish a rant full or memes.

Image description