членовите

Што е екстремно програмирање (XP)?, на кои вредности, принципи и практики се заснова

Запознаени сте со програмирањето, но Екстремното програмирање (накратко XP) е сè уште малку мистерија за вас.

Не дозволувајте името да ве оддалечи, ризикувате да пропуштите корисни информации.

Во оваа статија, ќе покриеме сè што треба да знаете за Екстремното програмирање за да можете да го искористите во ваша корист.

Што е екстремно програмирање (XP)?

Екстремното програмирање е методологија за развој на софтвер која е дел од она што е колективно познато како агилни методологии. XP е изграден на вредности, принципи и практики, а неговата цел е да им овозможи на малите и средни тимови да произведуваат висококвалитетен софтвер и да се прилагодат на барањата кои постојано се менуваат и се развиваат.

Она што го разликува XP од другите агилни методологии е тоа што XP ги нагласува техничките аспекти на развојот на софтвер. Екстремното програмирање е прецизно за тоа како работат инженерите бидејќи следните инженерски практики им овозможуваат на тимовите да испорачуваат висококвалитетен код со одржливо темпо.

Екстремното програмирање е, накратко, добри практики доведени до крајност. Бидејќи програмирањето во пар е добро, ајде да го правиме тоа постојано. Бидејќи тестирањето однапред е добро, ние тестираме пред да се напише кодот за производство.

Како функционира екстремното програмирање (XP)?

XP, за разлика од другите методологии, се заснова на вредности и принципи кои се важни и релевантни, во однос на инженерските практики.

Вредностите им даваат цел на тимовите. Тие дејствуваат како „северна ѕвезда“ за да ги водат вашите одлуки на високо ниво. Сепак, вредностите се апстрактни и премногу нејасни за конкретни насоки. На пример: Кажете дека ја цените комуникацијата може да доведе до многу различни резултати.

Практиките се, во извесна смисла, спротивни на вредностите. Тие се конкретни и приземни, defiпоставување на спецификите за тоа што да се прави. Практиките им помагаат на тимовите да се држат себеси одговорни за вредностите. На пример, практиката на информативни работни простори промовира транспарентна и едноставна комуникација.

Принципите се упатства специфични за доменот кои го премостуваат јазот помеѓу практиките и вредностите.

Вредностите на екстремното програмирање XP

Вредности на XP: комуникација, едноставност, повратни информации, храброст и почит. Ајде да го разгледаме секој од нив подетално.

Вредности и принципи на екстремно програмирање

Изготвување BlogInnovazione.тоа на сликата alexsoft.com

комуникација: Недостатокот на комуникација го спречува знаењето да тече во тимот. Честопати, кога има проблем, некој веќе знае како да го поправи. Но, недостатокот на комуникација ги спречува да научат за проблемот или да придонесат за негово решавање. Така, проблемот завршува двапати решен, генерирајќи отпад.

Едноставност: Едноставноста вели дека секогаш се трудите да ја правите наједноставната работа што функционира. Често се сфаќа погрешно и се зема како наједноставна работа, точка, игнорирајќи го делот „што функционира“.

Исто така, од витално значење е да се запамети дека едноставноста е многу контекстуална. Она што е едноставно за еден тим е сложено за друг и целосно зависи од вештините, искуството и знаењето на секој тим.

Повратна информација: Повратните информации во потрадиционалните, каскадни методологии за развој на софтвер честопати се „премалку, предоцна“.

XP, сепак, ги прифаќа промените и XP тимовите се стремат кон навремени и постојани повратни информации. Ако е потребна корекција на курсот, XPers сакаат да знаат што е можно поскоро.

Циклус на екстремно програмирање

Изготвување BlogInnovazione.тоа на сликата alexsoft.com

Повратните информации доаѓаат во многу облици и големини. Кога сте партнерски програмирање, коментарите од вашиот колега се витални повратни информации. Така се и мислењата на другите членови на тимот за идеја, вклучувајќи го и клиентот кој, идеално, е член на тимот.

Тестовите се уште еден извор на вредни повратни информации што ги надминуваат резултатите од тестот. Без разлика дали пишувањето тестови е лесно или тешко, така е и фидбекот. Ако имате проблеми со пишувањето тестови, вашиот проект е веројатно премногу сложен. Слушајте ги повратните информации и насочете го вашиот дизајн.

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

Конечно, имајте на ум дека има премногу повратни информации. Ако тимот генерира повеќе повратни информации отколку што може да поднесе, важните повратни информации би можеле да паднат од радарот. Затоа, од суштинско значење е да се забави и да се открие што предизвикува вишокот на повратни информации и да се поправи.

Храброст: Кент Бек defiхраброста се јавува како „ефективна акција наспроти стравот“. Како софтверски инженер, имате многу да се плашите и затоа има многу можности да покажете храброст.

Потребна е храброст да се каже вистината, особено непријатните, како што се искрените проценки. Давањето и примањето повратни информации бара и храброст. И потребна е храброст за да се избегне паѓање во заблуда за потонати трошоци и да се отфрли неуспешно решение кое доби значителни инвестиции.

Почитување: Основна премиса на XP е дека секој се грижи за својата работа. Ниту една техничка извонредност не може да спаси проект ако нема грижа и почит.

Секој човек е достоен за достоинство и почит, а тоа секако ги вклучува и луѓето вклучени во проект за развој на софтвер. Кога вие и членовите на вашиот тим се почитувате и се грижите еден за друг, клиентот, проектот и неговите идни корисници, сите имаат корист

Принципи на екстремно програмирање XP

Принципите даваат поспецифични насоки отколку вредности. Тие се упатства кои ги осветлуваат вредностите и ги прават поексплицитни и помалку двосмислени.

Изготвување BlogInnovazione.тоа на сликата alexsoft.com

На пример, само врз основа на вредноста на храброста, може да заклучите дека е препорачливо веднаш да направите голема промена во вашиот распоред. Сепак, принципот Baby Steps ни кажува дека големите промени се ризични. Затоа, наместо тоа, претпочитајте ги малите.

Уманита: Луѓето создаваат софтвер за луѓе, факт кој често се занемарува. Но, земајќи ги предвид основните човечки потреби, силните страни и слабостите создаваат производи што луѓето сакаат да ги користат. А работната средина која ви нуди можност за исполнување и раст, чувство на припадност и основна сигурност, е место каде полесно ги земате предвид потребите на другите.

Економија: Во XP, тимовите секогаш обрнуваат внимание на економската реалност на развојот на софтвер, постојано ги оценуваат економските ризици и потребите на проектот.

На пример, тие би ги имплементирале корисничките приказни врз основа на нивната деловна вредност, а не на техничките проблеми.

Взаемна корист: По XP, избегнувате решенија кои имаат корист на една страна на сметка на друга. На пример, проширените спецификации може да му помогнат на некој друг да го разбере, но ве одвлекува од имплементацијата и го одложува за вашите корисници.

Заемно корисно решение е да се користат автоматизирани тестови за прифаќање. Добијте инстант повратни информации за вашата имплементација, вашите колеги добиваат прецизни спецификации во кодот, а корисниците прво ги добиваат своите функции. Плус, сите вие ​​ќе имате заштитна мрежа против регресии.

Бенефит (заемна корист): Ако даденото решение работи на едно ниво, може да работи и на повисоко или пониско ниво. На пример, добивањето рана и постојана повратна информација е во прашање до различен степен во XP.

  • на ниво на програмери, програмерите добиваат повратни информации од нивната работа користејќи го пристапот тест-прв;
  • на тимско ниво, цевководот за континуирана интеграција интегрира, гради и тестира код повеќе пати на ден;
  • Организациски, неделните и кварталните циклуси им овозможуваат на тимовите да добијат повратни информации и да ја подобрат својата работа по потреба.

Подобрување: Според принципот на подобрување, тимовите не се стремат кон совршенство во почетната имплементација, туку кон имплементација која е доволно добра, а потоа континуирано ја учат и подобруваат со повратни информации од вистинските корисници.

Разновидност: Вие и вашите колеги имате корист од разновидноста на перспективи, вештини и ставови. Таквата различност често води до конфликт, но тоа е во ред.

Конфликтот и несогласувањето се можности да се појават подобри идеи кога сите играат според вредностите на храброста и почитта. Храброст да се изразат спротивставени гледишта, почит во нивното изразување на граѓански и емпатичен начин. И сето ова е ефикасна вежба за комуникација.

Одраз: Големите тимови размислуваат за нивната работа и анализираат како да бидат подобри. XP нуди многу можности за ова. Не само во неговите неделни и квартални циклуси, туку и во секоја практика што ја промовира.

Чувствата е важно да се земат предвид покрај логичката анализа. Твоето црево може да те информира пред да можеш да размислуваш за било што. И за да може да разговара со луѓе кои не се технички, тие можат да поставуваат прашања кои отвораат сосема нови можности.

Проток: Традиционалните методологии за развој на софтвер имаат различни фази, кои траат долго и имаат мала можност за повратни информации и корекција на курсот. Наместо тоа, развојот на софтвер во XP се случува во активности кои се случуваат континуирано, во конзистентен „прилив“ на вредност.

Можност: Проблемите се неизбежни во развојот на софтверот. Сепак, секој проблем е можност за подобрување. Научете да гледате на нив на овој начин и многу е поголема веројатноста да смислите креативни и ориентирани кон целните решенија кои исто така служат за да не се повторат.

Вишок: Принципот на вишок вели дека ако даден проблем е критичен, мора да употребите многу тактики за да се спротивставите.

Земете ги недостатоците. Не постои единствена тактика што може да ги спречи сите дефекти да избегаат од производството.

Така, решението на XP е да собере сет на мерки за квалитет. Програмирање во пар, тестирање, континуирана интеграција. Секоја линија на одбрана, заедно практично непробоен ѕид.

Неуспех: неуспехот не е губење кога се претвора во знаење. Преземањето акција и брзото учење на она што не функционира е многу попродуктивно од неактивноста предизвикана од неодлучноста при изборот меѓу многуте опции.

Квалитет: Луѓето често мислат дека постои дилема помеѓу квалитетот и брзината.

Она што е обратно: притискањето за подобрување на квалитетот е она што ве тера да одите побрзо.

Билтен за иновации
Не пропуштајте ги најважните вести за иновациите. Пријавете се за да ги добивате по е-пошта.

На пример, рефакторирањето - менување на структурата на кодот без промена на неговото однесување - е практика што го прави кодот полесен за разбирање и менување. Како резултат на тоа, помала е веројатноста да воведете дефекти во кодот, што ви овозможува прво да испорачате поголема вредност со тоа што нема да морате да ги поправате грешките.

Мали чекори: Големите промени се ризични. XP го ублажува тој ризик со правење промени во мали чекори, на секое ниво.

Програмерите пишуваат код во мали чекори користејќи развој на тест-уреди. Тие го интегрираат својот код во главната линија повеќе пати на ден, наместо на секои неколку недели или дури месеци. Самиот проект се одвива во кратки циклуси, а не во долготрајни фази.

Одговорноста е прифатена: Во XP, одговорноста треба да се прифати, никогаш да не се доделува.

Одговорноста треба да доаѓа со овластување да донесувате одлуки за што сте одговорни. Спротивното е исто така точно. Не сакате луѓето да донесуваат одлуки ако не мора да живеат со нивните последици.

Сличности и разлики со традиционалните и неагилните методи

Екстремното програмирање, бидејќи е агилна методологија, може да се прифати и да започне да го усвојува без следење на ригидни планови. Ова е итеративен дизајн наместо голем почетен проект.

XP значително се разликува од традиционалните методологии, т.е. каскадирање, избегнувајќи долготрајни фази.

  • Наместо фаза на планирање, во XP планирате на почетокот на секој развојен циклус кој обично трае само една недела.
  • Наместо да тестирате епизоди, тестирајте ја вашата апликација што е можно порано: односно пред да се имплементира вистинскиот код.
  • Наместо да ги пуштате функциите во изолација за време на долгите фази на имплементација, а потоа да се борите да ги споите вашите придонеси во главната линија, вие работите во мали делови и ги интегрирате што е можно почесто

Како се разликува XP од другите агилни методологии?

Екстремното програмирање, по својата природа, има многу заедничко со другите агилни методологии, но исто така е единствено меѓу нив.

Повеќето други развојни методологии не кажуваат многу, ако ништо друго, за тоа како да се заврши работата. XP, од друга страна, има многу мислење кога станува збор за ова и става голем акцент на практиките за софтверско инженерство.

Екстремно програмирање наспроти Scrum

Scrum е рамка која им помага на тимовите да развијат сложени проекти на адаптивен начин. Scrum не диктира како програмерите ја вршат својата работа. XP, како што споменавме, става голем акцент на добрите програмски практики.

Scrum рамка

Изготвување BlogInnovazione.mk Слика нето решенија

Исто така, XP е очигледно за програмирање. Scrum, од друга страна, може да се примени на секој проект што има корист од итеративен пристап.

XP прифаќа промени на неговите компоненти. Тимовите се овластени, па дури и охрабрени да ги менуваат практиките врз основа на нивните специфични потреби. Водичот Scrum, од друга страна, е категоричен дека „Иако само делови од Scrum можат да се имплементираат, резултатот не е Scrum“.

Исто така, Scrum е рамка која треба да се надополни со методологии и практики за да се заврши работата.

Ова значи дека се препорачува работа во екстремно програмирање и Scrum.

Улоги и одговорности

Според Кент Бек, зрелиот XP тим не треба да доделува ригидни улоги, туку да признае дека улогите можат да бидат корисни за новите тимови додека не почнат да забавуваат или да ја отежнат соработката.

Ајде да погледнеме неколку клучни улоги:

  • Клиент: Идеално, клиентот треба да биде на лице место за да одговори на прашања, да даде приоритет на барањата на корисниците или да помогне во тестирањето за прифаќање. Кога тоа не е можно, оваа улога може да ја пополни претставник на клиентите.
  • Програмери: Во тимот на XP, програмерите го проценуваат напорот потребен за завршување на задачите, пишување автоматизирани тестови и имплементација на приказни.
  • Тренер: не е неопходно да се има тренер и можно е да се стигне до целта без да се има. Меѓутоа, ако некој со XP искуство ќе го тренира тимот може да обезбеди членовите на тимот да следат практики, да ги претворат во навики и да не се вратат на старите начини.
  • Тракерот- Следење ги следи метриките за напредокот на тимот и разговара со секој член на тимот за да ги идентификува проблемите и да најде решенија. Следачот пресметува метрика што укажува на тоа колку добро функционира тимот, како што се графикони за брзина и согорување, или тимот користи дигитален скрум или канбан табла што автоматски ги пресметува.

Методи и техники

Ова се практиките усвоени во XP. Тие се поделени во три главни групи: софтверско инженерство, работно место и управување со проекти.

Софтверско инженерство

Програмирање во парови: Во XP, пишувате код во парови седејќи на машина. Вие и вашата двојка разговарате еден со друг додека ја анализирате, имплементирате и тестирате функцијата на која работите. Програмирањето за парови е особено добро во производството на код со помалку грешки, а сепак е привлечно, забавно и заморно.

Ограничување од десет минути: Потребно Овозможува 10 минути за да се изгради целиот проект, вклучувајќи ги и извршувањето на сите автоматизирани тестови, максимум за десет минути. Ова ограничување е да се одржи тестирањето рационализирано и ефективно.

Тестови пред програмирање: имплементирајте карактеристики користејќи го пристапот тест-прв, исто така наречен развој управуван од тест (TDD). TDD се состои од развој со помош на едноставна итеративна процедура:

  • напишете код откако тестот не успее;
  • потоа, напишете код за производство за да го поминете тестот;
  • доколку е потребно, рефакторирајте го вашиот код за производство за да го направите почист и полесен за разбирање.

TDD носи неколку придобивки.

Прво, повратни информации. Ако е тешко да се напише тест, дизајнот што го барате или што сте го наследиле е веројатно премногу сложен и треба да го поедноставите.

Второ, TDD им овозможува на програмерите да му веруваат на кодот што го пишуваат и создава убав ритам за вртење каде што следниот чекор е секогаш јасен.

Последно, но не и најмалку важно, користењето на TDD од самиот почеток обезбедува 100% покриеност со кодот. Пакетот за тестирање тогаш навистина станува безбедносна мрежа за идни промени, охрабрувајќи го рефакторирањето на кодот и создавајќи доблесен круг на квалитет.

Инкрементален дизајн: Практиката на постепен дизајн значи дека треба да инвестирате во дизајнот на вашата апликација секој ден, барајќи можности да ги отстраните дупликатите и да направите мали подобрувања за да го постигнете најдобриот можен дизајн за она што му треба на вашиот систем денес.

Континуирана интеграција: Во XP, ја интегрирате вашата работа во главното споделено складиште неколку пати на ден, предизвикувајќи автоматско создавање на целиот систем. Интегрирањето што е можно порано и почесто драматично ги намалува трошоците за интеграција бидејќи ги прави спојувањата и логичките конфликти со помала веројатност да се појават. Таа, исто така ги изложува прашањата за животната средина и зависноста.

Споделен код (колективна сопственост): XP промовира споделен код или колективна сопственост: секој развивач е одговорен за целиот код. Ја поттикнува размената на информации, го намалува факторот тимски автобус и го зголемува севкупниот квалитет на секој модул ако го земеме предвид принципот на различност.

Single CodeBase: Единствената база на кодови е позната и како „развој базиран на багажникот“. Тоа значи дека постои само еден извор на вистината. Затоа, наместо да се развивате изолирано на долги временски периоди, спојте ги вашите придонеси во еден пренос рано и често. Знамињата на функциите помагаат да се ограничи користењето на функциите додека не завршат.

Дневна дистрибуција: распоредувањето во производството барем еднаш дневно е логична последица на континуираната интеграција:. Всушност, денес многу тимови одат уште подалеку и практикуваат континуирана имплементација. Односно, секогаш кога некој ќе се приклучи на главната линија, апликацијата се распоредува на производство.

Код и тестови: Оваа практика значи дека изворниот код, вклучувајќи ги и тестовите, е единствениот постојан артефакт на софтверски проект. Ангажирањето во генерирање на други видови артефакти, вклучително и документација, често е непотребно затоа што не генерира вистинска вредност за клиентот.

Ако ви требаат други артефакти или документи, потрудете се да ги генерирате од кодот за производство и тестовите.

Анализа на корените причини: Секогаш кога некој дефект ќе влезе во производство, немојте само да го поправате дефектот. Погрижете се да откриете што го предизвикало на прво место, зошто вие и вашите соиграчи не успеавте да го спречите лизгањето. Потоа, преземете чекори за да бидете сигурни дека тоа нема да се повтори.

Работна средина

Седнете заедно: Во XP, тимовите претпочитаат да работат заедно на отворен простор. Оваа практика промовира комуникација и чувство на припадност во тим.

Целиот тим: Сите што се потребни за успех на проектот се дел од тимот на XP. Ова е многу контекстуално - различно за секој тим - и динамично, може да се промени во тимот.

Информациски работни простори: Информацискиот работен простор го користи физичкиот простор на тимот за прикажување информации што му овозможуваат на секој да го знае, на прв поглед, напредокот на проектот. Како се прави ова може да варира, од физички белешки и графикони до слики од екранот на кои се прикажани Kanban табли и контролни табли од софтверот за управување со проекти.

Работа со енергија: Во XP, работите само додека можете да работите енергична работа. Работното време мора да биде ограничено на 40 неделно, максимум.

Управување со проекти

Analisi- Напишете ги корисничките барања во формат познат како анализа на корисникот. Корисничката анализа има кратко, описно име и, исто така, краток опис на она што треба да се имплементира.

Гасена: Кога планирате циклус, додајте ситни задачи што тимот може да ги напушти доколку се појави потреба. Секогаш може да се додадат повеќе приказни ако тимот достави премногу.

Циклуси (месечни и неделни): Развојот во XP се случува во два главни циклуси: неделен циклус и месечен циклус.

Состаноци, циклуси, закажани изданија: Развојот во XP работи во два главни циклуси: неделен циклус и квартален циклус. Првично, Кент Бек препорача двонеделен циклус, но го промени тоа во второто издание на неговата книга.

Неделен циклус: неделниот циклус е „пулсот“ на еден XP проект. Циклусот започнува со состанок на кој клиентот избира кои приказни сака да ги создаде во текот на неделата. Дополнително, тимот ја прегледува нивната работа, вклучувајќи го и минатонеделниот напредок, и размислува за начини како да го подобри нивниот процес.

Месечен циклус: Секој месец, тимот размислува и ги идентификува можностите за подобрување во нивниот процес. Клиентот избира една или повеќе теми за тој месец, заедно со анализите во овие теми.

Како да започнете да работите со екстремно програмирање?
Техничките вештини и XP навиките може да биде тешко да се научат. Некои од практиките може да изгледаат туѓо за програмерите кои не се навикнати на нив.

Ercole Palmeri

Билтен за иновации
Не пропуштајте ги најважните вести за иновациите. Пријавете се за да ги добивате по е-пошта.

Последни написи

Veeam ја има најсеопфатната поддршка за ransomware, од заштита до одговор и обновување

Coveware од Veeam ќе продолжи да обезбедува услуги за одговор на инциденти на сајбер изнуда. Coveware ќе понуди форензика и способности за санација…

Април 23 2024

Зелена и дигитална револуција: Како предвидливото одржување ја трансформира индустријата за нафта и гас

Предвидливото одржување го револуционизира секторот за нафта и гас, со иновативен и проактивен пристап кон управувањето со постројките.…

Април 22 2024

Антимонополскиот регулатор на Обединетото Кралство го покренува алармот на BigTech поради GenAI

Обединетото Кралство CMA издаде предупредување за однесувањето на Big Tech на пазарот на вештачка интелигенција. Таму…

Април 18 2024

Casa Green: енергетска револуција за одржлива иднина во Италија

Уредбата за „Case Green“, формулирана од Европската унија за подобрување на енергетската ефикасност на зградите, го заврши својот законодавен процес со…

Април 18 2024

Читајте иновации на вашиот јазик

Билтен за иновации
Не пропуштајте ги најважните вести за иновациите. Пријавете се за да ги добивате по е-пошта.

Следете нас