top of page

Versionarea in Automotive

Actualizată în: 15 feb. 2018

As dori sa scriu putin despre versionarea in firmele din industria automotive.


Pentru inceput cate putin despre versionare. Versionarea este unul dintre cele mai importante si ignorate aspecte ale muncii de inginer. Versionarea rezolva urmatoarele 3 mari probleme:


1.Cum imi recuperez munca daca imi ia foc/mi se fura/se strica laptopul?

2.Cum obtin niste fisiere care le aveam acum ceva timp si le-am suprascris sau sters?

3.Cum pot mai multe persoane sa lucreze in acelasi proiect fara sa se incurce unul pe celalalt?


Orice sistem de versionare iti va tine fisierele in siguranta, si va oferi o functionalitate prin care utilizatorul sa poata accesa versiuni din trecut ale fisierului.

In continuare nu voi incepe sa povestesc despre istoria sistemelor de versionare sau cum sa folosesti unul sau altul (e deja plin internetul de articole foarte bune). In schimb voi povesti putin despre versionarea asa cum este ea inteleasa si folosita in firmele de automotive. Pentru cei care nu lucreaza sau nu au lucrat vreodata in vreo firma de automotive ce voi povesti in continuare va parea foarte ciudat.


Acum sa trecem la subiect. In diferite domenii versionarea este un procedeu ce ajuta si imbunatateste procesul proiectului, dar nu este obligatoriu. In lumea automotiv-ului standardele internationale, standardele clientului si procesele interne inpun ca fiecare fisier si strop de informatie relevanta proiectului sa fie versionata.


Inginerii nu au de ales ce sistem sa foloseasca, cum se foloseste sau daca sa il foloseasca.Sistemul de versionare este ales global pe toata firma si va fi folosit conform procesului definit. Asta inseamna ca:

  • nu pui ce nume vrei tu la fisiere

  • nu pui tu unde vrei fisierul

  • nu vei crea tag-uri, checkpoint-uri cum vrei tu cu ce nume vrei tu

  • nu creezi branch-uri asa cum vrei tu si cand vrei tu.

Pentru cineva ce vine din alte domenii poate aceste aspecte par dure,autoritare si nenecesare.Insa tot ce am scris mai sus are sens cand iei in considerare:

  • firmele de automotive au de obicei mii de angajati. Nu poti lasa pe toata lumea sa foloseasca versionarea cum doreste.

  • standardele inpun anumite rigori legate de versionarea informatiei ,insa au si un aspect legal. Nu spun ca vei ajunge in Popa Sapca daca nu actualizezi cum trebuie un fisier, insa firmele trebuie sa respecte toate clauzele unui standard. La finalul zilei produsele automotive pot periclita viata consumatorilor.

Nevoile de versionare ale participanti la proiect sunt diferite. In continuare voi explica cele 3 categori de nevoi de versionare intr-un proiect de automotive.


Un manager (de orice fel ar fi el) va modifica un numar mic de fisiere. De obicei acele fisiere vor fi excel, word, planificari, etc. Deci fisiere de mici dimensiuni cu modificari minore. In cazul lor cel mai minimal sistem de versionare este suficient. Ei nu au nevoie de branch-uri, viteza sau spatiu mare de stocare.


Un inginer hardware sau mecanica va modifica fisiere de foarte mari dimensiuni(GB). Configurari de hardware design, PCB, design mecanic, etc. Pentru ei un sistem de versionare trebuie sa poata trata un numar relativ mic de fisiere de foarte mari dimensiuni. Nici pentru ei branch-urile nu sunt esentiale.


Un inginer software va modifica foarte multe fisiere de mici dimensiuni .Este adevarat si in software sunt fisierele binare de mari dimensiuni , insa de obicei sunt in numar mic. Pentru cei din software versionarea trebuie sa fie flexibila, sa poata permite treceri rapide de la o versiune la alta si o buna colaborare intre participantii la proiect.

Cu astea spuse sa va prezint cel mai folosit sistem de versionare in firmele de automotive.


PTC Integrity


PTC Integrity este un Life Cycle Management System. Asta inseamna ca face mai mult decat versionare. Teoretic PTCI va mentine si organiza orice informatie legata de proiect nu doar fisierele. Contine functionalitati legate de issue tracking, requirement engineering, test management si versionare.

Am sa spun de la bun inceput ca nu sunt un fan al acestui sistem.

PTCI are urmatoarele functionalitati demne de mentionat:

  • issue tracking folosibil.

  • requirement engineering foarte slab.

  • teste management foarte slab.

  • versionare…. practic inexistenta.

Pentru cei care au mai folosit Jira, Trac, GitHub, etc sunt obisnuiti si inteleg cum functioneaza un sistem bun de management al task-urilor si defectelor, PTCI nu este cel mai bun insa are o serie de functionalitati destul de bune. Legaturile intre issues sunt bine facute si este foarte configurabil.


Despre requirement engineering nici nu voi intra in detalii, pentru ca este foarte slab, voi spune un singur lucru … Doors.


Functionalitatea de test management este folosibila ca si concept insa interfata este un cosmar. Cei care lucreaza in testare software inteleg ca un produs poate avea mii de teste si milioane de pasi de testare. PTCI te obliga sa introduci toata aceasta informatie manual in cel mai oribil GUI imaginabil.


Versionarea in PTCI este axata pe schimbarea cate unui fisier pe rand. Pe scurt check out un fisier, ca nimeni altcineva sa nu il modifice, modifica acel fisier dupa care check in acel fisier.


Simplu ca si idee, doar ca ignora:

  • cooperarea intre ingineri(daca doi trebuie sa modifice acelasi fisier in acelasi timp)

  • un inginer software poate modifica cateva sute de fisiere deodata

Interfata este teribila , vizualizarea versiunilor este complet neintuitiva, iar operatiile de branch sunt de neutilizat. Pe langa aceste aspecte vine problema spatiului. PTCI este un sistem de versionare centralizat, cu baze de date destul de greoaie.

Pentru cei care au nevoie de fisiere foarte mari asta este o problema.


Daca PTCI are atat de multe probleme de ce este inca folosit?


Poate din inertie multe firme au abordat prima solutie care implementa cate putin din toate pentru a fi acoperiti in fata auditorilor. Poate putin cate putin inginerii din automotive s-au obisnuit cu PTCI si mai toate firmele au mers in directia asta. Sincer nu stiu.


Sunt sigur ca undeva exista o serie de prezentari power point si exceluri care explica beneficiile acestui sistem. Exista undeva o analiza cost efort si diagrame care explica ca PTCI este mai ieftin,mai bun si acopera nevoile inginerilor.


Sincer nu sunt curios sa vad aceste documente(pentru ca in primul rand sunt tinute in PTCI); pentru ca am vazut si vad cat de greu este de folosit sistemul si cat de mult se chinuie inginerii sa script-uie si sa modifice sistemul pentru al putea folosi.


Foarte multe firme cumpara licente de PTCI (credeti-ma nu sunt ieftine deloc) dupa care infinteaza intregi departamente care sa modifice si sa scripteze in jurul functionalitatii centrale pentru a putea fi folosit sistemul.


Inteleg ca fiecare firma are nevoi individuale de la un astfel de sistem, insa pentru pretul care il pretinde PTC per utilizator ma astept la mai mult.


Alternative


In continuare voi prezenta 2 alternative folosite de diferite firme de automotive.



O alternativa la pseudo versionarea care o face PTCI este SVN. Am vazut multe firme din industria automotive care foloseste SVN. Am folosit si eu in trecut SVN si este un sistem decent de versionare. Ca si functionalitate este minimal, insa ofera functionalitati intuitive. Pentru cineva care nu a folosit vreodata un sistem de versionare SVN este probabil cel mai usor de folosit.



Git este probabil cel mai bun sistem de versionare existent. Nu exista termen de comparatie intre Git si orice altceva.Pentru un inginer Git ofera tot ce trebuie:

  • acces usor la fisiere

  • visualizare excelenta a versiunilor

  • branch-urile sunt usor de creat si folosit

  • cooperarea in echipa este excelenta

  • plugin-uri superbe

  • extinderea functionalitatii este usoara si intuitiva

  • pretul este foarte mic(nu costa nimic ca e open source)

In ultima vreme am observat ca tot mai multe firme din oras graviteaza catre idea de a folosi Git ca si sistem de versionare.


Cel mai amuzant lucru este ca din versiunea 10.9 al PTCI, acesta ofera integrare cu Git. Un lucru bun, insa PTC prin integrare a inteles ca utilizatorul sa aiba optiunea sa renunte complet la sistem lor de versionare(pentru care ai dat bani) si sa foloseasca direct Git impreuna cu PTCI issue tracking .


Concluzii

Exista multe sistem de versionare mult mai bune decat PTCI.Este adevarat SVN si Git nu au sistem de issue tracking, requirement engineering sau test management. PTCI este greu de folosit cu functionalitati prost facute sau inexistente , dar cel putin are ceva.

Parerea mea este ca astfel de gandire este gresita. In locul PTCI-ului prefer:

  • GitHub - contine versionare prin Git,issue tracking.

  • GitLab - un GitHub personal ce se poate instala pe un server.

  • Git,Jira,Trac - instalarea unui server de Git impreuna cu Jira sau Trac rezolva cam toate problemele.

Tu ce parere ai? Spune-ne in sectiunea de comment sau pe forum.

92 afișări0 comentarii

Postări recente

Afișează-le pe toate

Cate Firme Software?

In decembrie 2017 cineva mi-a trimis un link cu distributia IT-C in cele mai mari orase ale tarii facuta de firma Brainspotting. Un pdf ...

Herghelia din Automotive

Majoritatea inginerilor au avut ocazia sa lucreze in cel putin o coporatie care se ia prea in serios. Cum recunosti o atfel de firma:...

Student angajat la o multinationala

Povestea mea ca student angajat la o multinationala a inceput la sfarsitul anului 1 de facultate ( Automatica si Calculatoare). Pasionat...

Comments


bottom of page