80/20 påvirker også planlægning

Vi har alle hørt om 80/20-reglen, den der siger, at 80% af vores succes (effekter) kommer fra kun 20% af vores handlinger (årsager). Denne universelle sandhed påvirker også softwareudvikling, og i denne artikel vil vi fortælle lidt af det grundlæggende i denne erklæring.

BPM

Business Process Management er forkortelsen på engelsk en ledelsesdisciplin (blandt andet), der giver dig mulighed for visuelt at forstå de processer, der skal udføres i en virksomhed (eller mange andre steder). Blandt de vigtigste kvaliteter er det faktum, at det kan analysere komplekse processer og gøre dem "enkle".

Der er mange open source-værktøjer, der giver dig mulighed for at udvikle BPM-diagrammer, den jeg har brugt til denne artikel er BonitaSoft. Hvis du vil lære lidt mere om processtyring, er der mange tutorials på internettet og bøger om emnet. Lad os nu komme tilbage til det centrale emne.

Softwareprojekter

I dag findes der mange metoder til at udvikle projekter: agile, traditionelle, hybride og så videre. Én ting har de alle til fælles er forberedelse . Hvad mener jeg med det? At 80% af din succes i dette softwareprojekt vil afhænge af de første 20% af hele processen: forberedelse.

Forberedelse af et projekt

Dette er et logisk punkt, der sjældent anvendes i virkeligheden (ligesom mange andre logiske ting, der er ulogiske i praksis). Når vi taler om forberedelse, skal vi forstå evnen til at forstå problemet, forstå løsningen og frem for alt den proces , som løsningen anvender. En af de mindst almindelige ting, man finder i uprofessionelle softwareprojekter, er manglende dokumentation om dette emne. Dette forekommer normalt i private virksomheder, da ønsket om at sælge ofte overskygger udviklingsprocessen.

Da mange af dem, der læser disse artikler, arbejder inden for eller har relation til teknologi, er det værd at nævne, at hvis de på noget tidspunkt i deres arbejdsliv støder på en virksomhed/leverandør, der ikke lever op til en god forberedelsesstandard, er det næsten 80 % sikkert, at projektet ikke vil gå godt.

Abstraktion er nøglen

Det er noget, jeg har lært fra min tid med GNU/Linux, og det viser sig gang på gang at være nøglen i softwareudviklingsprocessen. Evnen til at abstrahere problemer og omdanne dem til enklere ting er afgørende for at generere elegant og frem for alt holdbar kode . Og måske er dette en af ​​de største forskelle mellem store professionelle projekter og projekter, der vokser ukontrolleret. Førstnævnte tænker igennem, forstår og strukturerer processen, mens sidstnævnte blot holder den kørende uden at skulle forstå den.

stager

Dette er navnet på det projekt, som Gentoo-installationsprogrammet udvikler, som du kan forestille dig, dette er en ganske kompleks proces, da det understøtter et stort antal arkitekturer. En anden faktor, der skal tages i betragtning, er antallet af konfigurationer, det understøtter, på kerneniveau, init-system osv. Og jeg fortæller jer alt dette, fordi det også er mit speciale, som jeg skal afslutte, før jeg er færdig med at studere. Naturligvis kan jeg ikke lave et program, der overvejer absolut alle mulige muligheder på så kort tid (indtil juli næste år), men i det mindste kan jeg generere et, der gør det muligt at installere et funktionelt system på en meget grundlæggende måde.

Forståelse af installationsprocessen

Takket være BPM-værktøjerne kan der genereres et procesdiagram, der giver os mulighed for at forstå de nødvendige trin for en vellykket installation af Gentoo på en computer.

Gentoo installationsproces

Egen. Christopher Diaz Riveros

På trods af at det indeholder flere processer og delprocesser, er det naturligvis blevet ganske sammenfattet, og det kan ses, at vi har 18 lineære trin. Dette er vigtigt, fordi en applikation, der har en lineær struktur, er let at implementere, og samtidig kan der om nødvendigt genereres parallelisme i en eller flere af trådene.

En anden vigtig faktor er, at det giver os mulighed for at abstrahere sæt af processer efter type; for eksempel giver definitionen af ​​en kerneunderproces os mulighed for at vide, at der er specifikke opgaver i den, der er direkte relateret til processen med at installere en kerne.

Underproces "kerne"

Egen. Christopher Diaz Riveros

På denne måde bliver hvert "komplekst" trin et "simpelt" på en global måde uden at miste de nødvendige detaljer. Dette letter synlighed af samlingen uden at reducere det nødvendige specifikationsniveau for at fuldføre processen. Og vi kan ikke afvise, at det er nemmere at se billedet end at læse hele håndbogen på én gang 

Spare tid

En anden åbenbar fordel er, at ved ikke at have et direkte forbundet programmeringssprog er det muligt at udføre logisk analyse uden nødvendigvis at spilde tid på at implementere sproget. Dette er en fordel sammenlignet med den tid, der kan bruges på at implementere en funktion kun for at finde ud af, at den vil blive kasseret, fordi der er en mere effektiv løsning. Ligesom hvad der ville være løsningerne i pseudokode (noget der også ignoreres af mange "udviklere" men ikke burde være).

Det er let at styre projekter

Tager man disse begreber i betragtning, bliver projektledelse (af enhver art) enklere, fordi vi fokuserer indsatsen der, hvor de virkelig er nødvendige, og hvis denne del udføres korrekt, falder resten under sin egen vægt. Jeg håber det hjælper på din nysgerrighed og motiverer dig til at undersøge BPM, algoritmer og hvem ved, måske vil det opmuntre dig til at hjælpe mig med mit speciale  Mange tak fordi du kom så langt, og vi ses snart. Hilsen


Tilføj som foretrukken kilde i Google