Природная лень, или "У меня все работает" |
20.10.2015 10:57 |
Автор: Maaret Pyhäjärvi. Оригинал статьи: http://visible-quality.blogspot.ru/2015/09/natural-laziness-and-it-works-on-my.html Перевод: Ольга Алифанова. Когда Ллевелин Фалько учит детей программировать, его "первое правило программирования" дети запоминают накрепко. Оно гласит, что программисты очень ленивые. Например, когда они хотят обратиться к некоторой функции, они не пишут её название полностью. Достаточно ввести две-три буквы, и пусть инструменты выполнят всю остальную работу за вас там, где это возможно. Я не могу с этим согласиться – насколько я знаю из своего опыта работы, большинство программистов вовсе не ленивы. Программисты автоматизируют рутинную работу, они выявляют задачи, которые регулярно повторяются (или даже потенциально могут повторяться), и превращают их в код. Это требует таких усилий, что лень - далеко не первое качество программиста, которое приходит мне в голову. Но иногда программисты действительно проявляют такую способность лениться, что это не укладывается у меня в голове. Лень заставляет их думать, что их компьютер – это практически центр вселенной, и подсказывает им знаменитый универсальный ответ «У меня все работает».
Однажды я тестировала небольшие изменения в пользовательском интерфейсе. В результате я завела несколько простых багов - в одном диалоговом окне был великоват отступ, и некоторые области были серыми, и поэтому казались неактивными. Эти минорные баги какое-то время ждали своей очереди на доработку, и когда их наконец исправили, я была очень счастлива. Ура, у нас на два бага меньше! Мы сделали еще шажок в направлении подхода «остановись и реши проблему, не откладывая ее на потом», в котором мы планируем развиваться! Итак, я приступила к тестированию исправлений. Я проверила проблемные места, и, действительно, обнаружила, что они изменились. Однако первым, что бросилось мне в глаза, было появление черного элемента, расположенного не на своем месте. До внесения правок он был серого цвета, и располагался правильно. Я продолжила изучать продукт, и нашла тьму таких косяков - казалось, что в процессе изменения одной-единственной мелочи программисты испортили всю программу. Я постаралась дышать равномерно, осознавая, что разработчик вообще не проверял собственные правки. Сделав пару глубоких вдохов, я подумала, может быть я не совсем права, и он просто не проверил результат своей работы в окружении, которое похоже на среду, где программа будет эксплуатироваться. Вот она, лень программистов! Они всегда надеются, что их личная среда разработки идентична той, в которой программа впоследствии будет работать. А мне постоянно приходится сообщать им нерадостную новость, что это совсем не так. Как выяснилось, исправления в стилях были неудачно уложены в систему контроля версий и перезаписались поверх более нового кода. Разработчики были счастливы - причина нашлась в среде разработки, им по-прежнему можно не выходить за пределы своей комфортной зоны! Увы, баг исправлен, но проблема не исчезла. Она в том, что среда разработки и среда конечного пользователя - это не одно и то же даже в таком крошечном проекте, как наш. В более крупных проектах размах различий еще больше. Если мне не удается решить эту проблему, перебарывая природную лень разработчиков и заставляя их выглядывать за пределы среды разработки, я иду другим путем. Я превращаю ее в задачу создания автотестов, работающих в разных средах. А пока что я стараюсь дышать медленно и размеренно, и призывать программистов к использованию других окружений как минимум для некоторых типов правок. И поэтому я давно уже не слышу слов "У меня все работает". |