Взаимоотношения в коллективе разработчиков ПО: ложь,...
Post on 16-Jun-2015
239 Views
Preview:
DESCRIPTION
TRANSCRIPT
Взаимоотношения в коллективе
разработчиков программного обеспечения:
ложь, предательство и зависть
Сергей Борисовпроектный менеджер
ТомскСофт
2
В настоящее время:- руководитель проекта в ТомскСофт- ст. преп. в ТУСУР, каф. КСУП
Ранее:- SmaartMobile
- SiberLogic
- ЭлеСи
- ТМЦДО ТУСУР
- НИИ АЭМ
Стаж в разработке ПО: 19 летСтаж в высшем образовании: 15 лет
Об авторе
Сергей Борисов
3
Все совпадения названий, имен и ситуаций случайны
Все аналогии ложны
Если Вам кажется, что Вы знаете кто именно был в таких ситуациях, и когда они произошли, то это не совсем так
Disclaimer
4
…Три пули мне отлили до утраМои друзья – они вчера так звались.Три пули:
ложь, предательство и зависть.…
Ирина Орищенко, Три пули.
Текст песни полностью:
5
Зависть
6
Ситуация №1 (зависть)
Вася: 40 000 руб
Петя: 45 000 руб
7
Вася: 40 000 руб
Петя: 45 000 руб
Ситуация №1 (зависть)
8
Почему зарплата может различаться
• Коля выполняет ту же самую работу, но качественнее
• Коля выполняет ту же самую работу, но быстрее
• Начальство считает, что Коля выполняет работу быстрее и/или качественнее
• Коля просто дольше работает в этой компании, и он уже заслужил повышение за лояльность к компании
• Коля работает совсем недавно, но когда он пришел работать, он договорился с начальством на более высокую зарплату
• У Коли “более тесные” отношения с начальством
9
10
Что это было?
• Реальные ситуации, которые могли случиться в реальной компании
• Стереотипы
11
Как можно избежать зависти
12
Скрывать размер зарплат
Pro: В этом случае, Вася (теоретически) просто не узнает зарплаты Коли и поэтому, у него не будет поводов для зависти.
Contra: • любая попытка скрыть что-то всегда приведет к обратному эффекту
• сотрудники будут делиться информацией
• сотрудники будут подозревать друг-друга
13
Вводить формальные критерии
• качество кода
• знание технологий
• количество строк исходного кода
• скорость и качество решения поставленных задач…
14
Качество решения задач
Тикет: название: Сериализация и десериализацияВажность: высокая
Вася: разработчик
Саня: QA инженер
Назначена
РеализованоОтклонено
Принято
15
Качество решения задач
Разработчик Задач сделано Задач отклонено
Качество
Петя 10 0 100%
Вася 20 1 95%
Даша 15 3 80%
Миша 16 8 50%
Лена 5 2 40%
16
Качество решения задач
Петя: разработчик
Саня: QA инженер
У тебя бага в задаче.
Да? Точно! Ну ты не переводи тикет в баг треккере, я сейчас быстренько поправлю, там мелочевка.
17
Знание технологий
Тикет: Сериализация и десериализацияТип: фичаПервичная технология: С++Вторичная технология: XMLСложность: средняяОбъем работы: 20 часов
Тикет: Оптимизация хранилищаТип: фичаПервичная технология: С++:boostВторичная технология: algorithmsСложность: высокаяОбъем работы: 40 часов
Тикет: Приложение падает, при поиске в пустом хранилищеТип: багаПервичная технология: С++Вторичная технология:Сложность: низкаяОбъем работы: 2 часа
Тикет: Время поиска по полю “имя” растет линейно от числа элементовТип: багаПервичная технология: С++:boostВторичная технология: algorithmsСложность: средняяОбъем работы: 4 часа
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
Задача ...
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
20
Все критерии ложны!
Как только появляется формальная табличка “крутости” разработчика, от которой зависит зарплата все начинают работать на табличку, а не на результат.
21
Мерило: ответственность
http://goo.gl/U6nf9
22
Предательство
23
Ситуация №2 (предательство)
Проект провалился. Извечный русский вопрос — кто виноват?
Вася: разработчик
Петя: разработчик
Оля: менеджер проекта
Даша: разработчик
Саня: QA инженер
24
Так кто же виноват?
• Если проект успешен, то это успех всей команды
• Если проект провален, то в этом виноват только менеджер
25
Ситуация 3 (сцена 1)
Разработчик Вася утром, примерно, в 9:55 подходит к техническому писателю, которого зовут, пускай для определенности, Катя. И говорит:
– Катя, я тебе вчера вечером документик выслал на полторы странички на перевод. Когда сделаешь?
Вася: разработчик
Катя: технический писатель
26
Ситуация 3 (сцена 2)
– Что вы тут ходите все с утра пораньше!? Я еще почту не всю разобрала! (формально в этой компании до 10:00 нужно разбирать почту, время 9:55). Разберу — напишу.
Вася в непонятках ушел. Бывает.– ОК, решил Вася, подойду через пару часов.
27
Ситуация 3 (сцена 3)
Через час Катя сама прибежала с шоколадкой и извинениями.
Катя утром поссорилась со своим МЧ, а туалетная вода, которой пользуется Вася, совершенно случайно оказалась точно такая же как у ее МЧ…
28
Ситуация 3 (а если бы?)
• А если бы Вася был МЧ Кати.
• А если Катя, при этом, ПМ, а Вася разработчик в ее проекте?!
• А если Вася, правда тормоз и подводит проект?
• А если Катя поступит как нормальный ПМ и выбросит Васю из проекта?
29
Ложь
Тикет: название: Сериализация и десериализацияВажность: высокаяСрок: к пятнице
30
Ситуация 4 (понедельник)
Вася: разработчик
Катя: проектный менеджер
Тикет: название: Сериализация и десериализацияВажность: высокаяСрок: к пятнице
31
Ситуация 4 (среда)
Вася: разработчик
Катя: проектный менеджер
Как дела по задаче?
Все отлично! Основное работает, осталось немного мелочей
32
Ситуация 4 (пояснение)
ПМ запланировал на следующий понедельник отдать этот компонент на QA инженерам:• Подготовить эталонные входные и выходные данные. • Реализовать тесты через чтение и запись данных• Для этого и нужна была сериализация
А паралельно Пете дать задачу по оптимизации скорости работы данного компонента. При этом, радикально изменится существующая структура внутренних данных компонента, но не изменится формат ввода-вывода и внешняя функциональность.
Тикет: название: Сериализация и десериализацияВажность: высокаяСрок: к пятнице
33
Ситуация 4 (пятница, вариант №1)
Вася: разработчик
Катя: проектный менеджер
Нет ли у тебя не закоммиченных изменений – мы будем бранчить транк для новой версии?
Тут такое дело…Ну в общем…Я столкнулся с неожиданными сложностями.В общем, я не успеваю сегодня сделать.Давай я в отдельной ветке доделаю…
34
Что не так?
• Изменения, которые будут сделаны в рамках новой функциональности затронут все классы компонента
• Если начать делать новую функциональность и сериализацию в разных ветках, то потом смержить их будет очень непросто.
• Фактически, сериализацию для новой версии компонент нужно будет делать заново.
• Стопроцентной гарантии, что сериализация новой версии компонент будет сделана в точности совместимой со старой версией компонент нет.
Тикет: название: Сериализация и десериализацияВажность: высокаяСрок: к пятнице
35
Ситуация 4 (пятница, вариант №1)
Вася: разработчик
Катя: проектный менеджер
Нет ли у тебя не закоммиченных изменений – мы будем бранчить транк для новой версии?
Тут такое дело….Ну в общем….Я столкнулся с неожиданными сложностями..В общем, я не успеваю сегодня сделать..Давай я в отдельной ветке доделаю…
Тикет: название: Сериализация и десериализацияВажность: высокаяСрок: к пятнице
36
Ситуация 4 (пятница, вариант №1)
Вася: способен придумать 100500 миллионов слов в свое опрадание
Катя: Начала грязно материться
&^$^&*^ &^^%%$%^%& &*^&$^% *&^&*%$^&%&*^*&
Тикет: название: Сериализация и десериализацияВажность: высокаяСрок: к пятнице
37
Ситуация 4 (пятница, вариант №2)
Вася: разработчик
Катя: проектный менеджер
Нет ли у тебя не закоммиченных изменений – мы будем бранчить транк для новой версии?
Неа, у меня все закоммиченно
Тикет: название: Сериализация и десериализацияВажность: высокаяСрок: к пятнице
38
Ситуация 4 (понедельник, вариант №2)
Вася: разработчик
Катя: проектный менеджер
- Я закоммитил в транк сериализацию
- Я закоммитил в транк “небольшие.последние правки” к сериализации.
Тикет: название: Сериализация и десериализацияВажность: высокаяСрок: к пятнице
39
Ситуация 4 (пятница, вариант №1)
Вася: покоится с миром
Катя: Осуждена на 10 лет за убийство в состоянии аффекта
&^$^&*^ &^^%%$%^%& &*^&$^% *&^&*%$^&%&*^*&
40
Почему разработчик врал?
В среду: • С понедельника по четверг Вася все еще доделывал предыдущую задачу• Так как не хотел показаться тормозом (что он медленно разрабатывает), а то вдруг ему премию урежут.
В пятницу (при варианте 1):• Неудачаная отмазка, но сказал (почти) правду
В пятницу (при варианте 2):• Соврал, по той же причине, что и в среду
41
Как нужно было поступить разработчику?
В понедельник (или даже на прошлой неделе):
• Нужно было сказать правду о том, что предыдущая задача не сделана.
• Если есть не сделанная задача, то предложить менеджеру расставить приоритеты. Что делать вперед, что потом.
42
Ситуация 5 (пятница)
John: заказчик
Катя: проектный менеджер
Обещанная сериализация не может быть доставлена в понедельник. Потому, что возникли непредвиденные технические трудности в реализации.
ОК. Бат ит релли сэд.
43
Заголовок
Классно мы погуляли вчера!
Да уж! Неплохо! А кто-то вообще на работу пришел с утра?
Я не смогла! Я только к обеду. А вообще надо как нибудь повторить :)
Да вы чо то рано ушли. Мы с пацанами потом еще в боулинг поперлись.
Ситуация 5 (вторник)
44
Не надо врать!
Если уже нет объективной причины, лучше не называть никаких причин.Просто «нет» и все.
Лучше ничего не говорить, чем придумывать отмазки.
Только смерть может быть достаточно уважительной отмазкой, но и она не является оправданием. (автор неизвестен)
45
Взаимопониманиене
Тикет: название: Сериализация и десериализацияВажность: высокаяСрок: к пятнице
46
Ситуация 6 (вариант ситуации 4, среда)
Вася: разработчик
Катя: проектный менеджер
Как дела по задаче?
Все отлично! Основное работает, осталось немного мелочей
47
Почему Вася не услышал менеджера (Вариант 1)
У Васи В Google Chrome :• Десять закладок exist.ru• Сайт знакомств• Поисковый запрос: “чем лечить…”
Люди просто заняты своими личными проблемами и им нужно просто скорее от ПМ отмахнуться. То есть они просто действительно не слышат.
Можно ли заниматься личными проблемами на работе?
Что делать ПМ в этой ситуации?
48
…Как молью изъеден я сплином…
Посыпьте меня нафталином,
Сложите в сундук и поставьте меня на чердак,
Пока не наступит весна.
Почему Вася не услышал менеджера (Вариант 2)
49
…Как молью изъеден я сплином…
Посыпьте меня нафталином,
Сложите в сундук и поставьте меня на чердак,
Пока не наступит весна.
Группа “Сплин”,Альбом “Пыльная быль”1994-го годПесня: “Под сурдинку”
Почему Вася не услышал менеджера (Вариант 2)
50
Поэт серебрянного века, Саша Черный (Александр Михайлович Гликберг), Стихотворение: “Под Сурдинку”1909-й год
…Как молью изъеден я сплином…
Посыпьте меня нафталином,
Сложите в сундук и поставьте меня на чердак,
Пока не наступит весна.
Группа “Сплин”,Альбом “Пыльная быль”Песня: “Под сурдинку”1994-й год
Почему Вася не услышал менеджера (Вариант 2)
51
Почему Вася не услышал менеджера (Вариант 2)
Наши знания о мире, как правило, не совпадают с реальностью
Знания каждого человека не совпадают с реальностью
И уж тем мировосприятие двух человек не совпадают друг с другом
52
Ситуация 7 (что говорит ПМ)
Катя: проектный менеджер
Нужно сделать бранч от транка
Нужно сделать сериализацию
Нужно сделать сериализацию до бранча от транка
Вася: очень внимательный разработчик
53
Ситуация 7 (как воспринимает разработчик)
Катя: проектный менеджер
Нужно сделать бранч от транка
Нужно сделать сериализацию
Нужно сделать сериализацию до бранча от транка
Вася: очень внимательный разработчик
Кому то что-то нужно сделать, вот пусть.кто-то это что-то и делает
54
Ситуация 7 (как могло бы быть)
Катя
Петя, ты в следующий понедельник будешь делать бранч от транка и там делать.новую функциональность.
Вася, ты будешь делать сериализацию. Это обязательно нужно сделать до четверга, потому что в понедельник Петя будет делать бранч в котором будет делать новую функцональность и ему там уже необходима сериализация.
Вася
Петя
55
Заключение
• Общего рецепта нет.
• Мы все разные. Мы по-разному воспринимаем окружающий мир.
• Не возможно придумать систему распределения благ, которая устроит всех.
• Зависть это плохое чувство :)
• Врать не надо. Никогда!
56
Благодарю за внимание
http://risik.info/?p=251 Сергей Борисов
проектный менеджерТомскСофт
bsi@tomsksoft.com
Смешные рожицы:Ю.Ф. Алгина
http://pingva.info
top related