Блог

Всички статии

Методология OpenUP: въведение

OpenUP Methodology. Introduction.

OpenUP (Open Unified Process) е олекотена версия на Unified Process с отворен код. Тя прилага итеративна и инкрементална разработка в рамките на структуриран жизнен цикъл от четири фази: Inception, Elaboration, Construction и Transition. Eclipse Foundation описва OpenUP като минимален, пълен и разширяем процес за разработка на софтуер за малки екипи, които работят на едно място. Той запазва вниманието на RUP към архитектурата и добавя гъвкави практики като списък с работни елементи и кратки итерации с фиксирана продължителност.

Основното накратко

  • OpenUP е разработен в проекта Eclipse Process Framework, на който IBM предоставя материали за процеса през 2006 г.
  • Процесът се основава на четири принципа: сътрудничество, баланс, фокус и развитие.
  • Работата е организирана на три нива: микроинкременти, итерации и жизнен цикъл на проекта.
  • В сравнение с RUP OpenUP е по-малък и безплатен, а в сравнение със Scrum добавя фази и контролни точки.

Какво е OpenUP

OpenUP е създаден в рамките на проекта Eclipse Process Framework (EPF), стартирал през 2005 г. През януари 2006 г. IBM предоставя на проекта материали за процеса, а OpenUP 1.0 излиза като част от EPF 1.2. Целта е да се предложи безплатен процес, който запазва доказаните идеи на Rational Unified Process, но без неговия обем.

В публикуваното описание на OpenUP процесът е наречен „олекотен Unified Process“. Той не е обвързан с конкретни инструменти, изисква минимум формалности, следва ценностите на Agile Manifesto и може да се разширява за други типове проекти. Екипите започват с минимален набор от практики и добавят нови само когато проектът има нужда от тях.

Четирите основни принципа на OpenUP

OpenUP се основава на четири принципа. На всеки от тях съответства набор от практики в процеса:

ПринципОфициална формулировкаКакво означава на практика
Сътрудничество (Collaborate)Сътрудничете, за да съгласувате интересите и общото разбиранеЕкипът и заинтересованите страни работят заедно всеки ден и съгласуват целите
Баланс (Balance)Балансирайте конкуриращите се приоритети, за да максимизирате стойността за заинтересованите страниОбхватът, цената и сроковете се претеглят според стойността за заинтересованите страни
Фокус (Focus)Фокусирайте се рано върху архитектурата, за да намалите рисковете и да организирате разработкатаНай-рисковите технически решения се проверяват в код още в първите итерации
Развитие (Evolve)Развивайте се, за да получавате постоянно обратна връзка и да се подобряватеВсяка итерация завършва с обратна връзка, която променя плана за следващата

Три нива на работа

OpenUP организира работата на три нива, всяко със своя продължителност и резултат:

НивоПродължителностРезултат
МикроинкрементиОт няколко часа до няколко дниМалка измерима част от работата на един човек
Жизнен цикъл на итерациятаОбикновено няколко седмициБилд, който може да се демонстрира или пусне
Жизнен цикъл на проектаЦелият проект, в четири фазиПуснато приложение
Илюстрация към методологията OpenUP | New Line Technologies

Микроинкрементите дават на екипа равномерно темпо и много кратък цикъл на обратна връзка. Всяко ниво описваме подробно в нашата поредица за жизнения цикъл на итерацията, микроинкрементите и жизнения цикъл на проекта.

Четирите фази и контролни точки

Четирите фази идват от Unified Process. Всяка фаза съдържа една или повече итерации и завършва с контролна точка, където заинтересованите страни решават дали да продължат проекта:

ФазаФокусКонтролна точка
Начало (Inception)Съгласуване на обхвата, целите и техническия подходЦели на жизнения цикъл (Lifecycle Objectives)
Разработване (Elaboration)Изграждане и проверка на архитектурата, уточняване на изискваниятаАрхитектура на жизнения цикъл (Lifecycle Architecture)
Изграждане (Construction)Разработка на решението на инкременти и тестването муПървоначална работна версия (Initial Operational Capability)
Преход (Transition)Внедряване на продукта, подготовка на потребителите и средатаПускане на продукта (Product Release)

Търсите екип за итеративна разработка?

OpenUP, RUP и Scrum: сравнение

OpenUP стои между RUP и Scrum. Ето как се сравняват трите подхода:

OpenUPRUPScrum
ПроизходEclipse Process Framework, отворен кодRational Software, по-късно IBM, комерсиален продуктКен Швабер и Джеф Съдърланд, Scrum Guide
Жизнен цикълЧетири фази с итерации в тяхЧетири фази с итерации в тяхНепрекъсната поредица от спринтове без фази
Продължителност на итерациятаОбикновено няколко седмициОпределя се от проектаНе повече от месец
АрхитектураРазработва се рано, във фазата ElaborationЦентрална за целия процесНе е регламентирана
Роли и артефактиМалък базов наборГоляма библиотека, която се адаптира към проектаТри зони на отговорност и три артефакта
Подходящ заМалки екипи на едно място, които се нуждаят от известна структураГолеми или регулирани проектиЕкипи, които развиват продукт непрекъснато

OpenUP заимства няколко практики от Scrum. В сравнение, публикувано в Methods & Tools, Бьорн Густафсон отбелязва, че списъкът с работни елементи на OpenUP играе ролята на product backlog, планът на итерацията съответства на sprint backlog, а ежедневният стендъп се използва по същия начин. Повече за Scrum Guide и за това как XP и Eclipse Way са повлияли на OpenUP прочетете в петата част от нашата поредица.

Кога да изберете OpenUP

OpenUP е подходящ за малък екип, който създава нова система с реални технически рискове и има нужда от формални контролни точки, например за да се отчита пред клиент или инвеститор в края на всяка фаза. Той е полезен ориентир и за компания, която е надраснала неформалния Scrum и иска изричен етап за архитектура, без да преминава към тежка рамка.

За продукт, който вече работи и се развива непрекъснато, структурата от фази добавя малко и Scrum или Kanban обикновено са по-прости. За големи програми с много екипи и строги изисквания за съответствие повече контрол дава адаптиран процес в стила на RUP или мащабируема рамка.

Как използваме идеите на OpenUP в New Line Technologies

В New Line Technologies рядко прилагаме OpenUP в пълния му публикуван вид, но използваме структурата му при нови продукти. Например във финтех проектите започваме с кратък етап на разработване, в който екипът изгражда и проверява най-рисковите части на архитектурата, като платежни интеграции и сигурност, преди да разшири разработката. След това екипът работи в редовни итерации и всяка завършва с демонстрация за клиента.

Научете повече за нашите услуги за разработка на софтуер, за това как специализиран екип от разработчици може да подсили проекта ви, и как този подход е свързан с инкременталния модел.

Типична грешка и как да я избегнете

Най-честата грешка с OpenUP е четирите фази да се възприемат като етапи на каскадния модел. Екипът прекарва фазите Inception и Elaboration в документи, а първият работещ код се появява едва в Construction. Тогава фазите добавят бюрокрация, а основният риск остава непроверен.

За да избегнете това, направете всяка фаза итеративна и изисквайте работещ софтуер на всяка контролна точка. До края на Elaboration екипът трябва да има изпълнима архитектура: олекотена версия на системата, която работи от край до край и потвърждава ключовите технически решения.

Често задавани въпроси

Да, OpenUP следва ценностите на Agile Manifesto и използва кратки итерации с фиксирана продължителност, списък с работни елементи и ежедневни стендъпи. Същевременно добавя структуриран жизнен цикъл с четири фази и контролни точки, затова е по-формален от Scrum.

И двата процеса използват едни и същи четири фази и обръщат внимание на архитектурата. RUP е голяма комерсиална рамка от процеси с много роли и артефакти, които екипите съкращават според нуждите си. OpenUP е с отворен код и започва от минимум, така че екипите добавят практики само при нужда.

Итерациите в OpenUP са с фиксирана продължителност и обикновено траят няколко седмици. Всяка завършва с билд, който може да се демонстрира или пусне. В рамките на итерацията работата се разделя на микроинкременти с продължителност от няколко часа до няколко дни.

Материалите на OpenUP вече се съхраняват в архива на Eclipse и малко екипи прилагат процеса в пълния му публикуван вид. Идеите му обаче продължават да се използват: много екипи съчетават Scrum с ранен етап за архитектура и контролни точки, което е близко до подхода на OpenUP.

Планирате нов продукт и искате процес на разработка с подходящото ниво на структура? Свържете се с нашия екип и чрез нашите услуги за разработка на софтуер ще ви помогнем да изберете подхода и да съберете подходящия екип.