Разработка
Григорий Петров: Зачем задавать вопросы на Stack Overflow
Сразу бежать марафон — не всегда разумно. Иногда хочется начать с чего-нибудь диаметром поменьше, например, с ежедневной зарядки.
В одной из предыдущих статей я рассказал о забавной ситуации, когда пришедший проконсультироваться с коллегами разработчик на середине формулирования вопроса сам же на него и отвечает. Как это работает, мы не знаем. Мне нравится гипотеза, что наше воображение некреативно: мозг может создавать что-то новое только во взаимодействии с окружающим миром. А если просто сидеть и «думать», то он лишь проигрывает имеющиеся воспоминания. Об этом я рассказывал, рекламируя выступления на конференциях. Очень и очень хорошая штука, чтобы поднять собственную квалификацию и стать сильнее как программист, менеджер или «айтишник».
Но конференция — это довольно большая история, требующая несколько десятков часов на подготовку, силы воли и целеустремленность. Сразу бежать марафон — не всегда разумно. Иногда хочется начать с чего-нибудь диаметром поменьше, например, с ежедневной зарядки.
И тут на помощь приходит Stack Overflow. Причем не в той его части, где на вопросы отвечают. А в той, где вопросы задают. Оказывается, грамотно сформулировать вопрос на Stack Overflow — это такое выступление на конференции в миниатюре. Чтобы на вопрос ответили, он должен быть хорошо сформулирован: понятным языком, с уточнением всех деталей и минимальным примером кода. Сбор всей этой информации и написание текста вопроса полезны как тренировка. Бесплатный бонус: очень часто в процессе формулирования вопросы мы сами находим ответ.
Если все так хорошо, то почему не стало общепринятой практикой? Почему девять из десяти программистов, которых я знаю лично, предпочитают часами тупить в строки кода, вместо того, чтобы взять в руки ментальные гантели и пойти пятнадцать минут сделать зарядку для ума на Stack Overflow? Две причины.
Инстинкт защиты места в стае
Сюрприз: что-то в нас считает, что задавать вопросы — это значит показывать коллективу, что ты некомпетентен. Боязнь свойственна не всем культурам и не всем людям. Но, по крайней мере для России и моего личного опыта, каждый второй разработчик не хочет задавать вопрос на Stack Overflow потому что «я не дурак, сам разберусь!».
Подозреваю, что тут играет роль сплав культуры, воспитания и доставшихся нам в наследство инстинктов.
По моему опыту, хорошей профилактикой может стать новая традиция в команде разработки: раз в неделю собираться вечером за чашкой кофе и задавать вопрос на Stack Overflow о чем-нибудь насущном. Несколько месяцев таких посиделок творят чудеса. У разработчиков меняется отношение: они видят, что задать вопрос — это не признак слабости, а самая обычная тренировка, как гантели утром. И с удивлением обнаруживают, что на Stack Overflow отвечают. И отвечают очень хорошо.
Английский язык
Про язык я уже писал. Штука для разработчика необходимая. Но мы живем в реальном мире. А в реальном мире изучение иностранного языка — сложно, долго и не все находят силы. Жестокая реальность такова, что у половины наших коллег английский на уровне «читаю и примерно понимаю, что там написано». С таким английским вопрос на Stack Overflow не задашь.
Сюрприз номер два: о том, что задавать вопросы и отвечать на них это не только «обмен информацией», но и крайне нужная разработчикам тренировка, знаю не только я. Поэтому недавно был запущен официальный русский Stack Overflow: http://ru.stackoverflow.com/. Он позволяет не только общаться про такие локальные штуки как «1С», но и спокойно оттачивать искусство сбора информации и формулирования мыслей без дополнительной нагрузки в виде английского языка.
Так что теперь тим лид может спокойно объяснять коллегам: если что-то не получается дольше получаса — добро пожаловать на Stack Overflow. Не потому, что там обязательно быстро ответят. А потому, что это позволит проверить свое видение проблемы, сформулировать мысли и написать код с примером. Велики шансы, что ответ будет найден прямо в процессе формулирования вопроса. У меня это происходит примерно в половине случаев.