Программисты - кто они? Или как организовать работу Семёнов Илья Руководитель отдела программных разработок ООО «Смарт Процессинг» Санкт-Петербург, 2013 г. Структура презентации Программисты – кто они? Как организовать работу o o o Проектное управление Инфраструктура разработки Мотивация Программисты - кто они? Или как организовать работу Структура презентации. Задачи Программисты – кто Как организовать работу o o o Проектное управление Инфраструктура разработки Мотивация Программисты - кто они? Или как организовать работу они? Программисты, кто они? Проблемы Разные типы и характеры людей: нахождение общего языка с программистами, индивидуальный подход; Разный ритм жизни: график работы; Хаос в головах программистов: организация, структуризация работы программистов. Программисты - кто они? Или как организовать работу Программисты, кто они? Типы личностей В большинстве случаев люди ведут себя в соответствии с моделью поведения определенной их типу личности: Холерик Сангвиник Меланхолик Флегматик Программисты - кто они? Или как организовать работу Программисты, кто они? Типы программистов (по Дж Ханк Рейнвотеру): Распространенные Редкие Архитектор (мыслят объектами) Волшебник Конструктивист (пишут надёжный, самодокументируемый код) Минималист (быстро теряют интерес) Аналогист (мыслят аналогиями) Художник (стиль, который отличает человека от машины) Трюкач (слишком увлекаются технологиями) Инженер (тенденции к усложнению) Ученый (решают трудные задачи, любят всё усложнять) Лихач (делают всё быстро, но не качественно, свойственно молодым программистам) Дворовые Разгильдяй (используют разные стили) Тормоз (не знает с чего начать) Любитель (не хватает образования, считаю себя хакерами) Профан (тупицы) Эклектик (инженера+разгильдяй+художник-> винегрет стилей кодирования) Ковбои (в совершенстве владеет своим ремеслом, но при этом управлять им практически невозможно) Программисты - кто они? Или как организовать работу Программисты, кто они? Виды восприятия информации Визуал (60%) Восприятие через зрение. Прочитал, запомнил. Нарисовал на доске, хорошо, обсудил на слух плохо. Обладают хорошей визуальной памятью. Аудио книги не воспринимают. Аудиал (30%) Воспринимает информацию на слух, плохо запоминает “письменность”. Любит говорить, т.к. для людей этого типа это приоритетный канал связи. В дискуссия доминируют. Любят слушать аудио книги. Кинестетик (10%) Ощущение мира через касания, осязание. Человек должен записать информацию, чтобы ее запомнить. Программисты - кто они? Или как организовать работу Свой-чужой Должен ли менеджер управляющий программистами быть в прошлом программистом? Кем был раньше менеджер, админом, программистом или экономистом? Если вы не проектировали архитектуру, будучи программистом, то, скорее всего, сможете допустить эту оплошность по отношению к своим подчинённым. Пол Экман: психологии эмоций НЛП: интонация, голос, жесты, как определитель свой-чужой Программисты - кто они? Или как организовать работу Кого брать в команду? Люди всякие важны, люди всякие нужны. Рерайт Маршака С. Хороший программист: • Задаёт вопросы, а не кодит вещь в себе; • Умеет правильно коммуницировать на понятном языке; • Знает основы, постоянно учится и делится знаниями; • Пишет понятный, документированный код; • Документирует структуры хранения данных; • Тестирует свой код; • Не делает костыли. В большинстве случаем, при подборе персонала, мы ищем не лучшего специалиста, а своего. Программисты - кто они? Или как организовать работу Структура презентации. Задачи Программисты – кто они? Как организовать работу o Проектное o o управление Инфраструктура разработки Мотивация Программисты - кто они? Или как организовать работу Проектное управление. Непрерывное изменение В мире нет ничего постоянного, кроме непостоянства. Джонатан Свифт Какую методологию проектного управления выбрать, статичную или динамичную? Программисты - кто они? Или как организовать работу Проектное управление. Почему agile? agile (scrum, kanban, xp, pmbok, lean) Почему agile? Итеративная разработка; Заказчик является членом команды; Учитываются личностные качества программистов; Самоструктурирующиеся команды; Саморазвивающиеся команды; Командная ответственность; Непрерывный контроль разработки; Гибкость к динамично меняющимся требованиям. Программисты - кто они? Или как организовать работу Проектное управление. Синергетика agile команды Преимущества самоорганизующихся команд: люди работают над теми задачами, которые им интересны; все члены команды непрерывно синхронизируются друг с другом; организация труда постоянно реструктуризируется по мере выполнения проекта и приобретения новых знаний; организация команды формируется не на основе субъективного представления менеджера проектов, а на основе объективно существующем опыте, желании, знаниях каждого конкретного члена команды; ответственность ложится не только на всю команду в целом, но и на каждого члена команды; мотивация в такой команде возрастает. Программисты - кто они? Или как организовать работу улучшение Scrum-ban – непрерывное постоянное улучшение Scrum • • • • • Роли (Product Owner / Scrum Master / Команда). Приоритезированный Product Backlog. Kanban – точно вовремя Ограниченные по времени итерации. • Оценки задач опциональны. Демонстрации по окончанию итерации. • Можно добавлять новые задачи, в Daily Stand-up. любой момент времени. • Непрерывный поток задач не привязанный к итерации. XP • • • • • Разработка через тестирование. Парное программирование. Бережливое производство Непрерывная интеграция. • процесс непрерывного устранения Refactoring. потерь,無駄 (затрат, мусора) – быстрая Частые релизы. доставка продукта. • Стремление к совершенству – сокращение операций, сервировки. • Обеспечение непрерывного течения потока создания ценности продукта. Программисты - кто они? Или как организовать работу PMBOK Scrum-ban - преимущества самоструктурирующиеся команды; гибкая реакция на изменения внешней среды; команда заинтересована в конечном результате; план работа постоянно уточняется; нет потерь на планирование проектов в условиях изменений внешней среды; вовлечение заказчика в процесс разработки продуктов. Программисты - кто они? Или как организовать работу Проектное управление. Процесс разработки Scrum-ban Программисты - кто они? Или как организовать работу Проектное управление. Процесс тестирования Кто отвечает за тестирование? Программисты - кто они? Или как организовать работу Проектное управление. Code review & Refactoring Программисты - кто они? Или как организовать работу Проектное управление. Проектирование и презентация перед реализацией Контролировать изменения в архитектуре; Участвовать в митингах; Участвовать в проектировании; Контролировать золотую сервировку. Программисты - кто они? Или как организовать работу Coding Standards Правила документирования кода Правила именования объектов баз данных и их типизация Основные правила; Отображение даты в проекте; Типы данных; Словари; … Программисты - кто они? Или как организовать работу Структура презентации. Задачи Программисты – кто они? Как организовать работу o Проектное управление o Инфраструктура разработки o Мотивация Программисты - кто они? Или как организовать работу Continuous integration Программисты - кто они? Или как организовать работу Continuous integration Программисты - кто они? Или как организовать работу Continuous integration Задачи службы: получение исходного кода из репозитория; сборка проекта; выполнение тестов; генерация пакетов; развёртывание готового проекта; отправка отчетов. Программисты - кто они? Или как организовать работу Continuous integration. Автоматическое тестирование Программисты - кто они? Или как организовать работу Continuous integration Организация работы: Корпоративный джаббер Программисты - кто они? Или как организовать работу Интегрированная система управления проектами, требованиями, инфраструктурой: jira +confluence + git + scrum + kanban Требования к инструменту управления проектами: управление проектами – список проектов, дедлайны; управление требованиями; управление версиями, выпуск релизов; управление текущими, будущими и сделанными задачами; список багов, отчет по устранению багов; функции Service Desk, заявки от пользователей; интеграция с agile методологиями; Интеграция с внешним софтом; Механизм управления ЖЦ разработки ПО или настройки workflow движения задач. Программисты - кто они? Или как организовать работу Jira statuses Программисты - кто они? Или как организовать работу Структура презентации. Задачи Программисты – кто они? Как организовать работу o o Проектное управление Инфраструктура разработки o Мотивация Программисты - кто они? Или как организовать работу Мотивация программистов Цель: Команда должна быть эффективной. 1. Нужен ли KPI? 2. Наши мотиваторы: обучение, программы обучения, курсы повышения квалификации, проверка достигнутых целей. расшаривание знаний, презентация знаний – развитие команды. Растить своих программистов. Система управления проектами. Убирать внешние раздражители. Поддерживать состояние потока программиста. Предоставлять хорошее рабочее место. Давать работать удалённо. Поощрения. Финансовое вознаграждение. Синергетика отношений менеджер – подчиненный. Программисты - кто они? Или как организовать работу Структура презентации. Задачи Программисты – кто они? Как организовать работу o o o Проектное управление Инфраструктура разработки Мотивация Программисты - кто они? Или как организовать работу Цель выступления Вы должны: Осознать свою ситуацию; Приобрести какие-то знания; Задуматься о том, что надо что-то изменить. Программисты - кто они? Или как организовать работу Спасибо за внимание! Вопросы? Программисты - кто они? Или как организовать работу