Лучшее - враг хорошего! Или почему уволили Рому?
Примерно в 2007 году я работал вместе с одним очень толковым парнем - Ромой. Он схватывал все на лету и мог делать достаточно сложные вещи. Например, реализовал потоковую выгрузку изменений из "1С:Розницы 8" в "1С:Бухгалтерию 7.7" на базе "Конвертации данных 2.0".
От одного из украинских банков пришел заказ на написание универсальной обработки по загрузке их выписки из файлов, так сказать упрощенный клиент-банк. Рома уже себя отлично зарекомендовал как разработчик, никто не увидел подводных камней в новой задаче, а потому именно ему выпал жребий писать загрузчик банковской выписки...
Писал он достаточно долго и в конце-концов отдал на тестирование представителю банка. Задача вернулась с замечаниями. Снова отправил и снова получил назад на переделку. Никто не ожидал, что такая простая задача займет ТАК много времени. Плюс это был репутационный проект - мы бесплатно пишем обработку, банк дает ее своим клиентам и его клиенты за обслуживанием должны были приходить к нам. Ситуацию усугубляло то, что Рома не мог объяснить из-за чего заминки и проблемы, а потому, в конце-концов, его отстранили от задачи и работу передали мне.
От увиденного я немного офигел 🤯
Для понимания: язык 1С - это процедурный язык. Обработки 1С - это один общий программный модуль и экранные формочки (обычно одна) с собственным модулем для обработчиков событий. Больше мест для размещения кода нет! Только в этих монолитных текстовиках, где по очереди расположены абсолютно все функции.
Так вот, я увидел попытку изобрести ООП! Это были сотни микро-функций, большая часть которых просто меняла уровень абстракции модели, в самом низу которой находились геттеры и сеттеры. Т.е. помимо стандартных десятков обработчиков действий пользователя (выбор файла, настройки мэпинга данных и так далее), там дополнительно был настоящий лабиринт из фрагментов псевдо-классов. У меня ушло несколько часов на схлопывание всех этих тысяч строк кода в пару сотен, которые внезапно стали работать именно так как и требовалось по заданию. Теперь работу успешно приняли.
Не смотря на то, что Рома запутался в своем же творении, я его попытку оценил. Сейчас, используя EDT, у него вероятно получилась бы значительно лучше его попытка сделать универсальный загрузчик файлов произвольного формата.
Только руководство не давало Роме задачу на создание универсального загрузчика файлов произвольного формата. Руководство давало задачу сделать загрузчик файлов конкретного формата конкретного банка. И руководство ожидало быстро получить результат для финализации партнерской сделки.
Другими словами, руководство не оценило энтузиазм и широту технического вижена Ромы и уволило его. Причина увольнения: Overqualified.
Морали у истории не будет. Тут и про вред перфекционизма можно было бы сказать. И про "не знаешь - спроси". И про постановку и контроль задач упомянуть. И про качество найма...
Главное, что история разрешилась хорошо - компания без Ромы стала работать более "прогнозировано", а Рома нашел работу, где его потенциал меньше ограничивали (если не ошибаюсь, вообще ушел из 1С).
Post #124
133
- 👍 6
- 🤔 1