
Большинство программного обеспечения написано очень плохо. При этом на нем зарабатывают деньги. Оно может иметь миллионы пользователей, быть переведено на несколько языков, тем не менее, с точки зрения исходного кода и архитектуры, быть говном компиляцией из арти-паттернов и спагетти-кода, которая развалится при первом неверно сформированном запросе.
Так ли это, почему и что делать.
Быстренько для тех, кто думает, что у него продукт вполне себе окей и можно дальше не читать.
Сначала для технарей. Ответьте сами себе: вы следуете принципам 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, там напрямую советуют работать ровно столько чтобы не выгнали. А это значит, никак.
Вот и получается замкнутый круг, одни не могут, другие не хотят.
Что с этим делать? Каждый день развиваться. Улучшать задачи, подходы, применять лучшие практики и принципы. Не соглашаться с тем, что вам предлагают ковыряться в этом. Делать так, чтобы вам было не стыдно показать свой проект людям со стороны. Причем делать это с обеих сторон. Другого рецепта нет.
ссылка на оригинал статьи https://habr.com/ru/post/495156/
Добавить комментарий