80/20 heeft ook invloed op de planning

We hebben allemaal gehoord over de 80/20-regel, degene die zegt dat 80% van ons succes (effecten) afkomstig is van slechts 20% van onze acties (oorzaken). Welnu, deze universele waarheid heeft ook invloed op softwareontwikkeling, en in dit artikel gaan we een beetje van de grondbeginselen van deze verklaring af.

BPM

Business Process Management, voor het acroniem in het Engels, is (onder andere) een managementdiscipline waarmee u visueel inzicht krijgt in de processen die in een bedrijf (of op veel andere plaatsen) moeten worden uitgevoerd. Een van de belangrijkste kwaliteiten is het feit dat het complexe processen kan analyseren en ze "eenvoudig" kan maken.

Er zijn veel open source-tools waarmee je BPM-diagrammen kunt ontwikkelen, degene die ik voor dit artikel heb gebruikt, is BonitaSoft. Als je wat meer wilt leren over procesmanagement, zijn er veel tutorials op internet en boeken over het onderwerp. Laten we nu teruggaan naar het centrale onderwerp.

Software projecten

Er bestaan ​​tegenwoordig veel methodologieën voor projectontwikkeling: agile, traditioneel, hybride, enzovoort. Eén ding hebben ze allemaal gemeen: voorbereiding . Wat bedoel ik hiermee? Dat 80% van het succes van dit softwareproject afhangt van de eerste 20% van het hele proces: de voorbereiding.

Een project voorbereiden

Dit is een logisch punt dat in de praktijk zelden wordt toegepast (zoals veel andere logische zaken die in de praktijk onlogisch blijken). Als we het over voorbereiding hebben, moeten we het vermogen begrijpen om het probleem te doorgronden, de oplossing te begrijpen en vooral het proces dat bij de oplossing hoort. Een van de meest voorkomende tekortkomingen van onprofessionele softwareprojecten is een gebrek aan documentatie hierover. Dit komt vooral voor bij particuliere bedrijven, omdat de drang om te verkopen vaak het ontwikkelingsproces overschaduwt.

Aangezien veel lezers van deze artikelen werkzaam zijn in de technologiebranche of daaraan gerelateerd zijn, is het belangrijk te vermelden dat als ze tijdens hun loopbaan een bedrijf of leverancier tegenkomen die niet aan een goede voorbereidingsstandaard voldoet, de kans bijna 80% is dat het project niet goed zal verlopen.

Abstractie is de sleutel

Dit is iets wat ik heb geleerd tijdens mijn tijd met GNU/Linux, en het blijkt keer op keer cruciaal te zijn in het softwareontwikkelingsproces. Het vermogen om problemen te abstraheren en te vereenvoudigen is essentieel voor het genereren van elegante en vooral duurzame code. En misschien is dit wel een van de belangrijkste verschillen tussen grote professionele projecten en projecten die ongecontroleerd groeien. De eerste groep denkt na over het proces , begrijpt het en structureert het, terwijl de tweede groep het simpelweg draaiende houdt zonder het te hoeven begrijpen.

toneelspeler

Dit is de naam van het project dat het Gentoo-installatieprogramma ontwikkelt, zoals u zich kunt voorstellen, dit is een vrij complex proces, aangezien het een groot aantal architecturen ondersteunt. Een andere factor waarmee rekening moet worden gehouden, is het aantal configuraties dat het ondersteunt, op kernelniveau, init-systeem, enz. En ik vertel je dit allemaal omdat het ook mijn afstudeerproject is, dat ik moet afronden voordat ik klaar ben met studeren. Het is duidelijk dat ik in zo'n korte tijd (tot juli volgend jaar) geen programma kan maken dat absoluut alle mogelijke opties bevat, maar ik kan er in ieder geval een maken waarmee een functioneel systeem op een heel eenvoudige manier kan worden geïnstalleerd.

Inzicht in het installatieproces

Dankzij de BPM-tools kan een processchema worden gegenereerd dat ons in staat stelt de stappen te begrijpen die nodig zijn voor de succesvolle installatie van Gentoo op een computer.

Gentoo installatieproces

Eigen. Christopher Diaz Riveros

Ondanks dat het verschillende processen en subprocessen bevat, is het duidelijk behoorlijk samengevat en kan men zien dat we 18 lineaire stappen hebben. Dit is belangrijk omdat een applicatie met een lineaire structuur eenvoudig te implementeren is en tegelijkertijd indien nodig parallellisme kan worden gegenereerd in een of meer van de threads.

Een andere belangrijke factor is dat het ons in staat stelt sets van processen te abstraheren op basis van type; zo stelt het definiëren van een kernelsubproces ons bijvoorbeeld in staat te weten dat er specifieke taken binnen dat subproces zijn die direct verband houden met het succesvol installeren van een kernel.

Subproces "kernel"

Eigen. Christopher Diaz Riveros

Op deze manier wordt elke "complexe" stap op globale wijze een "eenvoudige" stap, zonder dat de noodzakelijke details verloren gaan. Dit vergemakkelijkt de zichtbaarheid van de assemblage zonder het specificatieniveau te verminderen dat nodig is om het proces succesvol te voltooien. En we kunnen niet ontkennen dat het gemakkelijker is om de afbeelding te zien dan het hele Handboek in één keer te lezen 

Tijd besparen

Een ander duidelijk voordeel is dat door geen direct verbonden programmeertaal te hebben, het mogelijk is om logische analyse uit te voeren zonder noodzakelijkerwijs tijd te verspillen aan het implementeren van de taal. Dit is een voordeel ten opzichte van de hoeveelheid tijd die kan worden besteed aan het implementeren van een functie om erachter te komen dat deze wordt weggegooid omdat er een efficiëntere oplossing is. Zoals wat de oplossingen in pseudo-code zouden zijn (iets dat ook door veel "ontwikkelaars" wordt genegeerd, maar dat niet zou moeten zijn).

Projecten leiden gemakkelijk gemaakt

Als we deze concepten in aanmerking nemen, wordt projectmanagement (van welke aard dan ook) eenvoudiger, omdat we de inspanningen richten op de plekken waar ze echt nodig zijn, en als dit deel correct wordt uitgevoerd, valt de rest onder zijn eigen gewicht. Ik hoop dat het je nieuwsgierigheid prikkelt en je motiveert om onderzoek te doen naar BPM en algoritmen en wie weet moedigt het je aan om mij te helpen met mijn proefschrift.  Hartelijk dank dat je zo ver bent gekomen en we zien je snel weer. Groeten


Voeg dit toe als voorkeursbron in Google.