📜 ⬆️ ⬇️

3 ways to develop

Development Aimed at Creating Garbage


A popular development process in some large firms is Development, Aimed at Creating Garbage, or abbreviated as RNSM. RNSM relies on the belief that the only thing needed to get money is a good idea. Obvious nonsense, but it is a support for people with a lack of imagination. This theory says that an Idea is a rare, valuable and unique thing and the whole trick is to catch it.

The main product of PHCM is meaninglessness, written on such “valuable” ideas: concepts, graphics, design descriptions and other products created for the sole purpose - to be thrown into the basket.

It works like this:


')
In the meantime, another Visionary from the top management is drinking an extra glass with the marketing guys and the Brilliant Idea comes to his mind ...

Development Aimed at Creating Garbage could be a caricature if it had not happened so often in life. Something like 19 out of 20 products marketed by large firms are failures (yes, 87% of statistics are taken from the ceiling). The remaining 1 out of 20 is successful for some completely random reasons, such as very bad competing products or a new market.

The main conclusion from the application of PHCM is easy to make, but difficult to accept: ideas cost nothing. With no exceptions. There are no "brilliant ideas." Anyone starting a discussion with an exclamation “oh, and we can do THIS!” Must be beaten by the surrounding people with all the passion and energy that they took for Jehovah's Witnesses to ring at the door. All these Creative Guys with their “brilliant ideas” look like a person sitting in a cafe at the foot of the mountain, drinking his hot chocolate and explaining to others: “Hey, I have a great idea - we could climb this mountain! And build a cottage on top! With two saunas! And the garden! It can be connected to solar panels! Dude, that's cool! What color will we paint it in? Green! No, blue! So, go and build it, and I will stay in this cafe and draw a couple of graphs for our project! ”

The starting point for a good product is to collect real problems from real people. The second step is to calculate whether it is reasonable to solve these problems economically. Good solutions to real problems - this is a successful product. “Good,” among other things, also means “cheap,” which means “simple.”

And now, after defeating the Dragon of Total Inappropriateness, we will attack the Demon of Complexity.

Development Aimed at Creating Complexity


Good engineers and small firms are theoretically capable of creating decent products. But the vast majority of products are still too complex and less successful than they could be. This is because the teams of specialists are persistently implementing a development process in my work, which I call Development aimed at Creating Complexity (RNSS).

It works like this:



RNSS is characterized by teams of people who are furiously and fanatically solving private tasks, not needed by 99% of users. RNSS products are bulky, ambitious, complex and unpopular. Many open source products came into being in an effort to get a simple solution where there was only a difficult one. For some engineers, it is incredibly difficult to stop in an effort to expand the functionality of the product "in case someone suddenly needs this." They want to do good to people without thinking about whether they need it and whether these people exist anywhere in the world.

A good example of RNSS is Bluetooth. This is a complex, contrived set of protocols that users hate. It continues to exist thanks to a massive package of patents that are simply impossible not to violate, creating an alternative. Bluetooth is ideally safe, which is close to meaningless for a protocol of such a short range. At the same time, it suffers from a lack of a standard API for developers, forcing everyone to invent a non-compatible bike with anything in their application.

On the IRC channel, #zeromq Wintre once wrote how furious he was when he discovered many years ago that the XMMS 2 audio player has a good plugin system, but cannot play music.

RNSS is a swamp, in which developers and architects boil in their own juice, invent problems themselves and heroically solve them themselves, not at all caring about how much this is all in demand outside the boundaries of their imaginary world.

The main conclusions from the RNSS are again easy to make, but difficult to accept:


Development Designed to Create Simplicity


And finally, we got to a rare, but all the more valuable way to work - Development, Aimed at Creating Simplicity, or RNSP. It begins with a simple thing: you need to realize that we do not know what we want to build, before we begin to do it. Starting with Brilliant Ideas and plans for flexible scaling across thousands of servers is not only pointless, it is rather a direct obstacle to a neat basic architecture. The real problems are really hidden in the fog and the only way to dispel it is to start moving, to explore how you explore the hidden map in a computer game. At the first stage, you need to be fast, mobile, in one word move - and so far it’s not so important where. Only having explored a certain area, it will become clear where to go next.

RNSP works like this:



RNSP is a reliable way of finding optimal solutions to the most significant problems in an unknown subject area. You do not need to be a genius to apply RNSP, you just need to see the difference between the aimless wandering in the fog and the activities to dispel this fog, as a result of which the really important problems appear.

Some people point out that such an algorithm has its drawbacks. Walking in small steps, we can get stuck at the “local peak”, having missed the opportunity to jump to the top of the ideal. But this, nevertheless, is how everything happens in real life: we take small steps forward here and there for a long time. There is no "reasonable plan for life." We reduce the risk of getting stuck at a local peak with a wide coverage of the problems at hand. The theory says that this is how innovations appear, so it’s better to use this more or less scientific approach than to hope for success or solve all the problems with some kind of magic.

As soon as you grasp the full power of this approach, the power of collective thought and the wonderful infinity of improving your product, you also realize why some companies and products get stuck in a swamp of disastrous prospects. They simply do not have a variety of thinking, approaches, collective intelligence and imagination for the proper exploration of unknown subject areas and markets. When Nokia killed its open projects, it cut the throat to itself.

A good architect with a good team can use RNSP to build world-class products. To get the maximum benefit - RNSP should be used constantly, day after day, working out the developer scent on the problems of illogicality. We often lose sight of any minor inconsistencies, but a good architect sees them and is able to take them as a chance to make the product better. The essence of this type of building software in a non-stop (albeit not great, but constant) approximation to the ideal in the use of the product.

In the world of opensource, we do all this work in plain sight. There is no "well, let's open the code" moment. Products that decide to open the code only at some stage take away from the user the opportunity to trace the whole exciting story from the very beginning, to create a community around their product from the moment of its birth.

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


All Articles