Если бы самолеты строили ИТ-шники

Рубрика: Development, Юмор | 13 April 2008, 21:24 | Vadim Voituk

В блоге Макса Тульева набрел на старый-добрый видеоролик, наглядно демонстрирующий то, как бы выглядло свременной авиастроительство, если бы работало по принципам принятым в ИТ

А опубликовал я его тут не просто так, а дабы подискутировать по поводу отсутсвия ответственности разработчиков за свои проекты.
Вот предположим работает работяга Вася на заводе и делает деталь. При этом после вчерашнего перепоя Вася случайно сбил настройку станка и неделю “штамповал” бракованные детали.
Детали, конечно же, не проходили контроль качества (и это хорошо если он есть) и списывались в брак.
Со временем обнаружили и виновника брака – Васю, который перед запуском серии не произвел замеры и корректировки настроек станка.
Вопрос: с чьей зарплаты вычтут стоимость перепорченного сырья и сорванные сроки поставки партии заказчику?
Правильно – с Васиной!

Некоторые могут не согласиться с корректностью сравнения работы труженика Васи на заводе и разработкой ПО. Но тут я на 100% уверен в правильности аналогии, т.к. разработка ПО уже давно перестала быть творческим трудом, перейдя в разряд промышленного производства.

В теперь предположим, что программист Петя сделал ошибку в каком-нибудь аналитическом приложении и в течении месяца компания оперировала “левыми” данными, в результате понеся финансовые потери, прямые или в виде недополученной прибыли.
Что будет с програмиистом Петей? Вычтут ли с него тысячи недополученной прибыли?
Правильно – не вычтут! Вызовут на ковер, пожурят/покричат, того гляди лишат премии и Петю и его ТимЛида и тестировщика с его QA-лидом. Да и все вроде. И ничего Пете не будет.

Чувствуете разницу между Васей и Петей?

Вообщем тема ответственности разработчиков за свои “поделки” мучает меня достаточно долго, и даже не раз прочувствована на собственной шкуре в разных вариациях.
Особенно актульно это в сферах где, количество пользователей твоего ПО переваливает за миллионы в месяц, при этом пользователи платят за услугу “свои кровные”.

А ведь в Европе часто в трудовой контракт вписывают пункт об ответственности наемного сотрудника за потери или недополученную прибыль компании-нанимателя, в результате действий, бездействий или ошибок в работе сотрудника.
У нас же повсеместно подписывается “бумажка” (по другому назвать эту писульку язык не поворачивается) о материальной отвественности при порче рабочих инструментов (компьютер, стол, кресло, холодильник, и тд.) стоимостью в $1500 суммарно, при этом забывают об ответственности за небольшой баг, допущенный разработчиком, который в итоге “выливается” в сотни тысяч потерь.

Что вы думаете по этому поводу?

Комментариев: 21

21 Responses to “Если бы самолеты строили ИТ-шники”

Комментарии:

  1. mrrrr

    Це все правильно! Но, звинувачувати девелопера (односторонньо), на мою думку, є не зовсім коректно. Достатньо часто фірми не дотримуються процедури розробки і тестування (економлять), або розробку довіряють девелоперам без достатнього досвіду.

  2. Illya Kysil

    Нет, не доросли мы ещё до производства.
    Всё-таки Вася не занимается ПРОЕКТИРОВАНИЕМ детали, это делают другие люди, и, заметьте, за совершенно другие деньги.

    Кроме того, гибкость производства на котором работает Вася довольно низкая. А там, где нужна гибкость – уже давно нет Васи. Его заменили компьютером. Чем кстати, ещё и перепои “победили”.

  3. Александр Махомет

    С таким подходом люди перестали бы идти в программисты =)

  4. Андрей

    Классический идиотизм.

    Грубо говоря: если хотите ответственности за ошибки такого уровня-берите в долю. Платите не обычную з.п., а опционы, % от дохода.

    “AS IS” – про это вы тоже забыли?

    И почему вы говорите, что программисту Пете ничего не будет? Петю будет ругать его руководство, которое сделает выводы.

    Как же хочется сбросить ответственность на обычного Васю/Петю, а самому остаться во всём белом?

    Баг, допущенный разработчиком и пролезший в программу – это не баг одного человека.

  5. Vadim Voituk

    2mrrrr: Дык я и не обвиняю только девелопера – это утрированный вариант.

    Илья,
    Про проектирование детали никто речи не ведет – просто Вася хреново делает свою работу и по собственной невнимательности “запорол” партию. Если в терминах программирования – неверно закодировал примитивный алгоритм.
    Ты же не утверждаешь что проектировщик детали (алгоритма), должен её сам и производить (кодировать)?
    Ты же распределяешь работу среди своих подчиненных, а не пишешь весь код сам.

    Александр Махомет, понял! Больше ни слова :)

    Андрей,

    Eсли хотите ответственности за ошибки такого уровня

    Какого “такого” уровня?
    Пример: Года так полтора назад в результате неправильного кодирования примитивной бизнес-логики, несколько тысяч конечных пользователей системы потратили свои деньги впустую.
    Суммы конечно небольшие – по $3-$4 с человека, но вот непрямые потери от дальнейшей нелояльности клиента даже подсчитывать страшно.
    К тому же был нанесен ущерб бренду и репутации компании-партнера, для которого разрабатывалась услуга, что тоже выливается в непрямые потери.
    А ошибочка минимальная.
    Конечно же не он один виноват – была ещё группа тестирования, которая баг “прощелкала”, был ещё его тим-лидер, который должен был произвести CodeReview но не успел ввиду запарки, был ещё начальник отдела, который отвечает за весь R&D – досталось всем. Но компании от этого никак не легче…

    “AS IS” – про это вы тоже забыли?

    AS IS применим только на freeware и на недорогом коробочном софте – при разработке же продукта под заказ или аутсорсинге – об этом не может быть и речи.
    Так и вижу как какой-то GL в контракте с T-Mobile пишет фразу “AS IS” :)

    Как же хочется сбросить ответственность на обычного Васю/Петю

    Наоборот не хочется – потому что сам такой же Вася/Петя.

    Ваш комментрарий полон праведного гнева и нежелания заглянуть “по ту сторону барикад”.
    Вы расцениваете ответственность как угрозу для себя лично, при этом закрываете глаза на действующие реалии.

    А реалии таковы что в результате нецивилизованности нашего рынка, у нас НЕТ никакой ответственности разработчика/тестировщика за потери компании (и меня это пока устраивает:).
    А в Европе она есть! И работают же люди! И не брызжут слюной а-ля “класический идиотизм”.

  6. Illya Kysil

    Нет, для ответственности такого уровня не нужны опционы, %, и пр.

    Нужно, чтобы менеджеры, которые не имеют никакого отношения к непосредственному выполению работы НЕ ИМЕЛИ ПРАВ устанавливать сроки исполнения.

  7. Leschinsky Oleg

    Такое ПО есть. Стоит оно $n за один экземпляр в год, где n > 5000000.

    Если ошибка приводит к проблемам, компания-разработчик выплачивает компенсацию.

    Для защиты от внесения ошибок во время разработки в таких случаях применяется более другой процесс с доказательством правильности и т.д.

    Ну и простого Васю такой софт разрабатывать не допустят.

  8. Vadim Voituk

    Илья, думаю если бы все было так просто – то проблемы уже давно небыло :)

    Олег,
    Я не говорю о ПО для ядерной энергетики, медицинской диагностики, системах управления полетами и тд.
    С ним все ясно – там контроль качества совсем другой.
    Я говорю про большую часть остального ПО, разрабатываемого на заказ, особенно в аутсорсе.

  9. Андрей

    AS IS применим только на freeware и на недорогом коробочном софте – при разработке же продукта под заказ или аутсорсинге – об этом не может быть и речи.
    Так и вижу как какой-то GL в контракте с T-Mobile пишет фразу “AS IS” :)

    —-
    Да?
    А посмотрите на лицензионное соглашение винды, которое, формально, тоже является контрактом.
    Если программа разработчика будет работать на ненадёжном ПО, то она уже по определению не может быть надёжна на 100%. Всё.

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

    То, что компании не легче – это проблемы компании и совладельцев. Но никак не наёмных работников. Не надо перекладывать с больной головы на здоровую.

    “Неправильное кодирование примитивной бизнес-логики” – вы, простите, кто?

    Кто решил, что логика примитивна, и не нуждается в тесте?
    Кто пропустил такой код в продакшен?

    Что это за гнилая отмазка – прощелкал тим-лид, т.к. времени не хватало.

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

  10. Андрей

    Кстати – на самом деле исходная посылка про рабочего Васю уже спорна/ложна.

    И из из посылки про рабочего васю выводятся еще более спорные положения.

  11. Vadim Voituk

    С вашим подходом ни одна программа работать надежно не должна.

    Покажите европейские примеры.

    У меня на столе лежит контракт в котором отдельным пунктом обозначена моя ответственность за потери компании в случае некоректной работы моих разработок.
    Вот только пусть сначала докажут что виноват я.
    Так же и в ситуации с Петей – доказать будет что-то сложно, да и толку от этого мало.
    Да и без такого контракта сделать Петю виноваты будет не сложно: поди докажи что он не нарочно сделал эту ошибку, за что был премировал конкурентами? Тут уже больше вопрос целесообразности.

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

    Тут я с вами согласен- потому и утверждаю что виноват не только Петя а и вся братия во главе с тим-лидом, тестировщиками и начальником ИТ-отдела.

  12. mrrrr

    to Vadim Voituk
    Тут я с вами согласен- потому и утверждаю что виноват не только Петя а и вся братия во главе с тим-лидом, тестировщиками и начальником ИТ-отдела.

    Можливо і вище (винуваті). На мою думку якщо витриманий процес розробки – то ~99% багів можна виловити до кінцевого делівері!.
    А на рахунок пункту про відповідальність, то це скоріше навсякий випадок, бо шкода непомічиного багу буває непорівняно вища ніж зарплати тім-ліда, тестерів, девелоперів і т.д. – разом взяті.

  13. Kefir

    А я за то чтобы ввести ответственность разработчика. Вообще, я за лицензирование разработки ПО. Взгляните правде в глаза, самолеты падают и здания обрушаются гораздо реже, чем падает софт. Кстати, обрушения зданий часто валят на расчетные программы использованные при проектировании. И все верят, и даже я. Но страшно не то что все верят, а то что всем кажется это естественным и нормальным. “А… ошибка в программе, ну тогда ладно”.

  14. Leschinsky Oleg

  15. Vadim Voituk

    Олег, ответил вам у вас же в блоге.

  16. Александр Соловьёв

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

    Просто бетон – намного более надёжный и прощающий ошибки стройматериал, чем биты. А дома строят отвратно. Стрёмно жить в этих домах, после того как узнаешь, как же строят. :\

  17. Marbo

    Ой! Ошибка дошла до клиента и нанесла убыток. Значит:
    1. Ошибся программист.
    2. Ошибся отдел кадров, который взял человека несоответствующей квалификации.
    3. Ошибся Team Leader.
    4. Ошибся QA-отдел.
    5. Ошибся QA Leader.
    6. Ошиблось начальство, которое гонит в шею, вместо того, чтобы нанять больше народу.

    Ошиблись все, кроме уборщиц и архитекторов.
    Вариант 1: убытки несет фирма.
    Думаю, это правильно, ведь ошиблись многие люди, которые работают в одной команде. Ведь гол забивают команде, а не вратарю.
    Вариант 2: убытки несут виновные.
    Для начала виновных надо найти и установить, в каких долях они должны делить ответственность. Вы считаете, что это реально? Ладно, цепочку людей, через которых прошел баг, мы отследим. Но кто виноват больше – программист, который неправильно написал, или тестировщик, который пропустил? Или начальники? Или преподаватель, который вел алгоритмы на первом курсе. Это абсолютно нереальная затея.

    А что касается надежности… софт ненадежен по своей природе. Отследить миллионы ветвлений и поведение программы в любой ситуации невозможно.Поэтому тестируются наиболее вероятные. Причем часто при тестировании всего проекта подразумевается, что если он состоит из 2 частей и каждая из них работает, то вместе они тоже будут работать. А это не всегда так по разным причинам – например, неверная архитектура. Ой! Архитекторы, оказывается, тоже виноваты. Значит, в белом на фирме остались только уборщицы… пока не залезут шваброй в сервер ;)

  18. bodikkk

    Може не по темі але погодьтесь актуально. Читаю і серце крається((( Порівнювати нас із заходом це смішно. У нас середня зарплата програміста рази у два менша чим середня зарплата некваліфікованого західного працівника це по країні, а у моєму регіоні зарплата будівельника в межах 100-200% зарплати програміста в середньо або високо розвинутих фірмах. Так справа навіть не в тому … якість освіти взагалі ніяка – мало закладів дають дійсно якісну і практичну освіту. Більшість людей з вищою технічною освітою це заплати гроші і розпишись що диплом отримав. На фірму де я колись працював прийшов хлопчина на співбесіду – вакантна посада “прикладний програміст” так от диплом університету “Х” написано що даний випускник оволодів професією “прикладний програміст” і отримав наступні знання: користування ОС windows 98-vista, офіс (word, exel, …), ICQ, робота в інтернеті, написання процедур мовою pascal. І це за 4 роки. Шкода було хлопчину. Але такі реалії. І університетів які пропонують таку освіту безліч. Ось я прочтав цікаву статтю “http://local.joelonsoftware.com/wiki/Опасности_обучения_на_Java” з автором я погодився так дійсно С і С++ це те на чому варто вчити наступні покоління програмістів і неоминати ASSEMBLER. І головне практика – далеко не кожен може ефективно застосувати отримані знання. А помилки в коді були і будуть а це вже хліб тестувальників…

  19. Alexander

    4 года прошло с последнего комментария, но все же

    Вася должен был расписаться в технике безопасности или в чем-то другом, где сказано, что он перед запуском серии должен производить замеры и корректировки настроек станка. Если такое есть, убытки повесят на Васю. Если такого не было, то ничего с него не вычтут, отношение начальства испортится и даже, наверняка, заставят уволится по собственному, но убытки на него не повесят (по закону)(в примере с программистом идет все таки через закон, т.к. лицензионное соглашение и все такое, поэтому в примере с Васей давайте тоже через закон).
    Точно так же и с программистом. Сказано, что ты обязан проверять свой код и ставишь роспись что, чтобы не случилось, а твой кусок кода на 100% отработает как надо, будешь платить все убытки компаниям. Но вы станите нести такую ответственность за такую зарплату? Конечно нет.
    Ответственность должна быть соразмерна заработку. Утрируя ситуацию (как с Васей и Петей), допустим есть проект, над ним работает десять человек (один из них Ваня), Ваня полностью отвечает за свой кусок кода, и понесет убытки, если его код плохо работает, сколько запросит Ваня!? Я бы на его месте запросил бы больше 9,99% прибыли с проекта.
    А так как сейчас компания и ее руководство получают прибыль, а программистам платится зарплата, то пусть руководство и несет ответственность.

  20. Alexander

    Только что мысль в голову стрельнула, что ситуации Васи и Пети не похожи. по крайней мере так как вы их описали. Ситуацию Васи надо описать: “Вася сделал бракованную деталь, деталь поместили в (ну не знаю, пусть будет танк) танк, при выстреле сыграл роль брак, и танк разлетелся на куски, с чьей зарплаты вычтут стоимость танка?” Вот тогда это похоже на Петю.

Leave a Reply