Качество молочной продукции, качество медицинских услуг, качество ремонта. Прокисший кефир, равнодушный терапевт, отслаивающийся потолок. Хранение молочного продукта в ненадлежащих условиях, маленькая зарплата участкового врача, экономия бригады на стройматериалах. Могут быть и другие обстоятельства, но в целом есть причины и есть следствия, все очевидно, не о чем говорить. Почему же тема «качество программного обеспечения» вызывает столько обсуждений, споров, дискуссий? Наверное, потому что программное обеспечение обладает уникальными характеристиками, которых нет у других творений человеческих рук:
1. Круг влияния. Программные продукты проникают во все сферы нашей деятельности. Чем больше мы от них зависим, тем большего от них ждем. И тем больше теряем, если наши ожидания не оправдываются.
2. Динамика изменений. Технологии, применяемые в разработке ПО, сменяют друг друга с космической скоростью. В каждом новом языке программирования, среде разработки, операционной системе их создатели стремятся учесть опыт предшественников, но тем не менее привносят новые задачи и новые рубежи.
3. Многообразие программных систем. Значительная часть проектов инновационные. Автоматизировать работу предприятия «А» не удастся точно так же как работу предприятия «Б». На предприятии «Б» своя специфика, свои скелеты в шкафу. Более того, видение продукта в финальной стадии цикла разработки может кардинально отличаться от первоначальных требований. Строили шалаш, но потом решили, что это будет аэропорт.
Как улучшить качество ПО в таких условиях?
Накапливать опыт и учиться на ошибках. Находить и внедрять методики, которые дали наилучшие результаты. Выискивать как можно больше паттернов, которые смогут стать надежным фундаментом системы. Предвосхищать нежелаемые события до момента их возможного появления. Мысленно видеть весь проект в целом и отдельные итерации в частности. И думать о качестве на каждом этапе создания продукта: при разработке, тестировании и внедрении.
В добрый путь!
Что такое качество программного обеспечения и как его улучшить.
Б1. Устал от всех этих наговоров. Почему нас так не любят?
Б2. Никто никогда не бьет мертвый баг. Значит, мы чего-то стоим!
Т1. Релиз? Столько багов! Как можно выпускать такой продукт?
Р1. Баги ползают, продукт живет!
Герои: Разработчики, Тестировщики, Менеджеры, Код, Классы, Объекты, Баги
Кл. Перфокарты, магнитные ленты, транзисторы, микросхемы. Мы меняемся вслед за средой обитания.
Подходы к разработке, тестированию и внедрению приложений.
Краткая, неполная и, возможно, неточная история развития языков программирования: от "Hello World!" на гобелене с помощью перфокарт до языка Scala.
У нас качественный продукт, потому что найдены все баги? Вовсе не так: просто для багов характерно взаимное торможение, не позволяющее им раскачать продукт.