Hazardous Enthusiasm

The following text is a partial translation of the original English article, performed by ChatGPT (gpt-3.5-turbo) and this Jekyll plugin:

Ежедневно я работаю с многими программистами, которые вносят свой вклад в мои проекты с открытым исходным кодом, будь то добровольцы или те, кто получает деньги через Zerocracy (и все мои программные проекты с открытым исходным кодом). С годами я понял, что в их поведении есть шаблон, о котором мне нужно быть в курсе. Я называю его “опасное энтузиазмом”. Вот симптомы.

Новый разработчик присоединяется к проекту. Он полон энергии, много говорит, много времени проводит над проектом, подает новые тикеты и предлагает улучшения. Он выглядит как отличный кандидат, и мы все рады видеть его на борту. Он находка!

Затем, когда ему становится яснее, он начинает критиковать архитектуру. Он обращается ко мне в Telegram и спрашивает, понимаю ли я, что архитектура - это полный беспорядок и что, если мы не изменим ее немедленно, проект погибнет через несколько недель. Я пытаюсь заверить его, что понимаю, но… Он сразу предлагает улучшение: нам нужно все переписать заново или хотя бы избавиться от этой коллекции объектов и заменить ее одиночкой и очень хорошей ORM-библиотекой, которую он использовал в течение года, и она просто замечательна, и т. д… Ну хорошо? Давайте сделаем? Почему бы и нет?

Мне мало, что сказать, и вместо этого прошу его подать тикет. Я пытаюсь заверить его, что я исследую возможности, как только смогу. Я также пытаюсь в очень вежливой форме напомнить ему, что я здесь архитектор, и хотя его идеи звучат замечательно, я не могу принять их все сразу. Тогда он говорит: “Дайте я вам покажу!”

Через несколько дней я получаю огромный pull request с множеством изменений, которые выглядят интересно, но полностью противоречат почти каждому принципу, который я внедрил в существующую архитектуру. Что я делаю? Мне его жаль. Мне приходится отклонить pull request и попытаться объяснить почему. Но объяснение разумное найти не удается. Я просто плохой парень, которому не нравятся инновационные идеи.

Что происходит дальше? Он исчезает.

Я видел это происходит много раз с разными людьми. Все они были несостоятельными программистами? Я не думаю. С технической точки зрения они были отличными. Но им всем не хватало очень важного навыка, который, по моему мнению, отличает профессионального программного инженера от человека, который просто научился писать код на Java: микрозадачи.

Они просто не знают, как разбить свои изменения, которые в большинстве случаев далеко не бесполезны, на маленькие фрагменты и поставить их поэтапно. Они хотят втиснуть все, что у них есть в голове, в один большой кусок. Конечно, у них не получается. Потому что перед ними стоит злой парень: я, архитектор.

То, что делает их случаи фатальными, - это энтузиазм. Если бы они были менее агрессивными и стремились делать все правильно, они бы выжили. Но они не могут ждать и не хотят применять полумеры. Они хотят исправить мир в одном огромном pull request.

Почему я не могу просто принять их изменения и позволить им исправлять код так, как они хотят, вы можете спросить? Потому что я знаю, что даже если они могут выглядеть как хорошие программисты, они будут плохими архитекторами именно из-за отсутствия навыка микрозадач. Если я приму то, что они предлагают, я просто передам им свои архитектурные обязанности. Теперь это будет их архитектура. И что не так с этим? Ну, их отсутствие этого навыка. Они не смогут быть архитекторами, потому что не смогут управлять изменениями, доставлять их поэтапно и понимать динамику коллаборативной работы с исходным кодом.

Они хакеры, а не дизайнеры или архитекторы.

Честно говоря, мне жаль, когда теряю их.

Translated by ChatGPT gpt-3.5-turbo/42 on 2023-11-17 at 14:38

sixnines availability badge   GitHub stars