Про большие команды
Бог как известно на стороне больших батальонов, возможно там где не надо думать головой так оно и происходит, но в разработке ПО дела обстоят немного по-другому. Раскрываю тему.
Нехватка программистов
Думаю вы все уже читали апокалиптические прогнозы про «кадровый голод» и нехватку кадров в ИТ-индустрии:
Нехватка разработчиков в IT составляет приблизительно 500–700 тыс. человек, заявил министр цифрового развития, связи и массовых коммуникаций Максут Шадаев на совещании президента с членами правительства.
Дефицит ИТ-кадров в 2023 году продолжает расти – по оценкам правительства России, спрос на квалифицированных специалистов увеличился на 63% по сравнению с прошлым годом. При этом поиск таких кандидатов стал более долгим – занимает в два раза больше времени, чем в среднем по рынку.
На рынке труда образовался дефицит айтишников начального и среднего уровня — вакансий уже в два раза больше, чем резюме. Из-за нехватки рук компании устраивают на работу студентов и переучивают своих сотрудников. Некоторые готовы нанимать команды на проектную работу, особенно если поджимают сроки госконтрактов, отмечают эксперты.
Когда такое читаешь, в воображении рисуются бесконечные уходящие в даль ряды столов, где сидят все эти толпы людей и занимаются.. вот тут главный вопрос.
Чем могут заниматься программисты в таком количестве для меня, прожившего в ИТ большую часть жизни — загадка.
Которую я сейчас и буду планомерно уничтожать разгадывать, рассказывая о реальных известных проектах и о командах которые за ними стояли.
И начнем мы с великого и ужасного Internet Explorer.
Internet Explorer
Понимаю что большинство читающих не застали «те времена» и видели Internet Explorer только мельком, открыв пару раз чтобы скачать Хром и забыть — как сейчас советуют все «продвинутые пользватели».
Но когда-то давно (1997-2008) этот браузер забрал львиную долю пользователей в интернете, выиграв гонку с Netscape — больше чем у вашего любимого Google Chrome сейчас.
А веб-разработчики того времени выли, плевались но вынуждены были оптимизировать странички под конкретный браузер:
Вся эта история называется «Browser Wars» и сама по себе очень интересна и хорошо описана, например тут.
Я же остановлюсь только на одном но важном эпизоде из истории IE:
News.com: "The original Internet Explorer team was just five or six people. By the time Silverberg and others decided to rewrite the browser almost completely for version 3.0, released in 1996, the team had grown to 100.
Дальше рост был еще круче, от сотни к тысяче разработчиков (за два года) и полная победа над Netscape, с последующим доминированием на рынке браузеров в течение десяти лет — именно так выглядит большой успех.
Но главное что в самом начале силами очень небольшой команды из 5-6 человек удалось создать прорывной программный продукт, который в итоге перекроил рынок браузеров.
Причем история с Internet Explorer показательна еще и тем, что исходный код не был написан с нуля — он был выкуплен и лицензирован у другой компании. Характерный штрих для тех времен, когда еще не было такого сильного развития опенсорса и большая часть софта была полностью закрыта.
Помните знаменитое «умение разбираться в чужом коде»? Вот это оно, только в виде обязательного требования и с горящими сроками.
Теперь немного про «переработки»:
I went to Redmond and worked there for a couple of weeks as part of the "Chicago" team. It was fun, but weird. They gave me my own office. At dinner time, everyone went to the cafeteria for food and then went back to work. On my first night, I went back to my hotel at 11:30pm. I was one of the first to leave.
Да мои дорогие современные «зумеры», именно так и создаются все программные шедевры, инновации и прорывные решения — #боша сутками напролет а не с 9 до 5 пять дней в неделю.
Но Internet Explorer все же проект из далекого прошлого и одного его мало для раскрытия темы, поэтому возьмем что-то по-новее — мессенджер Telegram.
Telegram
Начну с цитаты:
After Pavel left Russia in 2014, he was said to be moving from country to country with a small group of computer programmers consisting of 15 core members.[24][32]
Думаю не стоит пересказывать всю историю целиком — вы все и так знаете что сначала была социальная «Вконтакте», затем втихую созданный прототип Телеграма и закрытое тестирование, потом переезд из страны и публичное использование миллионами пользователей.
Но все же свой старт и все начальное развитие проект прошел с очень небольшой командой, которая сохранялась продолжительное время при активном росте аудитории.
Телеграм — отличный пример того что возможно очень небольшими силами запустить большой и сложный проект, именно так и должен выглядеть успешный технологический стартап.
Но Телеграм такой не один, есть кое-кто эпичнее.
Мало кто знает, но к созданию этого ныне запрещенного в РФ мессенджера тоже приложили руку русские программисты:
WhatsApp was founded in February 2009 by Brian Acton and Jan Koum, former employees of Yahoo! Their discussions often took place at the home of Koum's Russian friend Alex Fishman in West San Jose. They realized that to take the idea further, they would need an iPhone developer. Fishman visited RentACoder.com, found Russian developer Igor Solomennikov, and introduced him to Koum.[62]
Вот так просто, руками русского фрилансера был создан один из самых популярных и известных мессенджеров на планете.
Четыре года спустя мессенджером пользовалось уже 200 миллионов человек:
By February 2013, WhatsApp had about 200 million active users and 50 staff members. Sequoia invested another $50 million, and WhatsApp was valued at $1.5 billion.[27]
Команда из 50 человек обслуживала 200 миллионов пользователей по всему земному шару — расскажите об этом вашему сисадмину, когда он в очередной раз будет жаловаться на жизнь.
А дальше все стало сильно круче:
In August 2014, WhatsApp was the most popular messaging app in the world, with more than 600 million users.[86] By early January 2015, WhatsApp had 700 million monthly users and over 30 billion messages every day.[87]
In April 2015, Forbes predicted that between 2012 and 2018, the telecommunications industry would lose $386 billion because of "over-the-top" services like WhatsApp and Skype.[88] That month, WhatsApp had over 800 million users.[89][90]
By September 2015, it had grown to 900 million;[91] and by February 2016, one billion.[92]
Вот такая история, от наколенной поделки, созданной фрилансером за три копейки до миллиарда пользователей за 6 лет.
Но мессенджеры это все же современный продукт, созданный на удобных современных фреймворках, которые через одного обещают немыслимые скорости разработки и решение «всех технических проблем».
Поэтому может сложиться неверное впечатление, будто инструмент важнее человека и современный фреймворк позволит радикально сократить команду разработки сам по себе, по факту применения.
Специально для искоренения таких взглядов — следующий пример и рассказ о процессе разработки открытой операционной системы FreeBSD.
FreeBSD
Для начала стоит немного рассказать о том как происходит процесс разработки в этом проекте:
The FreeBSD Project is run by FreeBSD committers, or developers who have direct commit access to the master Git repository.[1]
The FreeBSD Core Team exists to provide direction and is responsible for setting goals for the FreeBSD Project and to provide mediation in the event of disputes, and also takes the final decision in case of disagreement between individuals and teams involved in the project.[2]
Вообщем есть небольшая группа «верховных разработчиков», с доступом на запись в репозиторий с исходным кодом проекта, которые принимают и проверяют коммиты от обычных разработчиков и контролируют весь процесс выпуска версии.
Это очень непростая работа ввиду объема исходного кода (~ 9 млн строк) и его сложности. А вся кодовая база в проекте из начала 90х, практически целиком на суровом чистом Си — это вам не чаты со смайликами ваять.
Как думаете сколько человек нужно для столь сложной работы?
- John Baldwin
- Tobias C. Berner
- Baptiste Daroussin
- Li-Wen Hsu
- Greg Lehey
- Ed Maste
- Mateusz Piotrowski
- Benedict Reuschling
- Emmanuel Vadot
Список выше это текущий состав FreeBSD Core Team, лишь 9 человек отвечающих за всю текущую разработку, релизы и развитие.
При этом FreeBSD это все также операционная система общего назначения, с широчайшим функционалом и самым большим количеством пользователей среди BSD-систем.
И всего 9 человек в Core Team.
Разумеется весь состав это сплошные убеленные сединами профи, каждый из которых сожрет на завтрак и вы#бет по частям любого т. н. современного «веб-разработчика», но сам факт что лишь девять человек столько лет ведут проект такого масштаба — очень показателен.
Итого
Я честно в душе не #бу не представляю кому и зачем нужны «миллионы программистов» и что предполагается с ними делать в таких количествах. Особенно зная на практике про сложности управления и проблемы роста и коммуникации в больших командах.
Этой статьей я хотел показать, что не стоит недооценивать «обычных» программистов и их возможности:
- для создания нового коммерческого программного продукта до сих пор хватает всего пары разработчиков не самого высокого уровня;
- большая часть языков разработки, систем сборки, библиотек и фреймворков до сих пор создаются в одиночку;
- проект для B2C (!) — для обычных пользователей вполне может потянуть небольшая команда в 6-7 человек и развивать его годами.
Разумеется на каком-то более позднем этапе, если проект подает надежды на успех, начинается безудержный рост и веселье, найм всего живого и закидывание деньгами, но самое начало все также проходят с небольшой командой.