Какие отрасли развивают программное обеспечение высочайшего качества? Самое низкое качество? Почему? [закрыто

StackOverflow https://stackoverflow.com/questions/2981731

  •  24-10-2019
  •  | 
  •  

Вопрос

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

Что больше всего способствует этому достижению более высокого качества? Это связано с лучшими методами разработки программного обеспечения, таких как больший акцент на тестировании или спецификации? Разработчики, которые лучше понимают инструменты или кто является сильным решением проблем? Лучшее общение между членами команды?

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

Это было полезно?

Решение

Это действительно сложный вопрос. В то время как НАСА, безусловно, обеспечивает высококачественный код для критически важных систем или роботизированных систем, которые должны работать на больших расстояниях (подумайте о недавнем исправлении программного обеспечения на Voyager 2, тринадцать световых часов с Земли), качество НАСА не дешево , или быстро. Линия для линии, это, вероятно, самое дорогое программное обеспечение в отрасли.

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

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

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

Каковы требования к лучшему качеству?

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

Во -вторых, понимание того, что качество начинается в день, когда проект принимается. Требования должны быть поняты и подтверждены. Ключевые факторы включают, что требования определяют проблему, которая должна быть решена, а не использование предлагаемого решения, чтобы избежать определения проблем; Убедиться, что требования являются измеримыми и достаточно конкретными, чтобы разработчик и клиент смогли признать, что решение соответствует требованиям; Убедитесь, что требования четко договорились всем потребителям требований, включая разработчиков, тестеров, технических авторов, вспомогательного персонала и менеджеров. Качество лучше всего измеряется с четко заявленными требованиями; Если ваши требования плохо определены, то качество в лучшем случае является Hap-Hazard.

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

И это приводит к пониманию роли тестирования. Вы не можете проверить качество в продукт. Тестирование может проверить качество. Тестирование может найти дефекты и убедиться, что они были исправлены. Но если практика качества не последовала до такой степени, что начинается тестирование, тестирование не может это исправить.

Хотя я не фанат модели разработки водопада, я думаю, что гибкая разработка может занять вещи слишком далеко до другой крайности и может быть легко злоупотреблять способами, которые повредят качеством. Я думаю, что Scrum помогает облегчить некоторые проблемы Agile; Scrum способствует общению в команде, и он признает, что оценки - это не что иное, как образованные предположения, которые можно уточнить по мере улучшения знаний.

Другие советы

Мне всегда нравилось "Они пишут правильные вещи" который подробно описывает процесс разработки программного обеспечения для подрядчиков НАСА.

Программное обеспечение для шаттла, безусловно, одно из последних мест, которое вы хотели бы, чтобы ваша ошибка упорствовала!

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

Я бы сказал, что Интернет. Главным образом из -за того, что его очень легко развернуть, многие обновления/исправления могут быть сделаны без уведомления о клиенте (или входных). Похоже, что существует гораздо более расслабленный менталитет, чем, скажем, с программным обеспечением в штучной упаковке.

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

Это, конечно, варьируется от банка к банку и организации к организации в рамках указанных банков, но в целом я не вижу много качественного кода. Как человек, который работал с банками в течение 10 лет, я считаю себя экспертом по дерьмовой банковской программном обеспечении :)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top