Семенов Илья. Программисты_кто_они

advertisement
Программисты - кто они? Или как
организовать работу
Семёнов Илья
Руководитель отдела программных разработок
ООО «Смарт Процессинг»
Санкт-Петербург, 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
Проектное управление
Инфраструктура разработки
Мотивация
Программисты - кто они? Или как организовать работу
Цель выступления
Вы должны:
 Осознать свою ситуацию;
 Приобрести какие-то знания;
 Задуматься о том, что надо что-то изменить.
Программисты - кто они? Или как организовать работу
Спасибо за внимание!
Вопросы?
Программисты - кто они? Или как организовать работу
Download