Привет! Меня зовут Фёдор Борщёв, и по четвергам я буду вместе с Васей и Юрой давать советы о разработке. Вот уже 10 лет я руковожу программистами, поэтому я буду больше говорить об управлении разработкой, чем о коде.
Пара фактов обо мне:
я технический директор в ГдеМатериале — стартапе, который даёт доступ рыночным поставщикам стройматериалов к крупными заказчиками — застройщикам и ремонтникам;
я сооснователь Руметра — единственной базы новостроек с хорошим дизайном;
сталкивался с множеством проектов, умерших из‑за разработки, часть из них загубил собственными руками;
веду блог и канал в Телеграме.
К управлению пришёл через программирование. За профессиональную карьеру написал код для множества систем: платформу для «парсинга интернета», систему онлайн‑торгов, личный кабинет студента английского, систему учета результатов в трофи‑рейдах, нейросеть для раскраски черно‑белых фотографий, модуль складского учета для интернет‑магазинов и множество скриптов для автоматизации. До сих пор по 10 часов в неделю я пишу коммерческий код на Питоне и Яваскрипте.
TDD — разработка через тестирование: когда программист сначала пишет автоматические тесты, а только затем код, который решает задачу.
В командах я делаю ставку на людей, инфраструктуру и здравый смысл. Вместо жёстких «заводских» процессов, на всех проектах внедряю уважение к личному времени, требую TDD и помогаю команде автоматизировать все, что только можно.
TDD — разработка через тестирование: когда программист сначала пишет автоматические тесты, а только затем код, который решает задачу.
В принятии решений следую классическим работам Питера Друкера, Элияху Голдрадта и Ицхака Адизеса. Внимательно прислушиваюсь к авторам, которые развивают менеджмент как науку, вроде Фредерика Лалу с его «бирюзовыми» организациями.
О чём меня стоит спрашивать:
о проекте как продукте — как резать фичи на основе метрик и экспериментов; как не трогая разработку понять, заработает фича или нет;
о команде — как отличить хорошего программиста от плохого; как сделать, чтобы участникам было комфортно работать вместе; по каким принципам разделять большие команды на маленькие;
о подходах к написанию чистого кода — TDD/BDD; метрики качества; как поддерживать кодовую базу в чистоте и что делать, если унаследованный код мешает работать;
об инфраструктуре и девопсе — автоматизация, кластеры, CI/CD и мониторинг;
о развитии программиста — что учить, чтобы оставаться востребованным на рынке труда, в какую компанию пойти работать, как стать тимлидом;
о том, почему «в срок» важнее, чем «быстро»; почему время стоит дороже денег, и где брать энергию для достижения целей.
Пишите! В вопросах упоминайте моё имя, чтобы я его сразу увидел. Например, «Вопрос Фёдору: расскажи, почему программисты срывают сроки?»
P. S. Это был совет об управлении разработкой. Хотите больше знать о планировании спринтов, управлении продуктом или о настройке инфраструктуры? Присылайте вопросы.