Кто лучший друг программиста?

Данная статья носит скорее умозрительный характер. Поэтому стоит рассматривать её не как эссе, а как обычную байку.

Обзор понятия

Главные отличительные признаки понятия “Дружба” следующие:

1. Доверие
2. Симпатия
3. Терпение

Нельзя назвать субъект Другом, не испытывая доверия к нему.

Друг должен быть симпатичен по-человечески.

Терпение требуется для сохранения дружбы. Как говорилось в одном фильме “У всех свои недостатки”.

Если говорить о взаимопомощи, то это лишь следствие: без взаимопомощи сложно взрастить доверие и симпатию.

Можно вспомнить много пословиц и поговорок про друзей. В них сокрыт исторический народный опыт, который не следует игнорировать:

  • Не имей сто рублей, а имей сто друзей
  • Старый друг лучше новых двух
  • Книга – лучший друг
  • Лучшие друзья девушек – это бриллианты
  • Скажи мне кто твой друг, и я скажу кто ты
  • Собака – друг человека

 

Список кандидатов

Давайте очертим некий список кандидатов в друзья. Каждого кандидата будем соотносить с вышеописанными критериями.

 

1. Собственная голова

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

Программа всегда работает честно, ей не наврёшь. Она не вкалывает за “спасибо” и не реагирует на “ну очень надо”.

В здоровом теле – здоровый дух. Свежая голова – залог хорошего кода.

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

Плохая дружба с собственной головой ведёт к таким проблемам как “говнокод”.

 

2. Инструменты

Сюда я отношу и язык, и среду разработки, и платформу разворачивания, и фреймворки с библиотеками, а также прочие вспомогательные инструменты.
Касательно SAP ERP так сложилось, что вместе всё это — один большой пакет.
Остаётся добавить “до кучи” оборудование, операционную систему, почту, офисные программы…

Почему инструмент всё-таки “друг” ? Да потому, что хороший инструмент, являясь весьма сложным организмом, ведущим свою собственную жизнь – зачастую соответствует характеристикам друзей, определённым выше. Старый и проверенный инструмент лучше непроверенной и новомодной платформы.
Да и в принципе, за каждым инструментом стоят люди, которые их делали (смотри пункт 4).

А если соотносить с требованием к друзьям, то частая смена инструментов является эквивалентом распутному образу жизни (в особо тяжёлых формах – блядство).

3. Напарник

Проекты редко делаются в одиночку – как правило, формируются команды от двух до семи человек. Обмен опытом, замена, взаимопомощь – нередко сплачивают команду.

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

4. Пользователь

Пользователь может быть как вымышленным/виртуальным, так и ключевым реальным. Первое связано с определёнными рисками, ведь выдуманный пользователь может привести вас к ситуации, когда воображаемое не будет соответствовать действительности. А вот дружба с реальным пользователем – безусловно рекомендуется. Последнее сильно повышает качество обратной связи. Если скрываться от таких пользователей, то прохождение сигнала по цепочке “пользователь – первая линия поддержки – вторая линия поддержки – младший консультант – консультант по модулю – программист” может занять несколько дней.

Не любой пользователь может быть другом программисту, так же как и не любой программист может стать другом пользователю.

Пользователем можно быть самому – такое всегда должно присутствовать, если сам используешь программу, которую пишешь.

5. Консультант

Консультант – это человек, который отвечает на вопросы программиста.

Так в SAP ERP сложилось, что аналитик, консультант, постановщик,  тестировщик — это один и тот же человек. И этому есть обоснование.

Тестирование в ERP — это не просто старание “повалить” систему, но и анализ больших и сложных наборов данных . Тестирование “на обезьянках” возможно, но оно будет чересчур грубым и потащит за собой шлейф совершенно лишних замечаний. Впрочем, часто происходит перекрёстное тестирование по специализации, так как модули ERP имеют высокий уровень связанности.

Тестирование – сложный процесс, при котором необходимо хорошо ориентироваться в настройках, чтобы правильно покрывать тестирование вариантами. Надо уметь вводить документы как правильно, так и неправильно. Не все случаи неправильного ввода должны перекрываться системой. Надо знать бизнес-процесс, чтобы в тестировании полностью отслеживать документ: от первичного бумажного документа до попадания документа в какие-либо формы отчётности. Кроме этого надо знать как процессы перекрываются и дополняются. Чтобы сделать верные настройки – надо сделать анализ. Но глупо делать обследование и анализ под проект ERP, не зная возможностей системы, не умея эти возможности включить или настроить. В SAP ERP не на пустом месте существует оттачиваемая годами модульная специализация.

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

Кто-то ещё?

Я кого-то забыл?

Общий ответ: — они не являются другом программиста.
Программист — всего лишь ипостась человека и сотрудника.

Друг детям тот, у кого внутри остался маленький ребёнок.
Как говорилось в одной книге: люди делятся на кошатников и собачников.
Поговорка “Собака друг человека” верна потому, что в человеке внутри есть маленькая собака. И эта внутренняя собака разделяет какие-то общесобачьи ценности (аппетит, преданность, приказы, игра с палкой, ветер в лицо, гулять, лаять, чесаться, косточка). 
А у кошатников – есть внутренний котэ.

Книга – не друг программиста. Книга – еда программиста. Документация – воздух программиста.

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

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

 

Окончательный выбор

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

Любите и цените друзей.

Добавить комментарий

Ваш адрес email не будет опубликован.