хотелось добавить в своё оправдание, что при этом постоянно пишу письма разработчикам о своих нахождениях и о разного рода ошибках и недочётах. многие из них отвечают. и даже часто исправляют. в целом полезность моих и не только моих усилий зависит от качесва механизма позволяющего сообщать от том что неправильно, и почему возмущающийся именно так думает и т.д.
в целом мыслей у меня на эту тему очень много, но в основном это можно сжать до того, что процесс как пишется ПО потерял несколько ключевых моментов, якобы для ускорения, а в итоге потеря качества делает выпуск новых продуктов ещё дольше и мучительнее и при всём при этом пользователи слишком уж зачастую не довольны
когда пишут софт, то нужен правильный подход. это правильный подход, сократит общее время достижения готового качественного продукта и сделает потребителя счастливым.
предположим что есть некий заказчик софта, и есть исполнитель заказа, и есль конечный потребитель
то мы рассмотрим как лучше построить цепь работы исполнителя
после того как договорились в целом уже работать вместе и о том что же примерно нужно (а вовсе не то что будет делаться) и предположительно сколько это всё будет стоит
в работу вступают QA (Quality Assurance) - кстати очень важно не путать это с QC (Quality Control), а то в комп индустрии это зачастую смешанно в одно, более похожее на QC
QA составляет подробное описание, того что должно быть сделано - некую Спецификацию Продукта (спек)
это должно быть сделано вместе со специалистом по юзабилити, маркетологом, и группой изучения рынка
как спек готов, это передаётся следующим двум группам - системный архитектор и разработчи интерфейса
первым делом они составляют сценарий работы продукта
сценарий опять передаётся юзабилисту который дововит его до ума при этом работая с дизайнерами интерфейсов
готовый сценарий сочетается с архитектурой проэкта и отдаётся
инжинерам, которые решают какие методы и технологии будут использованны и как
после в работу включаются уже программеры, кодеры, иллюстраторы, писатели и прочие рабочие ресурсы
продукт постоянно тестируется ещё в ходе разработки
современные технологие сейчас позволяют осуществлять полное 100% автоматическое тестирование, и проверку на 100% использование кода в том числе. модульно написанный продукт обязательно должен подкрепляться тестами, и по сути перед написанием модуля сначало просто необходимо написать тест который должен будет пройти готовый модуль
чем мельче градация тем лучше, в идеале каждый мельчайший элемент должен иметь свой отдельный тест
тесты объединяются в группы равно как и модули
вместе с эти автоматически генерируется документация
готовый продукт передаётся QC, которые проверяют соответвие готового продукта со спеком написанным QA
в данный момент в команде QA также принимает активное участие юзабилист
продукт дорабатывается и при этом идёт подробное изучение того как этим пользуется конечный потребитель
устраняются логические ошибки, технологические недочёты и дорабатывается документация, уже не автоматически а по-человечески
такой подход может показаться слишком сложным, но на самом деле это просто грандиозным образом ускоряет достижение качественного готового продукта, и при этом потребитель будет с радостью ждать следующую версию, а не говорить, что мол и так неплохо