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 er der mange metoder til at udvikle projekter, der er smidige, traditionelle, blandede osv. Osv. Et punkt, som de alle har til fælles, er forberedelse. Hvad jeg mener med dette? At 80% af din succes i dette softwareprojekt vil være baseret på de første 20% af hele processen, forberedelsen. 

Forberedelse af et projekt

Dette er noget logisk, der i virkeligheden anvendes meget lidt (som 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 processen at løsningen gælder. En af de ting, der mindst findes i uprofessionelle softwareprojekter, er manglen på dokumentation om emnet. Dette vises normalt i private virksomheder, da ønsket om at sælge overstiger oprettelsesprocessen.

Da mange af dem, der læser disse artikler, arbejder eller er relateret til teknologi, er det værd at nævne, at hvis de på et eller andet tidspunkt i deres arbejdsliv finder en virksomhed / leverandør, der ikke opfylder en god forberedelse, er det næsten 80% sikker 😛 at projektet det går ikke.

Abstraktion er nøglen

Dette er noget, jeg har lært fra min tid ved hjælp af GNU / Linux, og det viser sig igen og igen at være nøglen til oprettelsen af ​​softwaren. Kapaciteten af abstrakt problemer for at gøre dem til mere "enkle" ting er afgørende for at kunne generere elegant kode og frem for alt holdbar. Og måske er dette en af ​​de største forskelle i store professionelle projekter og projekter, der vokser ud af kontrol. Førstnævnte tænker, forstår og strukturerer processen mens sekunder vedligeholde arbejde uden at skulle forstå det.

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 tillader os abstrakt sæt af processer efter type, for eksempel ved at definere en kernetråd, kan vi vide, at der er specifikke opgaver i den, der er direkte relateret til processen med succes at installere en kerne.

Underproces "kerne"

Egen. Christopher Diaz Riveros

På denne måde bliver hvert "komplekse" trin et "simpelt" trin på en global måde uden at miste de nødvendige detaljer. Dette letter samlingens synlighed uden at sænke det specifikationsniveau, der er nødvendigt for at fuldføre processen med succes. Og vi kan ikke benægte, at det er lettere 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

Under hensyntagen til disse begreber bliver projektledelse (af enhver art) lettere, fordi vi fokuserer vores indsats, 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 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 min afhandling 😛 Mange tak for at komme her, og vi ses snart. Skål


2 kommentarer, lad dine

Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   alexander mayorga munoz sagde han

    Hej. Tak for at dele din viden. Det ser ud til, at det er et spændende emne, men at det kræver meget forskningsarbejde og omsætning af begreberne for at være i stand til at internalisere dem. Først er problemet forvirrende, fordi man har en tendens til at forbinde det mere på siden af ​​at identificere kravene til et system og ikke nødvendigvis med virksomhedens forretningsprocesser, det vil sige, hvordan virksomheden fungerer. I sidste ende tror jeg, det handler mere om den rolle, som softwareudviklere spiller i modellering af virksomhedens forretning for at gøre driften af ​​virksomheden mere effektiv og effektiv.

    1.    ChrisADR sagde han

      Hej Alexander, mange tak for delingen. For at fortælle sandheden er det et noget komplekst emne at prøve at opsummere alt i et så lille rum, men hvis jeg kan bidrage lidt for at komme ud af forvirring med din kommentar 🙂 er det rigtigt, at systemer skal forsøge at løse krav, det er mest mulig grundlæggende funktionalitet, og på det tidspunkt er det rigtigt, at en udvikler skal fokusere på et højere niveau.
      Kendskab til processerne giver udviklere mulighed for at præsentere mere end nok systemer og forstå dem nok som noget, der opfylder de mindst mulige krav.
      Kodens elegance ligger i at kunne forstå den komplette proces og generere den på en dybere måde, hvor den bedst mulige løsning anvendes, og dette er kun muligt ved virkelig at forstå processen i stedet for kravet, som du godt nævnte 🙂
      Hvis vi modellerer det lidt omkring FOSS, betyder det ikke kun at kende softwarekravet, men filosofien bag det og at vide, hvordan det vil blive vedligeholdt, af hvem og al denne viden om processen, der ikke kun genererer en effektiv løsning. , men det vil være muligt at opretholde over tid 🙂
      Mange tak igen og hilsner.