7 обязанностей разработчика: как стать продуктивным

79
7 обязанностей разработчика Евгений Шеретов, Daxx На основе материалов Юргена Аппело

description

  / . , . 1. 2. 3. 4. 5. 6. 7. . Your career is your own responsibility. Your employer is not your mother. ? : http://www.blog.daxx.com.ua/

Transcript of 7 обязанностей разработчика: как стать продуктивным

Page 1: 7 обязанностей разработчика: как стать продуктивным

7 обязанностей разработчика

Евгений Шеретов, Daxx

На основе материалов Юргена Аппело

Page 2: 7 обязанностей разработчика: как стать продуктивным

Евгений Шеретов Лидер проекта в компании DAXX, Днепропетровск Сертифицированый ScrumMaster Более 6-ти лет опыта разработки в IT 3 года применения Scrum/Agile методологий www.daxx.com.ua

О себе

Page 3: 7 обязанностей разработчика: как стать продуктивным

Не счастливый заказчик

Представим себе бизнес ИТ, в котором

Page 4: 7 обязанностей разработчика: как стать продуктивным

Качество и продуктивность

Заказчик неудовлетворен потому, что низкие

Page 5: 7 обязанностей разработчика: как стать продуктивным

Недостаток навыков и дисциплинированности Качество и продуктивность низкая потому, что

Page 6: 7 обязанностей разработчика: как стать продуктивным

давление на команду

Недовольный заказчик повышает

Page 7: 7 обязанностей разработчика: как стать продуктивным

Невозможности обучаться

Стресс на работе приводит к

Page 8: 7 обязанностей разработчика: как стать продуктивным

Потеря навыков и дисциплинированности

Отсутствие обучения -

Page 9: 7 обязанностей разработчика: как стать продуктивным

Демотивации команды

Давление заказчика приводит к

Page 10: 7 обязанностей разработчика: как стать продуктивным

демотивации

Нехватка навыков и недовольный заказчик приводят к

Page 11: 7 обязанностей разработчика: как стать продуктивным

Снижению продуктивности

Демотивация Приводит к

Page 12: 7 обязанностей разработчика: как стать продуктивным

Диаграмму причинного цикла

Получаем

Диаграмма следствий)

(Также называемую

Page 13: 7 обязанностей разработчика: как стать продуктивным

Порочный круг

Бизнес попадает в

Page 14: 7 обязанностей разработчика: как стать продуктивным

Много кругов

Даже не в один, а

Page 15: 7 обязанностей разработчика: как стать продуктивным

Снижение доходов

Менеджмент наблюдает

Page 16: 7 обязанностей разработчика: как стать продуктивным

Срезая бюджет

Попытки усовершенствования

Page 17: 7 обязанностей разработчика: как стать продуктивным

Тем временем давление технологий растет

И из-за кризиса, давление экономики также вырастает

Page 18: 7 обязанностей разработчика: как стать продуктивным

Вынуждены сказать, что бизнес

ОБРЕЧЕН

Page 19: 7 обязанностей разработчика: как стать продуктивным

Needless to say, this business was

ОБРЕЧЕН Если... Люди не учат обязанности как профессиональные разработчики

Page 20: 7 обязанностей разработчика: как стать продуктивным

Да, но как?

Page 21: 7 обязанностей разработчика: как стать продуктивным

Три уровня зрелости (для навыков)

Shu изучение основ, следование правилам (apprentice)

Ha ищем исключения, ломаем стереотипы (journeyman)

Ri естественный ход вещей (master)

(в последней колонке: эквивалентные уровни по Средневековой Европейской классификации)

Примечание: По Dreyfus Model список из пяти уровней овладения навыками:

Beginner, Advanced Beginner, Competent, Proficient, Expert

http://en.wikipedia.org/wiki/Shuhari http://en.wikipedia.org/wiki/Master_craftsman http://en.wikipedia.org/wiki/Dreyfus_model_of_skill_acquisition

Page 22: 7 обязанностей разработчика: как стать продуктивным

Шесть уровней зрелости (для дисц.)

Oblivious “Мы не замечаем протекания процесса.”

Variable “Мы действуем согласно ощущениям.”

Routine “Мы следуем распорядку(рутине), за исключением паники”

Steering “Мы выбираем распорядок, основываясь на результатах”

Anticipating “Мы создаем распорядок, учитывая предыдущий опыт”

Congruent “Все задействованы в совершенствовании всех процессов”

Gerard Weinberg, Quality Software Management: Systems Thinking

(Альтернатива: Шесть похожих уровней в “Agile Made Us Better…” от Ross Petit)

http://www.amazon.com/Quality-Software-Management-Systems-Thinking/dp/0932633226/ http://www.thoughtworks.com/agile-made-us-better

Page 23: 7 обязанностей разработчика: как стать продуктивным

Компетентность

это зрелость в двух измерениях

Page 24: 7 обязанностей разработчика: как стать продуктивным

Для того, чтобы быть профессионалами ми

совершенствуем навыки и дисциплинированность

Вот как...

Page 25: 7 обязанностей разработчика: как стать продуктивным

1. Саморазвитие

Люди должны учиться...

Срочность против важности

“Time management”

Page 26: 7 обязанностей разработчика: как стать продуктивным

2. Обучение и наставничество

Нанимайте внешних тренеров

Примечание: Менеджер != Учитель

Page 27: 7 обязанностей разработчика: как стать продуктивным

3. Тренинги и сертификации

Сам по себе сертификат ничего не стоит, но... Это позволит проявить (катализировать) также и остальные способности

Page 28: 7 обязанностей разработчика: как стать продуктивным

4. Культура и национализация

Позволяйте людям объединяться в маленькие подгруппы Наделяйте их общими ответственностями для подгрупп

Page 29: 7 обязанностей разработчика: как стать продуктивным

5. Инструменты и инфраструктура

Инструменты должны быть адаптивными, не только кастомизируемыми.

Page 30: 7 обязанностей разработчика: как стать продуктивным

6. Наблюдение и мониторинг

Всегда должен кто либо, выполнять проверку продукта команды

Page 31: 7 обязанностей разработчика: как стать продуктивным

7. Менеджмент

Навести порядок, когда система выходит из строя...

Page 32: 7 обязанностей разработчика: как стать продуктивным

1. Самоорганизация

2. Обучение и наставничество

3. Тренинги и сертификации

4. Культура и национализация

5. Инструменты и инфраструктура

6. Наблюдение и мониторинг

7. Менеджмент

7 Approaches to competency development

Page 33: 7 обязанностей разработчика: как стать продуктивным

7 подходов компетенции разработчика

Это наша собственная обязанность

1. Самоорганизация

2. Обучение и наставничество

3. Тренинги и сертификации

4. Культура и национализация

5. Инструменты и инфраструктура

6. Наблюдение и мониторинг

7. Менеджмент

Page 34: 7 обязанностей разработчика: как стать продуктивным

Your career is your own responsibility. Your employer is not your mother.

Page 35: 7 обязанностей разработчика: как стать продуктивным

Мотивируйте себя

Направляйте себя

Организовывайте себя

Измеряйте себя

Социализируйте себя

Уполномочивайте себя

Улучшайте себя

Page 36: 7 обязанностей разработчика: как стать продуктивным

Мотивируйте себя

Направляйте себя

Организовывайте себя

Измеряйте себя

Социализируйте себя

Уполномочивайте себя

Улучшайте себя

Page 37: 7 обязанностей разработчика: как стать продуктивным

“16 основных желаний” Acceptance Необходимость в одобрении

Physical Activity Или упражнения

Curiosity Необходимость в мышлении

Power Необходимость во влиянии на то, что будет

Eating Необходимость в питании

Romance Необходимость в любви и сексе

Family Необходимость в воспитании детей

Saving Необходимость в коллекционировании

Honor Быть принятым группой (обществом)

Social Contact Необходимость в друзьях

Idealism Необходимость в мечтах и целях

Status Необходимость в социальном признании, статусе

Independence Быть индивидуальность

Tranquility Чувствозащищенности, безопасности

Order Быть в порядке, стабильности

Vengeance Необходимость в отмщении

Steven Reiss. Who Am I? The 16 Basic Desires That Motivate Our Actions and Define Our Personalities. City: Berkley Trade, 2002

Page 38: 7 обязанностей разработчика: как стать продуктивным

“16 основных желаний”

Steven Reiss. Who Am I? The 16 Basic Desires That Motivate Our Actions and Define Our Personalities. City: Berkley Trade, 2002

Acceptance Необходимость в одобрении

Physical Activity Или упражнения

Curiosity Необходимость в мышлении

Power Необходимость во влиянии на то, что будет

Eating Необходимость в питании

Romance Необходимость в любви и сексе

Family Необходимость в воспитании детей

Saving Необходимость в коллекционировании

Honor Быть принятым группой (обществом)

Social Contact Необходимость в друзьях

Idealism Необходимость в мечтах и целях

Status Необходимость в социальном признании, статусе

Independence Быть индивидуальность

Tranquility Чувство защищенности, безопасности

Order Быть в порядке, стабильности

Vengeance Необходимость в отмщении

Page 39: 7 обязанностей разработчика: как стать продуктивным

“16 основных желаний”

Steven Reiss. Who Am I? The 16 Basic Desires That Motivate Our Actions and Define Our Personalities. City: Berkley Trade, 2002

Acceptance Необходимость в одобрении

Curiosity Необходимость в мышлении

Power Необходимость во влиянии на то, что будет

Honor Быть принятым группой (обществом)

Social Contact Необходимость в друзьях

Idealism Необходимость в мечтах и целях

Status Необходимость в социальном признании, статусе

Independence Быть индивидуальность

Order Быть в порядке, стабильности

Page 40: 7 обязанностей разработчика: как стать продуктивным

“Теория самоопределения”

Edward L. Deci and Richard M. Ryan. The Handbook of Self-Determination Research. Rochester: University of Rochester Press, 2004

Competence Быть востребованным, способным

Autonomy Выбирать свои действия

Relatedness Быть социально вовлеченным

Acceptance Необходимость в одобрении

Curiosity Необходимость в мышлении

Power Необходимость во влиянии на то, что будет

Honor Быть принятым группой (обществом)

Social Contact Необходимость в друзьях

Idealism Необходимость в мечтах и целях

Status Необходимость в социальном признании, статусе

Independence Быть индивидуальность

Order Быть в порядке, стабильности

Page 41: 7 обязанностей разработчика: как стать продуктивным

“Теория самоопределения”

Edward L. Deci and Richard M. Ryan. The Handbook of Self-Determination Research. Rochester: University of Rochester Press, 2004

Acceptance Необходимость в одобрении

Curiosity Необходимость в мышлении

Power Необходимость во влиянии на то, что будет

Honor Быть принятым группой (обществом)

Social Contact / Relatedness Необходимость в друзьях

Idealism Необходимость в мечтах и целях

Status Необходимость в социальном признании, статусе

Independence / Autonomy Быть индивидуальностью

Order Быть в порядке, стабильности

Competence Быть востребованным, способным

Page 42: 7 обязанностей разработчика: как стать продуктивным

“Drive”

Daniel H. Pink, Drive: The Surprising Truth About What Motivates Us. Riverhead, 2009

Acceptance Необходимость в одобрении

Curiosity Необходимость в мышлении

Power Необходимость во влиянии на то, что будет

Honor Быть принятым группой (обществом)

Social Contact Необходимость в друзьях

Idealism / Purpose Необходимость в мечтах и целях

Status Необходимость в социальном признании, статусе

Independence / Autonomy Быть индивидуальность

Order Быть в порядке, стабильности

Competence / Mastery Быть востребованным, способным

Page 43: 7 обязанностей разработчика: как стать продуктивным

10 Значимых желаний Acceptance Необходимость в одобрении

Curiosity Необходимость в мышлении

Power Необходимость во влиянии на то, что будет

Honor Быть принятым группой (обществом)

Social Contact / Relatedness Необходимость в друзьях

Idealism / Purpose Необходимость в мечтах и целях

Status Необходимость в социальном признании, статусе

Independence / Autonomy Быть индивидуальность

Order Быть в порядке, стабильности

Competence / Mastery Быть востребованным, способным

Page 44: 7 обязанностей разработчика: как стать продуктивным

Мотивируйте себя

Направляйте себя

Организовывайте себя

Измеряйте себя

Социализируйте себя

Уполномочивайте себя

Улучшайте себя

Page 45: 7 обязанностей разработчика: как стать продуктивным

Пренебрегая детальной разницей понятий...

goal

vision mission

objective

intent

target

aim

Page 46: 7 обязанностей разработчика: как стать продуктивным

Goal checklist

specific and understandable

simple and concise

manageable and measurable

memorable and reproducible

attainable and realistic

ambitious and stimulating

actionable and assignable

agreed-upon and committable

relevant and useful

time-bound and time-specific

tangible and real

excitable and igniting

inspiring and visionary

value-based and fundamental

revisitable and assessable

Page 47: 7 обязанностей разработчика: как стать продуктивным

Упражнение: Пример №1

As a company, and as individuals, we value integrity, honesty, openness, personal excellence, constructive self-criticism, continual self-improvement, and mutual respect. We are committed to our customers and partners and have a passion for technology. We take on big challenges, and pride ourselves on seeing them through. We hold ourselves accountable to our customers, shareholders, partners, and employees by honoring our commitments, providing results, and striving for the highest quality.

Actionable - Побудительная

Ambitious - Амбициозная

Inspiring - Вдохновляющая

Measurable - Измеряемая

Memorable - Запоминающаяся

Realistic - Реалистичная

Simple - Простая

Tangible - Вещественная

Time-bound – Ограниченная

Understandable - Понятная

Useful - Полезная

Value-based - Значимая

Page 48: 7 обязанностей разработчика: как стать продуктивным

Упражнение: Пример №2

Our mission is to organize the world’s information and make it universally accessible and useful.

Actionable - Побудительная

Ambitious - Амбициозная

Inspiring - Вдохновляющая

Measurable - Измеряемая

Memorable - Запоминающаяся

Realistic - Реалистичная

Simple - Простая

Tangible - Вещественная

Time-bound – Ограниченная

Understandable - Понятная

Useful - Полезная

Value-based - Значимая

Page 49: 7 обязанностей разработчика: как стать продуктивным

“Management by Objectives”

Всё начинается с цели.... Peter F. Drucker

Page 50: 7 обязанностей разработчика: как стать продуктивным

“ELIMINATE Management by Objectives”

Устранить квоты и бонусы... W. Edwards Deming

Page 52: 7 обязанностей разработчика: как стать продуктивным

Мотивируйте себя

Направляйте себя

Организовывайте себя

Измеряйте себя

Социализируйте себя

Уполномочивайте себя

Улучшайте себя

Page 53: 7 обязанностей разработчика: как стать продуктивным

Самоорганизация - определение

«Самоорганизация – это процесс взаимодействия и упорядочивания, в котором внутренняя организация системы развивается и усложняется без контроля и управления внешними источниками.»

http://ru.wikipedia.org/wiki/Self-organization

Page 54: 7 обязанностей разработчика: как стать продуктивным

Shared Space

Усиленное чувство риска Люди менее внимательны при отсутствии риска

Снизить ложное ощущение безопасности Люди ведут себя рискованно если чувствуют безопасность

http://en.wikipedia.org/wiki/Shared_space

Page 55: 7 обязанностей разработчика: как стать продуктивным

Мотивируйте себя

Направляйте себя

Организовывайте себя

Измеряйте себя

Социализируйте себя

Уполномочивайте себя

Улучшайте себя

Page 57: 7 обязанностей разработчика: как стать продуктивным

WYMIWYG

“What You Measure Is What You Get”

or…

“What gets measured gets managed” (Peter Drucker)

http://www.edpsycinteractive.org/papers/wymiwyg.html

Page 58: 7 обязанностей разработчика: как стать продуктивным

Sub-optimization + WYMIWYG

Leads to…

Every measurement of one part will lead to sub-optimization of the whole

So…

How to measure and study the whole?

Page 59: 7 обязанностей разработчика: как стать продуктивным

Давайте начнем со славно известного

Iron Triangle

Page 60: 7 обязанностей разработчика: как стать продуктивным

Потом добавим немного модификаций...

Разделяем Cost (Resources) на People и Tools

Разделяем Scope на Functionality и Quality (suggestion: Scott Ambler)

Добавляем измерение Process (suggestion: Alistair Cockburn)

Добавляем измерение (Business) Value (suggestion: Jim Highsmith)

http://www.ambysoft.com/essays/brokenTriangle.html http://alistair.cockburn.us/index.php/Process:_the_fourth_dimension http://blog.cutter.com/2009/08/10/beyond-scope-schedule-and-cost-measuring-agile-performance/

Page 61: 7 обязанностей разработчика: как стать продуктивным

1. Time

2. People

3. Tools

4. Functionality

5. Quality

6. Process

7. Value

Измеряйте проекты в нескольких измерениях

Page 62: 7 обязанностей разработчика: как стать продуктивным

Мотивируйте себя

Направляйте себя

Организовывайте себя

Измеряйте себя

Социализируйте себя

Уполномочивайте себя

Улучшайте себя

Page 63: 7 обязанностей разработчика: как стать продуктивным

The workplace is a network

Page 64: 7 обязанностей разработчика: как стать продуктивным

Individual competence “We learned that individual expertise did not distinguish people as high performers. What distinguished high performers were larger and more diversified personal networks.”

Cross, Rob et.al. The Hidden Power of Social Networks. Boston: Harvard Business School Press, 2004

Page 65: 7 обязанностей разработчика: как стать продуктивным

Individual competence «Инженеры предпочитают в 5 раз больше обратиться к коллеге за информацией, чем пытаться находить ее в документациях и базах данных»

Cross, Rob et.al. The Hidden Power of Social Networks. Boston: Harvard Business School Press, 2004

Page 66: 7 обязанностей разработчика: как стать продуктивным

Мотивируйте себя

Направляйте себя

Организовывайте себя

Измеряйте себя

Социализируйте себя

Уполномочивайте себя

Улучшайте себя

Page 67: 7 обязанностей разработчика: как стать продуктивным

1. Tell: Принимать решение самостоятельно

2. Sell: убедить людей в правильности решения

3. Consult: проконсультироваться перед решения

4. Join: принять совместное решение

5. Advise: влиять на принимаемое решение

6. Confirm: дать отзыв на принятое решение

7. Delegate: полностью поручить работу

7 уровней делегирования

Page 68: 7 обязанностей разработчика: как стать продуктивным

Стремимся слева направо

Page 69: 7 обязанностей разработчика: как стать продуктивным

Мотивируйте себя

Направляйте себя

Организовывайте себя

Измеряйте себя

Социализируйте себя

Уполномочивайте себя

Улучшайте себя

Page 70: 7 обязанностей разработчика: как стать продуктивным

К примеру: Улучшение через фитбек

Page 71: 7 обязанностей разработчика: как стать продуктивным

Fitness Landscape

Конфигурирование системы

Производительность

Page 72: 7 обязанностей разработчика: как стать продуктивным

Three Drivers of Improvement

Adaptation (приспособление)

Looking backward, reactive, responding to change

Exploration (исследование, разведка)

Trying things out, interactive, experience feedback

Anticipation (предвкушение)

Looking forward, proactive, imagining improvement

Page 73: 7 обязанностей разработчика: как стать продуктивным

Stuck in the Fitness Landscape

Что теперь?

Page 74: 7 обязанностей разработчика: как стать продуктивным

Стратегия Mutation

Экспериментальные идеи

Page 75: 7 обязанностей разработчика: как стать продуктивным

Стратегия Broadcasts

Копирование идей

Page 76: 7 обязанностей разработчика: как стать продуктивным

Стратегия Crossover

Смешиваем лучшие идеи

Page 77: 7 обязанностей разработчика: как стать продуктивным

Нелинейное улучшение

1, 3, 5

Kaizen

Последовательные улучшения

2, 4

Kaikaku

Радикальные улучшения

Page 78: 7 обязанностей разработчика: как стать продуктивным

Мотивируйте себя

Направляйте себя

Организовывайте себя

Измеряйте себя

Социализируйте себя

Уполномочивайте себя

Улучшайте себя

Page 79: 7 обязанностей разработчика: как стать продуктивным

Daxx

Daxx - это нидерландская компания, которая создает

удаленные команды программистов в Украине (Киев,

Харьков, Днепропетровск). Мы так же способствуем

переезду украинских IT-специалистов в Нидерланды.

Общайтесь напрямую с клиентами

Достойная зарплата

Комфортные офисы

Страхование жизни

Регулярные корпоративы

Бесплатное открытие и ведение ЧП

Бассейн, тренажерный зал, сауна, парикмахерская и

многое другое...

Successful IT Career with Daxx www.daxx.com.ua

Открытые Вакансии>>

Facebook >>

Linkedin >>

Twitter >>