Pull to refresh

Профессионализм и TDD

Reading time 3 min
Views 7.8K
Original author: Роберт Мартин
Uncle BobПеревод статьи "Дяди Боба". Оригинал

В последнее время меня критикуют за то, что я связываю TDD с профессионализмом. Я признаю себя виновным и утверждаю, что связь существует.

Сразу скажу, что существует довольно много программистов, которых я уважаю, но которые либо не практикуют TDD, либо не считают, что это влияет на профессионализм. Например, Джим Коплиен (Коуп), Ричард Хикки и Дэвид Хайнемайер Хенссон (DHH).

  • Как я уже говорил много раз ранее, Коуп является моим героем. Его труды в 90-е и позже оказали огромное влияние на мой образ мышления и на мою карьеру.
  • Ричард Хикки является автором Clojure. Мы с ним общались несколько раз в 90-е, когда он ещё программировал на C++. Сейчас Clojure — это мой основной язык, и я стараюсь читать как можно больше трудов Хикки, и слушать как можно больше его докладов.
  • DHH — это автор Rails; фреймворк, который сделал больше для сообщества Ruby, веб-сообщества и всей индустрии программного обеспечения, чем любой другой, который я могу вспомнить. Его влияние на меня и на отрасль в целом сложно переоценить.

Это хорошие, уважаемые, профессиональные программисты. Я использую их наработки. Я доверяю целостности их суждений. Мне повезло встретиться с ними и многому у них научиться. Они доказали свой профессионализм. Им вовсе не нужно моё одобрение.

Так как же я могу верить в то, что TDD ассоциируется с профессионализмом, когда есть профессиональные программисты, мнение которых я высоко ценю и которые не согласны с этой взаимосвязью?

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

Игнац ЗеммельвейсХочу рассказать историю о венгерском враче Игнаце Земмельвейсе, который в 1847 году достиг шестикратного снижения уровня смертности в своём родильном отделении просто заставив врачей мыть руки перед осмотром беременных женщин. Земмельвейс пытался убедить своих коллег из других больниц ввести мытьё рук как обязательную процедуру. Они сопротивлялись — более 60 лет. Причины их сопротивления звучат похоже на аргументы статей, которые утверждают в последнее время, что TDD мертв.

Врачи в то время не мыли руки. Они не видели никаких причин, чтобы мыть руки. Для них чистота и болезни были совершенно не связаны. Для нас, в 21-м веке, в это трудно поверить; но всего 167 лет назад было так же трудно поверить, что мытьё рук не было просто причудой.

Были ли эти врачи непрофессионалами? Конечно нет! Они работали как можно лучше с теми знаниями, которые у них были. Их недоверие к Земмельвейсу теперь кажется необоснованным, потому что мы сейчас знаем, что Земмельвейс был прав. Но сложно судить тех врачей, которые не верили каждому, кто приходил к ним со странными идеями. Прошло много времени и, к сожалению, случилось много страданий и смертей, прежде чем мытьё рук было принято в качестве обязательной медицинской процедуры.

Если наши врачи сегодня не будут мыть руки, мы назовём их непрофессионалами и потребуем их увольнения. Такое поведение недопустимо. Но тогда врачи, которые отказывали Земмельвейсу, были уважаемыми и профессионалами. Они не были злыми. Они даже не были глупыми. Их единственная вина состояла в том, что они были людьми.

Может показаться, что я хочу сказать, что я настолько же важен, как Земмельвейс. Я вовсе не хочу себе такого культового статуса. В конце концов, я могу быть неправ. TDD может не быть эквивалентом мытья рук, независимо от того, насколько сильно я в это верю. Если это так, то мои статьи и проповеди на эту тему пропадут в забавных сносках в статьях об истории программного обеспечения. Сносках, которые удалят лет через десять. В таком случае пусть так и будет.

Но пациенты умирают! Healthcare.gov. Knight Capital. Toyota. Этот список можно продолжать; и количество жертв увеличивается в прогрессии. Наше общество в целом становится все более и более зависимым от программного обеспечения, которое мы производим; и неудачи с каждым годом становятся всё более значительными.

Что-то должно измениться… или мы придём к огромной катастрофе.

Если я прав… Если TDD является столь значительным для индустрии программного обеспечения, как мытьё рук для медицины и убережёт нас от того, что мы все провалимся в тартарары, то Кент Бек будет провозглашен героем, и использование TDD будет нести всю тяжесть критерия профессионализма. После этого те, кто отказывается практиковать TDD, не будут приниматься в ряды профессиональных программистов. И меня не удивит, если в один прекрасный день TDD обяжут использовать по закону.

А теперь вы можете не согласиться со мной о TDD. Это нормально, и я готов обсуждать это. Но я не буду называть вас непрофессионалом, и я даже не буду думать, что вы непрофессионал. Потому что в данный момент в истории TDD не является необходимым критерием профессионализма, которым, я считаю, он когда-то станет.
Only registered users can participate in poll. Log in, please.
Используете ли вы TDD?
4.57% всегда 18
13.96% часто 55
27.41% редко 108
19.29% не тестирую 76
34.77% тестирую, но не по TDD 137
394 users voted. 88 users abstained.
Tags:
Hubs:
0
Comments 41
Comments Comments 41

Articles