Top Banner
THINK DIFFERENT Андрей Бибичев май 2010
114

Agile: Think different

Aug 20, 2015

Download

Business

Andrey Bibichev
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Agile: Think different

THINK DIFFERENT

Андрей Бибичев

май 2010

Page 4: Agile: Think different

BUTT (англ)

У англичан приблизительно синоним слова «ОТРАВА»,

у американцев – «ДЕРЬМО»

Link

Page 5: Agile: Think different
Page 6: Agile: Think different

«MANAGED SCRUM»

Page 8: Agile: Think different

ФИЛОСОФИЯ, ЛЕЖАЩАЯ В ОСНОВЕ,

ВО МНОГОМ НЕПРИВЫЧНА

Page 9: Agile: Think different

Если загуглить картинки по «Think different».

Но этот материал не имеет никакого отношения к Apple.

Page 10: Agile: Think different

WARNING!

Многое в докладе может

показаться таким…

Page 11: Agile: Think different
Page 12: Agile: Think different
Page 14: Agile: Think different

Известно, что для того, чтобы осуществлялась деятельность, необходима

достаточная мотивация. Однако, если мотивация слишком сильна,

увеличивается уровень активности и напряжения, вследствие чего в

деятельности (и в поведении) наступают определенные разлады, т. е.

эффективность работы ухудшается. В таком случае высокий уровень

мотивации вызывает нежелательные эмоциональные реакции

(напряжение, волнение, стресс и т. п.), что приводит к ухудшению

деятельности. Экспериментально установлено, что существует определен-

ный оптимум (оптимальный уровень) мотивации, при котором деятельность

выполняется лучше всего (для данного человека, в конкретной ситуации).

Последующее увеличение мотивации приведет не к улучшению, а к

ухудшению эффективности деятельности. Таким образом, очень высокий

уровень мотивации не всегда является наилучшим. Существует

определенная граница, за которой дальнейшее увеличение мотивации

приводит к ухудшению результатов.

Такую зависимость называют законом Йеркса — Додсона.

Эти ученые ещѐ в 1908 году установили, что для того,

чтобы научить животных проходить лабиринт, наиболее

благоприятной является средняя интенсивность

мотивации (она задавалась интенсивностью ударов тока).

Page 15: Agile: Think different
Page 16: Agile: Think different

СТИМУЛ

Page 17: Agile: Think different

ОСНОВА

КЛАССИЧЕСКОЙ ТЕОРИИ

МОТИВАЦИИ

Page 18: Agile: Think different

Потребность в самоактуализации(развитие собственной личности)

Эстетические потребности(гармония, порядок, красота)

Познавательские потребности(знать, уметь, понимать, исследовать)

Потребность в уважении (компетентность, успех, признание)

Потребность в принадлежности и любви(быть принятым и любимым)

Потребность в безопасности(чувство защищенности, избавление от страхов и неудач)

Физиологические потребности(голод, жажда, половое влечение)

Page 19: Agile: Think different

ПИРАМИДА МАСЛОУ –

ЭТО WATERFALL В МИРЕ

МОТИВАЦИИ

Теоретически всѐ верно,

но не жизненно

Page 20: Agile: Think different

Н.И. Кисляков

Юный Ломоносов на пути в

Москву

Лев Давидович Ландау

(1908-1968)

Page 21: Agile: Think different

СОВРЕМЕННЫЕ ЦЕННОСТИ

БАЗИРУЮТСЯ НА ПОЛУЧЕНИИ

УДОВОЛЬСТВИЯ

• Зависимость от еды (чревоугодие)

• Зависимость от секса (прелюбодеяние)

• Зависимость от чужого мнения (гордыня)

• Зависимость от адреналина (экстрим)

• Зависимость от информации

• Зависимость от познания

• Зависимость от созидания

• Зависимость от творчества

• у кого-то зависимость от боли

• у кого-то от веществ

• и т.д.

Page 22: Agile: Think different

«ТАДЖИКИ»

Page 23: Agile: Think different

«ГИКИ»

Page 24: Agile: Think different

АУТИЗМ

Page 25: Agile: Think different
Page 26: Agile: Think different
Page 27: Agile: Think different

«ТИПИЧНЫЕ

МОТИВАТОРЫ»

• Большая з/п

• Премии

• Карьерный рост

• Личный кабинет

• …

• Прессинг

• Выговоры

• Увольнения

• …

Page 28: Agile: Think different
Page 29: Agile: Think different

А ЧТО ВЗАМЕН?

Page 30: Agile: Think different

Меня ждет Ад конференций

Зачем все мне это нужно? Тяжелый вопрос.

Похоже я, как обычно, веду себя как охотничья

собака, преследующая медведя — она вовсе не

ждет никакой радости от встречи с оным.

Просто она знает, что след быстро выдыхается,

и надо работать пока открывается возможность.

Стас Фомин

Page 31: Agile: Think different

МОТИВАЦИЯ

Драйв

потому что прѐт

Интереспотому что интересно

Призвание

потому что это моѐ

Page 32: Agile: Think different

Что тебе мешает сделать

это?

Как тебя подтолкнуть

(заставить) сделать это?

Page 33: Agile: Think different

«МОТИВАЦИОННЫЙ КЁРЛИНГ»

• Устранение демотиваторов

• Создание пути наименьшего

сопротивления

• Нацеленность сотрудника – должно

решаться на входе в компанию (отбор

персонала)

Page 34: Agile: Think different

ПРИМЕР

«ГИКОВСКОГО ДЕМОТИВАТОРА»

Page 35: Agile: Think different
Page 36: Agile: Think different

А ДЕНЬГИ?

• Компенсация

– За ограничение (но не лишение!)свободы творчества

• Размер = рынок + 10%

– По профилю специалиста

• Негарантированные годовые премии

– Разделять экономический успех с сотрудниками

Page 37: Agile: Think different
Page 38: Agile: Think different

У каждой задачи должен быть один

ответственный, даже если она совместно

делается.

из свежей личной переписки

Page 39: Agile: Think different

Ответственность

Давать ОТВЕТ

Что у нас с этим?Какая сволочь

это сделала?

Кто будет

разгребать

последствия?

Page 40: Agile: Think different

ПРОБЛЕМЫ ПЕРСОНАЛЬНОЙ

ОТВЕТСТВЕННОСТИ

• Моя хата с краю + каждый сам за себя

• Ломают одни – разгребают другие

• Самоуправство под видом ответственности: «я тут

несу ответственность, поэтому я и решаю»

Page 41: Agile: Think different
Page 42: Agile: Think different

А ЧТО НА «ШВАХ»?

Page 43: Agile: Think different
Page 44: Agile: Think different
Page 45: Agile: Think different

Шариков Полиграф

Полиграфович, начальник

подотдела очистки

коммунхоза

Елизавета вторая,

королева Англии

Page 46: Agile: Think different

Ещѐ пуще старуха вздурилась:

Опять к рыбке старика посылает.

"Воротись, поклонися рыбке:

Не хочу быть столбовою дворянкой,

А хочу быть вольною царицей".

Испугался старик, взмолился:

"Что ты, баба, белены объелась?

Ни ступить, ни молвить не умеешь,

Насмешишь ты целое царство".

Осердилась пуще старуха,

По щеке ударила мужа.

"Как ты смеешь, мужик, спорить со мною,

Со мною, дворянкой столбовою? -

Ступай к морю, говорят тебе честью,

Не пойдѐшь, поведут поневоле".

А.С. Пушкин

Page 47: Agile: Think different
Page 48: Agile: Think different
Page 49: Agile: Think different
Page 50: Agile: Think different

Когда бывшего президента Toyota Motor Manufacturing

в Северной Америке Ацуси (Арт) Ниими спросили, что

было самым трудным при обучении американских

менеджеров дао Toyota, он ответил:

«Они хотели руководить, а не учить».

В Toyota любой менеджер — это учитель.

Воспитание незаурядных людей в Toyota — задача

первостепенной важности и неотъемлемая часть дао

Toyota.

Эта концепция часто обсуждается в других

компаниях, но редко применяется на практике.

Page 51: Agile: Think different

Руководитель

Бизнес-

админиатратор

Лидер

Помощник

Учитель

Page 52: Agile: Think different
Page 53: Agile: Think different

ОСНОВНАЯ ПРОБЛЕМА

ВНЕДРЕНИЯ AGILE

Менеджеры готовы изменить

что-то под собой,

но не готовы измениться сами

Page 54: Agile: Think different
Page 55: Agile: Think different
Page 56: Agile: Think different

ЗОНА ВЛИЯНИЯ

Page 57: Agile: Think different
Page 58: Agile: Think different
Page 59: Agile: Think different

«Самая благородная душа тем

беспокойней и несчастливей живѐт,

чем важнейшую должность несѐт,

если к ней не рождена»

Григорий Сковорода

Page 60: Agile: Think different

ПРИЗВАНИЕ / ПРЕДНАЗНАЧЕНИЕ

Page 61: Agile: Think different

«зато у тебя больше

возможностей по претворению в

жизнь своих идей»

Page 62: Agile: Think different
Page 63: Agile: Think different

float InvSqrt(float x){union {float f;int i;

} tmp;tmp.f = x;tmp.i = 0x5f3759df - (tmp.i >> 1);float y = tmp.f;return y * (1.5f - 0.5f * x * y * y);

}

?

Page 64: Agile: Think different
Page 65: Agile: Think different

float Sqrt(float x){union {float f;int i;

} tmp;tmp.f = x;tmp.i = 0x5f3759df - (tmp.i >> 1);float y = tmp.f;return x * y * (1.5f - 0.5f * x * y * y);

}

?

Page 66: Agile: Think different

Архитектор – полезная должность с точки зрения параллельных

карьерных лестниц: управление и технарь

Page 67: Agile: Think different

архитектор

Помни, начальник соображает быстрее тебя!

И пока ты только обдумываешь хорошее решение,

он уже принимает плохое.

ПЕРВАЯ ПРОБЛЕМА АРХИТЕКТОРА

Page 68: Agile: Think different

ВТОРАЯ ПРОБЛЕМА АРХИТЕКТОРА

Архитектор

Разработчики

Аналитики

Page 69: Agile: Think different

ТРЕТЬЯ ПРОБЛЕМА АРХИТЕКТОРА

АрхитекторТех.

прогресс

Page 70: Agile: Think different

ЧЕТВЕРТАЯ ПРОБЛЕМА

Page 71: Agile: Think different
Page 72: Agile: Think different

ПОЛЕЗНЫЕ ФУНКЦИИ

АРХИТЕКТОРА

• Носитель крупномасштабного vision-а

– тех.идеолог / визионер

• Техническая экспертиза

– гуру / советчик

• Ретрансляция накопленного опыта

– семинарист

• Крутой перец

– S.W.A.T. team

Page 73: Agile: Think different

THE LEAN

LEGO

GAME

Page 74: Agile: Think different

ПОЛЕЗНЫЕ ВОПРОСЫ ДЛЯ

САМОПРОВЕРКИ АРХИТЕКТОРА

• Какие идеи и наработки я сегодня «продал»

команде?

• Кому и как я сегодня помог?

• Кого и о чем я сегодня просветил?

• С кем и как поделился своим видением?

• В какие открытые инструменты и библиотеки

сделал вклад?

• На каких конференциях и семинарах выступил?

Page 75: Agile: Think different

ВАЖНЫЙ ТЕЗИС

Нет единственно правильной

архитектуры/дизайна,

как и единственно верных путей и подходов

решения проблемы.

в особенности в условиях нечетких требований

Page 76: Agile: Think different
Page 77: Agile: Think different

BDUF

VS.

YAGNI

Page 78: Agile: Think different

BIG DESIGN UP FRONT

VS.

YOU AIN’T GONNA NEED IT

Page 79: Agile: Think different

ЗАЧЕМ ИДУТ НА «BDUF»?

ПОЧЕМУ НЕ ВЕРЯТ В «YAGNI»?

Page 80: Agile: Think different

TWITPOCALYPSE

• июнь 2009

• 32 bit integer

Page 81: Agile: Think different

СТАНДАРТНЫЕ ЛЯПЫ

• Неподходящие типы данных

– Int32 ID• Безопасность (sql injection, etc.)

– var sql = ‚SELECT … WHERE name=‘‛ + valueFromUI + ‚’‛• Проблемы с кодировками

– даже при работе с XML, даже сейчас• Проблемы с региональными настройками

– var i = Int32.Parse(str)• Проблемы с масштабированием

– все тесты на 10 записях под одним пользователем• Некорректная конкурентная работа

– locking для трусов!• Доступ к разделяемым ресурсам

– static Hashtable veryImportantDictionary;• Обработка ошибок («сглатывание» и т.п.)

– try { … } catch { /* пусто! */ }• …

Page 82: Agile: Think different

ИХ РЕШЕНИЕ – CODE REVIEW,

А НЕ BDUF

Page 83: Agile: Think different

АВТОРИТЕТНЫЕ ВЫСКАЗЫВАНИЯ

Alistair Cockburn:

«starting with a walking skeleton,

then evolving it iteratively»

Mary and Tom Poppendieck:

«divisible system architecture»

Robert Martin (Uncle Bob):

«No doubt that BDUF is harmful.

Size matters! ‘B’ is bad, but ‘L’ is good.

Indeed, LDUF is absolutely essential.»

Page 84: Agile: Think different

ДЮДЮКИ:

TDD

DDDBDD

FDD

Page 85: Agile: Think different
Page 86: Agile: Think different

DDD

BDDTDD

Синергетический

эффект

Page 87: Agile: Think different

Аналитик

РазработчикТестировщик

GUI

Модель

Поведение

модели

Page 88: Agile: Think different
Page 89: Agile: Think different

Авт.

интеграционные

тесты

Ручные End-to-End

тесты

Авт.

модульные

тесты

Page 90: Agile: Think different

Авт.

интеграционные

тесты

Авт. модульные

тесты

End-to-End

Page 91: Agile: Think different
Page 92: Agile: Think different
Page 93: Agile: Think different

SNAPSHOT

INCREMENT

Page 94: Agile: Think different
Page 95: Agile: Think different
Page 96: Agile: Think different

ЖЕЛАНИЕ ПРОБОВАТЬ

Page 97: Agile: Think different
Page 98: Agile: Think different

ЛЕКАРСТВА ОТ СТРАХА

• Автоматизированные тесты + CI

• Code Review

• Кроссфункциональность

• Быстрая обратная связь

• …

Page 99: Agile: Think different
Page 100: Agile: Think different

МЫ БОЛЬШЕ РЕАГИРУЕМ НА

ТЕНДЕНЦИИ И ПЕРЕМЕНЫ, ЧЕМ НА

ОБЪЕКТИВНЫЕ ХАРАКТЕРИСТИКИ

ТЕКУЩЕГО ПОЛОЖЕНИЯ ВЕЩЕЙ

Page 101: Agile: Think different

САМОЕ СТРАШНОЕ – ЭТО ЗАСТОЙ

Нужно постоянно что-то

менять и «подкручивать»

Page 102: Agile: Think different
Page 103: Agile: Think different

• Мотивация → Драйв*интерес*призвание

• Карьерныйрост → Самореализация

• Руководитель → Учитель

• Зона контроля → Сфера влияния

• Персональная Коллективная ответственностьответственность → + Порядочность*честь

• Страх ошибки → Желание пробовать

• Знания/скилы → Способности + сокультурность

• Статическийотлаженный → Постоянные изменения процесс

• Вниманиек процессу → Уважение людей

• Архитектор → Идеолог

• Проектированиесверху-вниз → Инкрементальный дизайн

• Статическаябаза знаний → Динамичный обмен информацией

Page 104: Agile: Think different
Page 105: Agile: Think different

>>

Page 106: Agile: Think different
Page 107: Agile: Think different

ВНЕШНЯЯ СРЕДА

Page 108: Agile: Think different

ОБРАЗОВАНИЕ

Page 109: Agile: Think different
Page 110: Agile: Think different

РАЗВИВАЮЩЕЕ ОБРАЗОВАНИЕ

ЭЛЬКОНИНА-ДАВЫДОВА

Page 111: Agile: Think different

Особенностью этой психолого-педагогической концепции являются

разнообразные групповые дискуссионные формы работы

Отметок детям в начальной школе не ставят, учитель

совместно с учениками оценивает результаты обучения на

качественном уровне, что создает атмосферу психологического

комфорта.

В результате обучения по системе Эльконина-Давыдова дети в

состоянии аргументировано отстаивать свою точку зрения,

учитывать позицию другого, не принимают информацию на веру,

а требуют доказательств и объяснений.

Содержательная рефлексия — поиск и рассмотрение

существенных оснований собственных мыслительных действий.

Из всех самоуправляющих механизмов личности

(потребности, способности, направленность, Я-концепция) ставка

делается на познавательные потребности и способности

личности. Кроме того, формируется положительная «Я-

концепция»: применяется личностный подход.

Page 112: Agile: Think different
Page 113: Agile: Think different

ФОРМУЛА AGILE

Страх → min

Драйв → max

Качество ≥ норма

$$$ ≈ рынок

Page 114: Agile: Think different