Несколько дней назад я наткнулся на пост в блоге Валентины Купач под названием «Баги и медленные релизы – нормально ли это?» Уже одного заголовка было достаточно, чтобы вызвать у меня раздражение. В смысле? Ответ на этот вопрос известен уже несколько десятилетий! Наверняка это кликбейт и больше ничего.

По мере того так я читал пост, мое раздражение переходило в истинное негодование. В посте (он небольшого объема и хорошо написан, стоит того, чтобы прочесть) Купач утверждает, что баги и долгие сроки – это, на самом деле, нормально. По ее опыту, большинство компаний могут себе позволить выдавать продукт с недочетами и в неспешном темпе. Влияние багов на бизнес не слишком велико, и скорость, с которой они исправляются, большого значения не имеет. Да и то, что разработчикам портит жизнь непрерывный поток срочных багфиксов – не беда.

Несложно догадаться, почему идеи Купач вызвали у меня, поддерживающего благородные принципы вроде разработки через тестирование и магистральной разработки, такое возмущение. Они ведь напрямую противоречат всем моим убеждения!

Но больше всего в ее посте меня разозлило вот что: она была права.

Купач говорит, что пришла к своим выводам, основываясь на личном опыте. Это подтолкнуло меня к размышлениям над собственным опытом, который сложился за пятнадцать лет работы в сфере разработки ПО.

Мне доводилось видеть (и писать) код ужасного качества – так чтобы всё прямо совсем плохо, и с тестами по большей части по нулям. Такое случалось почти на каждом месте работы. Я видел, как на дописывание тестов или исправление багов затрачивалась целая куча времени. Но знаете, чего я не видел ни разу за эти пятнадцать лет? Чтобы компания разорилась.

Затратное и бесполезное переписывание кода, после того как неизбежно объявлялось техническое банкротство – это да. Выгорание разработчиков, которых регулярно принуждают день и ночь работать над устранением багов – тоже было. Суетливые утешения, объяснения и, да, временами откровенное вранье клиентам от коллег из продуктовых команд, когда обновление функциональности запаздывает – и это видел. Но ничего из этого не привело к тому, чтобы компания ушла с рынка.

А всё почему? Думаю, ответ кроется в неприятной истине.

Программное обеспечение не решает судьбу организации.

Даже если это техническая организация.

У программных продуктов есть разные пути к выживанию, и многие из них никак не завязаны на качество:

  • Некоторые продукты создаются для внутренних потребителей, которые оказываются в положении клиентов-заложников. Они вынуждены проглатывать любую лажу, какую мы, разработчики, им предложим.
  • Бывает, что внешние потребители так привязаны к определенному поставщику, что тоже недалеко ушли от положения заложников. Причиной тому могут быть условия контрактов, или глубокая интеграция продукта в клиентскую систему, или откровенная коррупция.
  • Конкуренты могут быть ничем не лучше и страдать от тех же самых багов и проблем со скоростью.
  • Сильные команды на продажах и обслуживании клиентов могут компенсировать недочеты в функциональности.

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

Когда я осознал правдивость аргументов Купач, то понял, что стал жертвой догматического мышления. Я был так убежден, что «высокое качество» (что бы это ни значило) – путь к успеху, что закрывал глаза на стоящие передо мной факты. Подобно овце из романа Оруэлла, я знай себе блеял: «Высокое качество – хорошо! Низкое качество – плохо!», не подвергая эти постулаты сомнению.

Это я не к тому, что теперь переключился на «Высокое качество – хорошо! Низкое качество – еще лучше!» Как отметили многие комментаторы под постом Купач, высокое качество пусть и не является обязательным условием успеха, но повышает шансы его достигнуть. Даже если мы считаем баги и сильные задержки приемлемыми, отсутствие багов и быстрые релизы составляют конкурентное преимущество.

Теперь у меня сложилось более тонкое понимание роли качества в технической компании. Хорошо, если вы поддерживаете его на высоком уровне, но свет на нем клином не сошелся. Иногда решение той или иной организации не вкладываться в качество бывает оправданным. Это не делает людей по умолчанию неправыми.

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

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

Комментарии (19)


  1. SpiderEkb
    13.07.2023 12:18
    +3

    Программное обеспечение не решает судьбу организации

    Везде ли это так?

    Где-то - да. Ну клепаешь ты сайт для ООО "Сукин и Сын", ну получился он кривой-косой, с багами. Ну и что? Мир не рухнет.

    А теперь представим что продукт твой ПО для управления АЭС. Кривое-косое? С багами? Возможные последствия себе представляете?

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

    Если баг пролез на пром и там "выстрелил" так, что возникли последствия в виде недоступности каких-то систем - тут уже не просто "дефект промсреды" заведут. Тут уже будет "комиссия по инцидентам" которая будет и ущерб оценивать и выяснять как оно так получилось и кто руку приложил. Расстрелять не расстреляют, но неприятности могут быть.

    Посему, тезис достаточно неоднозначный. Где-то не решает, а где и решает. И там где решает, подход "херак-херак и в продакшен" не проходит. Там и кодревью будет и тестирование многоуровневое и план отката обязательный и все вот это вот. И вопрос о выборе (как спрашивал портной Фима с Молдаванки)

    Вам таки чтобы быстро, или чтобы рукава одинаковые?

    тут просто не ставится. Потому что баги тут имеют вполне реальную и очень таки осязаемую цену.

    Возможно поэтому в такие области разработки не очень-то рвется молодежь - там легаси (сиречь только проверенные всесторонне временем решения и очень консервативный подход в плане всяких новшеств) и кровавый энтерпрайз (сиречь жесткая дисциплина разработки и требования к коду). Естественно, это касается прежде всего mission critical систем.


    1. Kanut
      13.07.2023 12:18

      Ну если вы откроете оригинальную статью на которую ссылается автор, то там в самом начале написано что это применимо примерно к 95% компаний. А где-то 5% компаний как раз таки не могут себе такое позволить .


      1. SpiderEkb
        13.07.2023 12:18

        В такой постановке - да. Но в целом сие печально.


    1. domix32
      13.07.2023 12:18

      А теперь представим что продукт твой ПО для управления АЭС. Кривое-косое? С багами? Возможные последствия себе представляете?

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

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

      Или регулярно пропускаются платежи туда, куда они не должны пропускаться.

      Прямые потери денег банком напрямую влиет на бизнес банка, поэтому такого рода баги банк будет решать за считанные часы. Ну а баблишко понятное дело компенсируют. Все эти истории когда с начала СВО половина банков России полегла под DDoS тому неплохой пример. Опять же этапы тестирования и развертывания в такого размера энтерпрайзах довольно массивные, поэтому за такой софт тоже особо беспокоиться нет смысла. А баги в приложениях для клиентов банка таки судьбу организации не решают.


  1. vagon333
    13.07.2023 12:18
    -2

    Не берусь судить баги и релизы, но хотел был обратить внимание на уровень нетерпимости.
    На Хабре норм делиться IT опытом и мнениями.

    "Разозлил, раздражение, выбесил", эти конфликтные слова сразу обращают внимание при беглом просмотре, и путь просветления автора (статья переводная) уже кажется не таким важным и позитивным.


    1. Tiriet
      13.07.2023 12:18
      +6

      А меня вот раздражает и подбешивает апелляция к "конфликтным словам"- я считаю такие апелляции гнусными и подлыми- автор- живой человек, и он испытывает эмоции (как и я), как нормальный человек- он испытывает разные эмоции, и гнев и раздражение- тоже. А как взрослый человек он учитывает влияние своих эмоций на свои выводы и объясняет читателю- что выводы его имеют не только логическую подоплеку, но и эмоциональную. И я его вполне понимаю. Но тут вдруг появляется снежинка, и начинает ставить акценты- а вот автор заюзал хейтспичь, а вот автор использовал токсичные выражения, а вот он тут "конфликтные слова" написал. Дружище, это не у автора "нетерпимость", это у тебя ЧСВ завышенное и нестабильная психика, раз тебе вместо обсуждения идей с учетом эмоций хочется обсуждать эмоции без учета идей. И что характерно- именно люди, трепетно относящиеся к "конфликтным словам" демонстрируют наиболее высокий уровень деятельной нетерпимости :-).


      1. vagon333
        13.07.2023 12:18
        -5

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

        Не зная человека осторожнее с выражениями. В личке можно огрести.
        Кто меня знают - подтвердят.

        Дружище, это не у автора "нетерпимость", это у тебя ЧСВ завышенное и нестабильная психика ...

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

        ... именно люди, трепетно относящиеся к "конфликтным словам" демонстрируют наиболее высокий уровень деятельной нетерпимости :-).

        За всех не скажу, но на Хабре никому никогда ни одного минуса, и считаю это правильным для себя.
        А слова, да, конфликтные.


        1. Tiriet
          13.07.2023 12:18
          +5

          В личке можно огрести.

          В личке можно сделать, простите, что? Огрести? Василий, Вы серьезно? Вы воспользуетесь такими непечатными словами, от которых я расстроюсь и растаю?

          Оставьте панибратство

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


          1. vagon333
            13.07.2023 12:18
            -5

            За склоками сходите лучше на Facebook (запрещенный и т.д.).


        1. CrazyOpossum
          13.07.2023 12:18
          +8

          За всех не скажу, но на Хабре никому никогда ни одного минуса, и считаю это правильным для себя.

          Задумался, почему я тоже никому минусы не ставлю. А потом догадался - так это потому что кармы не хватает!


  1. Ivan22
    13.07.2023 12:18
    +1

    Если заменить слова "ПО" - на "дороги", а "баги" на "ямы" в принципе все становится понятно....


  1. Revertis
    13.07.2023 12:18
    +1

    Если посмотреть на качество ПО вокруг, то похоже, что все это уже осознали, и клепают бажное ПО постоянно.


  1. hoack
    13.07.2023 12:18
    +3

    Ох уж мне эти эксперты... Прочитал статью, на которую автор ссылается, посмотрел немного про автора... Мне любопытно, откуда она взяла эти самые мистические числа "95%" и "5%"? В статье написано, что она взяла их из "личного опыта". Учитывая, что личного опыта у нее не так уж и много - менее десяти лет разработки в пяти компаниях - я бы не придавал этим обобщениям так уж много значения. Спектр типов компаний, в которых так или иначе идет разработка софта, невероятно широк, и у них ну очень разные требования как к качеству, так и к скорости разработки (кстати, мне совершенно не ясно, почему она валит в одну кучу большое количество багов и медленные релизы?).


    1. CrazyOpossum
      13.07.2023 12:18

      Цифры надуманные, но факт остаётся. Да, допустим, я тоже недостаточно повидал в четырёх компаниях, но субъективно, положа руку на сердце, вы можете сказать что среднее качество (стабильность, производительность) приложений, игр, сайтов, каких-то бизнес вещей выросло за последние 10-20 лет? Я не говорю про фундаментальные вещи типа баз данных или операционных систем, я говорю именно про массовые продукты.


    1. ginkage
      13.07.2023 12:18
      +1

      Дык, согласно статистике, 73.6% всех статистических фактов являются вымышленными.


    1. Ndochp
      13.07.2023 12:18

      Не, на самом деле конечно не 5%, а меньше. Просто вместо "абсолютное большинство" написала 95%.


    1. domix32
      13.07.2023 12:18

      Циферка обычно обозначает, что это статистически достоверное утверждение. Строится естественно на эмпирически. Находится рядом с законом Мёрфи и Парето.


  1. Arhammon
    13.07.2023 12:18

    Тут вообще в экономику надо копать. Хорошей иллюстрацией будет древнее исследование - рынок «лимонов». В оригинале исследование про БУ авто - где основная идея, что у покупателя нет возможности гарантировано купить машину без дефектов, и продавцу получить за идеальный товар адекватную цену сложно и в итоге рыночная цена падает до той цены, где покупатель готов мириться с возможными дефектами.


  1. dlc
    13.07.2023 12:18

    Выводы какие-то однобокие. Высокое качество всё так же хорошо, а низкое качество - всё так же плохо, ничего не изменилось.

    Просто ТС внезапно узнал, что понятие "качество" разнится как между профессиями внутри организации (разработчики, менеджмент, С-level), так и между работниками организации в целом и их клиентами.

    Клиенту может быть абсолютно начхать, обрабатывается запрос на поиск в 50мс или в 1 секунду, а вот разработчики могут из кожи вон вылезти ради оптимизации этого места. А надоумить на это их может менеджер продукта, который посмотрел вчера на конкурента "а у него там всё быстро, вжух!".

    С точки зрения организации, команда предоставила функционал высокого качества. С точки зрения клиента ничего не изменилось. И вообще ему цвет кнопки поиска не нравится, поэтому он уход теперь к конкуренту.

    P.S. Все примеры утрированы.