Functional Noise Regularize Your Mind

Developer Freedom

People tell each other a lot of stories. The concept of money is one common story shared by most people on this planet, which makes it particularly powerful. I can take some worthless stuff, like paper or digital bits, and trade it for a valuable banana. I can even move to the other side of the planet, like Japan, and still trade some bits for a banana, even without knowing the language. A monkey will not trade his banana for a useless piece of paper from some random stranger, but humans do it all the time. What a powerful and useful story.

Other powerful stories are the concept of nation states and corporations, which are virtual entities that help people coordinate together. Religions are also stories that fill the function of coordination, except they require some absolute belief and have a tendency to break down once people realize they are mere stories. Money and nations keep functioning fine even if people know they are not real. The most powerful stories of our time are those that people share willingly.

We continuously have emerging stories in our society, like bitcoin as alternative currency, but here I'd like to focus on the story of software developers in corporate technology entities. I'll talk about how knowing your story can liberate you. If you are doing something else for a living, maybe you'll learn more about corporate storytelling.

The actors in this story, standing upon the virtual entities. The corporation provides a platform for the developers. The corporation is maintained by the managers. An entrepreneur builds a new platform. A freelancer works without a corporate platform, supported only by the nation state.

Closed Source

Alice is a highly capable software developer in ACME corp. She believes she has to do what her managers ask her to do. This is a strange story. Alice could add value all by herself, maybe even build an entire product. Or she could band together with a few other engineers, talk to a few customers and build a product. What stops her?

A story.

The managers claim to represent the capitalists behind the corporation. Without this capital Alice could not access the customers, use the right technology, build products and distribute them. The managers created a corporate platform for Alice, so she can create immense value. But if she doesn't listen, they'll threaten to kick her off the platform.

Now this story has some weaknesses, especially when it comes to software development. Good software developers are so reusable that they become a kind of currency for the managers. Managers build entire internal economies where they shift around FTEs in spreadsheets, trying to gain more control and power.

Now what happens if the FTEs wake up and decide to do something else? Alice and Bob find a valuable proposition and just start implementing it together. Who is going to stop them? Only the story. With the threat of endless management meetings or exile. Or maybe the greatest horror of all; a missed promotion.

Let's try to find a better story.

Open source

In open source communities, software developers spend their own time freely on whatever they think is most valuable. You can start new projects, or join other projects. You can work on coding or documentation or marketing or any other aspect.

Projects evolve naturally. When multiple projects are tackling the same thing, either one wins through competition, or several decide to cooperate and merge into one. Natural selection happens through popularity of the project, both on the developer side and on the user side.

Developers are the main currency in open source as well. One great developer can change the course of a project, especially early on. You, and only you, choose what to do with your time. People work on projects for a variety of reasons, like learning or creating tools for yourself. But people love getting kudos and status, so there is a tendency to work on projects you predict will be successful.

Innersource

Like a large open source project, a corporation is a project with a lot of proven value. You join it to work with all these other brilliant engineers, learn from them, grow in status and add some more value. After which you can choose to stay, or move away to add value somewhere else, or try to build your own development platform. Some even build a platform that grows new platforms.

But inside an organization you have by definition one whole FTE at your disposal. You decide where to invest your FTE. You can talk to users and build them something valuable. You can talk to other engineers and build them some tools. You can help maintain existing tools and products. You can join other engineers who are already building something awesome. You can also become a translator, converting user stories into stories that developers understand better. You can become a teacher, sharing stories freely for educational purposes. And if you can tell really good stories, you may convince other FTEs to join your FTE in a larger adventure.

I consider this an innersourcing approach to corporate software. The software itself is proprietary and generates value for itself. Or it is open source and generates value through services. But everyone can contribute to everything (if they follow the local rules) and you can use everything inside the company. If you use the designated API you may even get longterm support.

Someone who doesn't add any value should go experiment somewhere else. Project and community hygiene is important, else the project may fail. The hiring and firing process is important, you want the least risk of encountering bad FTEs. I certainly don't like working with low performers.

A downside of taking charge of your own FTE is that you may constantly have to prove that you are adding value or investing it to generate future value. Some people don't like being business-coders, they just want to code. Business-coders understand the business domain and can easily translate that into building products. If you only want to code you'll have to team up with a business-coder or fulltime manager and let them decide on the product. But let this be a concious choice, not enforced.

Another consequence of this world view is that you don't have to listen to wrong stories. If some manager/facilitator/coordinator treats you poorly, you have several options:

  • Learn to ignore them

  • Move elsewhere if you can

  • Find allies and build defenses

Also please have a look at your own darker motives. You never yell? You never try to manipulate? You never want status and promotions? Build defenses against the excesses of your own dark side.

How to free yourself?

Now what if you want to become a free intrapreneurial developer in a corporation that doesn't really support this adventure? First of all you'll have to forget about promotions. Career paths center around existing narratives in your corporation. This may suck, because the story you told society was that you were going to follow a successful career path at ACME corp. You'll have to change that story as well I'm afraid.

Ok, you still want to continue? Now you need a story about why you deserve to be a free FTE. If you don't have such a story, then managers will constantly harass you. "Why aren't you doing what your product owner John says?" In other words: why aren't you following the existing narrative? This is really annoying and may even get you fired.

One method is to go 4-hour workweek style like Tim Ferris, automating and delegating everything away and using the spare time, so 95% of your time, as free FTE. It's definitely useful to learn these skills, but this method provides no defenses when others find out. They'll instantly reclaim your time. Again very annoying.

The story I tried is being so good they can't ignore you. You follow a few other storytellers for a while, show everyone you are really good at your work and then slowly spin a new story around that. At this point if they ask why you aren't listening anymore, you can point to your previous track record and proclaim you can add more value by doing things your way. I know other engineers who created a bubble of freedom for themselves. They are not slacking off, but they are simply following their own independent story. It's kind of hacking and they get respect for that.

It may take a while, but if you reach this point yourself, you can choose to create a new story. Find a valuable thing to do, like any entrepreneur, by talking to users or customers. And then you build that thing. (Did I already mention you have to be really good and be able to build things by yourself?). If you need more guidance then start by reading Lean Startup or read Paul Graham's essays

You may reach the point where you want or need more allies. Let's say that you want to do something that you can't do yourself, or it would take way too long. Now things get more complicated. You need to convince others that your story is more valuable than whatever story they are following. One way is to find those other free engineers with similar stories and join forces into a bigger story. These basically become your co-founders. This can be a pretty sweet deal, you can provide narrative backup for each other, though you may need to sacrifice some freedom in order to compromise.

At some point you may need engineers that are not free. Then you need to convince the story teller who controls these engineers. If their direct superior is already a free FTE, you can try to negotiate. Either dilute your story, or provide labor, or give something else that counts as currency. However, often the engineers' superior is not free (he/she is not an entrepreneur who choose this path voluntarily). If you are lucky your story still fits their narrative and you get some aid. Worstcase you'll have to find the original story teller, which may be many layers up the hierarchy, or completely hidden from view. Generally this is not worth the effort, unless you want to become a fulltime story teller (aka manager). If you do choose this path, please be aware you may have to compete with many other story tellers, as well as battle the dominant narrative.

If you cannot convince the engineers you need, tough luck, being free does not mean you get everything you want.

Note that if some non-free engineers join your cause, they may not fully understand your story since they are bound by other stories. This means they will not be so useful or need a lot of guidance. If you somehow got the engineers fulltime, it's worth the effort to complete subvert them to your story, maybe even turn them into free FTEs. This works best by building a world for them in which they can start their own stories. Don't feel bad if it doesn't work, conformists prefer to follow the dominant narrative.

Currently am in the process of finding the engineers in our corporation that want to free themselves and create a kind of innersourcing community. This is a big story. I also make it difficult on myself, because I refuse to become a fulltime story teller. I still want to create valuable products myself and the innersourcing world would be wonderful to work in. Imagine a world where when you find a valuable proposition, instead of having to convince a thousand managers, you just convince one or two great people to join you. (Note: finding those great people will then be the new bottleneck.)

A final word of warning, if you tell a big story yourself, try to make it resonate with the primary corporate platform story tellers (senior management). If it does not, they may turn the dominant narratives against you. Small stories can be about boosting your productivity, but big stories must boost the platform. If your story does become successfully integrated in the dominant narratives, then don't expect too much credit for it. A good story will look obvious in hindsight and people will believe that they always believed it.

In the end all you need to do is change the stories in your head and the stories in other people's heads. It's like writing software, but a little less rigorous and a lot more nebulous.