Поиск по сайту:

Примените принципы бережливого стартапа к своему проекту с открытым исходным кодом


Принципы бережливого стартапа помогут вам эффективно и успешно управлять проектом с открытым исходным кодом.

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

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

Когда вы разрабатываете собственный проект с открытым исходным кодом, вы во многом похожи на генерального директора стартап-компании, а многие стартапы используют принципы бережливого производства. В этой статье показано, как можно применять принципы бережливого стартапа для разработки и продвижения проектов с открытым исходным кодом.

Придумайте хорошую идею с открытым исходным кодом

При мозговом штурме хорошей идеи с открытым исходным кодом рассмотрите три области: отрасль, запасы и клиенты. Вы хотите придумать идею на пересечении этих областей. Например, я работаю над проектом с открытым исходным кодом для гибридного облака. Облачные вычисления — моя отрасль. Inventory может представлять собой набор сборников сценариев Ansible, доступных для индустрии облачных вычислений. Клиентами могут быть мои клиенты OpenShift, заинтересованные в использовании сборников сценариев Ansible для настройки своей гибридной облачной инфраструктуры. Это подводит меня к пересечению трех областей, и это может быть отличной идеей с открытым исходным кодом.

Рис. 1. Хорошая идея с открытым исходным кодом (Ip Sam, CC BY-SA 4.0)

Как только вы определите свою идею с открытым исходным кодом, начните разработку прототипа проекта проверки концепции (PoC), поместите его в репозиторий Git и создайте резервную копию проекта:

  1. Запустите простой прототип PoC.
  2. Поместите PoC в общедоступный репозиторий GitHub.
  3. Создайте файлы README, LICENSE, CONTRIBUTING и CODE_OF_CONDUCT.
  4. Создавайте высокоуровневые эпики и истории в Jira.

Затем начните работать над позиционированием своей идеи с открытым исходным кодом для достижения долгосрочного успеха. Учитывайте предложения конкурентов, потребности клиентов и возможности компании. Например, если я знаю, что клиенты хотят реализовать облачную автоматизацию в кластере OpenShift, я понимаю их потребности. Возможности моей команды связаны с созданием средств автоматизации Ansible для автоматизации установки и обновления кластера OpenShift. И мне нужно убедиться, что конкуренты не выполняют подобную работу. В моем проекте с открытым исходным кодом я использую Ansible для автоматизации. Другие компании могут использовать сценарии оболочки или сценарии PowerShell. Несмотря на то, что они разрабатывают технологии автоматизации, их предложения напрямую не мешают тому, что делает мой проект с открытым исходным кодом. Таким образом, я могу попасть в золотую середину ниже.

Рисунок 2. Расширьте свою идею с открытым исходным кодом (Ip Sam, CC BY-SA 4.0)

Используйте принципы бережливого стартапа

Управление рисками важно для проекта с открытым исходным кодом. В любой момент проект может потерять финансирование, людей и ресурсы. Бизнес-требования и объем могут измениться. Графики выпуска могут быть отложены или отменены. Сроки могут меняться с большой неопределенностью. Как генеральный директор вашего проекта с открытым исходным кодом, вы можете использовать принципы бережливого стартапа, чтобы минимизировать риски и максимизировать прибыль для вашего проекта.

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

В цикле бережливого стартапа сначала вы приходите к идее с открытым исходным кодом. Затем вы конвертируете свою идею в код, создавая простой MVP. В промежутке вы настраиваете этап сборки (на котором вы создаете модульные тесты для обеспечения качества вашего кода), конвейеры непрерывной интеграции/непрерывной разработки (CI/CD) для автоматического развертывания, инфраструктуру облачных вычислений, изолированную программную среду для разработчиков и другие лучшие практики разработки. Это часть этапа сборки, позволяющая вашим разработчикам писать код быстрее.

Вам необходимо измерить все: от кодирования до производственных данных. Например, измерьте удобство использования MVP, чтобы убедиться, что конечные пользователи смогут использовать его правильно. Используйте мониторинг и оповещения, чтобы знать, когда возникают производственные проблемы. Статический анализ кода помогает обнаружить проблемы с кодом и уязвимости безопасности. Наконец, используйте данные обратной связи от пользователей продукта и заинтересованных сторон; это помогает вам измерять быстрее.

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

Рис. 3. Цикл бережливого запуска (Ip Sam, CC BY-SA 4.0)

Методологии бережливого стартапа помогают вам создать идею, сформулировать гипотезы на основе вашей идеи, создать MVP и протестировать MVP для проверки ваших гипотез. Затем вы повторяете то, чему научились, чтобы уточнить свои гипотезы и начинаете вторую итерацию.

Рис. 4. Методологии бережливого запуска (Ip Sam, CC BY-SA 4.0)

Бережливый стартап — это сочетание развития клиентов и гибкой разработки. Он поддерживает более быстрые итеративные циклы разработки и поэтапную разработку продуктов.

Используйте дизайн-мышление, экономичный стартап и agile

Рис. 5. бережливый стартап и Agile (Ip Sam, CC BY-SA 4.0)

На рисунке ниже показаны три цикла дизайн-мышления, бережливого стартапа и гибкой разработки. Первая часть — это всегда дизайн-мышление (зеленый цикл), во время которого вы собираете требования для определения своей идеи. Часто их исходят от менеджеров по продукту. Затем вы переходите к циклу бережливого стартапа (синий), где вы создаете прототипы, проводите несколько экспериментов и проходите период обучения. Основываясь на ваших знаниях, вы можете войти в гибкий (желтый) цикл. Они часто включают в себя типичные двухнедельные спринты, создание историй в бэклогах ваших продуктов, перенос историй из бэклога в планирование спринта, выполнение спринта, продвижение историй к завершению и отправку дополнительных продуктов в производство путем развертывания. В конце у вас есть обзор спринта, демонстрация спринта и ретроспектива спринта. После завершения гибкого цикла вы возвращаетесь к синему циклу, чтобы начать процесс сборки, измерения и следующую итерацию.

Рис. 6. Дизайн-мышление, бережливый стартап и гибкие циклы вместе (Ip Sam, CC BY-SA 4.0)

Часто у вас есть несколько MVP, прежде чем вы доберетесь до конечного продукта. Используйте отзывы клиентов и данные о продукте, чтобы сформировать следующую версию MVP.

Рис. 7. MVP бережливого стартапа (Ip Sam, CC BY-SA 4.0)

Треугольник управления проектами помогает поддерживать качество продукта. Объем, стоимость и время — это углы треугольника. Форма треугольника характеризует качество продукции. Если вы уменьшите масштабы и затраты, форма треугольника изменится, а это означает, что ваше качество снизится.

Рис. 8. Бережливое управление проектами (Ip Sam, CC BY-SA 4.0)

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

Рис. 9. Релизы Lean (Ip Sam, CC BY-SA 4.0)

Наймите участников и создайте команду

Маркетинг проекта — важная отправная точка для привлечения участников и инвесторов в ваш проект с открытым исходным кодом. Узнайте, как продавать свой проект, представлять его на крупных конференциях и мероприятиях, а также демонстрировать PoC или MVP на местных встречах разработчиков. Если вы работаете в крупной организации, возможно, вы сможете превратить ее во внутренний проект.

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

Рис. 10. График зрелости команды (Ip Sam, CC BY-SA 4.0)

Метод бережливого управления командой может помочь вам достичь зрелости команды. Он использует четыре рычага контроля: доверие, границы, измерение и интерактивность.

  • Верьте. Это набор основных ценностей вашей команды. Например, моя команда верит в качество как требование для каждого продукта. Поэтому качество является основной ценностью команды.
  • Границы. Они относятся к установлению правил, основанных на основных ценностях. Например, моя команда верит в качество, и мы установили правила, требующие модульных и интеграционных тестов для каждого изменения кода, прежде чем заносить его в репозиторий Git. Это становится границей для команды. Если кто-то проверяет код без проверки, значит, этот человек не следует правилу, и вам пора обучить членов команды.
  • Измерение. Сюда входят ключевые показатели эффективности (KPI), целевые показатели и бюджет. Например, ключевые показатели эффективности моей команды включают измерение времени цикла истории в спринте, времени выпуска истории, уровня дефектов, уровня покрытия тестированием и проблем с продуктом.
  • Интерактивный. В интерактивном процессе вы пересматриваете продукт на основе вашего последнего цикла. Затем вы начинаете следующую итерацию для следующего набора основных ценностей.

Рис. 11. Бережливое управление командой (Ip Sam, CC BY-SA 4.0)

Минимизируйте отходы

Восемь типов потерь — дефекты, перепроизводство, ожидание, неиспользованные таланты, транспортировка, инвентарь, перемещение и дополнительная обработка — в жизненном цикле разработки вредят продуктивности команды.

  • Дефекты. Дешевле исправить дефект на ранних этапах жизненного цикла разработки, поэтому многие команды используют разработку через тестирование (TDD), чтобы уменьшить количество дефектов.
  • Перепроизводство. Если вы делаете больше, чем от вас просят, вы производите перепроизводство. Это связано с объемом историй; объем должен быть небольшим, чтобы вы не рисковали перепроизводством.
  • Ожидание. Ожидание неэффективно и приводит к пустой трате ресурсов вашей команды. Во время ежедневных стендапов спринта выявляйте истории, которые заблокированы или ожидают внешних зависимостей. Ваша задача как Scrum-мастера — помочь обострить эти проблемы с блокировкой, чтобы сократить время ожидания.
  • Неиспользованный талант. Неиспользованный талант — это всегда пустая трата, поэтому убедитесь, что у каждого члена команды есть достаточно работы.
  • Транспорт. Если вы перемещаете проекты от одной команды к другой, вы увеличиваете время обучения и времени на ввод в эксплуатацию. Постарайтесь сократить объем перевозок проектов.
  • Инвентарь. Слишком много инвентаря, который невозможно продать, является пустой тратой. Инвентаризация занимает место в вашем хранилище и требует времени на управление.
  • Движение. Чрезмерные ненужные движения, такие как посещение встреч в разных местах или даже поездки на работу, являются пустой тратой. Во многих организациях существует политика работы на дому, позволяющая сократить потери при движении.
  • Дополнительная обработка. Если вы неоднократно проводите одно и то же проверочное тестирование для одного и того же продукта, дополнительная обработка может оказаться напрасной. Придумайте последовательность операций в цикле разработки, чтобы избежать дополнительной обработки.

Рис. 12. Бережливое управление отходами (Ip Sam, CC BY-SA 4.0)

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

Рис. 13. Экономичное управление временем (Ip Sam, CC BY-SA 4.0)

Разработайте бережливую стратегию

Бережливая стратегия — это хороший способ проанализировать ваш продукт с открытым исходным кодом, чтобы разработать долгосрочную стратегию. Задайте себе следующие вопросы: если бы вашего продукта с открытым исходным кодом не существовало, понесли бы ваши клиенты какие-либо реальные потери? Если да, то какого типа это будут потери? Трудно ли вашим клиентам заменить вашу продукцию для удовлетворения своих потребностей? Например, если я создаю сборники пьес Ansible для автоматизации кластера, могут ли мои клиенты заменить мои сборники пьес Ansible, используя набор сценариев оболочки? Как это повлияет на эксплуатационные расходы и кривую обучения?

Рис. 14. Вопросы по бережливой стратегии (Ип Сэм, CC BY-SA 4.0)

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

Рис. 15. Иерархия бережливой стратегии (Ip Sam, CC BY-SA 4.0)

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

(Ип Сэм, CC BY-SA 4.0)

Ценообразование и дифференциация являются двумя важными факторами достижения прибыли. Вы хотите предложить низкую цену и высокую дифференциацию. Спросите себя: чем ваш продукт отличается от продуктов конкурентов? Какие особенности уникальны для вашего продукта? Если вы сможете максимизировать дифференциацию и минимизировать ценообразование, вы достигнете границы прибыли.

(Ип Сэм, CC BY-SA 4.0)

Посмотрите в будущее

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

Начните с оценки перспектив, возможностей и потенциальной прибыли.

  • Перспектива включает в себя то, как ваш продукт удовлетворяет потребности клиентов. Например, может ли мой сборник сценариев Ansible сократить количество ручных операций в кластере OpenShift, чтобы сэкономить 20 % операционных затрат клиента?
  • Возможности — это то, что может делать ваш продукт и какие новые функции он может предложить. Например, могут ли мои сборники сценариев Ansible работать с поддержкой кластеров OpenShift 3 и OpenShift 4? Локальные кластеры или кластеры AWS?
  • Потенциальная прибыль включает в себя то, какой доход приносит вам ваш продукт за определенный период времени. Попадает ли ваш продукт в предел прибыли, показанный на изображении выше?

(Ип Сэм, CC BY-SA 4.0)

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

Статьи по данной тематике: