•     •   13 min read

Agile Methodology: The Mother of Dragons or All Flexible Methodologies

Agile’s his­to­ry roots back to the pub­li­ca­tion of “ The Man­i­festo for Agile Soft­ware Devel­op­men t ” con­sist­ing of 12 fun­da­men­tals in 2001. Undoubt­ed­ly, cer­tain setups of the Agile approach had appeared before that, but only this doc­u­ment sys­tem­ized and set them out to such extent which was suf­fi­cient for use. Year by year, new com­pa­nies, IT spe­cial­ists and project man­agers adhere to the Man­i­festo. New meth­ods and ver­sions of the agile devel­op­ment sys­tem emerge.

What is Agile (flex­i­ble) methodology?

Agile is an inter­ac­tive devel­op­ment mod­el in which soft­ware is cre­at­ed incre­men­tal­ly from the out­set of a project, in con­trast to the cas­cade mod­els where the code is deliv­ered at the end of the work cycle.

The flex­i­ble method­ol­o­gy is based upon break­down of projects into small oper­a­tional pieces called user sto­ries. Accord­ing to pri­or­i­ties, tasks are solved with­in short two-week cycles (iter­a­tions).

The 12 prin­ci­ples which con­sti­tute the Agile Method­ol­o­gy may be stream­lined into 4 main ideas:

  • Pri­or­i­ty of peo­ple and com­mu­ni­ca­tion over tools and processes;
  • Pri­or­i­ty of a func­tion­al prod­uct over abun­dant documentation;
  • Pri­or­i­ty of col­lab­o­ra­tion with cus­tomers over con­tract confirmation;
  • Pri­or­i­ty of readi­ness to changes over fol­low­ing the ini­tial plan.


Meth­ods inher­ent in Agile:

Scrum

The term of Scrum was bor­rowed from rug­by where this word means the method of team game in the form of three lines built by each rival attempt­ing to grasp the ball. For suc­cess­ful regrasp­ing, not only good phys­i­cal fit­ness is essen­tial – each scrum­ming play­er should act con­cert­ed­ly with oth­ers, with clear under­stand­ing of the goal. 

This method is suc­cess­ful­ly used by such com­pa­nies as Microsoft, Yahoo, Siemens Health­care. A project man­ag­er from Ama­zon even described a case of Scrum intro­duc­tion based on the expe­ri­ence acquired.

Since Scrum is a frame for devel­op­ment, each exam­ple that fol­lows may dif­fer from the pre­vi­ous one.


Jeff Suther­land, the author or the book Scrum. The Art Doing Twe­ice the Work in Half the Time”, dis­tin­guished 8 steps to use the methodology:

  1. Select the prod­uct own­er who is aware of the project goal and expect­ed outcome.
  2. Orga­nize a team — up to 10 per­sons with skills nec­es­sary to cre­ate an oper­a­tional product.
  3. Appoint the Scrum mas­ter who will super­vise the project work­flow and assist the project team in address­ing challenges.
  4. Make up prod­uct back­log — for each prod­uct require­ment, set up pri­or­i­ties on the Agile board. In this process, the prod­uct owner’s role is essen­tial, since he col­lects requests for the prod­uct for the back­log team to eval­u­ate them.
  5. Sched­ule sprints (iter­a­tions) — time frag­ments to com­plete def­i­nite chains of tasks.
  6. Arrange dai­ly fif­teen-minute mee­tups — ask each team mem­ber 3 ques­tions: what he did yes­ter­day, what he will do today, what impedes task fulfillment.
  7. Make reviews of oper­a­tional parts of the prod­uct — by involv­ing stake­hold­ers into such reviews.
  8. Hold ret­ro­spec­tives — prob­lem dis­cus­sion with search for solu­tions after each sprint. Imple­ment the result­ing mod­i­fi­ca­tion plan in the fol­low­ing sprint.

Ret­ro­spec­tive in Agile


Scrum has 4 key elements:

  • Prod­uct Back­log — list of require­ments for the project 
  • Sprint Back­log — list of require­ments to be ful­filled with­in the upcom­ing sprint 
  • Sprint Goal — sprint purpose
  • Sprint Burn­down Chart — the dia­gram which is updat­ed as tasks advance being com­plet­ed. It facil­i­tates the under­stand­ing of dynam­ics and the team’s advance­ment lev­el in the project.

eXtreme Pro­gram­ming (XP)

Kent Beck, the devel­op­er of this method­ol­o­gy, has cre­at­ed an extreme pro­gram­ming method tar­get­ed at address­ing volatile soft­ware prod­uct require­ments and improv­ing the qual­i­ty of development.

It is applic­a­ble only in the field of soft­ware devel­op­ment, and it is based upon 4 processes:

  1. cod­ing — accord­ing to the team’s com­mon lay­out standards;
  2. test­ing — tests are basi­cal­ly cre­at­ed by pro­gram­mers before writ­ing a code which will be tested;
  3. plan­ning — both for the final build and for sep­a­rate iter­a­tions. The lat­ter take place every two weeks on an average.
  4. audi­tion — of both devel­op­ers and a cus­tomer, to elim­i­nate unclear points and to define require­ments and values.


Crys­tal Methodologies

This fam­i­ly of method­olo­gies devel­oped by Alis­tair Cock­burn, one of the authors of The Man­i­festo for Agile Soft­ware Devel­op­ment” is lit­tle known in some local domains of project man­age­ment. Cock­burn offers to make clas­si­fi­ca­tion by col­ors, based on such cri­te­ri­on as the num­ber of per­sons in a team: 2 (Crys­tal Clear) to 100 (Crys­tal Red). The Maroon, Blue and Vio­let col­ors are assigned to more large-scale projects.

Crys­tal projects should con­form to 3 basic characteristics:
  1. swift deliv­ery of the oper­a­tional code — evolv­ing idea for the iter­a­tive mod­el in Agile development.
  2. improve­ment through reflex­ion — a new soft­ware ver­sion is improved based on the infor­ma­tion about the pre­vi­ous one.
  3. osmot­ic” inter­ac­tion — Alistair’s inno­va­tion, a metaphor for com­mu­ni­ca­tion and infor­ma­tion exchange between soft­ware devel­op­ers with­in one room.

This fam­i­ly of method­olo­gies is described in detail in the book Crys­tal Clear: A Human-Pow­ered Method­ol­o­gy for Small Teams” by Alis­tair.


Dynam­ic Soft­ware Devel­op­ment Method (DSDM)

Not just a sin­gle per­son, yet not even a team, but a con­sor­tium of 17 British com­pa­nies worked on DSDM devel­op­ment. As extreme pro­gram­ming, DSDS is used pre­dom­i­nant­ly to cre­ate software.

The end con­sumer (user) gets a spe­cial role in the devel­op­ment process. This core prin­ci­ple is sup­ple­ment­ed with the fol­low­ing basic ones:

  • fre­quent releas­es of the product’s oper­a­tional versions 
  • auton­o­my of devel­op­ers in deci­sion making
  • test­ing through­out the work cycle.
DSDM is sub­di­vid­ed into ver­sions which are updat­ed as tech­nolo­gies devel­op and as new soft­ware devel­op­ment require­ments appear. Cur­rent­ly the last one is DSDM Atern released in 2007, although the pre­vi­ous one (of 2003) is still in service.

At the out­set, the team con­sid­ers fea­si­bil­i­ty of devel­op­ing an appli­ca­tion and its scope of use. Then the work is divid­ed into three inter­con­nect­ed cycles:

  1. func­tion­al mod­el cycle — cre­at­ing ana­lyt­i­cal doc­u­ments and prototypes.
  2. design&engineering cycle — bring­ing a sys­tem into operation.
  3. imple­men­ta­tion cycle — sys­tem deployment.


Fea­ture Dri­ven Devel­op­ment (FDD)

This method­ol­o­gy emerged even ear­li­er than The Man­i­festo for Agile Soft­ware Development”.
Although FDD also employs the iter­a­tion mod­el of devel­op­ment, it dif­fers from Agile in the fol­low­ing features:

  • more atten­tion to up-front modeling 
  • increased (as com­pared with Agile) sig­nif­i­cance of plot­ting reports and charts 
  • the method­ol­o­gy is designed for cor­po­rate development.

Fea­ture Dri­ven Devel­op­ment con­sists of the fol­low­ing cyclic phases:

  1. Cre­at­ing a gen­er­al mod­el — vision of the project based on pre­lim­i­nary data.
  2. Devel­op­ing a list of prop­er­ties — sim­i­lar to prod­uct back­log in the Scrum methodology.
  3. Plan­ning by prop­er­ties — the com­plex­i­ty of prop­er­ties is eval­u­at­ed by each team member.
  4. For each prop­er­ty — tech­ni­cal design and imple­men­ta­tion – the final phase upon com­ple­tion of which the prop­er­ty merges into the prod­uct, and the cycle repeats.

Lean Soft­ware Development

Lean Soft­ware Devel­op­ment is a set of lean man­age­ment prin­ci­ples (rather than a method­ol­o­gy) which are tar­get­ed at increas­ing effi­cien­cy of the devel­op­ment process and at min­i­miz­ing costs.

This set includes the fol­low­ing 7 fundamentals:

  1. elim­i­nat­ing loss­es — every­thing that adds no val­ue to the prod­uct for the end consumer.
  2. con­tin­u­ous train­ing — ongo­ing devel­op­ment of a team enhances pos­si­bil­i­ties for effi­cient ful­fill­ment of tasks.
  3. mak­ing deci­sions as late as pos­si­ble — pri­or­i­ty is giv­en to delib­er­ate solu­tions which are well-devel­oped and based on acquired knowl­edge, rather than to spon­ta­neous ones.
  4. swift deliv­ery — this is basi­cal­ly the core prin­ci­ple of the iter­a­tive model.
  5. team rein­force­ment — one of the Man­i­festo…” fun­da­men­tals holds that peo­ple and their inter­ac­tions are more impor­tant than process­es and tools. A project team is the best guar­an­tee for suc­cess­ful com­ple­tion of tasks.
  6. integri­ty and qual­i­ty — it is nec­es­sary to make an orig­i­nal­ly high-qual­i­ty prod­uct not to waste time and resources on fur­ther test­ing and elim­i­na­tion of bugs.
  7. vision of an aggre­gate pic­ture — a project can­not be bro­ken down into sep­a­rate parts with­out under­stand­ing the cur­rent sta­tus of devel­op­ment, as well as the pur­pos­es, con­cept and strate­gies of the soft­ware developed.


Ver­sions of Agile devel­op­ment methodologies 

Agile Mod­el­ing (AM)

Agile Mod­el­ing is a set of val­ues, fun­da­men­tals and prac­tices for soft­ware modeling.
AM is used as an ele­ment in ful­ly-fledged soft­ware devel­op­ment method­olo­gies — for instance, in extreme pro­gram­ming or Rapid Appli­ca­tion Development.

Agile Mod­el­ing has the fol­low­ing fun­da­men­tal features:
  • effec­tive inter­ac­tion between project stakeholders;
  • striv­ing for devel­op­ing an ulti­mate­ly sim­ple solu­tion of all pos­si­ble ones, which will meet all requirements;
  • con­tin­u­ous receipt of feedback;
  • courage to make deci­sions and to be respon­si­ble for them;
  • real­iz­ing that you know absolute­ly everything.


Agile Uni­fied Process (AUP)

AUP is a sim­pli­fied ver­sion of anoth­er soft­ware devel­op­ment method­ol­o­gy — Ratio­nal Uni­fied Process (RUP). Since 2012, it was sub­sti­tut­ed by Dis­ci­plined Agile Deliv­ery (DAD), but AUP is still the case here and there.
Scott Ambler, the author of the method­ol­o­gy, high­light­ed the fol­low­ing key points in Agile Uni­fied Process:
  • Your team knows what is does;
  • Sim­plic­i­ty comes first.
  • Con­for­mi­ty to the fun­da­men­tals of the flex­i­ble devel­op­ment methodology.
  • Focus on activ­i­ties valu­able for the project.
  • Inde­pen­dence in selec­tion of tools.
  • Cus­tomized AUP con­fig­ur­ing for require­ments of a spe­cif­ic project.


Agile Data Method (ADM)

ADM is a set of iter­a­tive soft­ware devel­op­ment method­olo­gies which empha­size form­ing require­ments and solu­tions in a project through col­lab­o­ra­tion of dif­fer­ent teams. As AUP, this method­ol­o­gy is not self-con­tained either.

The prin­ci­ple of Agile Data Method is defined by six fundamentals:
  1. Data — the basis for cre­ation of any application.
  2. Prob­lems in a project — they may be detect­ed only if the project goal and con­cept are clear­ly understood.
  3. Work groups — apart from the basic team of devel­op­ers, there are enter­prise groups which sup­port oth­er work groups.
  4. Unique­ness — there is no per­fect method­ol­o­gy, so each project requires tools from dif­fer­ent method­olo­gies to be combined.
  5. Team work — joint work is much more effi­cient than indi­vid­ual activity.
  6. Sweet spot” — search for an opti­mal solu­tion of a prob­lem (“sweet spot”) by avoid­ing extremities.

Essen­tial Uni­fied Process (EssUP)

It was devel­oped by Ivar Jacob­son, a Swedish sci­en­tist, to improve Ratio­nal Uni­fied Process.


EssUP uses the con­cept of prac­tice which includes:

  • usage sce­nario — descrip­tion of a system’s behaviour.
  • iter­a­tion devel­op­ment — cre­ation of oper­a­tional pieces of the code in short cycles with­in a few weeks.
  • team prac­tices — tar­get­ed at ral­ly­ing the team and increas­ing its efficiency.
  • pro­ce­dur­al prac­tices — for instance, Think glob­al­ly, start small” or Involve stake­hold­ers into busi­ness processes”.
In one form or anoth­er, all prac­tices are present in the RUP and CMMI method­olo­gies, as well as in the flex­i­ble devel­op­ment methodology.

Get­ting Real (GR)

This is a method­ol­o­gy effec­tive for star­tups and start­ing teams, which sug­gests the max­i­mum use of spe­cif­ic fea­tures inher­ent in small projects and com­pa­nies, such as mobil­i­ty, flex­i­bil­i­ty, search for new solu­tions, absence of a strict and con­fused hier­ar­chy etc. 
Jason Fried and David Hans­son, founders of the 37signals Com­pa­ny (cur­rent­ly Base­camp), deter­mined Get­ting Real as a sys­tem for solv­ing fea­si­ble tasks, which is ulti­mate­ly sim­ple, com­pre­hen­sive and functional.

GR is a mix of a dozen of agile devel­op­ment tools which are used to min­i­mize the following:

  • alter­na­tives
  • options and settings
  • com­pa­ny structure
  • meet­ings
  • promis­es.
Such extra­or­di­nary con­cept has not gone main­stream, although some of its ele­ments have merged into oth­er methodologies. 

OpenUP (OUP)

This is a soft­ware devel­op­ment method­ol­o­gy inde­pen­dent of tools and free of strict struc­ture, which pro­vides such practices:

  • mea­sur­ing the team’s speed of operation;
  • hold­ing dai­ly meet­ings and ret­ro­spec­tives upon com­ple­tion of iterations;
  • con­cept of microsteps and ear­ly test­ing by using checklists;
  • method­ol­o­gy of Agile Mod­el Dri­ven Devel­op­ment (AMDD).
These prac­tices are real­ized based on four principles:

  1. rec­on­cil­i­a­tion of inter­ests and achiev­ing the com­mon vision in joint work;
  2. con­tin­u­ous improve­ment through ongo­ing feedback;
  3. focus­ing on the application’s archi­tec­ture at ear­ly stages to min­i­mize risks;
  4. max­i­miz­ing val­ue for the end consumer.




Agile Indi­ca­tors

Giv­en the diver­si­ty of Agile tools, prac­tices, meth­ods and method­olo­gies, we need to choose an instru­ment which will help us to deter­mine how each of them is effective. 
Met­rics are used as such instrument.

For most projects, these 4 met­ric cat­e­gories will be enough:

  1. Pro­duc­tiv­i­ty — it adjoins the Veloc­i­ty and WIP met­rics. The first one will suit not all projects, since the num­ber of tasks per­formed per iter­a­tion is mea­sured, but iter­a­tions are not equal. The Work-in-Progress met­ric defines the lim­it of tasks in dif­fer­ent phas­es: and the high­er it is, the worse it goes;
  2. Fore­cast­ing — the Capac­i­ty met­ric, which con­sists in deter­min­ing the num­ber of per­fect hours avail­able in the fol­low­ing sprint. Accord­ing­ly, it is pos­si­ble to under­stand the amount of time avail­able for work, the degree of effi­cien­cy in task ful­fill­ment, as well as to plan the num­ber of tasks for a sprint;
  3. Qual­i­ty — for instance, the require­ments sta­bil­i­ty index which is cal­cu­lat­ed by the for­mu­la = (Total num­ber of orig­i­nal busi­ness require­ments + Num­ber of require­ments altered by the time giv­en + Num­ber of added require­ments + Num­ber of sub­tract­ed require­ments) / (total num­ber of orig­i­nal require­ments). This met­ric is used to deter­mine the amount of time spent on re-work­ing tasks;
  4. Val­ues — this met­ric is com­put­ed indi­vid­u­al­ly in every case, depend­ing on the project for­mat. For exam­ple, in the AirBnb start­up, the num­ber of high-qual­i­ty pho­tos down­loaded was cho­sen as a met­ric deter­min­ing the end val­ue of the prod­uct for users. As this num­ber was increas­ing, the num­ber of users was grow­ing in proportion.
The rules applic­a­ble to the met­rics are the same as those for oth­er Agile tools.

There is no sin­gle met­ric which would be unique­ly cor­rect and rel­e­vant for your project.


Met­rics should be revised in an ongo­ing man­ner, out­dat­ed ones must be sub­tract­ed, and new ones must be added as nec­es­sary. It should be com­pre­hen­sive and avail­able for the whole team with­out being trans­formed into a goal in itself. Met­rics for the sake of met­rics are a bad solution.



Myth Busters: Agile

The pop­u­lar­i­ty of the flex­i­ble devel­op­ment method­ol­o­gy played a low-down trick with it, and myths about cer­tain aspects of Agile can be seen even on spe­cial­ized por­tals. Let’s sort them out!

Myth No.1: Agile will suit all projects.

This is the most assertive mis­con­cep­tion. Just a sin­gle Agile method in itself will add no val­ue to the prod­uct, nor will it moti­vate the team.

Myth No.2: Agile dis­fa­vors documentation.

The agile devel­op­ment method­ol­o­gy does not dis­fa­vor doc­u­men­ta­tion, it denies doc­u­men­ta­tion as a goal in itself. When it comes to select­ing doc­u­men­ta­tion as a means of com­mu­ni­ca­tion, Agile real­ly favors per­son­al communication.

Myth No.3: Agile and plan­ning are incompatible.

This myth is con­test­ed by dai­ly plan­ning events with 10-minute standups, as well as by iter­a­tion plan­ning tak­ing place every two weeks, sprint meet­ings etc.

Myth No.4: Agile requires a lot of re-work.

The agile soft­ware devel­op­ment method­ol­o­gy pro­vides for re-work in two forms: require­ments re-work (users fig­ure out what they real­ly need) and soft­ware re-work (teams of devel­op­ers find improved ways to write and design appli­ca­tions). But this is the case to be also encoun­tered in oth­er method­olo­gies! More­over, such Agile nov­el­ty as the iter­a­tion mod­el serves to reduce the neg­a­tive influ­ence of re-work.



Advan­tages and dis­ad­van­tages of Agile in use

Advan­tages:

  1. involv­ing stake­hold­ers — the team becomes more capa­ble to under­stand the customer’s require­ments. What is more, ear­ly and fre­quent deliv­ery of soft­ware enhances the trust of stake­hold­ers to the project team and makes engage­ment in the project more profound.
  2. ear­ly and pre­dictable deliv­ery — the iter­a­tion-based devel­op­ment mod­el (in short peri­ods last­ing for 1 to 6 weeks) pro­vides flex­i­bil­i­ty and prompts prod­uct release.
  3. focus on busi­ness val­ue — col­lab­o­ra­tion with the cus­tomer ensures that the team under­stands how to make the prod­uct ulti­mate­ly valu­able for the consumer.
  4. con­tin­u­ous qual­i­ty improve­ment — test­ing dur­ing each iter­a­tion with divi­sion of the final build into sep­a­rate parts of the oper­a­tional code facil­i­tate improve­ment and elim­i­na­tion of soft­ware errors before the final prod­uct is released.

Dis­ad­van­tages:

  • strict require­ments for the team and cus­tomers — with­out close inter­ac­tion between the project team and users, it is impos­si­ble to ensure release of a high-qual­i­ty prod­uct with high val­ue. What is more, abun­dant Agile tools and meth­ods pre­de­ter­mine that the team should be expe­ri­enced for their prop­er introduction.
  • not suit­able for out­source and for projects where par­tic­i­pants inter­act with each oth­er only in an online mode.
  • the risk that the final soft­ware ver­sion will nev­er be released — sur­pris­ing­ly, this dis­ad­van­tage aris­es from such Agile advan­tages as iter­a­tive devel­op­ment and ongo­ing improve­ment of the product.
  • it fails with­out clear vision of busi­ness pur­pos­es of the project — since an Agile team is guid­ed by stake­hold­ers, it is impos­si­ble to devel­op a prod­uct with­out a goal and con­cept clear­ly fig­ured out.

Appli­ca­tions

Not all project man­age­ment ser­vices or pro­grams will suit for Agile-based project man­age­ment, because each of them has its spe­cif­ic features. 

If your busi­ness is a marketing&advertising, design, seo or dig­i­tal agency, you may use the saas ser­vice from Work­sec­tion for the whole team to oper­ate on it. So far we are rec­om­mend­ed by COXO Dig­i­tal, Roy­al ® Adver­tis­ing and Prozorro.

Here are a cou­ple of life hacks to con­fig­ure Agile in Worksection:

  1. con­fig­ure tags and sta­tus­es which are nec­es­sary for work in your company.Statuses may be: in progress, check­up, done, re-work need­ed, crit­i­cal, fea­tures, pay­ment due.Tags often read like this: lay­out, test­ing, pro­duc­tion, con­cept, code.
  2. cre­ate project back­log and project spring.
  3. cre­ate tasks and pre­lim­i­nary check­lists, sketch­es etc. in the backlog.
  4. dur­ing mee­tups, deter­mine sprint tasks and trans­fer them from the back­log to the sprint. 
  5. use guest access of cus­tomers to tasks so that you always have coor­di­nat­ed and rel­e­vant feed­back on the project. 
  6. tag respon­si­ble per­sons in tasks for each col­league to know his area of respon­si­bil­i­ty and feel involved in the sprint outcome.




Ver­dict

Due to the agile soft­ware devel­op­ment method­ol­o­gy, small project teams gain max­i­mum effi­cien­cy. Agile real­izes itself through such oth­er flex­i­ble meth­ods as Scrum, XP, Lean etc.

It can­not be deployed hur­ried­ly, by an inex­pe­ri­enced team, with­in a short peri­od of time
but when intro­duced, Agile will improve the inter­ac­tion between IT and busi­ness­es, it will prompt prod­uct release into the mar­ket, and it will add prod­uct val­ue for the end consumer. 





esc
Share
или
PM school
Kanban boards are powerful tools for project management. It helps in organizing workflows, tracking tasks, and boosting company productivity. They simplify complex projects by breaking them into smaller...
20 December 2024   •   13 min read
PM school
Project management tools are essential for any company. They help businesses stay organized, encourage collaboration and meet deadlines. These services streamline work processes and improve team productivity...
20 December 2024   •   12 min read
PM school
Dashboards are an essential project management tool. They provide a single place to monitor tasks, track time and measure progress. They simplify complex workflows, improve collaboration and provide a...
19 December 2024   •   12 min read
Get started now
Please enter your real email 🙂