📜 ⬆️ ⬇️

You are NOT a software engineer!

From the translation: I think almost every developer read a work of art called “If programmers built houses”. This comic story draws a parallel between construction and software development. Suddenly! It is clear that in every joke there is some truth. And now, after years, I stumbled upon another comparison. It seemed to me more accurate, so I decided to translate it into Russian and share it with the community.



You are not a software engineer. You do not build skyscrapers. You do not build bridges.
')
You grow gardens.

You are a programmer gardener.

Do you plan your gardens in such detail that you know where each leaf will be located before you plant one seed? Do people make assumptions (or do they promise in your organization?) How many colors will exactly grow at the same time of year? Do you have a bonus associated with this? The fact that it would be quite reasonable to plan for a skyscraper seems a little ridiculous when you talk about a garden.

You probably have a clear vision of how your garden will look like a week ahead. You may even have a rough estimate of what will happen to him in a year. But you do not understand where each branch, leaf, stalk and flower will be in a year, and if you say the opposite, you still only guess.

If you were building a bridge or skyscraper and you would have told me before you begin, that you would know exactly how it will look when it is finished - I would believe you. If you told me that you would know with an incomprehensible degree of accuracy, how long it would take - I would believe you again. This is how engineers work. You tell me the same things about the garden, and I will say that this is nonsense. Tell me that you are going to grow him faster, hiring more gardeners, and I will laugh to tears.

So why are so many gardens being cast, but so many skyscrapers being built? With a few exceptions, the technique of building skyscrapers is similar, whether you are in Europe or in Singapore. For gardens this does not work. Each garden is unique, because the environment also varies. Even gardens that are within sight of each other can have completely different soil. That is why for the lowest price you can probably build the same bridge as the highest price, but your company will not be able to grow gardens like Google.

Remember that time when someone in your company unsuccessfully used a flexible methodology (agile) of gardening, and then went around saying that it was nonsense and it did not work? At best, this will help grow your garden, but this will not be enough to save it. Your garden may have died before it, as a victim of the climate of your organization. Have you tried to grow a rain forest in the desert? You simply cannot plant the same saplings as Facebook, Flickr and Twitter and expect them to take root, regardless of the quality of your gardeners or the climate of the organization.

Unlike a skyscraper, weeds will grow in your garden. It will never be “finished”. The fact that you have stopped spending money on it does not mean that it is finished. If you stop weed control, they will eventually win, and soon the landing will look like a simpler solution than weeding. The environment around your garden will also always change, and a neglected garden will become harder and harder to maintain.

In most countries, engineers need a license to build a bridge. For gardeners, there is no such quality control confirmed by the government. Unfortunately, the quality of your gardeners has more influence on the success of your gardens than any other factor — you better be a master at separating the wheat from the chaff. Only an experienced gardener will truly recognize another good gardener when they see each other. Those who simply managed gardening projects will have no idea what they should look for (although they will not know that too). And if you are not a gardener, but you need to recruit good gardeners, then quickly find an experienced gardener to whom you will entrust the inspection of your candidates. You cannot explore gardening in the classroom: remember that you need to focus on the gardens that your candidates grew in the past, not how much gardening theory they remember from school (it will almost never matter for a climate in which you are working).

At one time, the engineering metaphor was a ray of light, and may even have been used for accuracy, but now it only helps non-technical people make unrealistic assumptions about how software is built.

I am a programmer gardener.

Like you.

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


All Articles