Джоэл Спольски, пожалуй, один из самых известных айтишных блогеров. Переводов статей из его блога Joel on Software на Хабре было множество, и наверняка кто-то из вас читал его книги «Джоэл о программировании», «Лучшие примеры разработки ПО» и «Руководство по UI дизайну для программистов».

Может, вы что-то слышали про дырявые абстракции, тест Джоэла и алгоритм маляра. А если нет, то сайт Stack Overflow уж точно знаете — так вот, это дело рук Джоэла Спольски, так же, как и канбан-инструмент Trello и… отчасти MS Excel. Да, Джоэл поработал и над ним. В общем, настоящий человек-оркестр, который поучаствовал во многих проектах, и останавливаться не собирается.

IT-сообщество должно знать своих героев, поэтому предлагаем вам окунуться в лихие 2000-е и почитать захватывающую биографию мистера Спольски. А еще в 2020 году Джоэл выступал на нашей конференции JPoint и поведал нам кое-что интересное, о чем расскажем в посте. 

Джоэл на работе

Эпоха Эксель

Джоэл Спольски родился в США, в интеллигентной еврейской семье лингвиста Бернарда Спольски и литературоведа Эллен Спольски. Юность Джоэла прошла в США, а в 1980 году, когда ему было 15, они с семьей переехали в Израиль — его отец был назначен профессором, а мать — старшим преподавателем кафедры английской литературы и лингвистики в Университете Бар-Илан. В Иерусалиме Джоэл окончил среднюю школу и отслужил в десантных войсках. 

В 1987 году Джоэл съехал от родителей и вернулся в США учиться. Поступил в Университет Пенсильвании, но через год перевелся в Колледж Пирсона Йельского университета. По его словам, царившая в университете атмосфера ему не нравилась (забегая вперед, подобная ситуация будет часто возникать на его карьерном пути). В Йеле в 1991 году он получил диплом computer science с отличием.

Сразу после выпускного его пригласили работать в компанию Microsoft менеджером команды  программистов Excel, и 17 июня 1991 года он приступил к работе. Перед командой Спольски поставили задачу устранить проблемы языка программирования Excel, который программисты называли «макросами Excel» (официального названия не было). В те времена он был весьма неудобный и громоздкий. Там не было переменных (значения приходилось хранить в ячейках таблицы) и вызовов подпрограмм. Сопровождать такой код было практически невозможно.

Но даже в таком виде Excel все равно был лучше Lotus — табличного процессора, разработанного компанией Lotus Software, которая к 90-м годам окончательно сдала позиции на рынке, что в итоге позволило Microsoft стать ведущим разработчиком ПО.

Листы Microsoft Excel 3.0 (1990). Источник: versionmuseum.com
Листы Microsoft Excel 3.0 (1990). Источник: versionmuseum.com
Рабочие листы в Lotus 1-2-3 R3.0. Источник: os2museum.com
Рабочие листы в Lotus 1-2-3 R3.0. Источник: os2museum.com

Тем временем выходит Visual Basic 1.0 — за его основу был взят синтаксис QBasic. Microsoft объединяет QuickBasic с приложением оболочки Ruby и дает ему кодовое имя Thunder. В результате появился первый инструмент, который позволял быстро, легко и наглядно создавать приложения для Windows. Возможности включали набор инструментов для управления перетаскиванием, создания пользовательского интерфейса без написания кода и модель программирования, ориентированную на события. Становится очевидно, что детище Алана Купера — это именно то, что нужно Excel. В Microsoft уже были наработки по созданию объектно-ориентированного Бейсика под кодовым названием Silver.

Спольски убедил команду разработки добавить в язык тип Variant — переменные, которые могли содержать любой другой тип. Это позволяло сохранять содержимое ячейки электронной таблицы в переменной без оператора switch. Также было добавлено позднее связывание (через IDispatch), конструкция ForEach, украденная из csh, и With из Паскаля.

Так был создан Excel Basic, который в итоге вышел за рамки применения Excel — макросы на нем можно было писать для чего угодно, а сам язык получился в целом достаточно простым, писать на нем могли люди, которые до этого никогда не программировали. В дальнейшем язык был переименован в Visual Basic for Applications (VBA), и технология успешно продавалась Microsoft другим компаниям. Спецификация, написанная Спольски, которую проверял лично Билл Гейтс, заняла около 500 страниц.

По воспоминаниям Джоэла, один из присутствующих на ревью считал, сколько раз в процессе обсуждения спецификации Гейтс скажет слово на букву f (Гейтс имел репутацию требовательного руководителя, и работать с ним было непросто). В итоге Гейтс позадавал вопросы, чтобы убедиться, что у команды все под контролем, и пресловутое слово было произнесено лишь четыре раза, что стало своеобразным рекордом.

В тот же период Джоэл знакомится с Майклом Прайором, который станет его компаньоном по бизнесу и соучредителем Fog Creek Software. Майкл только начал карьеру в интернет-стартапе Juno, где пытался что-то писать на Visual Basic. Но большинство разработчиков в его компании работали на Linux и посоветовали обратиться к Спольски, так как тот был экспертом по этому вопросу. Джоэл охотно отвечал на вопросы, и со временем они с Майклом стали друзьями.

И еще раз про Excel: в Сети есть прекрасное видео под названием «Вы лажаете с Excel», которое изначально было написано для внутреннего пользования в Fog Creek. Там Джоэл, тот самый парень, который приложил руку к созданию Excel, делится ее неочевидными возможностями и секретами. 

Разочарование в Viacom и Juno

В 90-е активно развивается Интернет, появляются провайдеры, новые каналы передачи данных, но Microsoft словно игнорирует все это.  По этой причине в 1994 году Спольски уходит из компании, и в 1995 году устраивается в Viacom — медиаконгломерат, которому принадлежали MTV, VH1, Nickelodeon, Blockbuster, Paramount Studios, Comedy Central, CBS и еще куча всего другого.

Спольски хотел быть в авангарде, но достаточно быстро разочаровался в новом работодателе. Работу в Viacom он назвал самым болезненным периодом своей жизни. Руководство компании не понимало, что тогда происходило на рынке, не имело представления, чем занимались программисты, и считало их чуть ли не машинистками, которые делают что-то, с чем справится и ребенок.

После неудачного опыта с Viacom Джоэл устроился в Juno Online Services, где работал его друг Майкл Прайор.

Juno предоставляла бесплатный сервис электронной почты — пользователь ставил собственный клиент Juno, который позволял ему отправлять и получать почту размером около 35 килобайт. На дворе середина 1990-х, и ни Hotmail, ни Gmail еще не было. 

Почтовый клиент Juno c 150 бесплатными часами доступа в Сеть. Источник: archive.org
Почтовый клиент Juno c 150 бесплатными часами доступа в Сеть. Источник: archive.org

Отношение к программистам в Juno было более уважительным, а миссия компании привлекательной и современной — предоставлять электронную почту всем. Кажется, то, что нужно! Но… Джоэл около трех лет проработал там программистом на C++, и постепенно стиль руководства в компании начал подталкивать его к увольнению.

Все мы знаем, что лучший менеджер — это тот, кто не мешает умным людям работать, однако в Juno придерживались иной позиции, считая, что только менеджер может решать, что делать разработчику.

Непосредственный руководитель Спольски устраивал бюрократический ад, считая, что обязан контролировать даже пустячные вопросы. Кроме того, компания была основана неопытными и молодыми людьми — президенту компании было 24 года, руководящего опыта он до этого не имел, и подобный стиль распространялся на все уровни управления.

Устав от лютого микроменеджмента и разочаровавшись, Джоэл ушел, не имея каких-либо дальнейших планов.

Джоэл в интернете

Именно в тот период он начал записывать мысли по поводу своей работы, и в 2000 году создал блог «Джоэл о программном обеспечении».

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

  • Вы никогда не сможете правильно написать софт. Вы должны писать его наиболее удобным способом. Поскольку расходы на ПО очень высоки, компания будет просить максимально сократить расходы. Никаких новых технологий — придется придерживаться только зрелых и консервативных из имеющихся.

  • Вы не сможете сделать проект идеальным. Как только программа нормально заработает, ваша работа будет на этом закончена, и вы перейдете к следующему проекту компании. Ваша роль — выполнить задачу, а не написать программу как можно лучше.

  • Программисты в ИТ-отделе традиционной компании — это линейный персонал, они не вовлечены в бизнес.

Блог быстро стал популярным за счет хорошего стиля (родители-лингвисты, вероятно, смогли привить сыну любовь к слову) и понятным всем разработчикам мыслей — Джоэл не уходил в низкоуровневые детали, а писал то, что релевантно всем айтишникам. Сейчас там уже 1114 постов о разработке, управлении, бизнесе, интернете и жизни. Вспомним самые значимые концепции Джоэла.

Дырявые абстракции

Абстракции нужны, чтобы скрыть широкие и низкоуровневые концепции за единой идеей, которую легче понять. Они используются для удаления сложных и ненужных деталей. Однако у абстракций есть досадное качество — иногда они «протекают», то есть не могут полностью инкапсулировать детали, хотя в идеале абстракция должна быть черным ящиком. И разработчику приходится сталкиваться-таки с неприглядными внутренностями, от которых абстракция вроде как должна была его избавить.

Дадим слово Джоэлу:

Язык SQL абстрагирует от процедурных шагов, необходимых для извлечения информации из базы данных. Вы указываете, что нужно извлечь, а база данных решает, как это сделать. Но в ряде случаев некоторые запросы на некоторых SQL-серверах в тысячи раз медленнее, чем их логические эквиваленты. Широко известен пример, когда запрос «where a=b and b=c and a=c» выполняется быстрее, чем «where a=b and b=c» на одном и том же наборе данных. В идеале, о таких деталях должна беспокоиться только спецификация, а не вы. Но иногда в абстракции находится дыра, которая вызывает просадку по производительности. Это заставляет вас разобраться с анализатором запросов, а затем понять, что пошло не так и как это исправить.

Про дырявые абстракции говорили еще в 1974 году в контексте разработки высокоуровневых языков, которые имеют тенденцию абстрагироваться от низкоуровневых деталей. 

В 1992 профессор Грегор Кичалес (один из авторов методологии аспектно-ориентированного программирования) пишет статью, где предлагает разделить абстракцию на две части: одну, которая выполняет абстракцию традиционным способом, и другую, которая дает клиентам некоторый контроль над реализацией. Он называет это открытой реализацией, поддерживаемой архитектурами метауровня и протоколами метаобъектов. Для проектирования интерфейсов метауровня он отмечает четыре принципа проектирования: контроль содержания, концептуальное разделение, инкрементность и надежность.

Да, звучит сложновато, куда лучше дать такое понятие на примере Зоны 51 и НЛО, и в 2002 году закон дырявых абстракций популяризируется Спольски на примере протокола TCP. Поэтому теперь, говоря об этом законе, вспоминают именно его текст. При этом важно понимать, что дырявая абстракция — это не антипаттерн или признак кода с душком, а неизбежность, с которым будет сталкиваться любое сложное ПО.

Алгоритм маляра

Маляр Шлемиэль подрядился красить пунктирные осевые линии на дорогах. В первый день он получил банку краски, поставил ее на дорогу, и к концу дня покрасил 300 метров осевой линии. «Отлично! — сказал прораб. — Быстро работаешь!» — и заплатил ему копейку.

На следующий день Шлемиэль покрасил 150 метров. «Мда, это, конечно, не так здорово, как вчера, но приемлемо», — сказал прораб и заплатил ему копейку.

На следующий день Шлемиэль покрасил 30 метров. «Всего лишь 30! — заорал прораб. — Это никуда не годится! В первый день было в десять раз больше! В чем дело?»

«Ничего не могу поделать, — говорит Шлемиэль. — Каждый день я ухожу все дальше и дальше от банки!»

В 2001 году Спольски взял за основу эту идишскую шутку, чтобы указать на довольно плохую практику программирования. С тех пор «Алгоритм маляра Шлемиеэля» обычно используется для описания неэффективности, возникающей из-за того, что программист упускает из виду фундаментальные проблемы на самых низких уровнях разработки ПО.

Яркий пример — конкатенация строк в C или обработка нуль-терминированных строк и других подобных структур данных, в которых размер строки не известен заранее (например, файлов XML).

Тест Джоэла

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

Вот что сам Джоэл рассказал нам в интервью на конференции JPoint 2020.

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

Сейчас все это кажется очевидным, но в те годы в половине компаний подобное не практиковалось. Зато сейчас есть то, что не отражено в тесте Джоэла. 

А вот деление на профессионалов и дилетантов актуально до сих пор.

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

Верблюды и резиновые уточки

«Сколько должна стоить моя программа?» — такой вопрос рано или поздно встает и перед независимым разработчиком, и перед компанией. В 2004 году Спольски дал свое видение этого вопроса, и, сказать по правде, запутал всех еще больше.

Оригинал статьи можно прочитать здесь — там есть краткое введение в экономическую теорию, графики (в Excel!) и неутешительный вывод, что все равно никто не знает наверняка, сколько брать за свое приложение. Ценообразование — вещь и правда таинственная.

Джоэл в роли CEO

После неудачного опыта с Viacom и Juno Спольски отчаялся найти компанию, в которой к программистам относились бы как к талантам, а не как к бездумным машинам, и решил открыть собственную. 

Соучредителем новой компании стал Майкл Прайор из Juno. Вообще, Майкл не хотел становиться основателем компании — импульс шел от Джоэла — но он расценивал это как новый интересный и забавный опыт. В начале он целиком и полностью полагался на Джоэла и его богатый опыт, и тот фактически стал его наставником.

Майкл Прайор и Джоэл Спольски. Источник: Wired
Майкл Прайор и Джоэл Спольски. Источник: Wired

Так родилась компания Fog Creek Software, которая изначально была консалтинговой. В основе стартапа Спольски и Прайора лежала идея привлекать лучших разработчиков и хорошо к ним относиться. Сейчас, в эпоху, когда программистов считают рок-звездами, это кажется чем-то очевидным, но тогда Нью-Йорк не считался хорошим местом для программистов, и горький опыт Спольски это подтверждал. В Кремниевую Долину ни Джоэл, ни Майкл переезжать не собирались, и намерились переломить ситуацию в Нью-Йорке.

Как это всегда и бывает в стартапах, никто толком не знал, что и как делать, но здесь сыграло мышление предпринимателя: «Я не знаю, как это делать, но выясню». Собственно, это и легло затем в основу культуры компании. Пока компания раскачивалась, Майкл вел учет зарплаты Джоэля, и вместо реальной выплаты записывал все в блокнотик. И только спустя пять лет, когда в компании появились деньги, компания смогла рассчитаться с Джоэлем за эти годы.

Но со временем они наняли двух новых человек, обзавелись стажером и в компании наметился какой-то прогресс. А затем произошел крах пузыря доткомов и рынок рухнул на самое дно. Чтобы сэкономить деньги, пришлось сокращать внешних подрядчиков, а затем и штатных сотрудников. Доходы практически иссякли. 

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

Все свои средства Спольски и Прайор вкладывали в разработку программ для других разработчиков ПО вроде своего флагманского продукта FogBugz — приложения для управления программными проектами. 

FogBugz

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

Проект решили допилить, выложить на сайт и продать. Джоэл написал несколько статей в блоге, в надежде продать этот инструмент разработчикам, которые в те годы для подобных задач использовали багтрекер Bugzilla. И да, добавлять букву «z» в название было тогда очень модно.

Бешеных продаж в начале не вышло. В один день компания заработала около 10 долларов, а пару недель спустя — еще 50. Казалось, что рост был очень медленным, но потом и Джоэл, и Майк признали, что продукт все же развивался довольно хорошо и быстро и стал движущей силой компании на долгие годы.

А тем временем с Fog Creek соревновались два парня из Австралии — Майк Кэннон-Брукс и Скотт Фаркуар, основатели Atlassian. Они работали над приложением под названием Jira, которое тоже создавалась на замену Bugzilla и во многом повторяло ее архитектуру.

Тем не менее FogBugz обрел популярность, особенно в среде разработчиков, которые читали блог Джоэла и следовали его советам, и для своего времени продукт был вполне функциональным и удобным.

В 2003 году вышел ASP.NET. Большая часть FogBUGZ была написана на VBScript для ASP, который работал на серверах Windows, что-то было написано на C++. Переводить приложение на .NET в компании не собирались. В блоге Спольски объяснил, что «мы недостаточно знаем о .NET, чтобы писать хороший код и качество .NET-кода, который мы можем написать, недостаточно хорошее для поставки». Без должных обновлений FogBugz начал устаревать и сдавать позиции — накопился большой технический долг, и по сути, проект нужно было переписывать заново, что в компании делать не спешили.

Иронично, что «переписывание кода с нуля» Спольски называл одной из главных ошибок. FogBugz этой ошибки избежал, но в итоге  это сыграло с ним злую шутку.

Jira победила.

CityDesk

CityDesk был одним из первых продуктов, разработанных Fog Creek. Это система управления веб-контентом, отличавшаяся от большинства CMS тем, что работала как клиентское приложение. Она использовала шаблоны и структуру базы данных, генерируя статические веб-страницы, которые загружались на веб-сервер с помощью встроенного FTP-клиента. Приложение выросло из запроса одной компании, которой нужно было оптимизировать работу с кадровыми документами. Требовалось, чтобы сотрудники отдела кадров могли легко обновлять документы, загруженные на сайт, то есть нужна была система управления контентом.

Разработанный продукт был похож на приложение Visual Basic. Это была попытка сделать универсальную систему управления контентом — тогда загвоздка была в том, что большинство людей не были техническими специалистами и не знали, как перенести скрипты, чтобы те работали на веб-сервере. Это было под силу только программистам. Поэтому команда Спольски решила все упростить. Раз людям просто нужны их учетные данные FTP, то в компании напишут приложение для ПК, которое позволит пользователем добавлять контент, затем программа сама разберется с HTML и просто загрузит все на сайт.

Окно программы CityDesk. Источник: Softpedia
Окно программы CityDesk. Источник: Softpedia

Программа хорошо продавалась, но все же вышла не в то время — ориентированная на публикации в Сети, она не нашла достаточного количества пользователей. Блоги в то время еще не набрали такой популярности. А затем появились облачные платформы для блоггинга и CityDesk, к сожалению, конкуренции с ними не выдержала.

Copilot

CoPilot вырос из внутренних потребностей компании. Флагманский продукт FogBugz становился все сложнее и у клиентов возникали трудности с его установкой. Когда пользователи по телефону пытались рассказать, что происходит, установка затягивалась. Хорошо было бы видеть, что творится на экране пользователя, и тогда бы решение проблем занимало считанные секунды.

В то лето в компании стажировались четверо молодых людей, и Спольски поставил им задачу выпустить приложение под эти нужды. На полный цикл разработки, отладки и релиза стажерам отвели 12 недель. В результате появилось приложение под названием CoPilot — инструмент для демонстрации экрана на базе VNC (Virtual Network Computing).  

О невероятных приключениях стажеров можно почитать здесь, а вот здесь посмотреть документальный фильм, где помимо прочего можно увидеть внутреннюю кухню Fog Creek и насладиться прекрасными видами Манхэттена.

Спольски раздает стажерам книги на лето. Источник: YouTube
Спольски раздает стажерам книги на лето. Источник: YouTube

Stack Overflow 

В основе большинства удачных проектов лежит боль их создателей и незакрытые потребности. До 2001 года программисты могли общаться друг с другом, получать поддержку и обмениваться решениями на сайте Experts Exchange. Этот сайт всегда появлялся в поисковой выдаче Google, но при переходе на него страницу нужно было скролить до самого конца, и не всегда там был ответ. Это ужасно раздражало, и пользователи подозревали, что EE подкручивает результаты выдачи. Кроме того, EE работал по платной подписке и был модерируемым форумом — пользователь размещал вопрос и получал ответ от квалифицированного эксперта.

Одна из идей Джоэла заключалась в создании альтернативы этому сайту. Он хотел добавить элемент геймификации — голосования за лучший ответ, что отсекало бы неполные и вводящие в заблуждение ответы. И хотя идея голосования уже была реализована на Digg и Reddit, Спольски хотел объединить различные технологии, включая стимулирование пользователей. Эту идею он обсуждал с Джеффом Этвудом, который вел блог Coding Horror и хотел заняться чем-то новым. Джефф выполнял большую часть работы, а Джоэл отвечал за менеджмент. Успех сайту обеспечило то, что в первый же день Джоэл и Джефф привели туда всю свою аудиторию и создали как предложение, так и спрос. В одном из своих подкастов, посвященных созданию SO, Спольски и Этвуд сказали, что идеальной ситуацией было бы то, что люди заходили бы на сайт через Google. Они признали, что не думают, что смогут улучшить поиск сверх того, что предлагает Google, и ожидают, что около 95% посетителей будет приходить из поисковой выдачи.

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

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

Сайт быстро оброс собственной экосистемой — компания развернула Documentation, ресурс для рецензируемой технической документации, Stack Overflow Jobs, посвященное подбору разработчиков, с вакансиями и Stack Overflow Talent — корпоративное предложение для оказания помощи компаниям в найме разработчиков.

Джоэл Спольски и Джефф Этвуд
Джоэл Спольски и Джефф Этвуд

В мае 2010 года Stack Overflow была выделена в собственную компанию Stack Exchange Inc. и привлекла венчурный капитал в размере шести миллионов долларов, а также занялась разработкой новых сайтов для ответов на вопросы по конкретным вопросам.

В 2021 году Stack Overflow был продан техгиганту Prosus за 1,8 миллиарда долларов.

Stack Exchange

К 2010 году Stack Overflow разросся настолько, что встала необходимость организовать новую площадку, где будут размещаться вопросы и ответы из других областей, не связанных с программированием. Так была создана площадка Stack Exchange, которая уже к осени 2012 года выросла до 90 разделов, с 2 миллионами пользователей, 5 миллионами вопросов и 7 миллионами ответов.

По словам Спольски, в 2016 году эту сеть посетили более 100 миллионов человек в месяц, но самое замечательное в том, что площадка полностью свободна от троллинга, языка ненависти и прочих ужасов, которыми страдают почти все другие крупные интернет-сообщества, от Reddit до Twitter и раздела комментариев на каждом сайте. И достигнуто это было за счет введения жестких правил поведения на сайте.

Насколько это соответствует действительности? Руководителям частенько преподносят картину развития компании несколько приукрашенно. В 2018 году Джей Хэнлон, исполнительный вице-президент по культуре и опыту, признал, что у SE есть проблемы с токсичностью на площадке, и что они работают над тем, чтобы исправить ситуацию. В 2019 году на  SE развернулась дискуссия, касающаяся использования местоимений. И наверняка кто-то в эту самую секунду участвует в очередном интернет-баттле о токсичности в IT-сообществе.

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

Trello

В 2011 году у Джоэла появилась идея для Trello — приложения для управления проектами и совместной работой на основе методологии Канбан. Компания Fog Creek росла, но ни у Джоэла, ни у Майкла не было четкой системы управления, и не всегда было понятно, что на самом деле делают люди в офисе. Да, кажется, они пишут код, но как это вписывается в стратегию компании?

Тогда Джоэл предложил сделать публичные списки дел. У каждого будет один список дел на пять пунктов, и этот список будет виден всем остальным в команде. Два пункта — это то, над чем сотрудник работает прямо сейчас. Еще два — это то, над чем он собирается работать дальше, и последний пункт — то, что он не будет делать. Майклу эта идея показалась глупой, тем более что Джоэл хотел назвать такую систему «Пять верблюдов» или «Пять штуковин». 

Идея витала в воздухе, и разработчики тогда часто смотрели в сторону канбан-досок. В офисах Fog Creek на стенах висела мешанина из стикеров с заметками, которые на самом деле не были задачами, и ясности в работу это не вносило. 

А еще в компании решили вспомнить прошлые маркетинговые ошибки, когда каждый раз создавались инструменты только для разработчиков. Но после десяти лет работы Fog Creek уже могла поэкспериментировать с новыми продуктами, которые приносили бы доход не сразу. Компания поручила восьми разработчикам поработать над четырьмя экспериментальными продуктами. И Trello был одним из таких проектов.

Fog Creek намеренно пыталась создать продукт, не предназначенный для программистов, что было в новинку. И это сработало —  успех был обеспечен тем, что Trello мог пользоваться любой человек. А вот реализовать это как можно проще — оказалось довольно сложно, так как на начальном этапе в компании знали, что использовать этот инструмент будут разработчики, и в каждом их фидбеке был запрос на какую-то функцию управления проектами.

Спольски презентует Trello на TechCrunch. Источник: techcrunch.com
Спольски презентует Trello на TechCrunch. Источник: techcrunch.com

После презентации Джоэла на TechCrunch Disrupt, Trello взлетел. За два года количество пользователей увеличилось до 500 000 и до 4,75 миллиона еще за четыре года, прежде чем продукт начал приносить реальные деньги. Изначально Trello планировалось, как бесплатное приложение, и о монетизации команда Спольски начала думать намного позже. Trello во многом опередил свое время — он был прост, элегантен и удобен. 

Простая визуализация понравилась пользователем, и у Trello появилось множество конкурентов, скопировавших его: к 2016 году подобные решения появились у GitHub,  GitLab, Asana и Airtable. Конкуренты отдавали должное Trello, но рассматривали его как функцию, а не продукт.

Компания недостаточно быстро монетизировала бесплатную версию, и с финансовой точки зрения недополучала за использование, и его продажа компании Atlassian, той самой которая создала Jira, была верным решением. В январе 2017 года Atlassian приобрела Trello за $425 млн.  

Что сейчас?

Джоэл — личность многогранная, но сам себя он в первую очередь называет программистом.

Сейчас он является председателем совета директоров Stack Overflow, Glitch (именно так теперь называется Fog Creek) и HASH.ai — стартапа, который разрабатывает платформу c открытым исходным кодом для моделирования различных ситуаций и построения прогнозов.

У HASH амбициозная цель решить задачи, которые не под силу традиционному Data Science и обеспечить точное прогнозирование в сценариях, которые «невозможно смоделировать», что позволяет безопасно принимать важные решения на малой скорости. 

Интересно, чтобы сказал на это Нассим Талеб, но звучит и правда неплохо.

HASH.ai позволяет создавать симуляцию прямо в браузере. Для создания симуляции требуется написание кода, но пользователю нужны минимальные навыки. Также пользователь не сталкивается здесь с задачей предварительной обработки данных. Например, он пытается понять, что происходит во время пандемии COVID-19 — тогда на основании введенных данных он может построить маленькие простые модели на JavaScript, а Hash их все объединит, сделает симуляцию, прогонит ее через блендер и покажет результат.

Моделирование уровня инфицирования в городе. Источник: HASH.ai
Моделирование уровня инфицирования в городе. Источник: HASH.ai

А вот здесь можно почитать о наболевшем. Не забудьте надеть маску.

Джоэл оптимистично смотрит в будущее и не собирается сбавлять обороты. Цель его команды — создать новую веху в истории разработки, как когда-то это произошло со Stack Overflow. Двадцать лет назад никто и не думал о чем-то подобном, а сейчас этот сайт стал частью инструментария каждого разработчика. Что-то, и весьма быстро, изменилось в практиках программирования: то, как разработчики учатся, получают помощь и обучают друг друга.

Джоэл Спольски и его идеи безусловно повлияли на IT-сообщество, его продуктами пользуются миллионы людей, а выступления ждут. Но всего этого Джоэл достиг не в одиночку  — ему помогали и его вдохновляли множество людей, то самое сообщество, которое он так хочет изменить к лучшему. 

Так что, как наставлял Джоэл, будем двигаться вперед.

Обычно у разных айтишников разные герои: пока фронтендеры молятся на Дэна Абрамова, «плюсовикам» важнее Бьярне Страуструп. А вот Спольски — человек, важный для всех. Его блог, Stack Overflow, Trello, Excel — всё это может помочь и iOS-разработчику, и тестировщику, и data-инженеру.

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

Комментарии (8)


  1. EvilBeaver
    29.07.2021 19:11

    Значит ли эта статья, что на jug.ru будет выступать Спольски?


    1. k_tultseva Автор
      30.07.2021 09:17
      +1

      Спольски в этом году не обещаем, но интересные спикеры обязательно будут, следите за анонсами.


  1. firehacker
    30.07.2021 02:46
    +5

    Пробежавшись по абзацам про Thunder, Silver, Ruby, Алана Купера сложилось впечатление, что вы вдохновлялись вот этой статьей. Угадал?

    Но мимо этого я не мог пройти:

    Спольски убедил команду разработки добавить в язык тип Variant — переменные, которые могли содержать любой другой тип. Это позволяло сохранять содержимое ячейки электронной таблицы в переменной без оператора switch. Также было добавлено позднее связывание (через IDispatch), конструкция ForEach, украденная из С#, и With из Паскаля.

    Вы серьёзно? For Each Джоэль позаимствовал не из C-Sharp'а, а из CSH — скриптового языка для написания шелл-скриптов, который появился на 32 года раньше Шарпа. C# и csh это не одно и то же. Да и как можно было допустить мысль, что до си-шарпа такой конструкции ни в одном другом языке не было?

    В конце концов, даже если не знать ничего про csh, как при создании Excel Basic'а (который позже стал VBA и VB), которое происходило на рубеже 80-х и 90-х, можно было позаимствовать что-то из C#, до появления которого оставалось ещё 10 лет? Это как писать, что Аристотель позаимствовал что-то из трудов Ленина.


    1. k_tultseva Автор
      30.07.2021 09:25
      +2

      Большое спасибо за ценный комментарий, исправили! Автор зарапортовался, и конечно же тут должен быть csh.


  1. FanatPHP
    30.07.2021 13:08
    +1

    При всё при этом, и при всём моём уважении к Спольскому - всё-таки немного обидно, что самое известное его творение оказалось пшиком, не достигло заявленных целей, не вышло на прибыль и вылилось в целом в чемодан без ручки, который хотя конечно и удалось спихнуть за хорошие бабки, но понятно что тут как всегда купили просто базу пользователей, а не приложение/концепцию, которая себя не оправдала.

    Только непонятно, зачем при написании статьи пользоваться настолько устаревшими источниками. Проект "Документация" закрыли я уже и не помню когда - лет 5 назад? При этом не упоминается самая последняя попытка дополнить экосистему сделать хоть какие-то деньги на проекте, "Стаковерфлоу фор воркгрупс", которая, впрочем, заранее была обречена на провал, причем Спольский в статье открытым текстом озвучил причину: сайт живет за счет поиска Google, а для закрытых Teams использование внешнего поиска очевидно не вариант.


    1. 23derevo
      01.08.2021 14:30
      +2

      Да, я тоже подумал про проблемы on premise решения при использовании внешнего поиска. С другой стороны, в on premise они наверняка деливерят какой-то движок поиска и не факт что свой.

      Лично меня автор поймал на "Сможете ли вы сказать, как выглядит начальная страница Stack Overflow?" Я понял, что не знаю и немедленно пошёл посмотреть :)


      1. FanatPHP
        01.08.2021 22:46

        Там ничего интересного :)

        Куда интереснее то, что Спольский этим показывает, что прекрасно понимает неразрешимое противоречие, лежащее в основе стаковерфлоя: с одной стороны, подавляющее большинство пользуется им в режиме "не видя главной страницы", но при этом вся инфраструктура заточена под тех убогих, которые не в состоянии это сделать, и строчат одни и те же тупые вопросы в 100500-й раз.


  1. FlyingDutchman2
    31.07.2021 11:20
    -1

    Мои впечатления после прочтения нескольких десятков статей Спольски несколько лет назад:

    1. Процентов 10 статей, а то и меньше, содержат полезную информацию, остальное графоманство. Мне непонятно, почему он так популярен.

    2. Его знания программирования довольно поверхностные.

    3. Похоже, что он как предприниматель и менеджер он довольно неплох.