Как каменщик дядя Толя учил программистов
Довелось мне на стройке поработать, когда студентом был. Недолго, всего неделю. Но за это успел лицезреть целую жизнь, с необычными персонажами, перипетиями и, конечно, драмами.
Аналогичные драмы я вижу теперь каждый день на работе. Хотя, на стройке были каменщики, прорабы и разнорабочие, а на работе — программисты, аналитики, разработчики, руководители проектов и начальство.
Поглядим, чему же программисты могут научиться у каменщика дяди Толи.
Исходная на стройке
На стройке работали три каменщика — Костя, Рустам и дядя Толя. Косте было лет 25, Рустаму под 40, дяде Толе 50–60 (видимо, поэтому к его имени добавили уважительное «дядя»). Я, и еще человек 15 студентов и школьников, были разнорабочими — принеси, подай, иди дальше, не мешай.
Строили мы двухэтажное здание — вроде, будущее кафе. Когда я пришёл, работа велась над вторым этажом. Дядя Толя строил западную стену, Костя и Рустам — северную. Южную стену пока не строили, т.к. через неё поднимали стройматериалы.
А теперь немного прервёмся и посмотрим, как дела у программистов.
Исходная на проекте
Клиент, силами каких-то чертей, внедрил себе ERP-систему. Черти, получив деньги и «запустив систему», сбежали. Люди начали работать и, разумеется, огребли трудностей.
Во-первых, были плохо обучены, поэтому не всегда знали, что делать. Во-вторых, не очень хорошо были перенесены данные из прошлой системы, и нужны были корректировки. В-третьих, доработки системы под клиента плохо работали — то ли спроектированы плохо были, то ли просто до ума не были доведены.
И вот вместо чертей пришла большая серьёзная компания. Т.к. работы по нормальному запуску было много, привлекли людей из двух отделов. Первый — программисты, второй — разработчики с аналитиками.
Программистам поручили обучение, корректировку перенесённых данных, мелкие доработки и текущую поддержку. Разработчикам — исправление архитектурных ошибок чертей в больших доработках.
А теперь вернёмся на стройку и поглядим, как дела у дяди Толи и его друзей.
Процесс на стройке
Костя и Рустам посмеивались над дядей Толей, потому что он всё делал не по уму — просто брал и фигачил. На любом растворе, из любого кирпича. Костя и Рустам требовали качественных материалов.
Когда цементовоз только-только приезжал — раствор был свежий, и все каменщики работали. Когда раствор подсыхал, становился более вязким, Костя и Рустам останавливали работу и требовали заказать следующий цементовоз. Дядя Толя просто звал нас, разнорабочих, и говорил — ребятки, пару вёдер воды плесните, и лопатами, лопатами поработайте (бетономешалки не было).
Когда привозили новый кирпич, все каменщики работали. Когда поддоны пустели, и оставалось много битого кирпича, Костя и Рустам требовали нового завоза — нельзя же делать кладку из половинок, даже если она внутренняя. Дядя Толя звал нас и говорил — так, пробегитесь по стройке, соберите всё от половинки и больше, и ко мне. И фигачил внутреннюю часть стены.
Костя и Рустам говорили, что дядя Толя — шабашник, который просто рубит бабло. Дело в том, что каменщикам платили за кубометры выложенных стен. Костя и Рустам не могли позволить себе отступить от высоких стандартов ради быстрого результата.
Так и работали. Дядя Толя шёл примерно с той же скоростью, что Костя и Рустам вместе. Начальство не проявляло к работе дяди Толи никакого интереса. За Костей и Рустамом присматривали. Но, увы, не досмотрели.
А пока вернёмся к программистам и разработчикам.
Процесс на проекте
Программисты работали «от проблемы». Сказали пользователям — пишите, звоните, если чё не получается, будем вместе разбираться и решать. Когда их спросили, почему они не смотрят «на систему в целом», те ответили — чего на неё смотреть, она точно рабочая, мы её много раз внедряли. Это ж 1С: ERP. Там не всё гладко, но почти всё точно работает.
Им сказали — проведите обучение всех пользователей. Программисты сказали — нафига? Чтобы денег побольше содрать? Итак проект на волоске висит, зачем усугублять. Просто прошлись по пользователям, поспрашивали, посмотрели, и обучили по месту тех, кто был совсем ни в зуб ногой. Таких, кстати, менее четверти оказалось.
Когда возникали трудности или ошибки на каких-то участках, программистам говорили — пересмотрите процесс, всю цепочку, может там перевнедрять надо. Программисты говорили — не, там ошибки в мелочах. Система построена на процессном подходе, там почти всё железобетонно, принципиальную ошибку допустить сложно.
Разработчики с аналитиками взяли месяц на анализ доработок, выполненных предыдущими чертями. Чего они там анализировали — им одним известно. Но счет выставили на 3 человекомесяца — нетрудно догадаться, что анализировали в шесть глаз. В итоге пришли к неутешительному выводу — все доработки надо переделывать, с нуля. Анализ, проектирование, разработка, тестирование, опытная эксплуатация.
Заказчик, как ни странно, согласился. Если верить слухам — потому, что за месяц анализа программисты порешали большинство текущих проблем пользователей, и даже выполнили несколько доработок.
Однако, была небольшая дилемма: как работать, пока аналитики анализируют, а разработчики — разрабатывают? Кривая и косая доработка под нужды заказчика, которую делали черти и собрались сносить разрабы, была прям сильно нужна. Точнее, нужна была функциональность, заложенная в этой доработке.
Выход предложили программисты. Сказали разрабам: вы там пока думайте и разрабатывайте, а мы уберём самые гнусные косяки в поделке предыдущих чертей. А когда закончите — перекинем данные. На том и порешили.
Разработчики с аналитиками, естественно, посмеивались над программистами. Потому что те питаются подножным кормом, и ничем Высоким не занимаются. А программисты просто фигачили.
Но вернёмся на стройку.
Результат на стройке
Результат оказался совершенно неожиданным. Если помните, дядя Толя строил западную стену, Костя с Рустамом — северную. Стены были примерно одинакового размера, и в обеих было по два окна, на одной линии, одинакового размера. Соответственно, каменщики должны были оставить под эти окна дырки.
Оставить-то они оставили. У дяди Толи — всё, как задумано в проектной документации. У Кости и Рустама дырки под окна получились на разной высоте, с разницей примерно в полметра. И одно окно было смещено на метр в сторону.
Дядя Толя смеялся. Мы, разнорабочие, смеялись. Костя и Рустам махали руками и что-то громко кричали. Но прораб кричал громче, и некоторые слова даже можно процитировать. Например, «зато, ***, кирпичи у вас только целые, и раствор, ***, свежий!».
А что у программистов с разработчиками?
Результат на проекте
Как вы, наверное, уже догадались, программисты быстро довели до ума то, что делали предыдущие черти. Так как работа клиента в системе началась недавно, ошибки архитектуры можно было исправить почти безболезненно — не было нужды обрабатывать старые данные. Примерно в течение месяца доработанная функциональность нормально фурычила и полностью устраивала пользователей.
Но пользователи ничего не решают на проекте. Через три месяца проснулись разработчики и аналитики, выкатили своё Детище — примерно ту же функциональность, только написанную с нуля. Ну и акт на 9 человекомесяцев. А счет на оплату не давали, потому что работы были предоплачены. И пришло время начальству клиента что-то решать.
Что может решить руководитель проекта со стороны заказчика, если он подписал в оплату счет на 9 человекомесяцев? Тут и к бабке не ходи. Он решил внедрять результат работы разработчиков и аналитиков. Несмотря на то, что поделка чертей уже была доведена до ума и устраивала пользователей.
Ну чего, программисты быстро написали перенос данных, перекинули одни таблицы в другие, и отошли в сторону — не мешать же разработчикам с аналитиками в опытной эксплуатации.
Через две недели разработчики с аналитиками сбежали, как предыдущие черти. Кто в срочный отпуск, кто сказался больным или очень-очень занятым. Заказчик был в ступоре — одно не работает, второе работает, но использовать нельзя (РПЗ запрещает).
Дело быстро дошло выше РПЗ — до директора. Тот, не долго думая, повелел остановить все работы. И начались длинные разбирательства — за что оплатили 9 человекомесяцев, почему разработчики с аналитиками сбежали, что они там в ТЗ написали, кто подписывал и т.д.
Пока вернёмся на стройку и поглядим, чем закончилось.
Чем закончилось на стройке
Ничего сверхъестественного — просто переделали. Заложили неправильное окно, аккуратно выдолбили правильное. Пришлось, правда, повозиться.
Исправлял, естественно, дядя Толя. Костю и Рустама выгнали в тот же день.
А чем закончилось на проекте?
Чем закончилось на проекте
Директор собрал Большое Совещание. Со стороны подрядчика приехали программисты (разработчики с аналитиками, как мы помним, сбежали). Директор кричал и ругался, требовал объяснения и решения.
Когда проорался, программисты спросили — так тебе объяснение или решение надо? Тот немного опешил, но сказал — и то, и другое. Программисты спросили –, а в каком порядке? Сначала решение, потом объяснение.
Программисты и говорят — есть быстро и бесплатно, есть долго и дорого. Что выбираешь? Директор выбрал быстро и бесплатно. Программисты сказали выкинуть то, что сделали разработчики с аналитиками, и пользоваться предыдущей версией доработки.
Директор опешил — чё, говорит, так можно было? И пристально посмотрел на РПЗ. Тот начал что-то тараторить, но директор его грубо прервал.
Через пару дней всё заколосилось. Правда, разборки про 9 человекомесяцев идут до сих пор.