Building A Company That Builds

Organizing a software company can look like rocket science nowadays. But it shouldn’t be!

Apparently, most startups are unorganized. In other words, when someone who previously worked for a large entity joins the team, they are surprised at the lack of organization. Later on, they are even more surprised to learn that many things actually work better that way.

baby_doll
It may not be very clear in everyone’s mind as no one feels it is necessary to write down all of its flows, but the organization does exist. As long as information is not very widely spread (the organization is small), newcomers learn the “hooks” to the self-working system in a reasonable amount of time.

4PSA  might no longer fit the “startup” definition, if we are to stick to the dictionary, but we managed to keep the DNA of a startup: most startup values are intact, allowing many teams to work in startup mode. You might find our learning interesting, as most of it was achieved the hard way, through many mistakes.

Start Early

Expecting success just because you work very hard is a common mistake. In most cases, success cannot come without the mechanisms for self-improvement. In product-oriented organizations, long term vision and effort are necessary, as a major structure cannot be built in a day. So start building early and keep a remote horizon line in sight.

Begin With Basic Rules

Most people are receptive to basic rules, as they are easy to follow. The first investment should be in setting up rules that can be followed by everyone. As long as you make no exceptions and everyone plays by these rules, they will do for the first stages of the startup.

Act Like A Fireman

Because everything requires continuous effort, you will end up feeling like a fireman. However, when it comes to prioritization, do not forget that the product is your most valuable asset. If something you have to do will not make your product better, you can safely skip it.

Make It Product Centric (Again)

Speaking about the product, its quality should always come first. Some argue that “customer satisfaction” is the most important thing for a company, but satisfaction is very abstract and might become volatile without a foundation. You cannot build satisfaction with a crappy product and in the absence of a culture of quality. But, if you place quality at its core, customer satisfaction and sales will follow.

Keep It Protocol Level

Many people associate organization with bureaucracy. Truth is that it tends to be that way with many companies, especially when they have been organized following “proven success stories”. Organization is indeed like a protocol: it sets up parties, communication channels, work flows etc. Still, it must never define the payload, except for control frames.

Design On The Core, Not On Exceptions

Banks, airplane manufacturers, doctors must think and document every exception possible, otherwise nasty things might happen. Luckily, in software we can afford the luxury of making mistakes and learning from them.

One of the biggest mistakes I’ve seen is when someone spends a whole day documenting an otherwise straightforward process and then wastes an entire month trying to cover and debate on all exceptions. Most of these exceptions will not even be encountered and, when they are, the resolution will most likely prove faulty.

Have Lots of Patience

The better the team, the harder it is to make changes. This is usually because they demand very good explanations, which might take a while. In the end, this turns out to be a good thing, because when such teams make a step forward, nothing comes as a surprise.

Do Not Hire Consultants

Hiring consultants has become standard practice, especially with venture capitalized startups. Consultants are excellent at telling you what you are doing wrong. The big problem is that they manage to prioritize stuff the wrong way, delaying resolutions. Producing solutions is not a bad thing after all, but because consultants do not intimately know the problem, these solutions turn out to be too general. In short, once again they spoil your prioritization.

Everyone Must Contribute

One of the first things to consider is how to make people contribute. Usually, people find it easy to contribute when something is so wrong that it starts to annoy them. Therefore, the best idea is to give them a focus, like “this month we are setting up some communication procedures between sales and software development”. Just saying… 😉

Being Wrong Is Better Than Doing Nothing

Generally, many good teams are not able to move forward with defining a basic process. This is because there seem to be too many choices. The truth is that getting everyone to agree on a particular issue happens so rarely that, when it does, you must look very carefully into it; something is fishy.

As a result, you have to pick one of the multiple options and implement it. If time tells that it was a very poor choice, at least you will have a very clear list of problems. Trial and error have become keywords for startups.

These are just some of the most important things we’ve discovered, in no particular order. Of course, there’s more, but if you have at least these in mind, you’re already a few steps ahead. In our next article, we will tell you more about how 4PSA teams are organized internally.

Post A Reply