Vi har alla hört talas om 80/20-regeln, den som säger att 80% av vår framgång (effekter) kommer från endast 20% av våra handlingar (orsaker). Den universella sanningen påverkar också mjukvaruutveckling, och i den här artikeln kommer vi att ta bort lite av det grundläggande i detta uttalande.
BPM
Affärsprocesshantering, för dess förkortning på engelska, är en ledningsdisciplin (bland annat) som låter dig visuellt förstå de processer som måste utföras i ett företag (eller på många andra platser). Bland dess huvudegenskaper är det faktum att det kan analysera komplexa processer och göra dem "enkla".
Det finns många open source-verktyg som låter dig utveckla BPM-diagram, det jag har använt för den här artikeln är BonitaSoft. Om du vill lära dig lite mer om processhantering finns det många handledning på internet och böcker om ämnet. Låt oss återgå till det centrala ämnet.
Programvaruprojekt
Idag finns det många metoder för att utveckla projekt: agila, traditionella, hybrida och så vidare. En sak som de alla har gemensamt är förberedelser . Vad menar jag med detta? Att 80 % av din framgång i detta mjukvaruprojekt kommer att bero på de första 20 % av hela processen: förberedelser.
Förbereder ett projekt
Detta är en logisk punkt som sällan tillämpas i verkligheten (liksom många andra logiska saker som är ologiska i praktiken). När vi pratar om förberedelser måste vi förstå förmågan att förstå problemet, förstå lösningen och framför allt den process som lösningen använder. En av de minst vanliga sakerna man hittar i oprofessionella mjukvaruprojekt är brist på dokumentation om detta ämne. Detta förekommer vanligtvis i privata företag, eftersom viljan att sälja ofta överskuggar utvecklingsprocessen.
Eftersom många av dem som läser dessa artiklar arbetar inom eller har anknytning till teknik, är det värt att nämna att om de någon gång i sitt arbetsliv stöter på ett företag/leverantör som inte uppfyller en god förberedelsestandard, är det nästan 80 % säkert att projektet inte kommer att gå bra.
Abstraktion är nyckeln
Detta är något jag har lärt mig under min tid med GNU/Linux, och det visar sig gång på gång vara nyckeln i mjukvaruutvecklingsprocessen. Förmågan att abstrahera problem och förvandla dem till enklare saker är avgörande för att generera elegant och framför allt hållbar kod . Och kanske är detta en av de största skillnaderna mellan stora professionella projekt och projekt som växer okontrollerat. De förra tänker igenom, förstår och strukturerar processen, medan de senare helt enkelt håller den igång utan att behöva förstå den.
stager
Detta är namnet på projektet som Gentoo-installatören utvecklar, som du kan föreställa dig, det här är en ganska komplex process eftersom det stöder ett stort antal arkitekturer. En annan faktor att ta hänsyn till är antalet konfigurationer den stöder, på kärnnivå, init-system, etc. Och jag berättar allt detta för att det också är mitt examensarbete som jag måste avsluta innan jag avslutar studiet. Självklart kan jag inte skapa ett program som överväger absolut alla möjliga alternativ på så kort tid (fram till juli nästa år), men åtminstone kan jag skapa ett som gör att ett funktionellt system kan installeras på ett mycket enkelt sätt.
Förstå installationsprocessen
Tack vare BPM-verktygen kan ett processdiagram genereras som gör att vi kan förstå de steg som krävs för en framgångsrik installation av Gentoo på en dator.
Egen. Christopher Diaz Riveros
Trots att det innehåller flera processer och delprocesser har det uppenbarligen varit ganska sammanfattat och det kan ses att vi har 18 linjära steg. Detta är viktigt eftersom en applikation som har en linjär struktur är lätt att implementera, och samtidigt kan parallellitet skapas i en eller flera av trådarna om det behövs.
En annan viktig faktor är att det låter oss abstrahera uppsättningar av processer efter typ; till exempel, genom att definiera en kärndelprocess vet vi att det finns specifika uppgifter i den som är direkt relaterade till processen att framgångsrikt installera en kärna.
Egen. Christopher Diaz Riveros
På så sätt blir varje "komplext" steg ett "enkelt" på ett globalt sätt, utan att förlora de nödvändiga detaljerna. Detta underlättar insynen av monteringen utan att minska den specifikationsnivå som krävs för att framgångsrikt slutföra processen. Och vi kan inte förneka att det är lättare att se bilden än att läsa hela Handboken på en gång
Spara tid
En annan uppenbar fördel är att genom att inte ha ett direkt anslutet programmeringsspråk är det möjligt att utföra logisk analys utan att nödvändigtvis slösa bort tid på att implementera språket. Detta är en fördel jämfört med hur mycket tid som går att implementera en funktion bara för att ta reda på att den kommer att kasseras eftersom det finns en mer effektiv lösning. Gilla vad som skulle vara lösningarna i pseudokod (något som också ignoreras av många "utvecklare" men som inte borde vara).
Det är enkelt att styra projekt
Med hänsyn till dessa koncept blir projektledning (av vilket slag som helst) enklare, eftersom vi fokuserar insatser där de verkligen är nödvändiga, och om denna del görs på rätt sätt faller resten under sin egen vikt. Jag hoppas att det hjälper din nyfikenhet och motiverar dig att undersöka BPM, algoritmer och vem vet, kanske kommer det att uppmuntra dig att hjälpa mig med min uppsats Tack så mycket för att du kommit så långt och vi ses snart. Hälsningar