August 24, 2022

Немного практики проектирования

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

"Никогда никому не говори, что умеешь устанавливать виндовс!"

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

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

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

Так вот беда в том, что стерпеть такое положение, где заказчик очевидно неправ достаточно сложно, куда проще свалить все на программистов, где они кинулись разрабатывать без всякой документации, или параллельно с документацией (99% разработки происходит именно так) и можно ругать только их, самому входя в комнаты переговоров в белом фраке и с тростью.

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

Присылаю бриф с предзаполненными вопросами, а они мне в ответ "мы создали чат". ;%??%:(*:% - в смысле, зачем?! Мне не чат нужен, а ответы на вопросы. Ну вот как это понимать, пишете вы письмо вроде бы взрослым людям, и задаете в нем конкретные вопросы, а они вместо ответов на вопросы создают вам чат!! И спорят, что это для удобства. Но очевидно же, уже неудобно, т.к. вместо ответов у меня в почте переписка о том, нужен ли чат. Цель и результат.

И вот результаты такой работы. Нашел в интернете Альфастрах и заплатил у них на сайте за полис страхования. В ответ они мне прислали письмо с .... сообщением "мы открыли для вас личный кабинет!!"

"Пианино нет, купите кефир"

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

А миграционный департамент на госуслугах. Его кажется не проектировали вообще, и обращаетесь ли за иностранным паспортом, или за приглашением - у вас вместо результата все что угодно. Система вам не сообщает о том, что приняв платеж, она его не фиксирует и вам нужно везти на коне с собой бумажку об оплате. Я вот так встрял, приехав из другого города и пришлось платить дважды за один и тот же паспорт. Система вам не сообщает о том, что вам нужно поехать на интервью и просто завершает работу с кейсом. Я вот так два месяца ждал простейший документ. А что если бы я купил тур? Вообще говоря, у меня из-за этого дополнительного месяца появились проблемы посерьезнее, чем потеря денег за тур. Кто понесет ответственность? "Это риторический вопрос, Эрл". Как обычно, ответственный повышены, а непричастные наказаны.

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

По сути, практически каждый проект ровно такой пример, когда и со стороны заказчика, и со стороны исполнителей вместо работы какая-то чушь, и вот ты разбирайся с её потоком. Все не успевают, у всех занятость 200%, результатов нет, но каждый раз снова все так же. Почему вы, граждане, руководящие проектами в федеральных компаниях, не можете посмотреть на свои результаты и понять, откуда эта вечная бабаяга? Хотите поспорить, не выйдет - сколько проектов у вас проходит в срок? Ответ - нисколько. Что вы делаете, чтобы это исправить? Ничего. Все ваши действия лишь только попытка снять с себя ответственность, ну или спустить дело на тормозах, по возможности, еще и забраться на местечко получше, зачморив непричастных.

Я знаю, откуда появляются вот эти результаты. Из решений делать решения не проектируя их, из практик проектирования в чате, в целом из Agile-стиля и просто от бесконечного раздолбайства на всех уровнях и этажах. Да и Agile-то липовый, может быть Scrum. Но это же плохой маркетинг, нужно всем говорить, что "у нас Agile" и ходить, расставив локти, представляя себя разработчиком Гугл. Где Гугл и где вы со своим 1эсом? Обучение 2 недели и 10 тыщ рублей. Agile блин. Разработчики блин.

ИТСМ на 1С, это лютый трэш, но если бы это было в "рогах и копытах" все бы ничего, а тут вот так, это какая-то сюр-комедия. Да еще и "мы сделали чат..."

Выводы

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

И никаких чатов. Чат - для маркетинга (целясь в эмоции), болтовни и групп любителей раритетных самоваров. Электронная почта - для того, чтобы вдумчиво писать текст и для вдумчивой же деловой переписки.