2. О чем мой доклад
• Только технические вопросы – отложим (но не забудем!)
маркетинг, психологию и политику
• Чем я занимаюсь: аутсорсинг проектов по разработке ПО
• Проект = Заказчик + Команда + Технологии + Процесс
• Какие бывают заказчики
• Как строится команда
• Как выбрать и применить технологии
• Процесс для результата, а не для процесса
• Каждый проект – как в первый раз
3. Различные области IT
• Украинский рынок и аутсорсинг, заказчики государственные и
частные:
o Укрпочта – формализм, личная безответственность и алчность, незаинтересованность
конечных пользователей в результате (автоматизация=сокращения)
o Davai.com – компетентность, нацеленность на результат, гибкость, активное участие,
помощь и контроль
• Разработка, внедрение, поддержка, аудит
o Разработка: Новая игра для мобильного устройства
o Внедрение: Перевод бухгалтерии компании на 1С
o Поддержка: Добавление новых отчетов в банковское ПО на Cobol
o Аудит: Контроль соответствия биржевого ПО стандартам безопасности
• Проекты и процессы
o Проект: Разработка электронного магазина;
o Процесс: Техническая поддержка 10 000 сотрудников крупного банка
• Чем я занимаюсь: аутсорсинг проектов по разработке ПО
4. Проект =
Заказчик + Команда + Технологии + Процесс
• Вкусный торт бывает только из качественных продуктов
• Люди важнее инструментов и правил
• Заказчик:
o Заинтересованность высшего руководства
o Выделенные участники
o Достаточность ресурсов
o Компетентность
• Команда
o Общие цели
o Достаточная мотивация
o Доверие
5. Методологии (часть 1)
• Методологии: правила игры в проекте
• Классика: Водопадная модель, V-модель, RUP, …
o Трудоемкие, дорогие, сложные, требуют длительного этапа подготовки
o Результат виден только в конце проекта
o Применимы для больших команд и сложных проектов
o Сейчас используются реже
o Пример: ПО для оптимизации финансового учета корпорации
6. Методологии (часть 2)
• Гибкие методологии: Scrum, Agile, XP, Kanban, …
o Легко адаптируются к условиям проекта, быстрая обратная связь и изменения
o Применимы для плохо подготовленных проектов
o Тяжело масштабируются на большие проекты
o Очень популярны
o Пример: Разработка электронного магазина
• Все проекты разные
7. Технологии (часть 1)
• Технологии: правильный инструмент в правильных руках
• Web-приложения
o Относительно небольшой объем и длительность, небольшие риски и прибыльность
o Типичная функциональность и стандартные компоненты (CMS, forum, basket)
o Быстрая разработка, быстрая обратная связь, «тестирование на пользователях»
o Проблемы: Совместимость с обозревателями, быстродействие, проблемы с
интеграцией стороннего ПО
o Технологии: PHP, Ruby, ASP.NET, …
• Мобильные устройства
o Небольшой объем и длительность, небольшие риски и прибыльность
o Типичная функциональность, простота
o Быстрая разработка, быстрая обратная связь , «тестирование на пользователях»
o Проблемы: Разные платформы, разные устройства (для Android), быстродействие
o Технологии: Java, Objective C, …
8. Технологии (часть 2)
• Корпоративные системы
o Очень большой объем и стоимость, высокие риски, высокая прибыльность
o Структурная сложность, многочисленные интеграции, требования к
масштабируемости и надежности
o Проблемы: Бесполезно вне общей системы, сложно тестировать отдельно
o Технологии: Java, .NET, Oracle, объектные сервера, специализированное ПО
o Пример: Система управления заказами DHL: глобальное ПО для миллионов
пользователей и миллиардов транзакций
• Системы обеспечения жизнедеятельности и встроенное ПО
o Значительный объем, высокие риски
o Техническая сложность, интеграция с другими аппаратными и программными
компонентами
o Проблемы: Бесполезно вне общей системы, сложно тестировать отдельно
o Технологии: C, C++, Assembler, Java
o Пример: ПО для кардиостимуляторов: жизненно важная надежность, устойчивость
к физическим помехам, простота
9. Технологии (часть 3)
• Другие миры: игровые системы, научное ПО, системное ПО, …
• Всегда есть исключения
o Система видеонаблюдения под Android
- Управление камерами на уровне встроенных протоколов
- Декодирование и показ видео в нестандартных форматах
- Поддержка различной аппаратуры камер и Android
o Электронная платежная системы
- Повышенные требования к безопасности
- Ошибки пользователей будут стоить слишком дорого
- Интеграция со сторонними системами
o Twitter
- Внезапная популярность
- Нагрузка растет лавинообразно
- Нужно сохранить качество обслуживания для пользователей
- Конкуренты дышат в спину
10. Что дальше?
• Большие системы – все простые программы уже написаны,
каждая следующая будет сложнее, нужно использовать
существующие знания
• Мобильные приложения – новые платформы, новые
возможности, новые задачи, новые решения
• Облачные вычисления – программы как сервисы, надежность и
эффективность по требованию, доступ отовсюду
• Пример: крупнейший поставщик решений для видеонаблюдения
o Сейчас: Собственные протоколы, несовместимое оборудование, клиент-серверные
системы для Windows,
o Завтра: Стандартные и совместимые протоколы и оборудование, функциональность
в общих сервисах, мобильные клиенты для конечных пользователей,
специализированное клиентское ПО для административных задач