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

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 организира работата на три нива, всяко със своя продължителност и резултат:
| Ниво | Продължителност | Резултат |
|---|---|---|
| Микроинкременти | От няколко часа до няколко дни | Малка измерима част от работата на един човек |
| Жизнен цикъл на итерацията | Обикновено няколко седмици | Билд, който може да се демонстрира или пусне |
| Жизнен цикъл на проекта | Целият проект, в четири фази | Пуснато приложение |

Микроинкрементите дават на екипа равномерно темпо и много кратък цикъл на обратна връзка. Всяко ниво описваме подробно в нашата поредица за жизнения цикъл на итерацията, микроинкрементите и жизнения цикъл на проекта.
Четирите фази и контролни точки
Четирите фази идват от Unified Process. Всяка фаза съдържа една или повече итерации и завършва с контролна точка, където заинтересованите страни решават дали да продължат проекта:
| Фаза | Фокус | Контролна точка |
|---|---|---|
| Начало (Inception) | Съгласуване на обхвата, целите и техническия подход | Цели на жизнения цикъл (Lifecycle Objectives) |
| Разработване (Elaboration) | Изграждане и проверка на архитектурата, уточняване на изискванията | Архитектура на жизнения цикъл (Lifecycle Architecture) |
| Изграждане (Construction) | Разработка на решението на инкременти и тестването му | Първоначална работна версия (Initial Operational Capability) |
| Преход (Transition) | Внедряване на продукта, подготовка на потребителите и средата | Пускане на продукта (Product Release) |
Търсите екип за итеративна разработка?
OpenUP, RUP и Scrum: сравнение
OpenUP стои между RUP и Scrum. Ето как се сравняват трите подхода:
| OpenUP | RUP | Scrum | |
|---|---|---|---|
| Произход | 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.
Планирате нов продукт и искате процес на разработка с подходящото ниво на структура? Свържете се с нашия екип и чрез нашите услуги за разработка на софтуер ще ви помогнем да изберете подхода и да съберете подходящия екип.