На одном из госпроектов у меня спросил представитель заказчика (госслужащий): «Почему нельзя сразу сделать систему так, чтобы ничего не изменять в ней? Почему появляются ошибки?» Ответил, рассказав про опыт использования и аналогию с законотворчеством.
Почему нельзя сразу сделать ПО без ошибок?
Важно понимать, что ни одно многофункциональное программное обеспечение не свободно от ошибок и пожеланий — это специфика отрасли, которая отражена в отраслевых ГОСТах и всех проектных методологиях.
Главный вопрос — серьёзность ошибок и уровень их влияния на стабильность программного обеспечения (ПО). Не все ошибки возможно отловить на стадии тестирования. Не все сценарии использования можно учесть сразу, так как в процессе использования программного обеспечения накапливается и адаптируется практика использования ПО пользователями.
Необходимость итерационного внесения правок — это специфика не только ИТ-отрасли. Аналогичная специфика присуща и сфере законодательства. Простой пример — практически любой закон имеет корректировки и официально вносимые поправки (особенно ярко это видно практически по любому федеральному закону). Почему же нельзя сразу издать все законы, которые не надо будет править и которые не имеют «пробелов»? Ответ прост, как и в вопросе разработки ПО, появляется практика использования и применения, которая дополняет то, что не удалось разглядеть и предугадать на этапе разработки документа.