Upload
prigarov
View
328
Download
1
Embed Size (px)
Citation preview
1. Введение и ограничения доклада2. Часть I. «Жизненная»3. Часть II. «Философская»4. Мораль
Почему решил сделать этот доклад?Почему доклад получился из двух частей?Не хочу никого обидеть!
1. Фразы программистов из реальной жизни.
Когда произносится: Универсальный ответ на любой вопрос связанный с производительностью: «почему программа съела 500 Мб памяти?», «почему так медленно происходит переключение экранов?» и т.п.
Что думает программист: «Как я ловко отмазался!» Что слышу я: ◦ Программист не понимает технологий с которыми работает ◦ Программист не умеет пользоваться профилировкой ◦ Программист не понимает особенности управления памятью◦ Программист уходит от ответственности
Как можно было бы ответить: «Скорее всего у нас утечка памяти. Мне нужно X часов, я запущу под профайлером, проверю гипотезы и скорее всего найду ее»
Когда произносится: Ответ на полученный баг-репорт Что думает программист: «Я все правильно делаю» Что слышу я: ◦ Программист не может воспроизвести проблемную ситуацию◦ Программист не внимательно читает баг-репорты◦ Программист не умеет задавать вопросы◦ Программист не хочет разбираться
Как можно было бы ответить: «У меня работает, но это наверное потому что у меня система отличается<список гипотез> от системы Заказчика (Тестировщика), мне нужно X времени, чтобы проверить какая из них срабатывает у Заказчика (Тестировщика)».
Когда произносится: В ответ на вопросы:◦ «Что у Заказчика происходит на сервере?»◦ «Как возник это Exception?»◦ «Как это работает?»◦ «Сколько времени у меня займет эта задача (это исправить)?»◦ «Как сделать эту задачу?» и т.п.
Что думает программист: Не знаю Что слышу я: ◦ Программист не хочет думать◦ Программист не знает системы, которую создает (как она работает)◦ Программист забыл сделать логгирование
Как можно было бы ответить: «Я не знаю сейчас в чем проблема, но… Дайте мне X часов, телефон Заказчика, логи сервера, доступ к нему и я решу проблему».
Когда произносится: В ответ на просьбу что-то изменить в поведении системы.
Что думает программист: Не хочу ничего делать Что слышу я: ◦ Программист не хочет ничего делать◦ Программист не умеет решать проблемы
Как можно было бы ответить: «Пока я не знаю, что с этим делать. Мне нужно X часов, чтобы разобраться и предложить варианты ».
Фраза №5: «Предупреждаю! Здесь у меня (нас) много багов»
Фраза №6: «Я не делал коммит (сборку) N дней»
Фраза №7: «Тут надо все переделать» Фраза №8: «Это баг не в нашем (моем) коде» Фраза №9: «Я сейчас по-быстрому …» Фраза №10: «Я не мог сделать по-другому»
Когда произносится: Когда уже было произнесено несколько фраз из приведенного списка, но решать проблему все равно надо
Что думает программист: Все оказалось не так как я думал Что слышу я: ◦ Программист не подумал раньше ◦ Программист сделал по-быстрому◦ Программист ошибся, но не считает, что не прав
Как можно было бы ответить: «Я виноват не подумал раньше. Мне нужно X часов на то, чтобы разобраться в создавшейся ситуации и принять решение»
1. Чего руководитель ждет от программиста?2. Почему не всегда оправдываются ожидания?3. Как сделать так, чтобы наши ошибки не
возвращались снова?
Конкретные сроки (время) Конкретные действия Конкретный ожидаемый результат
Сотрудник не выполняет задачу если: Не умеет Нет времени Не понимает задачу Не хочет
(С) Стратосфера (А. Орлов)
Не умеет – пусть учится. Можно даже на своих ошибках, то только правильно это делать.
Нет времени – наша проблема. Нужно решать.
Не понимает задачу – если подойти к проблеме чуть тоньше, то скорее всего не понимает контекст, ситуацию.
Не хочет – можно заставлять, но лучше уволить
«правильный» подход
«неправильный» подход
1. Они работают в команде и их плохая работа влияет на других программистов, тестировщиков
2. Есть заказчик, который ожидает конкретики и который требует ее от Пма
3. Полная стоимость работы включает не только стоимость работы программиста
Полная стоимость работы:
«плохой» программист
«хороший» программист
1. Говорить неправильные фразы – невыгодно! ◦ Они свидетельствуют о слабом уровне программиста,
мешают росту.
1. Программист, который:◦ Быстро учится на своих ошибках (делает выводы и
принимает меры)◦ Понимает общий контекст работы над проектом (не
выпадает из него)◦ Называет конкретные сроки и действия
Это уже как минимум готовый тим-лид!
Прошу задавать Ваши вопросы.