
Release the first version!
Introduction
Well-established and completed processes are not for us! It's boring when everything is already set up and works like a clock, but this should be sought. And after that we’ll be happy to do the work done and once again check how everything works well ...
It is very important which code gets into productive operation. Its stability and predictability are important. When using strict quality control regulations, the speed of introducing new functionality will certainly decrease.
In this regard, there are frequent situations when a sufficiently crude "development" code is delivered to the customer, after minimal testing. This entails many problems.
N.N.U
Imagine the usual situation in a project. The project is already six months old, it is still young and not particularly functional. Changes are made every minute by a distributed team. The customer requires new functionality almost instantly after its implementation.
It is tempting to use continuous integration, which is expressed in updating the customer’s servers with code from the main development branch.
Postulate 1: The code in the main development branch is unstable.
In this case, the approach to updating the code from the customer will bring only problems. It is necessary to fix the code slice expressed in the version and install only the code with the version from the customer.
Of course, one can object to postulate 1 that the code in the main branch is stable. Yes, this is possible if there is sufficient coverage with unit tests, extensive functional and integration testing is carried out. The QA department is very harsh. The code is developed in branches and transferred to the main branch only after rigorous testing.
In many projects there is no quality control and testing department, often there are no tests. All development is carried out in the main branch. Here for such projects postulate 1 is voiced.
Release version
Your code is barely compiling, there are many errors, fatal and not very, the customer begins to turn gray from the look and behavior of the system? Release the version!
Release the version of this under-product. Announce the version to the customer and outline the approximate release date for the next release. It acts magically. The customer wants a new version of the product, the developers have a whole iteration to write code and correct errors without yelling from the customer and pressure from management.
Motivation
It is about the release of the first version. It is the most important, since then the whole product will be built on the basis of it. Without it, there will be no other versions of a successful product. And the team is becoming calmer for their work. Of course, it is important after the release of the first version not to lose track of the pace and as soon as possible to release the second version of the product, more stable and even more desired by the customer.
pros
Of the positive aspects of the release of the version, we can distinguish:
- Creation of a "reference point" of the product;
- Regulated getting new functionality to the customer;
- Improving the stability and quality of the product;
- The normal rhythm of the team;
- Extensive product development planning opportunities;
- "Controllability" of development;
- Easily fix errors without introducing more new ones.
Minuses
There are also disadvantages of releasing the first version in the early stages of the project:
- "Tracer shooting" by customer. Not everyone is ready for this;
- New work for release version;
- Slowing down the delivery of new functionality to the customer for iteration.
I do not exclude the possibility that each reader will be able to cite a couple of pluses and minuses of the release of the first crude version.
Conclusion
In most companies, you cannot find a person with a “build-master” position. With such a person, the release process is much simpler. But even without it, you can release versions of your product. Well, the very first version, this is only the beginning of a long life program.
In addition, the release of the version creates interesting and funny traditions in the team. The simplest of them: going to the bar, evening board games, movie sessions, network games as a team.
NNU - Zero Initial Conditions.