«Если вы ученый, и не можете в двух словах объяснить пятилетнему ребёнку, чем вы занимаетесь, — вы шарлатан».
(Курт Воннегут)
Ave, habrahomines, morituri vos salutant. Идущие на смерть приветствуют хабрачеловечество.
Приготовьтесь к беспощадному поединку. Сегодня на горячем песке Колизея сойдутся в кровавой схватке менеджер и программист. Менеджер подобен ретиарию, вооруженному сетью, трезубцем и кинжалом. Программист – мирмиллион с наплечником, щитом и гладиусом.
Сие историческое сравнение всякий раз приходит почему-то на ум, когда речь заходит о формулировке так называемого технического задания, попросту ТЗ. Складывается полное ощущенье, что менеджер и программист говорят на разных языках, и один из них галл, а другой, предположим, фракиец.
Менеджера можно понять. Ему важно сдать работу в срок. Объяснить менеджеру, что для выполнения работы нужно несколько больше времени, чем он планировал, иногда трудно. Менеджер мыслит единицами времени, человеко-часами. У него нет видимых причин доплачивать сотруднику за сложность реализации.
Всякий программист в глубине души большой ребёнок. Он как доктор Хаус, которому разгадывать загадки гораздо интереснее, чем спасать человеческие жизни.
А загадки случаются. Порой – на самом простом месте.
В нашу компанию обратились владельцы крупного зарубежного интернет-портала с просьбой помочь им раскрутиться в Рунете. Сами понимаете, клиент серьёзный. Сознавая всю свою ответственность, менеджер поручил работу нашему лучшему веб-программисту.
Тут необходимо сказать в двух словах, что у нас принято доверять своим сотрудникам и спрашивать их собственного мнения на предмет количества времени, потребного для реализации той или иной технической задачи.
Менеджер попросил программиста для начала перекрутить пару иконок в навигационном меню и честно спросил: «Юра, сколько тебе нужно на это времени?» — «20 минут, – не менее честно ответил Юра. – Плёвое дело».
Проходит час. Другой. Результат отсутствует. Менеджер в Москве, программист – в Луганске (в прошлом нашем топике мы как раз писали, если вы помните, о превратностях телеворкинга).
Три часа. Четыре. Менеджер начинает медленно, но верно сходить с ума. Разумеется, ведь у него помимо программиста на другом конце провода сидит озабоченный клиент, могущий позвонить в любой момент и спросить, как там, вообще, с продвижением в Рунете.
Наконец, спустя пять часов, «плёвое дело» сделано. Получив уведомленье о проделанной работе, менеджер, разумеется, возмущается и спрашивает: «Почему так долго?»
Программист мнётся, после чего пишет менеджеру письмо приблизительно следующего содержания:
…Трудно объяснить непрограммеру, но попытаюсь. Приведем в аналогию автосервис.
Я автослесарь, с хорошим опытом, много чего переделал. Приезжает водитель на машине неизвестной марки, какой-то чистый американец. Говорит, чё-то стучит. Я послушал, все понятно, нужно поменять подшипник. Где он обычно стоит и что он обычно делает, известно, общая конструкция всех автомобилей примерно одинакова.
Загоняем машину на яму, к подшипнику… а там ппц… до него не долезть… никакими инструментами. Чтобы его поменять, нужно снимать двигатель! А работы, времени и денег снять и поставить обратно двигатель — это принципиальное другое дело… Вот и залет…
Но цена обговорена, договор подписан… Попадалово… Подшипник диаметром
5 см… Снимать нужно двигатель…
Начали снимать двигатель, а он тоже очень хитрый… Пришлось искать полное описание конструкции, как устроено, в каком порядке болтики откручивать…
В нашем случае всё осложняется тем, что делать надо на ходу, в момент,
пока машина едет!
Иными словами, мне удалось выполнить поставленную задачу, только подняв движок на своём сервере и изучив здоровенный PDF-мануал на непонятном языке…
1) Профессионал может объяснить любое своё «претыкание» с помощью простого, но образного русского языка, без употребления слов, начинающихся со второй, седьмой и двадцать третьей букв отечественного алфавита
2) Любое техническое задание должно измеряться не только временными единицами t, но и коэффициентом сложности k
3) Всякая работа должна оплачиваться по формуле S = k*t, где S – денежный эквивалент
4) Коэффициент сложности может меняться в процессе работы. Менеджер должен учитывать коэффициент сложности и возможность его изменения
5) Ответственному работнику следует уметь вовремя сообщать менеджеру об изменившемся коэффициенте сложности. Ответственный работник должен не бояться требовать у менеджера необходимости повышения S в связи со внезапно обнаружившимся k
6) Всякое ТЗ, каким бы сложным оно ни было, может быть описано формулой S = k1*t1 + k2*t2 +… kn*tn, где t1, t2 и т. д. — временные промежутки, а k1, k2 и т. д. – коэффициенты сложности за данный временной промежуток.
(Курт Воннегут)
Ave, habrahomines, morituri vos salutant. Идущие на смерть приветствуют хабрачеловечество.
Приготовьтесь к беспощадному поединку. Сегодня на горячем песке Колизея сойдутся в кровавой схватке менеджер и программист. Менеджер подобен ретиарию, вооруженному сетью, трезубцем и кинжалом. Программист – мирмиллион с наплечником, щитом и гладиусом.
Сие историческое сравнение всякий раз приходит почему-то на ум, когда речь заходит о формулировке так называемого технического задания, попросту ТЗ. Складывается полное ощущенье, что менеджер и программист говорят на разных языках, и один из них галл, а другой, предположим, фракиец.
Менеджера можно понять. Ему важно сдать работу в срок. Объяснить менеджеру, что для выполнения работы нужно несколько больше времени, чем он планировал, иногда трудно. Менеджер мыслит единицами времени, человеко-часами. У него нет видимых причин доплачивать сотруднику за сложность реализации.
Всякий программист в глубине души большой ребёнок. Он как доктор Хаус, которому разгадывать загадки гораздо интереснее, чем спасать человеческие жизни.
А загадки случаются. Порой – на самом простом месте.
В нашу компанию обратились владельцы крупного зарубежного интернет-портала с просьбой помочь им раскрутиться в Рунете. Сами понимаете, клиент серьёзный. Сознавая всю свою ответственность, менеджер поручил работу нашему лучшему веб-программисту.
Тут необходимо сказать в двух словах, что у нас принято доверять своим сотрудникам и спрашивать их собственного мнения на предмет количества времени, потребного для реализации той или иной технической задачи.
Менеджер попросил программиста для начала перекрутить пару иконок в навигационном меню и честно спросил: «Юра, сколько тебе нужно на это времени?» — «20 минут, – не менее честно ответил Юра. – Плёвое дело».
Проходит час. Другой. Результат отсутствует. Менеджер в Москве, программист – в Луганске (в прошлом нашем топике мы как раз писали, если вы помните, о превратностях телеворкинга).
Три часа. Четыре. Менеджер начинает медленно, но верно сходить с ума. Разумеется, ведь у него помимо программиста на другом конце провода сидит озабоченный клиент, могущий позвонить в любой момент и спросить, как там, вообще, с продвижением в Рунете.
Наконец, спустя пять часов, «плёвое дело» сделано. Получив уведомленье о проделанной работе, менеджер, разумеется, возмущается и спрашивает: «Почему так долго?»
Программист мнётся, после чего пишет менеджеру письмо приблизительно следующего содержания:
…Трудно объяснить непрограммеру, но попытаюсь. Приведем в аналогию автосервис.
Я автослесарь, с хорошим опытом, много чего переделал. Приезжает водитель на машине неизвестной марки, какой-то чистый американец. Говорит, чё-то стучит. Я послушал, все понятно, нужно поменять подшипник. Где он обычно стоит и что он обычно делает, известно, общая конструкция всех автомобилей примерно одинакова.
Загоняем машину на яму, к подшипнику… а там ппц… до него не долезть… никакими инструментами. Чтобы его поменять, нужно снимать двигатель! А работы, времени и денег снять и поставить обратно двигатель — это принципиальное другое дело… Вот и залет…
Но цена обговорена, договор подписан… Попадалово… Подшипник диаметром
5 см… Снимать нужно двигатель…
Начали снимать двигатель, а он тоже очень хитрый… Пришлось искать полное описание конструкции, как устроено, в каком порядке болтики откручивать…
В нашем случае всё осложняется тем, что делать надо на ходу, в момент,
пока машина едет!
Иными словами, мне удалось выполнить поставленную задачу, только подняв движок на своём сервере и изучив здоровенный PDF-мануал на непонятном языке…
Выводы
1) Профессионал может объяснить любое своё «претыкание» с помощью простого, но образного русского языка, без употребления слов, начинающихся со второй, седьмой и двадцать третьей букв отечественного алфавита
2) Любое техническое задание должно измеряться не только временными единицами t, но и коэффициентом сложности k
3) Всякая работа должна оплачиваться по формуле S = k*t, где S – денежный эквивалент
4) Коэффициент сложности может меняться в процессе работы. Менеджер должен учитывать коэффициент сложности и возможность его изменения
5) Ответственному работнику следует уметь вовремя сообщать менеджеру об изменившемся коэффициенте сложности. Ответственный работник должен не бояться требовать у менеджера необходимости повышения S в связи со внезапно обнаружившимся k
6) Всякое ТЗ, каким бы сложным оно ни было, может быть описано формулой S = k1*t1 + k2*t2 +… kn*tn, где t1, t2 и т. д. — временные промежутки, а k1, k2 и т. д. – коэффициенты сложности за данный временной промежуток.