80/20 afectează, de asemenea, programarea

Cu toții am auzit despre regula 80/20, cea care spune că 80% din succesul nostru (efectele) provine doar din 20% din acțiunile noastre (cauzele). Ei bine, acest adevăr universal afectează și dezvoltarea software-ului și, în acest articol, vom dezvălui puțin din fundamentele acestei afirmații.

BPM

Managementul proceselor de afaceri, pentru acronimul său în limba engleză, este o disciplină de management (printre altele) care vă permite să înțelegeți vizual procesele care trebuie desfășurate într-o afacere (sau în multe alte locuri). Printre calitățile sale principale se numără faptul că poate analiza procese complexe și le poate face „simple”.

Există multe instrumente open source care vă permit să dezvoltați diagrame BPM, cel pe care l-am folosit pentru acest articol este BonitaSoft. Dacă doriți să aflați mai multe despre gestionarea proceselor, există multe tutoriale pe internet și cărți despre acest subiect. Acum să revenim la subiectul central.

Proiecte software

Astăzi există multe metodologii pentru a dezvolta proiecte, există agile, tradiționale, mixte, etc. Un punct pe care toți îl au în comun este preparare. Ce vreau să spun prin asta? Că 80% din succesul dvs. în acest proiect software se va baza pe primele 20% din întregul proces, pregatirea. 

Pregătirea unui proiect

Acesta este ceva logic care în realitate se aplică foarte puțin (ca multe alte lucruri logice care sunt ilogice în practică). Când vorbim despre pregătire, trebuie să înțelegem abilitatea de a înțelege problema, să înțelegem soluția și, mai presus de toate, procesul că soluția se aplică. Unul dintre lucrurile care se găsesc cel mai puțin în proiectele software neprofesionale este lipsa documentației pe această temă. Acest lucru apare de obicei la companiile private, deoarece dorința de a vinde depășește procesul de creație.

Deoarece mulți dintre cei care citesc aceste articole funcționează sau au legătură cu tehnologia, merită menționat faptul că, dacă la un moment dat din viața lor profesională găsesc o companie / furnizor care nu îndeplinește o pregătire bună, este aproape 80% sigur 😛 că proiectul nu va funcționa.

Abstracția este cheia

Acesta este un lucru pe care l-am învățat din timpul meu folosind GNU / Linux și se dovedește de nenumărate ori că este esențial în procesul de creare a software-ului. Capacitatea de abstract problemele pentru a le transforma în lucruri mai „simple” sunt vitale pentru a putea genera un cod elegant și mai presus de toate de lungă durată. Și poate că aceasta este una dintre principalele diferențe ale marilor proiecte profesionale și ale proiectelor care scapă de sub control. Primii gândesc, înțeleg și structurează procesul în timp ce secundele păstrează lucrând fără a fi nevoie să o înțeleg.

Persoană cu experienţă

Acesta este numele proiectului dezvoltat de programul de instalare Gentoo, după cum vă puteți imagina, acesta este un proces destul de complex, deoarece suportă un număr mare de arhitecturi. Un alt factor de luat în considerare este numărul de configurații pe care le acceptă, la nivel de nucleu, sistem inițial etc. Și vă spun toate acestea pentru că este și proiectul meu de teză, pe care trebuie să-l termin înainte de a termina studiile. Evident că nu pot face un program care să contemple absolut toate opțiunile posibile într-un timp atât de scurt (până în iulie anul viitor), dar cel puțin pot genera unul care să permită instalarea unui sistem funcțional într-un mod foarte de bază.

Înțelegerea procesului de instalare

Datorită instrumentelor BPM, poate fi generată o diagramă de proces care ne permite să înțelegem pașii necesari pentru instalarea cu succes a Gentoo pe un computer.

Procesul de instalare Gentoo

Proprie. Christopher Diaz Riveros

În ciuda conținerii mai multor procese și subprocese, evident că a fost destul de rezumat și se poate vedea că avem 18 pași liniari. Acest lucru este important deoarece o aplicație care are o structură liniară este ușor de implementat și, în același timp, paralelismul poate fi generat într-unul sau mai multe fire, dacă este necesar.

Un alt factor important este că ne permite abstract seturile de procese în funcție de tip, de exemplu, definirea unui fir de nucleu ne permite să știm că există sarcini specifice în cadrul acestuia care sunt direct legate de procesul de instalare cu succes a unui nucleu.

Subproces „kernel”

Proprie. Christopher Diaz Riveros

În acest fel, fiecare pas „complex” devine unul „simplu” într-un mod global, fără a pierde detaliile necesare. Acest lucru facilitează vizibilitatea ansamblului fără a reduce nivelul specificațiilor necesare pentru a finaliza procesul cu succes. Și nu putem nega că este mai ușor să vedeți imaginea decât să citiți întregul manual simultan 🙂

Economisi timp

Un alt avantaj evident este că neavând un limbaj de programare conectat direct, este posibil să se efectueze analize logice fără a pierde neapărat timp implementând limbajul. Acesta este un avantaj în comparație cu timpul pe care îl puteți petrece implementând o caracteristică doar pentru a afla că va fi aruncată deoarece există o soluție mai eficientă. Ca și cum ar fi soluțiile în pseudo-cod (ceva care este, de asemenea, ignorat de mulți „dezvoltatori”, dar nu ar trebui să fie).

Conducerea proiectelor a fost ușoară

Luând în considerare aceste concepte, managementul proiectului (de orice fel) devine mai ușor, deoarece ne concentrăm eforturile acolo unde sunt cu adevărat necesare, iar dacă această parte este realizată corect, restul se încadrează sub propria sa greutate. Sper că vă ajută curiozitatea și vă motivează să cercetați despre BPM, algoritmică și cine știe, poate vă va încuraja să mă ajutați cu teza mea 😛 Vă mulțumesc foarte mult pentru că ați ajuns aici și ne vom vedea în curând. Noroc


2 comentarii, lasă-le pe ale tale

Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   alexander mayorga munoz el a spus

    Salut. Vă mulțumim că ne-ați împărtășit cunoștințele. Mi se pare că este un subiect interesant, dar că necesită multă muncă de cercetare și punerea în practică a conceptelor pentru a le putea interioriza. La început, problema este confuză, deoarece se tinde să o asocieze mai mult pe partea identificării cerințelor pentru un sistem și nu neapărat cu procesele de afaceri ale companiei, adică modul în care funcționează compania. În cele din urmă, cred că este vorba mai mult de rolul pe care dezvoltatorii de software îl joacă în modelarea afacerii companiei, pentru a face funcționarea afacerii mai eficientă și mai eficientă.

    1.    ChrisADR el a spus

      Bună ziua Alexander, vă mulțumesc foarte mult pentru distribuire. Pentru a spune adevărul, este un subiect oarecum complex să încerc să rezum totul într-un spațiu atât de mic, dar dacă pot contribui puțin la ieșirea din confuzie cu comentariul dvs. is este adevărat că sistemele ar trebui să încerce să rezolve cerințele, că este cea mai posibilă funcționalitate de bază și, în acel moment, este adevărat că un dezvoltator ar trebui să se concentreze pe un nivel superior.
      Cunoașterea proceselor permite dezvoltatorilor să prezinte sisteme mai mult decât suficiente, înțelegând suficient ca ceva care îndeplinește cerințele minime posibile.
      Eleganța codului constă în a putea înțelege procesul complet și a-l genera într-un mod mai profund, unde se aplică cea mai bună soluție posibilă, iar acest lucru este posibil doar prin înțelegerea procesului, mai degrabă decât cerința, așa cum ați menționat bine 🙂
      Dacă îl modelăm puțin în jurul FOSS, aceasta implică nu numai cunoașterea cerinței software, ci filosofia din spatele acestuia și cunoașterea modului în care va fi menținut, de către cine și toată acea cunoaștere a procesului care generează nu numai o soluție eficientă ., dar va fi posibil să se mențină în timp 🙂
      Vă mulțumesc din nou mult și salutări.