Принципы быстрой разработки ПО

E-mail Печать PDF
Рейтинг пользователей: / 0
ХудшийЛучший 
Индекс материала
Принципы быстрой разработки ПО
Экстремальное программирование
Игра в планирование (Planning Game)
Пользовательские истории
«Билль о правах» заказчика
«Билль о правах» программиста
Притча
xUnit
Приемочные тесты
План рабочего цикла
План выпуска версий
Все страницы

Принципы быстрой разработки ПО

Процесс разработки ПО

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

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

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

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

·                    Наша первостепенная задача — достичь соответствия требованиям заказчика, непрерывно поставляя ему в оптимальные сроки высококачественное ПО. Существует взаимосвязь между качеством и поставкой частично функционирующей системы на раннем этапе разработки. Чем меньшими функциональными возможностями обладает программный продукт на раннем этапе разработки, тем выше качество окончательной версии. Чем чаще происходит поставка частей программного продукта, чем выше качество конечного продукта. Совокупность методик быстрой разработки ПО предусматривает доставку разработанного компонента проекта на раннем этапе разработки и последующие частые поставки модулей по мере выполнения проекта. Наша цель — поставить элементарную систему на протяжении первых нескольких недель после начала выполнения проекта. Затем каждые две недели мы стремимся поставлять системные модули с растущими функциональными возможностями. Заказчики могут принять решение начать эксплуатацию системных модулей, если они считают, что они обладают достаточным уровнем функциональных возможностей. Или же они могут решить просто пересмотреть имеющиеся функциональные возможности и сообщить разработчикам об изменениях, которые необходимо внести в программный продукт.

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

·                    Следует часто поставлять рабочее ПО: от одного раза в две недели до одного раза в два месяца, стремясь к соблюдению более сжатых сроков. Команда разработчиков должна поставлять рабочий программный продукт, причем в максимально сжатые сроки (по истечению нескольких первых недель) и часто (каждые последующие несколько недель). При этом не следует довольствоваться поставками пачек документов или планов. Наше внимание сосредоточено на задаче поставить ПО, соответствующее требованиям заказчика.

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

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

·                    Наиболее результативный и эффективный метод передачи информации команде, а также в рамках самой команды заключается в интерактивном общении. В проекте быстрой разработки ПО люди общаются друг с другом. Основной метод коммуникации — это общение. Документы можно создавать, но невозможно охватить всю информацию в письменном виде. Команде, работающей над проектом быстрой разработки ПО, не требуются спецификации, планы и проекты, выраженные в письменной форме. Эти документы могут быть сформированы, если возникнет безотлагательная и существенная потребность в этом, но они не являются абсолютной необходимостью. Главное — это общение.

·                    Рабочее программное обеспечение — это первостепенный критерий процесса. Прогресс в проектах быстрой разработки ПО отслеживается путем оценки части ПО, которая в текущий момент времени удовлетворяет требования заказчика. Прогресс подобных проектов не связан с текущим этапом их выполнения, а также не может оцениваться на основе объема выпущенной документации или кода инфраструктуры, разработанного в результате их выполнения. Программный проект считается выполненным на 30%, если получен на 30% функционирующий программный продукт.

·                    Проекты быстрой разработки ПО способствуют непрерывному развитию. Спонсоры, разработчики и пользователи должны уметь поддерживать постоянный темп работы. Проект быстрой разработки ПО — это не спринтерский забег, а марафон. Команда не срывается с места на полной скорости и не пытается удержать эту скорость на протяжении всего проекта. Вместо этого она продвигается быстрым, но равномерным шагом. Слишком быстрое продвижение ведет к истощению сил, появлению недостатков и, в конечном счете, — к неудаче. Команды по быстрой разработке ПО сами поддерживают свой темп. Они не позволяют себе слишком устать. Они не заимствуют частичку завтрашней энергии для того, чтобы успеть сделать чуть больше сегодня. Они работают на скорости, позволяющей поддерживать высочайшие стандарты качества на протяжении всего проекта.

·                    Постоянный акцент на высоком техническом уровне качества и хорошем проекте повышает быстроту разработки. Высокое качество — это ключ к достижению высокой скорости разработки. Быстрого продвижения можно достичь путем поддержки максимального уровня качества и прочности программного продукта. Следовательно, все члены команды по быстрой разработке ПО обязаны создавать код с качественными характеристиками высочайшего качества. Следует избегать формирования "неразберихи", обещая устранить ее при первой же возможности. Если происходит какая-либо путаница, устраняйте ее до конца текущего рабочего дня.

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

·                    Наилучшие архитектуры, требовании и проекты возникают у самоорганизующихся команд. Команда по быстрой разработке ПО является самоорганизующейся. Обязанности не перелаются отдельным членам команды, а учитывается лишь команда н целом. Лишь сама команда определяет наилучший способ их реализации. Члены команды по быстрой разработке ПО совместно работают над всеми аспектами проекта. Каждый из них имеет право внести свой вклад в общее дело. Ни один из членов команды не несет ответственность за архитектуру, требования или гесты. Команда разделяет эти обязанности, и каждый член команды может влиять на этот процесс. Периодически команда делает выводы об эффективности своей работы и соответственно модифицирует и адаптирует свою линию поведения. Команда по быстрой разработке ПО непрерывно подстраивает собственную организацию, правила, обычаи, взаимосвязи и т.д. Команда по быстрой разработке ПО осознает, что среда разработки постоянно изменяется и что она сама должна меняться вместе со средой, чтобы сохранить быстрый темп разработки.

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



 

Добавьтe Ваш комментарий

Ваше имя (псевдоним):
Ваш адрес почты:
Заголовок:
Комментарий:

Комментарии, категория: "IT"

Интересное




Похожие материалы

Партнёры