Pull to refresh

Два типа разработчиков ПО

Reading time2 min
Views13K
Original author: Thorsten Ball

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

Согласно моей теории, есть два типа разработчиков ПО:

Когда тип 1 узнаёт о задаче, он думает: «Это легко, люди просто могут делать X».

Когда о той же задаче узнаёт тип 2, он думает: «Это очень сложно, ведь для этого нужно, чтобы люди делали X».

Тип 1 предполагает, что задача проста, если она не техническая, потому что «можно просто попросить людей делать X». Тип 2 считает, что она сложна, потому что она не техническая.

Пример. Тип 1: «Это легко, мы можем просто попросить людей не выполнять развёртывание в это время».

Тип 2: «Постойте-ка, но что нам делать, когда люди будут выполнять развёртывание в это время?»

Другой пример. Тип 1: «Это легко, мы просто задокументируем этот процесс и попросим людей следовать документации».

Тип 2: «Как мы можем гарантировать, что люди вообще это прочитают?»

И ещё один пример. Тип 1: «Это легко, просто создадим систему, которую будут использовать эти четыре стороны, и которая гарантирует, что никто не будет жульничать друг с другом».

Тип 2: «Это очень сложно, потому что нам нужно сделать так, чтобы четыре стороны использовали одну систему».

Я пока не совсем уверен, как чётко прочертить границу между типами 1 и 2, или как дать им точное определение. Как я и говорил, это крошечная теория.

Однако если объяснять вкратце, то я бы сказал, что тип 1 не учитывает людей, а тип 2 знает, что в основе всей работы по разработке (и её задач) находятся люди.

Тип 1 верит в Разработку в большой буквы Р, в которой есть только холодные и непреложные истины; в ней есть математика и физика; это прикладная наука. Это то, что мы видим в фильме «Марсианин».

Тип 2 задаст вопрос: «Хорошо, но что, если главному герою „Марсианина“ пришлось бы строить всё это не для себя, а для других?»

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

Однако на самом деле всё наоборот! Это не цинизм, разработка второго типа принимает тот факт, что мы создаём системы с людьми и для людей, и берётся за ещё более серьёзную задачу: выполнять работу, несмотря на создаваемый этим хаос.

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

Такие разработчики принимают тот факт, что люди не машины, и сколько бы они не говорили, что они рационально мыслят, ты всё равно знаешь, что даже самые упорные защитники принципа «выбирай для работы лучший инструмент» иногда выбирают его из-за красивой GIF в README. Тип 2 знает, что никто не будет читать документацию, если она не увлекает и её сложно читать. Он использует тот факт, что люди установят обновления безопасности, чтобы получить новые эмодзи. Он учитывает, что не все будут следовать рекомендациям, потому что у каждого бывает такой полдень четверга, который ощущается как вечер пятницы.

И добавлю ещё кое-что: мне кажется, что именно из-за того, насколько хаотичны наши продукты, они становятся такими прекрасными.
Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
Total votes 27: ↑24 and ↓3+38
Comments26

Articles