Die rekenaarbedryf wemel van dubbelsinnige taal, harde jargon en komplekse idees wat moeilik is om te verstaan en jou gedagtes in 'n waansin van rekenaarbuffering kan stuur.
Waterval? Skrum? Behendig?
As hierdie frases heeltemal vreemd vir jou is, moenie bekommerd wees nie; jou hulpvaardige span HashDork-tegniese geeks is hier om jou te help om die onderskeid tussen hierdie belangrike stadiums van die ontwikkelingsproses te verstaan sodat jy kundig kan raak.
Die ratse, skrum- en watervaltegnieke sal almal in hierdie blogpos gedek word, tesame met hoe elkeen jou span as geheel kan help.
Kom ons begin met die ratse, en ons sal die res saamdra.
Wat is Agile?
Agile sagteware-ontwikkeling volg 'n iteratiewe, inkrementele benadering. Eerder as uitgebreide voorbereiding aan die begin van 'n projek, is Agile-tegnieke buigsaam vir veranderende behoeftes oor tyd en bevorder deurlopende terugvoer van eindgebruikers.
Kruisfunksionele spanne werk oor tyd aan produkiterasies, en hierdie werk word in 'n agterstand gekategoriseer en geprioritiseer op grond van besigheids- of klantwaarde. Elke iterasie se doel is om 'n bruikbare produk te skep.
Leierskap bevorder samewerking, verantwoordelikheid en kommunikasie van aangesig tot aangesig in Agile-metodologieë.
Besigheidsbelanghebbendes en ontwikkelaars moet saamwerk om te verseker dat die produk voldoen aan die eise van die verbruiker en die maatskappy se doelwitte.
Die frase "ratse ontwikkeling" verwys na 'n verskeidenheid metodes en raamwerke wat gebaseer is op die ideale en beginsels wat in die Agile manifes.
Kenners raai aan om aan ratse beginsels en waardes te voldoen en dit as 'n gids te gebruik om die regte aksies te neem om in 'n spesifieke omgewing te neem terwyl sagteware-ontwikkeling benader word.
Die samewerkende en selforganiserende span is die hooffokusareas vir die ratse sagteware-ontwikkelingsgemeenskap.
Spanne word toegelaat om outonoom te besluit hoe hulle 'n spesifieke projek gaan aanpak, maar dit beteken nie dat toesighouers nie bestaan nie. Agile spanne is dus kruisfunksioneel.
In 'n ratse paradigma is bestuurders steeds nodig. Hulle maak seker dat elke spanlid die nodige vermoëns vir die projek het of verwerf.
Bestuurders in 'n ratse raamwerk funksioneer deur 'n atmosfeer te kweek wat die beste in die span na vore bring. Maar eerder as om die voortou te neem, neem hulle gereeld 'n agterste sitplek en laat die span besluit hoe hulle dinge sal lewer.
Bestuurders raak eers betrokke wanneer spanne herhaaldelik probeer om probleme op te los sonder sukses.
Agile ontwikkelingsiklus
Die stadiums van die Agile-ontwikkelingsiklus word hieronder gelys. Dit is van kardinale belang om te onthou dat hierdie fases nie in volgorde moet plaasvind nie, want hulle is buigsaam en verander voortdurend. Baie van hierdie stadiums vind gelyktydig plaas.
- Beplanning: Nadat 'n projekspan besluit het dat 'n idee prakties en werkbaar is, begin hulle na kenmerke soek. Hierdie fase het ten doel om elke kenmerk te prioritiseer en dit aan 'n iterasie toe te ken nadat die idee in kleiner werkstukke (die kenmerke) afgebreek is.
- Vereiste analise: Om besigheidsvereistes te bepaal, behels hierdie stap verskeie gesprekke met bestuurders, belanghebbendes en gebruikers. Wie die produk gaan gebruik en hoe hulle dit gaan gebruik, is van die besonderhede wat die span moet insamel. Hierdie standaarde moet spesifiek, toepaslik en kwantitatief wees.
- ontwerp: Die vereistes wat in die vorige stadium gevind is, word gebruik om die stelsel- en sagteware-ontwerp voor te berei. Oorwegings vir die produk of oplossing se voorkoms moet deur die span gemaak word. 'n Strategie of plan vir die toets word ook deur die toetsspan ontwikkel.
- Implementering, kodering of ontwikkeling: Die fokus van hierdie stadium is op die bou en evaluering van kenmerke en die beplanning van die ontplooiing van iterasies (volgens die iteratiewe en inkrementele ontwikkelingsbenadering [IID]). Omdat daar geen kenmerke verskaf word nie, begin iterasie 0 van die ontwikkelingsperiode. Deur aktiwiteite soos kontraktering, die opstel van instellings en befondsing te voltooi, bied hierdie herhaling die grondslag vir toekomstige groei.
- toets: Nadat die kode geskep is, word dit teen die vereistes getoets om te verseker dat die produk werklik aan gebruikersvereistes voldoen en aan besigheidsdoelwitte voldoen. Eenheid-, integrasie-, stelsel- en aanvaarbaarheidstoetsing word op hierdie stadium uitgevoer.
- Ontplooiing: Na toetsing word die produk aan kliënte gestuur sodat hulle dit kan gebruik. Die projek is egter nie klaar na ontplooiing nie. Kliënte kan bykomende probleme ondervind nadat hulle die produk begin gebruik het, wat die projekspan sal benodig om 'n oplossing te vind.
voordele
- Vinniger aflewering van hoër gehalte: Deur die projek af te breek in iterasies (bestuurbare eenhede), is die span in staat om te konsentreer op samewerking, ontwikkeling en toetsing van hoër gehalte. Wanneer toetsing met elke iterasie gedoen word, word probleme vinniger gevind en reggestel. Daarbenewens, met konstante, daaropvolgende hersiening, kan hierdie hoë-gehalte sagteware vinniger verskaf word.
- Verandering word verwelkom: Alhoewel beplanningsiklusse korter is, is dit maklik om veranderinge op enige punt in die projek te aanvaar en te akkommodeer. Die agterstand kan altyd verbeter en herprioritiseer word, sodat spanne binne 'n paar weke veranderinge aan die projek kan aanbring.
- Einddoel is dalk nie bekend nie: Agile is uitstekend vir projekte wanneer die einddoel nie duidelik gedefinieer is nie. Soos die projek verder beweeg, sal die doelwitte duidelik word, en ontwikkeling sal hierdie veranderende behoeftes geredelik kan akkommodeer.
- Deurlopende verbetering: Agile programme bevorder gebruikers- en spaninsette in alle stadiums van die projek, wat die toepassing van wat geleer word moontlik maak om die volgende iterasie te verbeter.
- Kliënte se menings word waardeer: Daar is verskeie geleenthede vir kliënte om te kyk hoe werk voltooi word, terugvoer te gee en die finale resultaat werklik te beïnvloed. Deur so intiem met die projekspan om te gaan, kan hulle 'n gevoel van eienaarskap ontwikkel.
- Sterk spanwerk: Agile beklemtoon die belangrikheid van gereelde kommunikasie en persoonlike ontmoetings. Mense kan verantwoordelikheid aanvaar en sekere projekkomponente besit wanneer hulle in spanne werk.
Disadvantages
- Spanlede moet kennis hêe: Behendige spanne is dikwels klein. Spanlede moet dus 'n wye reeks vaardighede hê. Boonop moet hulle die geselekteerde Agile-tegniek verstaan en op hul gemak voel.
- Beplanning kan minder akkuraat wees: Dit kan soms uitdagend wees om 'n presiese afleweringsdatum te bepaal. Agile is gebou op 'n tydvak aflewering, en projekbestuurders herrangskik gereeld take se prioriteite. Dit is dus waarskynlik dat sommige van die aflewerings wat aanvanklik vir aflewering geskeduleer was, nie betyds voltooi sal wees nie. Boonop kan meer naellope op enige stadium deur die projek bygevoeg word, wat die hele skedule verleng.
- Dokumentasie kan geïgnoreer word: Sommige spanlede sal dalk glo dat konsentreer op dokumentasie minder noodsaaklik is aangesien die Agile Manifes werkende sagteware bo deeglike dokumentasie verkies. Behendige spanne moet die ideale balans tussen dokumentasie en dialoog vind, selfs al kan deeglike dokumentasie nie projeksukses op sy eie waarborg nie.
- Die finale uitset kan baie verskil: Daar was dalk nie 'n duidelike strategie vir die aanvanklike Agile-projek nie, en daarom kan die finale uitkoms baie verander van wat aanvanklik verwag is. 'n Wesentlik verskillende finale uitset kan die gevolg wees van die toevoeging van nuwe iterasies gebaseer op veranderende kliëntinsette, aangesien Agile so aanpasbaar is.
- Ontwikkelaars se tydstoewyding: Die ontwikkelingspan moet ten volle verbind wees tot die projek om rats doeltreffend te wees. Die Agile-metode, wat langer neem as 'n konvensionele benadering, vereis konstante aktiewe deelname en samewerking. Daarbenewens impliseer dit dat die ontwikkelaars tot die volle projek se lengte moet verbind.
Wat is Waterval?
Die gewildste herhaling van die stelsel se ontwikkelingslewensiklus (SDLC) vir sagteware-ingenieurswese en IT-projekte staan bekend as die "waterval-benadering", wat 'n opeenvolgende, lineêre prosedure volg.
'n Gantt-grafiek, 'n vorm van staafgrafiek wat die begin- en einddatums van elke werk vertoon, word soms gebruik om dit te beplan.
Die ontwikkelingspan vorder na die volgende vlak nadat een van die agt fases voltooi is. Die span kan nie terugkeer na 'n vorige stadium sonder om die hele prosedure te herbegin nie.
Daarbenewens sal die kliënt dalk die vereistes moet evalueer en aanvaar voordat die span na die volgende vlak kan gaan.
Die watervalmodel is ontwikkel in die hoogs georganiseerde omgewings van die vervaardigings- en konstruksiesektore, waar aanpassings buitensporig duur of selfs onmoontlik kan wees.
Die watervaltegniek word so genoem omdat dit bedoel is om net in een rigting—afwaarts—net soos ’n waterval te vloei. Die fases daarvan sluit in ontleding, aanvang, toetsing, ontwerp, bou, ontplooiing, instandhouding en toetsing.
Die watervaltegniek het verskeie voordele, net soos enige ander strategie. Een daarvan is dat die fases van projekbeplanning en ontwerp meer goed gevestig is.
Kliënte en die ontwikkelingspan is meer in lyn met projeklewerings terwyl hulle waterval-sagteware-ontwikkeling gebruik. Omdat jy van die begin af bewus is van die projek se omvang, maak watervalontwikkeling dit ook makliker om vordering te monitor.
Die watervalproses gebruik spesialiste, ontwikkelaars, ontleders en toetsers om op hul werk in die projek te konsentreer eerder as dat die hele span een stap beklemtoon.
Stadiums van waterval
Die ses stappe van die Waterval moet almal een na die ander plaasvind:
- Versamel en berg vereistes: Jy moet deeglike kennis versamel oor wat hierdie projek op hierdie tydstip vereis. Daar is verskeie tegnieke om hierdie data in te samel, insluitend onderhoude, opnames en samewerkende dinkskrums. Die projekbehoeftes behoort duidelik te wees teen die tyd dat hierdie fase verby is, en jou span moes 'n afskrif van die vereistesdokument ontvang het.
- 'n Stelsel se ontwerp: Die stelsel word deur jou span ontwerp deur voorafbepaalde spesifikasies te gebruik. Gedurende hierdie stadium word geen kodering gedoen nie, maar die span stel wel vereistes vir hardeware of die programmeertaal.
- Implementering: Hierdie stadium behels kodering. Die voorafgaande stadium se data word deur programmeerders gebruik om 'n bruikbare produk te bou. Kode word dikwels in klein stukke geïmplementeer wat gekombineer word aan die einde van een fase of die begin van 'n ander.
- toets: Die produk kan begin word getoets nadat die kode voltooi is. Enige kwessies word noukeurig opgespoor en deur toetsers gerapporteer. Jou projek sal dalk moet teruggaan na fase een vir herevaluering as beduidende probleme opduik.
- Aflewering/ontplooiing: Die produk is op hierdie stadium klaar, en jou span dien die aflewerbares in vir ontplooiing of vrystelling.
- Onderhoud: Die kliënt het die produk ontvang en gebruik dit. Jou span sal dalk regstellings en opdaterings moet ontwikkel wanneer probleme opduik om dit reg te stel. Weereens kan beduidende probleme 'n terugkeer na stap een vereis.
voordele
- Eenvoudig om te bedryf en te bestuur: Die Waterval-benadering is maklik om te gebruik en te begryp aangesien elke projek op dieselfde opeenvolgende wyse hanteer word. Voordat 'n Waterval-projek begin word, hoef die span nie enige kundigheid of opleiding te hê nie. Die watervalbenadering is baie streng; elke stadium het 'n stel aflewerings en 'n hersiening, wat dit maklik maak om te administreer en in stand te hou.
- 'n Goed gedokumenteerde metodologie word vereis: Die dokumentasie wat deur die watervalmetodologie vereis word, help om die redenasie agter die toetse en kode te verduidelik. Daarbenewens skep dit 'n papierspoor ingeval belanghebbendes bykomende inligting oor 'n sekere fase of vir enige toekomstige inisiatiewe wil hê.
- Afdwinging van dissipline: Elke stap in 'n watervalprojek het 'n begin en 'n einde, wat dit maklik maak om vordering aan belanghebbendes en kliënte te kommunikeer. Die span kan die moontlikheid verminder om 'n sperdatum te mis deur vereistes en ontwerp eerste te stel voordat kode geproduseer word.
Disadvantages
- Dit kan moeilik wees om presiese vereistes te versamel: Om met verbruikers en belanghebbendes te praat om hul behoeftes te bepaal, is een van die beginfases van 'n Waterval-projek. In hierdie vroeë stadium van die projek kan dit uitdagend wees om hul spesifieke vereistes vas te stel. Kliënte leer gereeld oor hul vereistes soos die projek ontwikkel eerder as om dit vooraf uit te druk.
- Veranderinge is moeilik om te akkommodeer: Die bemanning kan nie werk na voltooiing van 'n fase hervat nie. Dit is baie moeilik en duur om terug te gaan en dit te herstel as hulle tydens die toetsfase verneem dat funksionaliteit tydens die vereistesproses ontbreek het.
- Sagteware word na die sperdatum verskaf: Twee tot vier fases van die projek moet voltooi wees voordat die werklike kodering mag begin. As gevolg hiervan sal belanghebbendes funksionele sagteware eers laat in die lewensiklus sien.
Wat is Scrum?
Een van die mees gewilde prosesraamwerke om Agile in die praktyk te bring, is Scrum, wat 'n subset van Agile is.
Dit is 'n iteratiewe paradigma vir die bestuur van die skepping van komplekse sagteware en produkte. Naellope, wat herhalings van vaste lengte is wat een tot twee weke duur, stel die span in staat om sagteware op 'n gereelde skedule vry te stel.
Belanghebbendes en spanlede kom bymekaar om die volgende stappe na elke naelloop te bespreek. Die rolle, verantwoordelikhede en vergaderings in Scrum bly konstant.
Scrum spesifiseer byvoorbeeld die naelloopbeplanning, daaglikse opstaan, naelloop-demo en naelloop-terugspektief as die vier rituele wat elke naelloopstruktuur verskaf.
Die span sal visuele artefakte soos taakborde of afbrandkaarte tydens elke naelloop gebruik om vordering te demonstreer en inkrementele terugvoer te kry.
In skrum werk die span en die produkeienaar nou saam om stelselfunksionaliteit te identifiseer en te prioritiseer. Hulle bereik dit deur 'n produkagterstand te skep, wat al die take bevat wat nodig is om sagteware te produseer wat funksioneer soos bedoel.
Foutkolle, nie-funksionele vereistes en kenmerke moet almal in die tou ingesluit word. Kruisfunksionele spanne moet skat en aanmeld om sagteware-inkremente deur deurlopende Sprints te lewer, wat gewoonlik 30 dae duur, sodra doelwitte vasgestel is.
Slegs die span kan funksionaliteit by die Sprint voeg nadat hulle die agterstand vir daardie sprint gepleeg het.
Volgende Sprint-aflewering word die produkagterstand geassesseer en, indien nodig, herprioritiseer, en die volgende aflewerbare stel word gekies om deel te wees van die volgende sprint.
Skrum proses
- Produksie agterstand: Om die items in die produk-agterstand te bestel, ontmoet die Produk-eienaar en Skrum-span (die werk aan die produk-agterstand kom van gebruikersstories en vereistes). Die produkagterstand is 'n lys van al die gewenste kenmerke vir die produk eerder as 'n lys take wat afgehandel moet word. Daarna kies die ontwikkelingspan take uit die produkagterstand om regdeur elke naelloop uit te voer.
- Sprint beplanning: Voor elke naelloop lewer die Produk-eienaar die topitems in die agterstand by 'n naelloopbeplanningsvergadering aan die span. Die groep kies dan items uit die produkagterstand wat hulle tydens die naelloop kan voltooi en skuif dit na die naelloopagterstand (wat 'n lys take is om in die naelloop te voltooi).
- Verfyning/versorging van die agterstand: Om te verseker dat die agterstand voorberei word vir die volgende naelloop, ontmoet die span en produkeienaar aan die einde van een naelloop. Die span kan gebruikersstories weggooi wat nie meer pertinent is nie, nuwes byvoeg, die volgorde waarin hulle aangespreek moet word hersien, of gebruikersstories in kleiner take verdeel. Tydens hierdie “grooming”-vergadering sal seker gemaak word dat die agterstand slegs uit dinge bestaan wat pertinent, in-diepte en in lyn is met die projek se doelwitte.
- Skrum vergaderings elke dag: In 'n 15 minute stand-up vergadering genaamd die Daily Scrum, bespreek elke spanlid hul doelwitte en enige probleme wat ontstaan het. Elke dag regdeur die naelloop neem die span deel aan die Daily Scrum, wat almal aan die taak hou.
- Vergadering om die naelloop te assesseert: Die span bied hul werk aan by 'n naelloop-oorsigvergadering aan die einde van elke naelloop. In plaas van 'n verslag of 'n PowerPoint-aanbieding, moet hierdie vergadering 'n werklike demonstrasie insluit.
- Retrospektiewe naelloopbyeenkoms: Die span bespreek enige wysigings wat in die volgende naelloop aangebring moet word asook hoe goed Scrum vir hulle werk aan die einde van elke naelloop. Die span kan die naelloop se positiewe aspekte, negatiewe aspekte en areas vir verbetering bespreek.
voordele
- Meer verantwoordelikheid van die span: Daar is geen projekbestuurder wat die skrumspan opdrag gee oor wat om te doen en wanneer nie. Die werk wat in elke naelloop voltooi kan word, word eerder deur die span as geheel besluit. Hulle werk almal saam en gee 'n hand aan mekaar, wat spanwerk verbeter en individualiteit in elke spanlid bevorder.
- Verbeterde projeksigbaarheid en deursigtigheid: Daar is minder misverstande en onsekerheid aangesien almal in die span bewus is van hul verantwoordelikhede danksy gereelde opstaanvergaderings. Die span kan probleme hanteer voordat hulle buite beheer raak, aangesien probleme vooraf raakgesien word.
- Verbeterde kosteverminderings: Konstante kommunikasie hou die span op hoogte van enige probleme of veranderinge sodra dit gebeur, wat help om koste te bespaar en kwaliteit te verbeter. Kleiner kenmerkstukke maak voorsiening vir voortdurende terugvoer en maak voorsiening vir vroeë foutkorreksie voordat groter foute te duur word om reg te stel.
- Maklik om by veranderinge aan te pas: Dit is makliker om veranderinge te hanteer en aan te pas wanneer daar gereelde terugvoerlusse en kort naellope is. As 'n illustrasie, as die span 'n splinternuwe gebruikersverhaal tydens een sprint teëkom, kan hulle vinnig daardie kenmerk by die volgende sprint by die agterstandverfyningsvergadering voeg.
Disadvantages
- Omvang kruip gevaar: Weens die gebrek aan 'n vasgestelde voltooiingsdatum, kan sekere Scrum-projekte omvangkruip in die gesig staar. Belanghebbendes kan verlei word om voort te gaan om meer funksies te eis as daar geen sperdatum vir voltooiing is nie.
- 'n Slegte Scrum Master kan alles ontspoor: 'n Projekbestuurder is nie dieselfde as 'n skrummeester nie. Die Skrummeester moet die span wat hulle toesig hou vertrou en nooit aan hulle instruksies gee nie. Die Scrum Master het nie mag oor die span nie. Die projek sal misluk as die skrummeester die span probeer bestuur.
- Akkuraatheidskwessies kan die gevolg wees van swak gestelde take: As take nie duidelik gespesifiseer is nie, sal projekuitgawes en skedules nie akkuraat wees nie. Beplanning raak uitdagend en naellope kan langer neem as wat verwag is as die aanvanklike doelwitte nie gedefinieer word nie.
- Ervaring en toewyding is nodig vir 'n span: Vir die span om suksesvol te wees, moet rolle en pligte duidelik omskryf word. Die Skrumspan vereis spanlede met tegniese vaardighede omdat daar geen duidelik gedefinieerde rolle is nie (almal doen alles). Die span moet ook daartoe verbind om aan die daaglikse Skrum-sessies deel te neem en saam te bly vir die lewe van die projek.
Agile vs Scrum
Alhoewel Agile en Scrum dieselfde metodologie gebruik, is daar 'n paar variasies tussen die twee. Die Agile Manifes skets 'n stel beginsels vir die skep van sagteware deur iteratiewe ontwikkeling.
Scrum, aan die ander kant, is 'n stel riglyne wat nagekom moet word tydens die ontwikkeling van Agile sagteware. Agile is 'n konsep, terwyl Scrum 'n tegniek is om dit in die praktyk toe te pas.
Scrum is 'n metode om Agile te implementeer, daarom het hulle albei baie dinge in gemeen. Beide benaderings is iteratief, prioritiseer vroeë en gereelde sagteware-aflewering, en aanvaar verandering. Hulle ondersteun ook openheid en deurlopende ontwikkeling.
Agile vs Waterval
Rigied vs. buigsaam beskryf die onderskeid tussen die Waterval-proses en Agile die beste. Terwyl Agile vloeibaar is en voortdurend verander, is Waterfall 'n baie strenger, meer rigiede metodologie.
Hierdie verdere onderskeidings tussen hulle is soos volg:
- Agile vereis nie 'n lineêre benadering nie, terwyl Waterval opeenvolgend is.
- Terwyl behoeftes dikwels vooraf in Waterval-projekte gedefinieer word, word daar verwag dat hulle sal verander en aanpas in Agile-inisiatiewe.
- In teenstelling met Agile, laat Waterfall-projekte nie toe dat wysigings gemaak word aan werk wat in 'n vorige stadium voltooi is nie.
- Die waterval is 'n georganiseerde prosedure waarin jy elke stap moet voltooi voordat jy aangaan na die volgende. Agile is egter 'n buigsame metodologie waarmee u in u eie tempo met die projek kan voortgaan.
Agile vs Waterval vs Scrum
- Die waterval verhoog vertroue in wat verskaf sal word baie gou nadat dit beplan is. Agile maak staat op 'n ontwikkelingsomgewing se beste praktyke. Hier kan 'n aantal projekrisiko's goed bestuur word aangesien die resultate voortdurend geëvalueer word.
- Waterfall verwag nie dat die span en projek op dieselfde plek gebaseer sal wees nie. Terwyl skrum en rats saam-lokasie van werknemers nodig het.
- Agile fokus op die vermindering van projekherwerk en moedig veranderinge aan om baie vroeër geïnkorporeer te word. In teenstelling met die waterval, wat anders reageer, maak skrum dit ook moontlik om vroeë ontdekking van veranderinge te maak.
- ’n Meer kompakte bloudruk vir die finale produk word verskaf deur rats en skrum. Dit skep 'n probleem met die beloftes wat aan die koper gemaak word. Daarteenoor gee die watervalgrafika aan kliënte en ontwikkelaars 'n beter indruk van die finale resultaat.
- Elkeen van hierdie tegnieke het 'n stel gereedskap om die take betrokke by die skepping daarvan te organiseer en te simuleer.
Gevolgtrekking
As jy tot dusver gevolg het en vol vertroue is in jou kennis van die onderskeid tussen die Waterval-, Agile- en Scrum-prosesse, behoort jy reeds te weet watter strategie die beste vir jou en jou span sal werk.
Die Waterval-tegniek, wat vir projekte met 'n bepaalde omvang, tydraamwerk en begroting is, kan jou beste opsie wees as jy van harde reëls en prosedures hou en vind dat dit duidelikheid bring.
Aan die ander kant, as die vryheid en aanpasbaarheid wat Agile bied jou inspireer, kan dit wees waar jy jou aandag moet vestig.
Skrum is egter die pad om te gaan as jy 'n bietjie dissipline binne 'n buigsame raamwerk verlang.
Jy moet egter hierdie benaderings oorweeg in die lig van die projek waaraan jy werk en jou uiteindelike uitkoms.
Lewer Kommentaar