Amazing your product still works

Now I will tell you the secret of the open door. Ready?

image

Most software is very poorly written. At the same time, they earn money on it. It can have millions of users, can be translated into several languages, however, from the point of view of the source code and architecture, be a shit compilation of antipatterns and spaghetti code that will fall apart at the first incorrectly generated request.

Is it so, why and what to do.

Quickly for those who think that he has a product that’s okay for himself and you can’t read further.

First for techies. Answer yourself: you follow the principles of clean code, SOLID, DRY and everything that is written in the articles and of course you do not have magical values ​​in the code. You really have 100% test coverage, you have an honest automatic CI / CD, your REST uses all the necessary HTTP codes, not just 200, 201 and 404. All endpoints and minimal technical debt are perfectly described, and legacy code is refactored right there ? If not, then you yourself understood everything. And I still didn’t talk about monitoring, and about a lot of things.

Now for the managers. Guys, you're not working on a waterfall, are you? Well, your scrum is honest, you don’t equate story points to hours or days and do planning poker, discussing the result, right? And you definitely do not have any blocking tasks in the sprint and defenition of done, and after implementation the task immediately gets into production. You have a roadmap of the product, documentation, and the tasks passed to the developers contain more than three words and describe why we are doing this, what we are doing, how to test and what will result in it. And all the business cases are described ... And these are just a couple of things that need to be done, we all know.

Those who have all this, you can finish reading the article. You already have a very good product. Drop me a reference to it, if it’s easy, I’ll look with pleasure.

For those who are still here, and I think most of you, let's understand why this happens and why it suits everyone.

This happens because managers most often do not understand a damn thing in development. They understand ROI and KPI, they received MBAs, and if they have some kind of background such as a semi-specialized education, then they did not go further than the conditional Hello World. In general, their deadlines are on, and properly decomposing a task to MVP, without technical knowledge, is quite difficult. This adds the dislike of programmers to managers, they obviously will not help them. So it remains for managers to write stories or novels to stories and come up with indirect metrics in order to understand whether this or that task was performed qualitatively. Yes, only all these metrics are synthetic, they have nothing to do with the quality of development, or very indirectly.

And what about the developers. Yes, actually nothing, most of them do not want anything, she already has the knowledge that these letters mean. The manager still doesn’t understand anything, so here we use a couple of antipatterns and stick a couple of crutches, start compilation without tests, but why start them, ... and let's go have some coffee. Everything was decided on experience, so to speak. Well, but the fact that they broke the deployment, it doesn’t matter, we’ll turn it around with our hands.

Almost no one wants to understand the theory, in the industry there are a lot of those who have no idea how its framework works, but only knows which method to use. So to speak, use magic. Due to the lack of developers, the level of professionalism has significantly decreased.

I understand that no one likes criticism, but such an approach is very close. They wouldn’t do it that way, there wouldn’t be what I described in the first paragraphs.

Now why does it suit everyone? Yes, yes, it suits absolutely everyone. Those who are not satisfied with this, either do not work on these products, or refactor them and bring them back to their normal form.

This situation suits managers because they don’t even understand the magnitude of the problems. The product has come on and okay, and users will find bugs in the morning. They wrote in the report, got a tick, the chef praised. They aren’t overkill, so programmers are to blame. In general, when there is someone to push, then nothing needs to be improved.

Why does this suit programmers? Probably because many cannot do better, because in order to do better you need to constantly work on yourself. And for many there is not even a question: why, if the money is already paid. You read ebanoe.it, they are directly advised to work just as much so as not to be kicked out. And that means nothing.

So it turns out a vicious circle, some can not, others do not want.

What to do with it? Every day to develop. Improve tasks, approaches, apply best practices and principles. Disagree with the fact that you are being offered to poke around in it. Make it so that you are not ashamed to show your project to outsiders. And do it on both sides. There is no other recipe.

All Articles