• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Developmentmanage1.0
 

Developmentmanage1.0

on

  • 3,823 views

 

Statistics

Views

Total Views
3,823
Views on SlideShare
1,204
Embed Views
2,619

Actions

Likes
1
Downloads
79
Comments
1

18 Embeds 2,619

http://www.highload.ru 974
http://profyclub.ru 739
http://highload.ru 240
http://www.agile.by 192
http://archive.highload.ru 187
http://www.profyclub.ru 162
http://2012.highload.co 47
http://new.profyclub.ru 33
http://www.agilebelarus.org 27
http://www.slideshare.net 6
file:// 4
http://static.slideshare.net 2
http://feeds.feedburner.com 1
http://46.4.179.203 1
http://webcache.googleusercontent.com 1
http://profyclub.ontico.ru 1
http://agilebelarus.org 1
http://2012.highload.ru 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • Вооот! :)
    Очень важно.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Developmentmanage1.0 Developmentmanage1.0 Presentation Transcript

    • Управление разработкой высоконагруженных проектов
    • В чем особенность разработки высоконагруженных интернет-проектов?
      • Больше 10 серверов?
      • Любой интернет-проект может стать высоконагруженным.
      • Больше 1m хитов?
      • Больше 5 разработчиков?
      • Интернет-быстро меняющаяся среда в которой от команды требуется исключительная гибкость.
      • Высоконагруженные интернет-проекты должны быть беспредельно масштабируемы в любом узком месте.
    • Из чего состоит разработка?
      Самая важная часть процесса разработки – люди, а вовсе не технологии.
      • Команда
      Определяет технологические решения.
      Определяют стоимость и качество продукта.
      • Технологии
      • Менеджмент и планирование
      Определяет мотивацию и ответственность.
    • С чего начинается разработка?
      С подробного технического задания?
      С разработки методик тестирования?
      С выбора технологий?
      С поиска и найма команды!
      Выберите группу лучших разработчиков и заставьте их искать себе подобных.
    • Как нужно нанимать разработчиков?
      Групповое собеседование.
      Начинаем собеседование с написания кода.
      На собеседовании спрашивайте только то, что вам точно нужно.
      Тратьте на собеседование достаточно времени.
      Помните, отличники нанимают отличников – а хорошисты троечников.
    • Команда
      Все разработчики хотят разрабатывать (но хотят ли они разрабатывать для Вас?).
      Все разработчики хотят уважения и признания их заслуг в реализации проекта.
      Разработчики любят чувство ответственности и «собственности» своего куска программного кода.
      Руководитель команды должен быть наиболее авторитетным сотрудником.
      Прозрачность в принятии решений.
      Открытые коммуникации.
    • Роли в IT команде
      IT-managerTeam leader: играющий тренер, знает кто что делает, почему сейчас и «когда будет готово».
      Архитектор: привносит новые технологические идеи в команду, работает со сложными задачами (реализация практического R&D).
      Разработчик – боевая единица, полностью ответственная за качественный и временной результат.
      Администраторответственный за production – человек необходимый для связи разработчиков с реальностью.
      Тестеры –группа пользователей имеющая возможность общаться с разработчиками напрямую.
    • Выбор технологии
      НЕТ!
      -«Я слышал, что это работает.»
      • «По тестам журнала “Линуксоид и Ко” эта база самая быстрая.»
      • «Нам нужен всего лишь сервер помощнее.»
      ДА!
      - «Эта технология знакома нашей команде.»
      • «Я знаю людей которые придут и разработают эту часть проекта.»
      • «Эта технология позволит нам поставить столько серверов, сколько нам нужно.»
    • Проектирование
      Принимает участие вся команда от PM до бета-тестеров.
      По каждому этапу должны быть найдены ответы на вопросы:
      Как мы будем масштабировать нагрузку?
      Как мы можем применить что-то из уже существующего кода?
      Как мы будем использовать это в последующих разработках?
      Кто из команды лучше всего разбирается в этом вопросе Кто будет это делать?
      Когда мы это сделаем?
    • Инструментарий
      • Тасктрекер – «память» проекта.
      • Система контроля версий – версификация и развертывание.
      • Радар – задачи в работе.
      • «Список Идей» - позволяет коллекционировать идеи на будущее.
      • «Wiki» - для документации.
      • «Средство учета времени» – self-test IT-менеджера.
    • Процесс разработки
      Нужно ли техническое задание?
      ДА!
      Длинна проекта >месяца.
      Работает несколько команд.
      Есть удаленные команды.
      Есть outsource разработчики.
      НЕТ!
      Короткий проект.
      Проект, который уже делали.
      Маленькая команда.
      Лучшее тех.задание – работающий макет.
    • Процесс разработки
      Есть команда? Есть ТЗ? – Самое время для определения последовательности этапов.
      IT Manager
      Product Manager
      Планирование должно быть осуществлено на весь срок разработки проекта. Результатом каждого этапа должен являться визуальный результат.
    • Процесс разработки
      Дробим на минимальные кванты не длиннее недели.
      Результат работы над каждым квантом – развертывание.
      Разрешайте разработчикам выбирать задачи.
      Боритесь с расслоением команды.
      Обсуждайте сложности.
      Не начинайте разработку пока есть нерешенные вопросы.
    • Что получилось хорошо?
      Что получилось плохо?
      Почему?
      Ежедневная встреча всех участников проекта.
      Не более 15 минут.
      Кто и что делает?
      Какие проблемы существуют?
      Выбор задач на текущую неделю
      Развертывание
      +
      Еженедельное
      Обсуждение
      Результатов
      Каждая еженедельная разработка должна заканчиваться развертыванием.
    • Тестирование
      Нужно ли выделенное подразделение тестеров в интернет-проекте?
      • Нагрузочное тестирование - за разработчиком.
      • Системное тестирование - за проектным менеджером.
      • Функциональное тестирование – за автоматизированным ПО.
      • Финальное тестирование - за группой пользователей-бетатестеров.
      Если вы не можете найти пользователей, которые хотят протестировать ваш продукт – подумайте стоит ли делать такой продукт.
    • Что, если…
      Произошел сдвиг сроков:
      • Обязательно обсудите со всей командой видение причин сдвига сроков. (причины могут быть как в ошибочной оценке, так и в дополнительных задачах).
      • Назначьте и зафиксируйте новые сроки, не пытайтесь сделать невозможного – это выльется в низкое качество проекта.
      • Не злоупотребляйте овертаймом, помните, что каждый человек может эффективно работать строго ограниченное количество времени (а находиться на работе он может намного больше).
    • Что, если…
      ИзменилосьТЗ:
      • Обсудите с командой изменение ТЗ, объясните почему это произошло.
      • Выберите что из уже реализованного ПО можно использовать в новой задаче.
      • Всегда лучше закончить текущую разработку, а потом начать следующую, чем переключиться в процессе разработки на новую задачу – цена переключения очень велика.
      • Даже мелкие изменения ТЗ – меняют сроки, не забывайте менять срок готовности в плане разработки.
    • Слово о развертывании в production.
      Развертывание – это еще и этап тестирования.
      Все развертывание должно быть полностью автоматизировано.
      «Боевое» и тестовое развертывание с помощью одних и тех же утилит.
      Развертывание – дело группы эксплуатации.
      Развертывание - только из системы контроля версий.
    • Если у Вас нет вопросов, то я повторю презентацию.
      Владимир Габриелян.
      gabrelyan@corp.mail.ru