Разработка Open Source проекта
на примере OpenVZ Web Panel




Алексей Южаков
Об OpenVZ Web Panel в двух словах

•   OpenVZ – технология виртуализации серверов (Open Source)
•   OpenVZ Web Panel – веб-панель управления (Open Source)
•   Сделана для себя
•   Зачем Open Source? Чтобы поделится своими наработками
•   17 000 инсталляций версии 2.0




                                  2
Идея проекта
Изложить ее за 5 минут и «зажечь» ею людей

•   Классная идея (особенно для самого себя)
•   Никакого продвижения: у вас просто нет отдела маркетинга
•   Проверить на практике нужно как можно раньше (альфа-версия)
•   Делиться идеей и искать единомышленников




                                 3
Мотивация
Проект не умрет, если есть четкий ответ на этот вопрос

•   Продукт нужен для решения собственной проблемы
•   Есть заказчики-спонсоры
•   Есть продуманная бизнес-модель
•   Вы – фанатик и это не первый серьезный проект

А вот так не работает (или работает очень недолго):
• «Это повысит мою карму»
• «Вот напишу, а потом на меня свалится куча денег»
• «Прикольная строчка в резюме»




                                  4
Эффективная разработка
Ограниченность в ресурсах рождает эффективные решения

•   Фокус на самом важном (максимум 3-5 пунктов)
•   Время – единственный ресурс. Стоит дорого!
•   Do it yourself. Надо уметь делать всѐ
•   Автоматизировать, только если действительно что-то повторяется
•   Если что-то повторяется часто – обязательно автоматизировать
•   Серьезный подход: вести учет времени




                                  5
Качество
Open Source проекты не любят за низкое качество

•   Ломайте стереотип, делайте продукт
•   Качество во всем: от сайта до интерфейса
•   Баги бывают и в «юзабилити». Их нужно исправлять
•   Порог вхождения ниже – продукт популярней
•   Качество кода – не самоцель: его мало кто заметит




                                  6
Технологии
Ограничений меньше, чем в коммерческих проектах

•   Поле для обкатки технологий и экспериментов
•   Приоритеты пользователям: контент, а не технические навороты
•   Возможность использовать библиотеки под GPL
•   Поиск альтернатив дорогим платным компонентам




                                  7
Инструменты
Это далеко не только Vim и Notepad

•   Качественный хостинг исходных текстов на Github
•   Непрерывная интеграция с помощью Travis CI
•   Gmail, Google Groups и Google Apps для совместной работы
•   Jira и Confluence в подарок
•   Бесплатная лицензия на отличную IDE RubyMine




                                  8
Сообщество
Не надейтесь, что кто-то сделает всѐ за вас

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




                                  9
О деньгах
Об этом нужно думать с самого начала

•   Даже фанатикам нужны деньги на еду
•   Поддержка проекта стоит денег
•   Donations не работают
•   Коммерческий проект не надо делать Open Source
•   Кастом-версии могут стать кошмаром
•   Нужно стараться не отдавать все права заказчикам




                                  10
Заключение
Интересно, но даже сложнее, чем коммерческий проект

• Проект должен быть интересен в первую очередь вам
• Решили заработать? Лучше выбрать не Open Source
• Разработка должна быть максимально оптимальной
• Создавайте законченный продукт,
  которым можно гордиться
• Меняйте мир в лучшую сторону своим
  продуктом




                               11
Вопросы?

E-mail: ayuzhakov@parallels.com




                  12

Creating Open Source Projects

  • 1.
    Разработка Open Sourceпроекта на примере OpenVZ Web Panel Алексей Южаков
  • 2.
    Об OpenVZ WebPanel в двух словах • OpenVZ – технология виртуализации серверов (Open Source) • OpenVZ Web Panel – веб-панель управления (Open Source) • Сделана для себя • Зачем Open Source? Чтобы поделится своими наработками • 17 000 инсталляций версии 2.0 2
  • 3.
    Идея проекта Изложить ееза 5 минут и «зажечь» ею людей • Классная идея (особенно для самого себя) • Никакого продвижения: у вас просто нет отдела маркетинга • Проверить на практике нужно как можно раньше (альфа-версия) • Делиться идеей и искать единомышленников 3
  • 4.
    Мотивация Проект не умрет,если есть четкий ответ на этот вопрос • Продукт нужен для решения собственной проблемы • Есть заказчики-спонсоры • Есть продуманная бизнес-модель • Вы – фанатик и это не первый серьезный проект А вот так не работает (или работает очень недолго): • «Это повысит мою карму» • «Вот напишу, а потом на меня свалится куча денег» • «Прикольная строчка в резюме» 4
  • 5.
    Эффективная разработка Ограниченность вресурсах рождает эффективные решения • Фокус на самом важном (максимум 3-5 пунктов) • Время – единственный ресурс. Стоит дорого! • Do it yourself. Надо уметь делать всѐ • Автоматизировать, только если действительно что-то повторяется • Если что-то повторяется часто – обязательно автоматизировать • Серьезный подход: вести учет времени 5
  • 6.
    Качество Open Source проектыне любят за низкое качество • Ломайте стереотип, делайте продукт • Качество во всем: от сайта до интерфейса • Баги бывают и в «юзабилити». Их нужно исправлять • Порог вхождения ниже – продукт популярней • Качество кода – не самоцель: его мало кто заметит 6
  • 7.
    Технологии Ограничений меньше, чемв коммерческих проектах • Поле для обкатки технологий и экспериментов • Приоритеты пользователям: контент, а не технические навороты • Возможность использовать библиотеки под GPL • Поиск альтернатив дорогим платным компонентам 7
  • 8.
    Инструменты Это далеко нетолько Vim и Notepad • Качественный хостинг исходных текстов на Github • Непрерывная интеграция с помощью Travis CI • Gmail, Google Groups и Google Apps для совместной работы • Jira и Confluence в подарок • Бесплатная лицензия на отличную IDE RubyMine 8
  • 9.
    Сообщество Не надейтесь, чтокто-то сделает всѐ за вас • Программистов очень мало • Мало правильных и полезных патчей • Зато готовы давать множество советов • Обычно сообщают о действительно насущных проблемах • Могут помочь перевести интерфейс на разные языки • Готовы бесконечно дискутировать и защищать свои идеи • Очень сложно уговорить тестировать сырой продукт • Всегда кто-то недоволен 9
  • 10.
    О деньгах Об этомнужно думать с самого начала • Даже фанатикам нужны деньги на еду • Поддержка проекта стоит денег • Donations не работают • Коммерческий проект не надо делать Open Source • Кастом-версии могут стать кошмаром • Нужно стараться не отдавать все права заказчикам 10
  • 11.
    Заключение Интересно, но дажесложнее, чем коммерческий проект • Проект должен быть интересен в первую очередь вам • Решили заработать? Лучше выбрать не Open Source • Разработка должна быть максимально оптимальной • Создавайте законченный продукт, которым можно гордиться • Меняйте мир в лучшую сторону своим продуктом 11
  • 12.