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