56
Взаимоотношения в коллективе разработчиков программного обеспечения: ложь, предательство и зависть Сергей Борисов проектный менеджер ТомскСофт

Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

Embed Size (px)

DESCRIPTION

Презентация сопровождала лекцию в СБИ "Дружба", Томск, 9 апреля, 2013 года.

Citation preview

Page 1: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

Взаимоотношения в коллективе

разработчиков программного обеспечения:

ложь, предательство и зависть

Сергей Борисовпроектный менеджер

ТомскСофт

Page 2: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

2

В настоящее время:- руководитель проекта в ТомскСофт- ст. преп. в ТУСУР, каф. КСУП

Ранее:- SmaartMobile

- SiberLogic

- ЭлеСи

- ТМЦДО ТУСУР

- НИИ АЭМ

Стаж в разработке ПО: 19 летСтаж в высшем образовании: 15 лет

Об авторе

Сергей Борисов

Page 3: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

3

Все совпадения названий, имен и ситуаций случайны

Все аналогии ложны

Если Вам кажется, что Вы знаете кто именно был в таких ситуациях, и когда они произошли, то это не совсем так

Disclaimer

Page 4: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

4

…Три пули мне отлили до утраМои друзья – они вчера так звались.Три пули:

ложь, предательство и зависть.…

Ирина Орищенко, Три пули.

Текст песни полностью:

Page 5: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

5

Зависть

Page 6: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

6

Ситуация №1 (зависть)

Вася: 40 000 руб

Петя: 45 000 руб

Page 7: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

7

Вася: 40 000 руб

Петя: 45 000 руб

Ситуация №1 (зависть)

Page 8: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

8

Почему зарплата может различаться

• Коля выполняет ту же самую работу, но качественнее

• Коля выполняет ту же самую работу, но быстрее

• Начальство считает, что Коля выполняет работу быстрее и/или качественнее

• Коля просто дольше работает в этой компании, и он уже заслужил повышение за лояльность к компании

• Коля работает совсем недавно, но когда он пришел работать, он договорился с начальством на более высокую зарплату

• У Коли “более тесные” отношения с начальством

Page 9: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

9

Page 10: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

10

Что это было?

• Реальные ситуации, которые могли случиться в реальной компании

• Стереотипы

Page 11: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

11

Как можно избежать зависти

Page 12: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

12

Скрывать размер зарплат

Pro: В этом случае, Вася (теоретически) просто не узнает зарплаты Коли и поэтому, у него не будет поводов для зависти.

Contra: • любая попытка скрыть что-то всегда приведет к обратному эффекту

• сотрудники будут делиться информацией

• сотрудники будут подозревать друг-друга

Page 13: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

13

Вводить формальные критерии

• качество кода

• знание технологий

• количество строк исходного кода

• скорость и качество решения поставленных задач…

Page 14: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

14

Качество решения задач

Тикет: название: Сериализация и десериализацияВажность: высокая

Вася: разработчик

Саня: QA инженер

Назначена

РеализованоОтклонено

Принято

Page 15: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

15

Качество решения задач

Разработчик Задач сделано Задач отклонено

Качество

Петя 10 0 100%

Вася 20 1 95%

Даша 15 3 80%

Миша 16 8 50%

Лена 5 2 40%

Page 16: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

16

Качество решения задач

Петя: разработчик

Саня: QA инженер

У тебя бага в задаче.

Да? Точно! Ну ты не переводи тикет в баг треккере, я сейчас быстренько поправлю, там мелочевка.

Page 17: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

17

Знание технологий

Тикет: Сериализация и десериализацияТип: фичаПервичная технология: С++Вторичная технология: XMLСложность: средняяОбъем работы: 20 часов

Тикет: Оптимизация хранилищаТип: фичаПервичная технология: С++:boostВторичная технология: algorithmsСложность: высокаяОбъем работы: 40 часов

Тикет: Приложение падает, при поиске в пустом хранилищеТип: багаПервичная технология: С++Вторичная технология:Сложность: низкаяОбъем работы: 2 часа

Тикет: Время поиска по полю “имя” растет линейно от числа элементовТип: багаПервичная технология: С++:boostВторичная технология: algorithmsСложность: средняяОбъем работы: 4 часа

Page 18: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

18

Качество решения задач

Задача C++:boost C++ XML algorithms ИТОГО

Задача 1 20*4=80 20*4/2=40 120

Задача 2 40*5=100 40*5/2=50 150

Задача 3 2*2=4 4

Задача 4 2*4=8 2*4/2=4 12

Задача ...

Page 19: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

19

Качество решения задач

Технология C++:boost

C++ XML algorithms ИТОГО

Значимость 10 5 15 20 50

Петя 100*10/50

80*5/50 40*15/50 50*20/50 50

Вася 8*10/50 4*5/50 4*20/50 3.6

Page 20: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

20

Все критерии ложны!

Как только появляется формальная табличка “крутости” разработчика, от которой зависит зарплата все начинают работать на табличку, а не на результат.

Page 21: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

21

Мерило: ответственность

http://goo.gl/U6nf9

Page 22: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

22

Предательство

Page 23: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

23

Ситуация №2 (предательство)

Проект провалился. Извечный русский вопрос — кто виноват?

Вася: разработчик

Петя: разработчик

Оля: менеджер проекта

Даша: разработчик

Саня: QA инженер

Page 24: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

24

Так кто же виноват?

• Если проект успешен, то это успех всей команды

• Если проект провален, то в этом виноват только менеджер

Page 25: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

25

Ситуация 3 (сцена 1)

Разработчик Вася утром, примерно, в 9:55 подходит к техническому писателю, которого зовут, пускай для определенности, Катя. И говорит:

– Катя, я тебе вчера вечером документик выслал на полторы странички на перевод. Когда сделаешь?

Вася: разработчик

Катя: технический писатель

Page 26: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

26

Ситуация 3 (сцена 2)

– Что вы тут ходите все с утра пораньше!? Я еще почту не всю разобрала! (формально в этой компании до 10:00 нужно разбирать почту, время 9:55). Разберу — напишу.

Вася в непонятках ушел. Бывает.– ОК, решил Вася, подойду через пару часов.

Page 27: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

27

Ситуация 3 (сцена 3)

Через час Катя сама прибежала с шоколадкой и извинениями.

Катя утром поссорилась со своим МЧ, а туалетная вода, которой пользуется Вася, совершенно случайно оказалась точно такая же как у ее МЧ…

Page 28: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

28

Ситуация 3 (а если бы?)

• А если бы Вася был МЧ Кати.

• А если Катя, при этом, ПМ, а Вася разработчик в ее проекте?!

• А если Вася, правда тормоз и подводит проект?

• А если Катя поступит как нормальный ПМ и выбросит Васю из проекта?

Page 29: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

29

Ложь

Page 30: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

Тикет: название: Сериализация и десериализацияВажность: высокаяСрок: к пятнице

30

Ситуация 4 (понедельник)

Вася: разработчик

Катя: проектный менеджер

Page 31: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

Тикет: название: Сериализация и десериализацияВажность: высокаяСрок: к пятнице

31

Ситуация 4 (среда)

Вася: разработчик

Катя: проектный менеджер

Как дела по задаче?

Все отлично! Основное работает, осталось немного мелочей

Page 32: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

32

Ситуация 4 (пояснение)

ПМ запланировал на следующий понедельник отдать этот компонент на QA инженерам:• Подготовить эталонные входные и выходные данные. • Реализовать тесты через чтение и запись данных• Для этого и нужна была сериализация

А паралельно Пете дать задачу по оптимизации скорости работы данного компонента. При этом, радикально изменится существующая структура внутренних данных компонента, но не изменится формат ввода-вывода и внешняя функциональность.

Page 33: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

Тикет: название: Сериализация и десериализацияВажность: высокаяСрок: к пятнице

33

Ситуация 4 (пятница, вариант №1)

Вася: разработчик

Катя: проектный менеджер

Нет ли у тебя не закоммиченных изменений – мы будем бранчить транк для новой версии?

Тут такое дело…Ну в общем…Я столкнулся с неожиданными сложностями.В общем, я не успеваю сегодня сделать.Давай я в отдельной ветке доделаю…

Page 34: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

34

Что не так?

• Изменения, которые будут сделаны в рамках новой функциональности затронут все классы компонента

• Если начать делать новую функциональность и сериализацию в разных ветках, то потом смержить их будет очень непросто.

• Фактически, сериализацию для новой версии компонент нужно будет делать заново.

• Стопроцентной гарантии, что сериализация новой версии компонент будет сделана в точности совместимой со старой версией компонент нет.

Page 35: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

Тикет: название: Сериализация и десериализацияВажность: высокаяСрок: к пятнице

35

Ситуация 4 (пятница, вариант №1)

Вася: разработчик

Катя: проектный менеджер

Нет ли у тебя не закоммиченных изменений – мы будем бранчить транк для новой версии?

Тут такое дело….Ну в общем….Я столкнулся с неожиданными сложностями..В общем, я не успеваю сегодня сделать..Давай я в отдельной ветке доделаю…

Page 36: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

Тикет: название: Сериализация и десериализацияВажность: высокаяСрок: к пятнице

36

Ситуация 4 (пятница, вариант №1)

Вася: способен придумать 100500 миллионов слов в свое опрадание

Катя: Начала грязно материться

&^$^&*^ &^^%%$%^%& &*^&$^% *&^&*%$^&%&*^*&

Page 37: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

Тикет: название: Сериализация и десериализацияВажность: высокаяСрок: к пятнице

37

Ситуация 4 (пятница, вариант №2)

Вася: разработчик

Катя: проектный менеджер

Нет ли у тебя не закоммиченных изменений – мы будем бранчить транк для новой версии?

Неа, у меня все закоммиченно

Page 38: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

Тикет: название: Сериализация и десериализацияВажность: высокаяСрок: к пятнице

38

Ситуация 4 (понедельник, вариант №2)

Вася: разработчик

Катя: проектный менеджер

- Я закоммитил в транк сериализацию

- Я закоммитил в транк “небольшие.последние правки” к сериализации.

Page 39: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

Тикет: название: Сериализация и десериализацияВажность: высокаяСрок: к пятнице

39

Ситуация 4 (пятница, вариант №1)

Вася: покоится с миром

Катя: Осуждена на 10 лет за убийство в состоянии аффекта

&^$^&*^ &^^%%$%^%& &*^&$^% *&^&*%$^&%&*^*&

Page 40: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

40

Почему разработчик врал?

В среду: • С понедельника по четверг Вася все еще доделывал предыдущую задачу• Так как не хотел показаться тормозом (что он медленно разрабатывает), а то вдруг ему премию урежут.

В пятницу (при варианте 1):• Неудачаная отмазка, но сказал (почти) правду

В пятницу (при варианте 2):• Соврал, по той же причине, что и в среду

Page 41: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

41

Как нужно было поступить разработчику?

В понедельник (или даже на прошлой неделе):

• Нужно было сказать правду о том, что предыдущая задача не сделана.

• Если есть не сделанная задача, то предложить менеджеру расставить приоритеты. Что делать вперед, что потом.

Page 42: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

42

Ситуация 5 (пятница)

John: заказчик

Катя: проектный менеджер

Обещанная сериализация не может быть доставлена в понедельник. Потому, что возникли непредвиденные технические трудности в реализации.

ОК. Бат ит релли сэд.

Page 43: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

43

Заголовок

Классно мы погуляли вчера!

Да уж! Неплохо! А кто-то вообще на работу пришел с утра?

Я не смогла! Я только к обеду. А вообще надо как нибудь повторить :)

Да вы чо то рано ушли. Мы с пацанами потом еще в боулинг поперлись.

Ситуация 5 (вторник)

Page 44: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

44

Не надо врать!

Если уже нет объективной причины, лучше не называть никаких причин.Просто «нет» и все.

Лучше ничего не говорить, чем придумывать отмазки.

Только смерть может быть достаточно уважительной отмазкой, но и она не является оправданием. (автор неизвестен)

Page 45: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

45

Взаимопониманиене

Page 46: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

Тикет: название: Сериализация и десериализацияВажность: высокаяСрок: к пятнице

46

Ситуация 6 (вариант ситуации 4, среда)

Вася: разработчик

Катя: проектный менеджер

Как дела по задаче?

Все отлично! Основное работает, осталось немного мелочей

Page 47: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

47

Почему Вася не услышал менеджера (Вариант 1)

У Васи В Google Chrome :• Десять закладок exist.ru• Сайт знакомств• Поисковый запрос: “чем лечить…”

Люди просто заняты своими личными проблемами и им нужно просто скорее от ПМ отмахнуться. То есть они просто действительно не слышат.

Можно ли заниматься личными проблемами на работе?

Что делать ПМ в этой ситуации?

Page 48: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

48

…Как молью изъеден я сплином…

Посыпьте меня нафталином,

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

Пока не наступит весна.

Почему Вася не услышал менеджера (Вариант 2)

Page 49: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

49

…Как молью изъеден я сплином…

Посыпьте меня нафталином,

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

Пока не наступит весна.

Группа “Сплин”,Альбом “Пыльная быль”1994-го годПесня: “Под сурдинку”

Почему Вася не услышал менеджера (Вариант 2)

Page 50: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

50

Поэт серебрянного века, Саша Черный (Александр Михайлович Гликберг), Стихотворение: “Под Сурдинку”1909-й год

…Как молью изъеден я сплином…

Посыпьте меня нафталином,

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

Пока не наступит весна.

Группа “Сплин”,Альбом “Пыльная быль”Песня: “Под сурдинку”1994-й год

Почему Вася не услышал менеджера (Вариант 2)

Page 51: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

51

Почему Вася не услышал менеджера (Вариант 2)

Наши знания о мире, как правило, не совпадают с реальностью

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

И уж тем мировосприятие двух человек не совпадают друг с другом

Page 52: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

52

Ситуация 7 (что говорит ПМ)

Катя: проектный менеджер

Нужно сделать бранч от транка

Нужно сделать сериализацию

Нужно сделать сериализацию до бранча от транка

Вася: очень внимательный разработчик

Page 53: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

53

Ситуация 7 (как воспринимает разработчик)

Катя: проектный менеджер

Нужно сделать бранч от транка

Нужно сделать сериализацию

Нужно сделать сериализацию до бранча от транка

Вася: очень внимательный разработчик

Кому то что-то нужно сделать, вот пусть.кто-то это что-то и делает

Page 54: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

54

Ситуация 7 (как могло бы быть)

Катя

Петя, ты в следующий понедельник будешь делать бранч от транка и там делать.новую функциональность.

Вася, ты будешь делать сериализацию. Это обязательно нужно сделать до четверга, потому что в понедельник Петя будет делать бранч в котором будет делать новую функцональность и ему там уже необходима сериализация.

Вася

Петя

Page 55: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

55

Заключение

• Общего рецепта нет.

• Мы все разные. Мы по-разному воспринимаем окружающий мир.

• Не возможно придумать систему распределения благ, которая устроит всех.

• Зависть это плохое чувство :)

• Врать не надо. Никогда!

Page 56: Взаимоотношения в коллективе разработчиков ПО: ложь, предательство и зависть

56

Благодарю за внимание

http://risik.info/?p=251 Сергей Борисов

проектный менеджерТомскСофт

[email protected]

Смешные рожицы:Ю.Ф. Алгина

http://pingva.info