📜 ⬆️ ⬇️

Do you want to sell a startup ever? Do not allow the development of product architecture nihilists, hackers and enthusiasts



Many startups are not created to live happily ever after, bringing profit to their owners.
Often the goal of the founders and investors is to sell the business in 3-5 years.

And what is included in the concept of "business"?

There are many techniques. allowing to estimate brand value. It is even easier to measure the turnover, income and number of customers of the company.
But with the product is much more complicated.
')
The fact is that the product must be rejected from the original development team.
That is, if all current programmers, for any reason, simultaneously write a letter of withdrawal, it should be possible to hire a new team (and an inexpensive one, that is, not consisting entirely of high-class expensive specialists), quickly train and continue production of the software product.
And it is precisely such products that the nihilists, enthusiasts and hackers do not know how to create. During my work in the field of development of start-ups, I saw the pitiable results of the work of all three social groups and now I will try to justify why each of them cannot be allowed into the product architecture.

Disclaimer: as ordinary developers and researchers, all these people (even nihilists) can be useful. Enthusiasts will offer new features, hackers will figure out how to best implement them, nihilists will sit down for coding. But if you make someone of them responsible for the design and development of the product, then this is what will happen.
Nihilists

It's simple. Pofigistov not interested in the future of the product, and often its present.
Hired nihilists care about the regular payment of wages. Pofigista-founder - receiving a grant from the investor.
It is important for him that everything works now, and what will happen tomorrow ... This is not his business.
At the same time, the nihilists are not idlers, they honestly work out the paid time. The only trouble is what exactly work out .

The code created by such masters outwardly looks slim and in the first 10 minutes makes a good impression. Exactly until you begin to deal with it.
For example, in one program I found two options for sending welcome letters after registering in my account. If you register via a web site and use a web service, then the letter is constructed on the fly from the string set, and the language of the user is taken into account (i.e., the letter arrives in English or in Russian).
And when you register through the interface of the personal account, the text of the letter is read entirely from the file. And the user's language is no longer taken into account - only Russian.
It is clear that two people wrote the code and everyone wanted to do their job as simply as possible. Nobody led the project documentation, no one was responsible for the product entirely.
At the same time, the product itself formally worked, but the cost of its further development becomes quite high.

That is, our application becomes like this house:



The building seems to be worth it, but constant props are needed.

Hackers

It would seem that hackers are the elite among programmers. They are able to create such systems that ordinary programmers will not make the whole team.
And then the buyers of the companies in which the hackers were responsible for creating the product look at the code and clutch their heads.
Applications that create hackers are like paintings by abstract artists. Instead of a nose, there is an ear sticking out, an eye in the forehead, skin color is blue, and the creator explains - “I see this.”
Scalable platform? No, not heard. Modular architecture? And why?

There is a task - the hacker will write the code, the task is decisive. There will be another need - the hacker will stick to the first piece of the second code. Then the third. And then the project code turns into a labyrinth.

This code made by the nihilists can finally be understood (build a class diagram, paint the interaction, make the documentation, throw away too much), and only the hacker himself can figure out the hacker code.

Products that hackers write are similar to the following houses:



Chaotic jumble of designs. To support such a product, an expert is needed no less a degree of genius than the author.

Enthusiasts

These guys are absolute antipodes nihilists. They are led not by laziness, but by excessive zeal.
Make a simple system? Let's think up a super architecture for it! (Make a garden toilet? Let's fill the concrete foundation at 5 meters deep!)
We will use Java EE! - Why is Java EE, where is PHP missing? The cost of specialists and the requirement for resources is not comparable.
Let's make a terrific interface! - let's first make a working interface. A startup needs to make money.
As a result of this kind of gigantomania, a voluminous system is obtained, to support which a huge team of expensive and diverse specialists is required.
Does it need a potential startup buyer?



If instead of such a miracle to build an ordinary high-rise building, then it will be both prettier and more convenient.

Who should be responsible for product development in startups?
Of course practice.
Only they will find the most effective way to build product functionality.
Only they will create a code that becomes rejected and which can be refined and maintained by anyone independent of the founders. team.
Only such a code will become the intellectual capital of the company.

After the holidays, I will write what criteria and distinctive features of such a code and how best to create it.

All with the upcoming holiday!

Source: https://habr.com/ru/post/298772/


All Articles