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

от автора

Перевод статьи "Дяди Боба". Оригинал

В последнее время меня критикуют за то, что я связываю 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 не является необходимым условием профессионализма, которым, я считаю, он когда-то станет.

Используете ли вы TDD?

Никто ещё не голосовал. Воздержавшихся нет.

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

ссылка на оригинал статьи https://habrahabr.ru/post/279713/


Комментарии

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *