Stop a moment. Slow programming is a trend for tired developers

Short description

Slow programming is a cultural trend that emphasizes the importance of thoughtful and measured code writing. It is part of the Slow Movement, which promotes a slower pace of life and bucking trends towards fast food, fast reading, and fast media. Slow programming involves careful design, programming without a computer, the pursuit of perfection, and getting satisfaction from the process. However, it can be challenging to implement in the corporate world where quick profits and deadlines are the norm. Nonetheless, slow programming can be beneficial for personal projects and designated leisurely searches for the truth in large commercial projects.

Stop a moment. Slow programming is a trend for tired developers

How you sometimes want to stop the wild development race and take pleasure in thoughtful, measured code writing. How there is not enough time to think about algorithms and study promising architectural options of the system. How tempting it is to reach out to the stopcock and stop the maddened conveyor belt of stamping short-term solutions.

If you are tired of endless deadlines, meetings and sprints, then you might like the concept of slow programming. In its essence, it is completely opposite to the mainstream — the constant acceleration of development. Let’s try to consider all the pros and cons of this concept.

Slow life

Slow programming is part of the larger Slow Movement. This is a cultural trend that more and more people are consciously turning to. The slow movement has many currents and trends, which are united by one common idea: people are tired of the crazy rhythm of life, they want to slow down and again enjoy work, education, reading, eating and other everyday activities.

Slow art promotes not only the careful and thought-out creation of works of art, but also protests against the fast running of tourists through museums and sights.

Slow reading combats unnatural short-reading and advocates slow and thoughtful study of books, re-reading and analysis of texts.

Slow food is normal healthy food without any fast food and semi-finished products. Proponents of this direction are fighting for the return of the feast culture and for the preservation of national and regional culinary traditions.

Slow TV confronts clip montage, jerky rhythm and an unprecedented drop in the level of television broadcasts. Channels that broadcast many hours of meditative recordings of nature, trips, and travels are gaining more and more popularity.

Slow travel, in turn, condemns too fast movement, which significantly reduces the pleasure of traveling and dulls the impression of an unfamiliar country. A slow photograph is also attached here. She calls for thoughtful rare shots instead of tens of thousands of photos that settle in the digital archives of their authors.

There is also slow gardening, slow education, slow upbringing, slow science, slow fashion… The number of directions of this movement is constantly growing. People want to be finally given peace and allowed to live to their own satisfaction.

Programmers are also people and they are also very tired of the endless pursuit of illusory indicators and results. That is why slow programming arose in this number of directions.

Slow programming

The concept of slow programming involves:

  • thoughtful and thoughtful design;

  • great attention to detail;

  • thorough testing;

  • striving for perfection.

Let’s try to understand what this means in practice.

1. Careful design

In order to program something unnecessary, It is necessary to design everything properly first. This means that you need:

  • how user experience should be analyzed;

  • search for optimal solutions;

  • consider and test different implementation options.

Any good, good thing starts with research and project. In today’s corporate world, this work is usually not done by programmers, but it doesn’t matter. In any case, you should definitely not rush here – before cutting, you need to measure properly.

2. Programming without a computer

Do you remember the memes about “lazy” programmers who, instead of diligently tapping away at the keyboard, do unknown things? In terms of effective manager to an outside observer, they simply spit at the ceiling and receive a salary in vain.

It can be difficult to explain that:

  • almost any piece of code requires thought and several internal iterations to improve it;

  • the programmer should not start development immediately after receiving the TK;

  • thinking about algorithms away from the keyboard is an important part of his work.

By the way, the quality of this work cannot be measured by the amount of code written per unit of time.

3. The pursuit of perfection

Everyone knows that it is impossible to achieve perfection, you can only strive for it. But I want to at least start moving in his direction. For this you need:

  • careful planning of the design and design of the program;

  • careful search for the most effective solutions;

  • carrying out NDR – finding the best solution through experiments.

One way to improve code quality is through pair programming. For managers, this is a horror: a double increase in resources to solve the task.

Perhaps, at some point, the idea that perfection is minimalism and simplicity can save: code, interface, architecture. It is hardly possible to achieve true perfection on the basis of many redundant add-ons, libraries and frameworks. Long-term legacy also does not add sophistication to the system.

4. Quality and waiver of debts

Revising and refactoring old code is just as important as developing new code. Of course, refactoring should be done carefully — slowly and thoughtfully. And it must be accompanied by regression and automatic testing.

It is best to exclude the term “technical obligation” altogether from the lexicon:

  • everything that the project needs is done right away, and not postponed until later;

  • no temporary compromises, “crutches” and “bicycles” for terms.

5. Getting satisfaction from the process

This point is the “most selfish”, but probably the most important. Slow programming is a way to make code development an art again. This is the way to give back to the programmer:

  • pride in one’s work and the product of one’s work;

  • a healthy balance between work and life;

  • comfortable rhythm of work processes;

  • opportunity for self-development.

Faster does not mean better

Countless articles and books teach us how to become more efficient and work faster. At the same time, for some reason, efficiency and speed are equated. The corporate world needs constant acceleration and reduction of labor costs. We are surrounded by rapid iteration techniques, task trackers and deadlines. Everything is aimed at getting a profit quickly and reducing the time between design and implementation.

This means that there is less and less time left for quality work. Sometimes, of course, masterpieces come out by accident. But more often than not, it takes time to make something of high quality and beauty. We just don’t have it.

We take off the rose-colored glasses

Now let’s try to consider the other side of the problem. Let’s stop dreaming about an ideal world with turquoise unicorns bottomless barrels of labor costs. In today’s corporate reality, slow programming is a utopia:

  • business is aimed at quick profit and ahead of competitors;

  • an increase in labor costs reduces the profit and competitiveness of the solution;

  • the game is not worth the candles – a perfect spherical product in a vacuum, which took a year to develop, becomes obsolete a month after release;

  • everyone wants to know when they will receive a profit – no one needs endless projects with the impossibility of predicting terms and results;

  • it is difficult for a slow programmer to work in a team where others write code quickly;

  • nobody needs masterpieces, sales records are one-day products.

There is also a danger of falling into a corkscrew of perfectionism — any project can be improved endlessly. Here it is important to be able to stop in time.

Besides, it was looming on the horizon something — as the media scare us, ChatGPT will soon be able to replace developers. It is enough to set the task correctly, and the solution is ready once and for all! No deadlines and no costs — the exact opposite of slow programming. The point is small: one would only know how to formulate this task correctly.

However, there are still oases where slow programming will not be a white crow:

  • pet projects, where a slow programmer is his own boss;

  • The GDR within the framework of large commercial projects is a designated sandbox for leisurely searches for the truth.

Serhii Pavlovich Korolev once said: “You can do it quickly, but badly, and you can do it slowly, but well. After a while, everyone will forget that it was fast, but they will remember that it was bad. And vice versa.” The concept of slow programming is one of the attempts of caring professionals to return quality, reliability and beauty to our world of short-lived plastic solutions.

Related posts