The current pace of software development is simply amazing in its speed. The functionality is always “needed yesterday”. What for? Competition - bypass, overtake. There is no time to test, it is necessary to ship the functionality, it is necessary, it is necessary, it is necessary.
Practices, methodologies, approaches and clear regulations come to the aid of the development teams. I will try to formulate in the form of ten rules the concept of "quiet" development. And then it will force to use modern software development methodologies. And the customer is calm, and his nerves are intact. Profit!
Problem
In the film "Pirates of the Silicon Valley," Apple developers are well shown tortured by a long marathon. And the code of a tired developer is often unpleasant even to himself the next day. Conclusion - do not write tired code. And the performance is poor.
But the requirements are constantly changing, the horizons of the product are blurred, the customer cannot clearly explain what he wants. For such cases and invented Agile . All related methodologies allow flexibility to adapt to changing customer requirements and maintain the proper pace of development without compromising the health of the team. ')
Let us turn to the rules of "quiet" development.
rules
There are no urgent tasks, there are priorities. If the task has a fatal priority, then it was necessary to think about it a week ago. Clear planning error. Either point 9 was ignored and the “hamster” threatens to bite off half of the arm;
Start the task after its full understanding Typical error in large systems. Did something, somehow checked, got something;
Establish a dialogue with the customer In any project, you have to look for compromises, set priorities. Find a common language with the customer is worth a lot;
Guided TK TK will be ideal when using point 3, so there should be no problems. And if there is no functional element, then it is not necessary to do it;
Use only valid code Any code must undergo a serious verification cycle before being delivered to the customer. Any third-party modules should be covered with a test code and well tested. Your code should be checked on a mandatory basis, with no exceptions;
Working day 8 hours Very useful item. Sometimes you need to remind yourself of this. The family also needs attention, and its health should be protected. If there is not enough time, then see point 1.
Write documentation Without documentation there is no functionality. In addition, it saves a lot of time, because it is enough to give a link to the person interested. If the documentation is not clear, outdated or has a dual interpretation, then it must be updated;
Keep the code in order Awful code should correspond, and not grow into the system. No time? Put the TODO and fix it in the next free minute;
The customer is not a laboratory hamster for experiments There is such an approach “shooting tracer” . It can be used only in young and still little-functional products. As soon as the product enters the phase of maturity, the customer ceases to tolerate even the smallest errors. The product must be perfect. Otherwise, loyalty will decrease, and hence the level of payment for work;
Test Very important point. If the function does not have a test, then nothing can be said about its performance. Software unstable. A striking example of SQLite . That is why this database successfully works in a variety of systems.
Conclusion
Take care of your health, write a quality code, enjoy your work. Keep calm! What other rules do you think are worth mentioning?