Daca vi s-a intamplat sa lucrati cu o versiune a unui document si sa aflati in nu stiu ce sedinta ca de fapt versiunea “oficiala” a acelui document era cu totul alta sau daca vi s-a intamplat ca o schimbare intr-un modul al proiectului, dupa ce a fost implementata, sa se constate intr-un mod surprinzator ca afecteaza si alte module, atunci, foarte probabil, avem de-a face cu un configuration management slab insitutionalizat, proiectat defectuos sau chiar inexistent.
1. Ce este Managementul Configuratiei?
Cuvantul “Configurare” vine din asocierea a doua cuvinte din limba latina: “co” – impreuna si “figurare” – a modela, a forma. …Managementul modelarii impreuna (a unor elemente)… Pe internet sau in carti de specialitate gasiti multe definitii, insa cea mai simpla mi se pare cea care se intoarce la sensul primar al cuvantului “Configuration“: gestionarea comuna a unor parti/elemente dependente intre ele.
De la definitie insa si pana la implementarea unui management al configuratiei care sa asigure o trasabilitate back and forward, gestionarea versiunilor partilor componente si a dependentelor dintre ele intr-un mod eficace si eficient, este uneori o cale nu foarte scurta. Primul pas pe acaesta cale este intelegerea a ceea ce inseamna de fapt managementul configuratiei, intelegere care uneori este mai simpla atunci cand avem de-a face cu niste exemple…
Iata mai jos cateva exemplificari simplificate a ceea ce inseamna managementul configuratiei si provocarile de care se loveste in diferite domenii:
2. Managementul Configuratiei in diferite Domenii. Exemple.
Domeniul Automotive
Managementul configuratiei la fabricarea unei masini unicat include managementul versiunilor si managementul dependentelor dintre elementele componente din care amintesc aici doua: subsistemul electric si designul unei masini. Daca, aflat inca in faza de proiectare, apare o cerere de schimbare care solicita schimbarea designului, atunci trebuie revizuit si impactul asupra sistemului electric dar si asupra celorlalte subsisteme ale masinii. Pentru asta, ar trebui sa avem un sistem de versionare al documentelor de proiectare pentru sistemul electric si pentru design, care sa ne permita sa identificam clar ultima versiunea de referinta la ambele documente dar si un sistem de gestionare a dependentelor intre aceste doua subsisteme si celalalte module (ex: subsistemul mecanic, subsistemul de safety), pentru a vedea care dintre acestea pot fi afectate de o simpla modificare de design.
Domeniul Productiei Cinematografice
Va suna familiar “Scena 2, Dubla 3”? Daca nu, poate va aduceti aminte ca in filmele cu Jackie Chan, la sfarsit, sunt prezentate duble de la filmari mai putin reusite sau neselectate dar haioase. Un film este compus din mai multe scene. Insa pentru fiecare scena se pot trage chiar mai multe filmari (“duble”) care pot contine pana la sute de mii de cadre, pana totul iese asa cum doreste regizorul. Insa regizorul se mai poate si razgandi. Dupa ce selecteaza o dubla si dupa o noapte de somn profund, ii poate aparea in vis o voce care sa ii spuna ca prima dubla rejectata are “acel ceva” in ea care va face filmul de Oscar.
Asadar versionarea dublelor si a cadrelor si depozitarea lor astfel incat sa fie usor de identificat este in acest scenariu foarte importanta. Intr-un film pot fi pana la cateva sute de scene, cateva mii de duble si sute de mii de cadre. Managementul acestor cadre filmate, poate nu este la fel de complicat cum este managementul configuratiei la dezvoltarea unui sistem de operare, insa cu siguranta este mai dificila identificarea elementelor care conteaza, pentru a fi stocate separat si identificarea dependentelor, si aici nu ma refer la succesiunea cadrelor ci la care dubla dintr-o scena se potriveste cel mai bine ca interpretare si ca “intreg” cu o alta filmare dintr-o alta scena. Ca sa nu vorbim de filmele de desene animate in care gradul de complexitate al managementului configuratiei creste, cuprinzand atat provocarile din productia cinematografica cat si provocarile din domeniul dezvoltarii software…
Domeniul Dezvoltare Software
Provocarile din punctul de vedere al managementului configuratiei sunt destul de mari, mai ales in echipe mari si in proiectele in care partea de integrare este foarte importanta si/sau in care se folosesc release-uri intermediare. Pentru gestionarea acestor provocari se folosesc instrumente cum ar fi Subversion sau Clearcase care inlesnesc lucrul colaborativ, gestionarea versiunilor unor secvente de cod, module sau build-uri si a dependentelor dintre ele. Insa folosirea acestor tool-uri fara niste reguli clare (de versionare, drepturi de acces etc), nu simplifica foarte mult ecuatia. Exista multe companii in care desi se folosesc aceste tool-uri, gasim in salile de sedinte, table ca cea de mai jos :):
Domenul Vestimentar
“Daca imi cumpar pantofii astia, va trebui sa imi cumpar si o geanta noua, pentru ca ce am acasa nu se potriveste.” sau “Daca iau geanta asta si pantofii astia nu se potrivesc cu cele sase rochii pe care le am. Va trebui sa imi cumpar si o rochie noua.” Acesta este un altfel de management al configuratiei, poate cel mai dificil dintre cele enumerate mai sus :).
Acestea sunt insa doar cateva domenii. In fiecare dintre ele (mai putin in ultimul) s-au scris si se scriu carti intregi despre configuration management. Raman insa multe alte domenii despre care nu am vorbit din perspectiva configuration managementului, asa ca va invit sa sharuiti propriile exemple si experiente. Cum ar arata un exemplu si care ar fi provocarile unui management al configuratiei in domeniul pharma, IT sau in constructii?
In continuarea acestui articol, in curand:
- Exemple celebre de configuration management defectuos
- Beneficiile Configuration Management-ului
- Activitati de Configuration Management
- Configuration Management in PMBOKĀ® Guide
- Exemplu de Configuration Management Plan