Pull to refresh

Удивительно, что ваш продукт еще работает

Reading time3 min
Views15K
Я сейчас открою вам секрет полишинеля. Готовы?

image

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

Так ли это, почему и что делать.

Быстренько для тех, кто думает, что у него продукт вполне себе окей и можно дальше не читать.

Сначала для технарей. Ответьте сами себе: вы следуете принципам clean code, SOLID, DRY и всему тому, что пишут в статьях и конечно у вас нет магических значений в коде. У вас действительно 100% покрытие тестами, у вас есть честный автоматический CI/CD, ваш REST использует все необходимые HTTP коды, а не только 200, 201 и 404. У прекрасно описаны все эндпоинты и минимальный технический долг, а legacy код тут же рефакторится? Если нет, то вы сами все поняли. И это я еще про мониторинг не говорил, да и про много чего.

Теперь для менеджеров. Ребят, вы же не по водопаду работаете, да? Ну и скрам у вас честный, вы же не приравниваете стори-поинты к часам или ко дням и делаете планнинг-покер, обсуждая получившийся результат, да? И обязательно никаких блокирующих задач в спринте и defenition of done у вас есть и после реализации задача сразу попадает в продакшн. У вас есть roadmap продукта, документация, а задачи, передаваемые разработчикам содержат больше трех слов и описывают почему мы это делаем, что мы делаем, как протестировать и что в итоге получится. И описаны все бизнес-кейсы… И это только пару вещей, которые надо делать, мы же с вами знаем.

Те у кого все это есть, можете заканчивать читать статью. У вас уже очень хороший продукт. Скиньте мне ссылочку на него, если несложно, я с удовольствием гляну.

Для тех кто еще тут, а вас я думаю большинство, давайте разбираться почему так происходит и почему это всех устраивает.

Происходит это потому, что менеджеры чаще всего ни черта не понимают в разработке. Они понимают в ROI и KPI, они MBA получали, а если у них и есть какой-то бекграунд типа полу-профильного образования, то они дальше чем условный Hello World не заходили. И вообще, у них сроки горят, а правильно декомпозировать задачу до MVP, без технических знаний, достаточно сложно. Сюда добавляется нелюбовь программистов к менеджерам, помогать они им явно не будут. Вот и остается менеджерам писать повести или романы к историям и придумывать косвенные метрики, чтобы понять, качественно ли была выполнена та или иная задачи. Да только все эти метрики синтетические, никакого отношения к качеству разработки они не имеют, или очень опосредованно.

А что же разработчики. Да собственно говоря ничего, большая их часть ничего не хочет, она и так обладает знанием что обозначают эти буковки. Менеджер все равно ничего не поймет, так что тут мы используем пару антипаттернов и воткнем пару костылей, запустим компиляцию без тестов, ну а зачем их запускать,… и пойдем пить кофе. На опыте так сказать порешали и все. Ну, а то, что сломали деплой, так это неважно, руками развернем.

Практически никто не хочет разбираться в теории, в индустрии очень много тех, кто понятия не имеет, как работает его фреймворк, а всего лишь знает какой метод использовать. Так сказать, используем магию. Из-за того, что разработчиков не хватает, существенно снизился уровень профессионализма.

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

Теперь почему всех это устраивает. Да-да, это устраивает абсолютно всех. Тех кого это не устраивает, либо не работают над этими продуктами, либо рефакторят их и приводят в нормальный вид.

Менеджеров данная ситуация устраивает потому, что они даже не понимают масштабы проблем. Продукт зарелизился и ладно, а баги уже с утра пользователи найдут. В отчете написали, галочку получили, шеф похвалил. Не зарелизились, так это программисты виноваты. В общем, когда есть на кого спихнуть, то и улучшать ничего не надо.

Почему это устраивает программистов? Наверно потому, что многие не могут лучше, ведь, чтобы делать лучше надо постоянно над собой работать. И для многих даже не стоит вопрос: а зачем, — если деньги и так платят. Вы почитайте ebanoe.it, там напрямую советуют работать ровно столько чтобы не выгнали. А это значит, никак.

Вот и получается замкнутый круг, одни не могут, другие не хотят.

Что с этим делать? Каждый день развиваться. Улучшать задачи, подходы, применять лучшие практики и принципы. Не соглашаться с тем, что вам предлагают ковыряться в этом. Делать так, чтобы вам было не стыдно показать свой проект людям со стороны. Причем делать это с обеих сторон. Другого рецепта нет.
Only registered users can participate in poll. Log in, please.
Как вы оцениваете качество разработки вашего продукта?
5.59% Он идеальный, мы следуем лучшим практикам и используем все самое лучшее16
27.97% Хороший код, нормальные процессы, но есть куда стремиться80
48.95% Не идеально, но было и похуже140
26.57% Все плохо: легаси, устаревшие технологии, антипаттерны.76
286 users voted. 38 users abstained.
Tags:
Hubs:
0
Comments72

Articles