1. проблемы / боли разработки
1.1. всё делается чрезвычайно медленно и вообще никак не укладывается в срок
1.1.1. решение
1.1.1.1. организовать процесс разработки
1.1.1.1.1. делать задачи по строго утвержденному плану релизов
1.1.1.1.2. не забывать про предварительную подготовку к программированию
1.1.1.1.3. итеративная разработка
1.1.1.1.4. распределение заданий по людям
1.1.1.1.5. контроль выполнения задач
1.1.1.1.6. если у программистов возникнут вопросы
1.1.1.1.7. Тестирование на сборках
1.1.1.1.8. Автоматический перенос на боевой
1.1.1.2. Организовать процесс управления ТРЕБОВАНИЯМИ
1.1.1.2.1. Нужен человек product owner
1.1.1.2.2. вести обязательную оценку ВСЕХ поступающих задач
1.1.1.3. полное проектирование вплоть до самой мелкой функции
1.1.1.3.1. чтобы можно было предсказать трудоемкость каждой функции вплоть до 30 мин, но не более 3 часов
1.1.1.4. нужен руководитель проекта
1.1.1.4.1. должен четко знать в каком состоянии находится каждая задача
1.1.1.4.2. какую задачу в данный момент делает какой человек
1.1.1.4.3. должен знать как разобраться в море задач
1.1.1.4.4. должен чувствовать важность каждой задачи и её экономический эффект
1.1.1.4.5. должен уметь отстаивать свою позицию и аргументировать, почему нужно сделать именно эту задачу, а не иную
1.1.1.5. нужен хороший софт для управления задачами
1.1.1.5.1. можно начать с бесплатного баг-трекера, но лучше что-нибудь из Agile
1.2. при боевой эксплуатации возникает огромное количество серьезных ошибок
1.2.1. водопад новых ошибок при каждом исправлении
1.2.1.1. решение
1.2.1.1.1. Видение, что хотя бы приблизительно оценить трудоемкость
1.2.1.1.2. Подробное ТЗ, чтобы точно определить точную трудоемкость
1.2.1.1.3. основное превышение вылезает из-за того, что в начале работы неизвестны альтернативы
1.2.1.1.4. правильная системная архитектура
1.2.1.1.5. убрать ручное влияние
1.2.1.1.6. автоматическое тестирование для обнаружения проблем в старых модулях
1.2.1.1.7. стандарты программирования
1.2.1.1.8. стандарты документирования
1.2.1.1.9. обучение программистов
1.2.1.1.10. ПО, облегчающее жизнь программистам
1.2.1.1.11. возможность оперативно откатить исходный код
1.2.1.1.12. сборки для тестирования
1.2.1.1.13. профессиональный тестировщик
1.2.1.1.14. изничтожать ошибки до конца
1.3. ужасно неудобные интерфейсы
1.3.1. Решение
1.3.1.1. Проектировать интерфейсы с точки зрения пользователей
1.3.1.1.1. ТЗ на основе вариантов использования
1.3.1.2. рисование интерфейсов ДО начала программирования
1.4. в конце получается совсем не то, что нужно
1.4.1. решение
1.4.1.1. Разбиваем на этапы с полезным бизнес-результатом
1.4.1.2. поэтапный ввод в боевую эксплуатацию короткими итерациями, чтобы было сразу видно, что получается
1.4.1.3. оперативное внесение изменений в проект после каждой итерации
1.4.1.3.1. хотелки
1.5. Сбои по железу
1.5.1. решение
1.5.1.1. Хорошее серверное железо
1.5.1.1.1. компания Tiscom
1.5.1.2. Полное резервное копирование
1.5.1.2.1. Зеркалирование в реальном времени
1.5.1.2.2. Периодические бэкапы
1.5.1.2.3. Много всего интересного, поэтому только по запросу
1.5.1.3. Хороший сис админ
1.5.1.3.1. Умеет оптимизировать для больших нагрузок
1.5.1.3.2. Знает всё в совершенстве
1.5.1.3.3. На нём нельзя экономить
1.5.1.4. Правильная ОС
1.6. От разработчиков поступают отказы на выполнение задач, важные задачи не делаются
1.6.1. суть проблемы
1.6.1.1. заказчики не в курсе о том какие задачи вообще есть
1.6.1.1.1. они думают, что нет ничего
1.6.2. решение
1.6.2.1. сделать, чтобы они видели весь объем задач и сами смогли повлиять на то, какие задачи будут делаться
1.6.2.1.1. им нужно понимать трудоемкость задач. хотя бы приблизительную
1.6.2.1.2. нужно понять какой экономический эффект даёт задача
1.6.3. плановые совещания 1 раз в 2 мес
1.6.3.1. 20-го числа каждого 2-го месяца
1.6.3.1.1. общий список задач по всем проектам
1.6.3.1.2. Цель - составить список задач и их порядок
1.6.3.1.3. Приоритеты
2. Как построить систему разработки ПО
2.1. Сотрудники
2.1.1. Руководитель разработки ПО
2.1.1.1. Мотивирует сотрудников
2.1.1.2. Улучшает инфраструктуру
2.1.1.3. Принимает участие в формировании плана работ
2.1.2. Руководитель проектов
2.1.2.1. Контроллирует исполнение на ежедневной основе
2.1.2.2. Собирает все хотели и все баги у себя
2.1.2.3. Решает какие задачи включать в релиз, а какие нет
2.1.3. Системный архитектор
2.1.3.1. Создаёт архитектуру модулей
2.1.3.1.1. С обязательным документированием
2.1.3.2. Проверяет, что программисты реализовали то, что нужно
2.1.3.3. Обучает программистов
2.1.4. Системный аналитик
2.1.4.1. Пишет технические задания
2.1.4.2. Рисует интерфейсы
2.1.5. Тестировщик
2.1.5.1. Проверяет созданное ПО
2.1.6. Специалист технической поддержки
2.1.7. Контент-менеджер
2.1.8. Технический писатель
2.1.9. Системный администратор
2.1.9.1. Производит настройку всех систем
2.1.9.2. Проводит работы с аппаратным обеспечением
2.2. Софт
2.2.1. Система управления задачами
2.2.2. Система контроля версий исходного кода
2.2.3. Система поиска исходных кодов
2.2.4. Система генерации документации исходных кодов
2.2.5. Система построения сборок
2.2.5.1. Автоматический запуск юнит-тестов ПЕРЕД сборкой
2.2.5.2. Блокирование сборки в случае срабатывания юнит-тестов
2.3. Обучающие материалы для программистов
2.3.1. Как работать со сборками
2.3.2. Стандарты программирования
2.3.3. Стандарты документирования
2.3.4. Обучающие видео-ролики
2.3.4.1. О шаблонах проектирования
2.3.4.2. примеры
2.4. Шаблоны проектирования
2.4.1. нано-блоки
2.4.2. наблюдатели
2.4.3. кейсы
3. Автор метода
3.1. Евгений Панин
3.1.1. Всё, что есть в этой карте этот человек реализовал на практике
3.2. Контакты
3.2.1. +7(916) 311-3857
3.2.2. [email protected]
3.2.3. Skype: varenich
3.3. Услуги для Вас
3.3.1. Постановка процесса разработки ПО
3.3.2. Найм команды и определение качества программистов
3.3.3. Консультации по разработке ПО
3.3.4. Создание Вашего веб-сайта
3.3.5. Составление тех задания на основе вариантов использования (use cases)
3.3.6. Поставка аппаратной инфраструктуры
3.3.7. Поставка корпоративного портала
3.3.8. Поставка системы управления задачами
3.3.9. Поставка CMS 1С-Битрикс