Новые методологии программирования
Страница 5. Управляем непредсказуемым процессом



Управляем непредсказуемым процессом

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

Ни для кого не секрет, что в программных разработках ключом к такому механизму является итеративность. Итеративные разработки известны давно и под разными именами: инкрементные, эволюционные, ступенчатые и спиральные - все не перечислишь. В процессе итеративной разработки рабочие версии системы, имеющие некий ограниченный набор требуемых свойств, производятся достаточно часто. Таким промежуточным версиям недостает функциональности, однако во всем остальном они полностью соответствуют конечной системе. Промежуточные версии должны быть полностью интегрированы и так же хорошо оттестированы, как и конечная версия системы.

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

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

Камнем преткновения в данном случае является вопрос о длительности каждой итерации. Единого мнения на этот счет нет. Extreme Programming (XP) предполагает, что итерация должна длиться от одной до трех недель. SCRUM предлагает продлить ее до одного месяца. Crystal - еще больше. Впрочем, все соглашаются в одном - нужно делать итерацию настолько короткой, насколько это возможно. Частые итерации позволяют разработчикам чаще получать сведения о системе от ее заказчиков, а значит, лучше представлять себе текущую ситуацию.

 
« Предыдущая статья   Следующая статья »