Чем хочет стать Stack Overflow, когда вырастет?

stackoverflow
блоги

(Официальный аккаунт) #1

Перевод: What does Stack Overflow want to be when it grows up?, 22 Октября 2018
Автор: Jeff Atwood
Блог: https://blog.codinghorror.com/


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

Мы создали веб-сайт вроде Википедии, на котором программисты могут выкладывать вопросы и ответы. Он называется Stack Overflow.

В последнем месяце исполнилось 10 лет с того момента, как мы с Джоэлом Спольски создали Stack Overflow. Сейчас я занимаюсь другими вещами, что стал делать с 2012 года. Однако если после смерти меня за что-то и будут помнить, то точно за старый добрый Stack Overflow.

Именно в этот момент я должен был бы начать болтать о том, как замечателен Stack Overflow, а также о том, как восхитителен я, будучи его создателем, и так далее.

Меня все это не волнует.

Зато меня волнует, полезен ли Stack Overflow для работающих программистов. Давайте свяжемся с одним из моих кумиров - Джоном Кармаком. Насколько полезен Stack Overflow с точки зрения одного из лучших, по моему мнению, ныне живущих разработчиков?

Джон Кармак: SO (Stack Overflow), наверное, добавил в мировой оборот миллиарды долларов благодаря увеличившейся продуктивности программистов.

Не буду лгать, 17 сентября 2013 был довольно неплохим днем. Когда я прочел это, у меня буквально пошли мурашки по коже. Это было не потому, что я всегда читаю слово “миллиарды” голосом Карла Сагана. Это была приятная противоположность любого другого дня, который я провожу в Твиттере. Там я вижу гнетущую, бесконечную литанию коллективных человеческих страданий и людей, которые кричат друг на друга. Кстати, стоит проверить Твиттер и узнать, кто же еще сегодня в Интернете оказался не прав.

Я смущен чести, связанной с общественными полезными данными, которые Stack Overflow открыл для целого поколения программистов. Но это делал не я.

  • Это делали вы, когда отправляли хорошо исследованный вопрос на Stack Overflow.

  • Это делали вы, когда публиковали сжатый и понятный ответ на Stack Overflow.

  • Это делали вы, когда редактировали ответ или вопрос на Stack Overflow, чтобы улучшить его.

Все эти небольшие вопросы и ответы, которые были добавлены работающими программистами со всего мира, создали ресурс Творческого общества (Creative Commons), который может поравняться с Википедией в нашей области знаний. Это, вообще-то, потрясающе.

Истории успеха - это скучно. Мир полон людей, которым, по сути, просто повезло, а они не могут перестать рассказывать окружающим о том, что этому событию они обязаны своему труду и смелости. Провалы мне кажутся куда более поучительными. Когда я создаю бизнес и планирую будущее, я принимаю роль Эксперта в Сфере Бездны и начинаю игру в гляделки. Мне просто нравится это делать, знаете, для себя.

И если вы долго смотрите в бездну, то бездна тоже смотрит в вас. - Фридрих Ницше

Итак, теперь я хочу ненадолго заглянуть в эту прекрасную бездну и вникнуть в проблемы, с которыми, как мне кажется, Stack Overflow столкнется в ближайшие 10 лет. Перед тем как я начну, хочу, чтобы некоторые вещи были предельно ясны:

  1. Я не работал в Stack Overflow никаким образом с февраля 2012 года. С этого момента я вносил ноль последовательных рабочих моментов, причем в некоторой степени по собственному желанию. Есть ли у меня мнение о том, как нужно что-то делать? Эм, а вы вообще со мной встречались? Отправляю ли я сообщения людям время от времени, говоря о вышеупомянутом мнении? Я могу это сделать, но, честно говоря, стараюсь минимизировать такое поведение. Думаю, архив моей электронной почты достаточно адекватен.

  2. Люди, работающие в Stack, восхитительны, и большинство из них (включая многих из коммьюнити Stack Overflow, кстати говоря) могут изложить свою миссию лучше (и, может быть, немного менее раздраженно), чем мог я тогда, когда ушел. Доверил бы я им мою жизнь? Нет. Но я бы доверил им жизнь Джоэла!

  3. Самая суть Stack Overflow состоит в том, что эта система не обязана ни мне, ни Джоэлу, ни какому-либо другому Великому Человеку. Stack Overflow работает потому, что он наделяет силой обычных программистов со всего мира, таких как вы или я. Мне кажется, все это сходно с родительством. Цель - позволить вам, детям, в итоге вырасти в адекватных, умелых взрослых, которым больше не нужно (или которые не хотят этого), чтобы вы болтались рядом.

  4. Поймите, что вы читаете сильные мнения, в которых слабо убежден слабые мнения, в которых сильно убежден соучредитель, потративший огромное время на работу с коммьюнити в первые 4 года жизни Stack Overflow, желая сделать так, чтобы правила и нормы сайта соответствовали потребностям пользователей. Это лишь мои мнения. Мне нравится думать, что мои точки зрения основаны на какой-либо информации или что я достаточно квалифицирован, чтобы попробовать их выразить. Но последнее никогда не останавливало меня от того, чтобы сделать что-либо. Сегодня меня тоже это не остановит.

Во-первых, Stack Overflow - это Вики-проект

Прежде всего, Stack Overflow имеет больше общего с Википедией, чем с обычным форумом для обсуждений. Под этим я имею в виду, что вопросы и ответы на Stack Overflow судятся не по их полезности для конкретного человека, а по тому, сколько других программистов с течением времени посчитало этот вопрос или ответ полезным. Я изо всех сил старался подчеркивать это отношения со дня запуска сайта в 2008 году. Обратите внимание на то, что играет ведущую роль в этой круговой диаграмме Эйлера-Венна.

stack-overflow-venn-diagram

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

stackoverflow-people-reached-profile-stat-1

Самые частые жалобы, которые я вижу касательно Stack Overflow, обычно являются результатом фундаментального непонимания того, для кого на самом деле предназначены вопросы и ответы на сайте и для чего во всем этом процессе столько строгости.

Перевод:

Хотел бы я, чтобы большее количество людей понимало, что цель Stack Overflow - не “ответить на чей-то вопрос”, а “вместе создать памятник, который поможет будущим программистам”.

Может быть, Stack Overflow стоит приложить больше усилий для того, чтобы донести это до людей.

Меня постоянно удивляет количество людей (даже на Hacker News), которые не понимают, что каждый вопрос и ответ на Stack Overflow можно отредактировать, даже будучи полностью анонимным пользователем без аккаунта на сайте. Это имеет смысл, ведь Stack Overflow - это Вики-проект, а Вики-проекты так и работают. Их может отредактировать кто угодно. Идите, попробуйте это сделать прямо сейчас, если не верите мне: нажмите на кнопку “Улучшить этот вопрос” или “Улучшить этот ответ” на чем угодно, что можно улучшить, и сделайте это.


В русской версии это кнопка править (тут эта функция доступна с TL3)

Ответственность за это непонимание полностью лежит на Stack Overflow (под этим я также подразумеваю и себя, по крайней мере до 2012 года). Полагаю, логика такая: “Каждый программист определенно точно видел, пользовался Stack Overflow и понимает этот сайт теперь, после 10 лет его существования”, но… Думаю, это рискованное предположение. Новые программисты появляются ежесекундно, ежедневно. Если еще больше усложнять положение, то на Stack Overflow есть 3 типа использования сайта, от наибольшего к наименьшему, в формате пирамиды:

  1. Я пассивно ищу ответы для программирования.

Пассивные поиск и чтение высоко оцененных ответов на Stack Overflow, которые появляются в результатах поиска, - это, возможно, основная цель Stack Overflow. Если Stack Overflow работает так, как должен, то 98% программистов должны получить все нужные ответы при чтении страниц, которые выдаются в результатах поиска. При этом им не понадобится задавать ни единого вопроса в течение всей своей карьеры. Это хорошо! Даже отлично!

  1. Я участвую в Stack Overflow, когда застреваю на особо трудной проблеме и не могу найти ответ в поиске.

Принимать участие в деятельности сайта только тогда, когда вы совершенно сбиты с толку, - это нормально. Однако мне кажется, что на этом уровне активности люди чаще всего сталкиваются с трудностями на Stack Overflow. Этот уровень включает людей, которые могут не быть новичками на Stack Overflow по сути, но вопросы задают впервые. К тому же, они могут находиться в состоянии стресса и напряжения, ведь им обязательно нужно получить ответ и решить проблему, с которой они столкнулись… При этом у них нет времени или желания разбираться со строгими требованиями к написанию постов на Stack Overflow, которые касаются исследования проблемы, форматирования, демонстрирования предыдущих работ и ссылок на то, что было найдено во время поисков.

  1. Я участвую в Stack Overflow для профессионального развития.

На этом уровне речь пойдет об опытных пользователях Stack Overflow, которые ответили на много вопросов, а потому понимают, какой вопрос можно назвать хорошим, таким, на который им бы хотелось ответить. Как итог, такие юзеры обычно не задают много вопросов, так как ищут ответ сами путем исчерпывающего поиска и исследования. Если же они все же задают вопрос, то его можно назвать образцовым.

(Технически существует и четвертый уровень: люди, которые самоотверженно предлагают вопросы и ответы в Творческом обществе, чтобы продвинуть всю область разработки ПО на шаг вперед для следующего поколения разработчиков ПО. Но разве у кого-то есть время для святых? Из-за вас мы все выглядим плохо, хватит уже.)

Меня бы вообще не удивило, если бы люди счастливо потратили годы на 1 уровне, а затем бы столкнулись с большим неприятным сюрпризом на 2 уровне. Чтобы решить эту неприятность, мне кажется, нужно использовать обновленную и улучшенную страницу для вопросов. Справедливо заметить, что, возможно, люди не понимают, что они подписываются на огромный труд, косвенно соглашаясь на использование Вики-стандарта “попытаться сделать так, чтобы эта информация была полезна не только тебе, но и другим людям” при создании нового вопроса на Stack Overflow. Затем таким пользователям отбивает желание негативная реакция других, которые считают, что этот вопрос был недостаточно исследован его создателем.

Stack Overflow впитывает огромное количество напряжения из-за того, что он применяет к контенту Вики-стандарты. Даже если вы изначально знали об этом требовании, не всегда может быть ясно, что имеется в виду под “полезностью”. Аналогично не всегда ясно, какие темы, люди и места заслуживают отдельной страницы в Википедии. Генриетта Лакс, конечно, заслуживает, а что насчет вашего двоюродного брата Дейва из Омахи, у которого есть странная проблема с PHP 5.6?

Со временем дубликаты превращаются в огромные минные поля

Вот кое-что, что я предсказывал. Честно говоря, я немного рад, что ушел в 2012, до того, как мне пришлось бы иметь дело с этой проблемой из-за огромной технической трудности: дубликаты. Из всех жалоб, которые я слышу о Stack Overflow, я больше всего солидарен с этой.

Если принять, что Stack Overflow - система типа Википедии, то по тем же причинам, по которым никто не будет делать 5 разных статей про Италию в Википедии, на Stack Overflow не должно быть дублированных вопросов об одной и той же проблеме в программировании. Существует большое количество кода, который может делать превентивный поиск во время ввода вопросов пользователями; много предупреждений, которые просят искать перед тем, как задавать вопрос; манящее поле поиска и кнопка на обязательной странице, которую человек видит, до того как задать свой первый вопрос…

…Нахождение и идентификация дублированного контента - ужасно трудная задача даже для такой компании, как Google, хотя она специализируется именно в этой области уже 20 лет и имеет настоящую армию самых талантливых инженеров мира.

Когда вы задаете вопрос на сайте, на котором не допускаются повторяющиеся вопросы, область решения проблемы для сайта с 1 миллионом вопросов немного отличается от решения для сайта с 10 миллионами вопросов… или со 100 миллионами. Задать один уникальный вопрос может быть не просто трудно, а практически невозможно. Вопрос должен пройти узкий путь по огромному, просторному полю ранее заданных вопросов, при этом не наступая на немного похожие на него вопросы-мины.

Но подождите! Все становится еще труднее!

  • Небольшие различия в похожих вопросах - это нормально. 10 разных людей могут спросить практически идентичный вопрос, используя 10 разных наборов совершенно не связанных друг с другом слов без повторений. Знаю, звучит безумно, но поверьте: людям потрясающе это удается. Мы хотим, чтобы все эти дубликаты существовали, указывая на основной вопрос, дубликатами которого они и являются. Тогда эти вопросы могут появляться при поиске у людей, которые задают вопросы с использованием необычных или редких формулировок.

  • Может быть оправданно сложно определить, является ли ваш вопрос настоящим дубликатом. Сколько должно быть совпадений для того, чтобы один вопрос о программировании стал дубликатом другого? А по чьему определению это решать? Мнения бывают разными. Эта тема подвержена человеческой интерпретации, а люди… ненадежны. Никто не будет рад такой системе, по крайней мере сознательно. Это напряжение внедряется в систему навсегда.

У меня нет настоящих ответов для решения проблемы с дубликатами. Со временем она становится все хуже. Замечу, что в сети Stack Exchange существуют прецеденты, когда сайты делились на области для “экспертов” и “новичков”, которые имели немного различные правила. Такое было с Math и MathOverflow, English и English Learners, Unix и Ubuntu… Возможно, пришло время для Stack Overflow для новичков, где к дубликатам не будут относиться с таким неодобрением, а правила общения будут немного более снисходительными?

Stack Overflow - это соревновательная система дружеских оценок

Действительно, Stack Overflow создавался соревновательной системой с предостережением “задачу можно выполнить более чем одним способом”. Проектное решение основывалось на моих многолетних наблюдениях, согласно которым лучшая мотивация для любого программиста… заключается в тонком намеке, что другой программист способен выполнить эту задачу лучше.
Это выражено в публичной системе репутации Stack Overflow - в восхитительной мощи числа, крупно написанного возле ника пользователя. Вся репутация на Stack Overflow появляется из-за признания товарищей, а не из-за работы системы.

После того как вы задали вопрос или опубликовали ответ, ваши товарищи могут нажимать на них, редактировать их, помечать флажками, закрывать, открывать, плюсовать, минусовать, сворачивать и убирать. Это сделано для того, чтобы Stack Overflow стал системой партнерской проверки и дружественной конкуренции, которые могут выражаться в отзыве на код от коллеги из другого департамента компании, с которым вы никогда не встречались. Товарищ-программист может подвергать сомнению посыл вашего вопроса, только такая претензия должна формулироваться тактично. Например, “Вы действительно хотите использовать это регулярное выражение, чтобы оно подходило HTML?”

Я полностью осознаю, что соревновательные системы дружеских оценок могут быть не для всех. Из-за этого весь процесс, в котором другие пользователи оценивают ваш вопрос, не всегда может быть приятным. Это зависит от вашей ситуации и опыта в данной сфере знаний. Особенно трудно становится, когда этот момент объединяется с существенным напряжением из-за полезности и дубликатов, которое Stack Overflow уже получил благодаря своим Вики-элементам. Получается некий двойной удар.

Я слышал, что люди говорили, что процесс задавания вопроса на Stack Overflow вызывает тревожность. Для меня выкладывание постов на Stack Overflow и должно вызывать здоровую, небольшую тревогу типа “я должен продемонстрировать свои лучшие работы”:

  • тревожность от того, что нужно что-то представлять своим товарищам;

  • тревожность, которую испытываешь, когда нужно хорошо сдать тест;

  • тревожность, которую испытываешь, когда появляешься на новой работе перед талантливыми коллегами, которыми восхищаешься;

  • тревожность, которую испытываешь, когда проводишь первый день в школе с другими учениками твоего уровня.

Я представляю системы, в которых люди не испытывают никакой тревожности. Мне на ум приходят только места работы, где меня давно уже не волновала работа, а потому я не испытывал тревожности даже о том, появился ли я на рабочем месте или нет. Разве это хорошо? Давайте просто скажем, что я не фанат систем, в которых уровень тревожности на нуле.

Может, вам просто не подходит конкуренция. Может ли существовать менее соревновательная система вопросов и ответов, в которой нет “дизлайков” и голосов о закрытии вопроса, тревожности при выкладывании поста? Может ли существовать просто сеть с чрезвычайно участливыми пользователями, которые верят в вас и хотят, чтобы вы достигли успеха, несмотря ни на что? Конечно! Я думаю, в Интернете должно существовать много альтернативных сайтов. Так люди смогут выбрать тот, который будет соответствовать их предпочтениям и целям. Стоит ли Stack создать такую альтернативу? А может, она уже создана? Это открытый вопрос.

Stack Overflow разработан для работающих программистов

Еще один вопрос, который вызывает достаточно много недоумения, - какова же целевая аудитория Stack Overflow? Ответ здесь простой, и он был ясен с первого же дня:

Вопросы и ответы для профессионалов и энтузиастов в сфере программирования. Под этим мы имеем в виду:

Людей, которые уже работают программистами; а также людей, которые потенциально могут найти работу программистом уже сегодня, если бы захотели.

Да, если вам интересно, частично это связано с открытым бизнес-решением. Чтобы заработать деньги, в вашей аудитории должны быть люди, которые получают зарплату за программирование, или пытаются найти работу программистом. Вся сеть Stack Overflow может и иметь лицензию Творческого общества, но эта организация никогда не была некоммерческой. С самого начала этот бизнес планировался рациональным в долгосрочной перспективе. Именно поэтому мы запустили Stack Overflow Careers всего через год после запуска самого Stack Overflow… Честно говоря, это произошло гораздо раньше, чем стоило бы, если оглядываться назад. С того времени Careers умело отошел под Stack Overflow, в stackoverflow.com/jobs. Это позволяет осуществить взаимосвязь, и, бесспорно, эта система стала лучше, чем в 2009 году.

Выбор аудитории ни в коем случае не подразумевался ограничительным. Однако Stack Overflow определенно точно создавался достаточно строгой системой дружеских оценок, что, по моему нескромному мнению, отлично подходит для программистов, которые уже практикуются. Однако это точно не подходит ученикам или новичкам. Именно поэтому я ежусь так сильно, что чуть ли не выворачиваюсь наизнанку, когда вижу людей в Твиттере, которые говорят, что направили своих учеников на Stack Overflow. Ученикам или новичкам в области программирования нужна практически полная противоположность того, что есть в Stack Overflow:

  • наставничество 1 на 1;
  • совместный доступ к экрану в реальном времени;
  • онлайн-чат;
  • курсы по теории и объяснения;
  • задачи и упражнения для новичков;
  • “песочницы”, в которых можно экспериментировать.

Все это замечательно и прекрасно, но в Stack Overflow по задумке нет ничего из этого.
Можно ли использовать Stack Overflow для того, чтобы научиться программировать с самых основ? Ну, технически можно сделать что угодно с помощью любого ПО. Если вы мазохист, можно попробовать вести настоящие беседы на Reddit. Но ответ положительный. В теории на Stack Overflow можно научиться программировать, если вы одаренный человек, который не боится легких соревновательных аспектов (репутация, закрытие вопросов, дизлайки) и готов определить все свои посты на сайте с точки зрения полезности для других, а не только для себя как для ученика, который пытается чему-то обучиться. Правда, я такое пробовать точно не рекомендую. Существуют сайты и системы для обучения программированию, которые куда лучше Stack Overflow. Может ли Stack Overflow создать аналогичные системы для новичков и учеников? Не знаю, да и не я этим занимаюсь.
Вот и все. Теперь мы можем прекратить заглядывать в бездну и делать то, что сейчас считается нормальным.

Надеюсь, все это не покажется вам негативным. В целом, я бы сказал, что Stack крепко стоит на ногах. Но важно ли это? В 2018 все так же, как было в 2008.

Stack Overflow - это вы.

В этом состоит самая страшная часть, преодоление себя, на котором основан Stack Overflow: доверие к другим программистам. Программисты, которые решили поучаствовать в Stack Overflow, - это “секретный ингредиент”, благодаря которому система и работает. Вы - причина, по которой я продолжаю верить в коммьюнити разработчиков как в лучший источник обучения и роста. Вы - причина, по которой я продолжаю получать такое количество позитивных писем и отзывов о Stack Overflow. Я не могу приписывать себе эти заслуги. А вот вы - можете.

Я научился коллективной мощи моих товарищей-программистов давно, когда писал на Coding Horror.

Я никогда не смогу стать умнее этого коммьюнити. Все, о чем я могу просить, - о чем может просить кто-угодно - помогать друг другу на своем пути.

А если ваши товарищи-программисты выражают вам признание за это, то, думаю, вы это по-настоящему заслужили.

Сила Stack Overflow начинается и заканчивается с коммьюнити программистов, благодаря которым сайт и работает. Чем должен стать Stack Overflow, когда вырастет? Тем, чем мы его сделаем все вместе.

P. S.: Счастливого десятилетия, Stack Overflow!


Читать еще публикации от Jeff Atwood: Разработка на основе жалоб

Добро пожаловать на официальный форум Discourse:


Другие вопросы на сайте:

Почему сайт Stack Overflow требует репутацию для использования комментариев?

Какие есть минусы сайта StackOverflow?

Почему Stack Overflow такое строгое сообщество

P.S. Материал подготовлен и переведен командой Toxu.ru


(Евгений) #2

StackOverflow движется в правильном направлении. Он знает, что делает. Но я бы хотел остановиться на фразе:

Хотел бы я, чтобы большее количество людей понимало, что цель Stack Overflow - не “ответить на чей-то вопрос”, а “вместе создать памятник, который поможет будущим программистам”. - Jeff Atwood

Может быть, Stack Overflow стоит приложить больше усилий для того, чтобы донести это до людей. - Jeff Atwood

Это совершенно другой подход к Q&A сайтам. Именно из-за этого подхода такие сайты, как Quora, StackOverflow, группа сайтов Stack Exchange и показали интересные результаты.

Но это модель вообще не знакома в России! Пользователи не понимают, смысл её. Зачем она вообще нужна и как работает?

Поразительно другое, что даже вновь создаваемые сайты (Q&A) видимо не понимают до конца эту модель…

Хорошо. Допустим, существует сайт вопросов и ответов, где мы отвечаем на вопрос пользователя. Наше восприятие таково, что есть вопрос и на него надо ответить. Т.е. ответ идет именно этому пользователю. Разве у нас есть задача ответить так, чтобы это было использовано и далее?

Еще более конкретно. Некоторое время назад, тут был задан вопрос про файл robots.txt. Я конечно могу, например, указать ссылку на документацию по robots.txt указывая пальцем на страницу help допустим от Яндекс.

Но участник спрашивает на этом сайте, и отвечать надо на этом, по возможности. А не указывать ему на дверь (ссылку) куда он должен пройти, чтобы почитать это.

Ок. Значит мне надо писать. И писать видимо так, чтобы это было полезно не только человеку, который задал вопрос, но и любому, кто прочтет его и через год, два, 5 лет… Ну по крайней мере пока будет существовать этот сайт.

Я могу это сделать “набегом”? Возможно. Что получится?

Согласитесь, это совсем другое. Мой ответ должен быть содержательным, понятным. Я буду использовать ссылки, но лишь чтобы подтвердить свои слова, придать им некий вес.

Какие сайты вопросов и ответов в России имеют подобный подход? Где ответы рассматриваются подобным образом?

Где есть система модерации направленная на создание базы знаний? Где пользователи заинтересованны в долговременном вкладе?

Я думаю ответьте сами. У нас в Рунете много сайтов и есть из чего выбрать. Но скажите мне, про эту нишу, про которую я говорю, у нас есть выбор? Не думаю.

Очень странно. И эту ситуацию надо поменять, ИМХО. Но это сложно. Мы воспитаны на чато- подобных сайтах. Мы даже не представляем иную модель поведения. Десять лет нас воспитывали бросать реплики. Десять лет мы использовали Q&A сайты как чаты. Но ведь изначальное предназначение Q&A систем это не то, что мы делали.

P.S. Мне симпатичен подход Jeff Atwood и то, что он делал раньше и делает сейчас. Это логичное последовательность действий, которые приведут к определенному результату. Какому? Посмотрим.