Home » Программное обеспечение имеет ошибки. Это нормально.

Программное обеспечение имеет ошибки. Это нормально.

Разочарование возникает, когда ожидания не совпадают с реальностью. И наши ожидания в отношении качества программного обеспечения совершенно нереалистичны. Таким образом, многие люди постоянно разочаровываются — даже в ярости — из-за программных ошибок. Их не должно быть.
Единственный надежный и широко используемый способ обеспечить безупречное качество программного обеспечения — написать меньше программного обеспечения, которое делает меньше вещей, а затем потратить эоны времени на оттачивание этой крошечной партии. Однако такой подход очень редко совместим с коммерческим успехом или даже с мотивацией программиста (несмотря на то, что многие могут утверждать).
Как, по-вашему, рынок воспринял бы iPhone 7, если бы его главным улучшением было сокращение 1/3 функций для сокращения кодовой базы, чтобы в нем было меньше ошибок? Да, я так и думал. Хотя люди могут прийти в восторг от директивы «остановите поезд, нам нужно починить пути» для разработки программного обеспечения, это не то, что они купят.
Ну, но есть еще один аргумент: Apple настолько богата, что они не могут просто нанять больше разработчиков и тестировщиков, чтобы исправить все ошибки? Перефразируя Фредерика Брукса: Нет. Разработка программного обеспечения так не работает. Когда мы бросаем все большие команды на решение проблем, они просто еще больше усугубляются.
Ошибки — неизбежный побочный продукт написания программного обеспечения. Конечно, есть всевозможные методы и зелья, которые обещают уменьшить количество бегающих проклятых тварей, но только комичное преувеличение делает вид, что полное уничтожение возможно.
Как только мы примем тот простой факт, что программное обеспечение = ошибки, мы сможем понять, почему их исправление может быть даже не так важно в большинстве случаев. Отсутствие багов — это просто один из параметров успеха программного обеспечения, но даже близко не самый важный (за некоторым исключением для жизненно важных систем).
Бесполезное программное обеспечение может быть совершенно свободным от ошибок, но оставаться совершенно бесполезным. Полезное программное обеспечение может содержать ошибки, но при этом оставаться очень ценным. Или ценность программного обеспечения гораздо больше зависит от проблемы, которую оно решает, чем от качества, с которым оно это делает.
Иногда, конечно, дихотомия не такая уж черно-белая. У вас может быть две программы, решающие одну и ту же проблему, и разумно предположить, что та, в которой меньше ошибок, будет работать лучше. Хотя даже это простое утверждение часто смехотворно опровергается рынком. Такие факторы, как существующее принятие, интеграция, бренд и удовольствие, часто также превосходят качество.
Учитывая, что существует так много факторов, более важных для будущих перспектив программного пакета и его создателей, действительно ли удивительно, что не каждая ошибка получает приоритет «бросьте все, мы должны это исправить»? Конечно, нет. Но мы, как пользователи, столкнувшиеся с ошибкой, все равно постоянно притворяемся, что это так.
Это действительно вершина близорукости, когда мы, как пользователи, требуем и унижаем производителей программного обеспечения, чтобы они исправили нашу любимую ошибку, только потому, что мы ее обнаружили, и только потому, что она могла вызвать что угодно, от легкого раздражения до потери времени.
Ценность любой данной ошибки может быть оценена количеством затронутых пользователей, умноженным на критичность проблемы. Многие пользователи теряют все свои данные из-за этой ошибки? Хорошо, тогда, чертовски важно! Исправить это сейчас! Многих пользователей это немного раздражает или смущает? Вероятно, это должно быть исправлено в ближайшее время. Несколько пользователей должны потратить еще 30 секунд на обходной путь? Вряд ли исправят в ближайшее время!
Организации-разработчики программного обеспечения, которые остаются в бизнесе, сортируют свои накопившиеся ошибки таким образом. Они не бросают все, чтобы разобраться с каким-нибудь проклятым багом. По мере того, как начинает действовать эффект масштаба, растет и масштаб последствий такой сортировки. Большие программные пакеты и организации будут иметь сотни, если не тысячи, если не ДЕСЯТКИ ТЫСЯЧ открытых ошибок различной степени критичности. ЭТО НОРМАЛЬНО. ЭТО ОЖИДАЕТСЯ.
Это не призыв отказываться от качества программного обеспечения, как раз наоборот. Это призыв избавиться от сильно заряженных эмоциональных реакций на мир, который должен вращаться. Унижение разработчиков, сомнение в их профессионализме (что бы это ни значило!), или симуляция возмущения тем, что болеет всем программным обеспечением, ухудшает положение всех, включая пользователей.
Так что в следующий раз, когда вы столкнетесь с надоедливой ошибкой, дайте ей пять минут, прежде чем писать этот возмущенный твит. Удивитесь тому чуду, что такая сложная современная программа вообще работает! Подумайте о миллиардах инструкций, которые должны выполнить наши рабочие лошадки, чтобы вы могли наслаждаться великолепием вычислений. Имейте некоторое сочувствие к человеку и машине.

Read more:  — Это действительно заставляет тебя чувствовать себя лучше. Быть с людьми, но также и просто гулять» – The Irish Times

Первоначально я написал это в 2016 году. Семь лет спустя это так же верно. ПРИВЕТ есть ошибки. Базовый лагерь есть ошибки. Надеюсь, меньше, чем у конкурентов, надеюсь, ни один из них не критичен.

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.