Team Foundation Server (presc. TFS) promite a fi o soluție "out of the box" pentru toată platforma de ALM din cadrul unei organizații ce poate fi utilizată atât pentru gestionarea proiectelor, cât și pentru a urmări work-flow-ul în echipe, pentru a gestiona codul sursă și pentru a compila și testa software-ul. Puteți face acest lucru fie cu Team Foundation Server instalat pe un server propriu fie prin utilizarea Visual Studio Online în cloud.
Potrivit Microsoft, acestea sunt câteva din caracteristicile majore, care sunt incluse în Team Foundation Server:
Version control, pentru gestionarea codului sursă cât și a altor elemente care necesită versionare.
Work item tracking, pentru a urmări efortul depus de echipă cât și cerințele venite din partea utilizatorilor. Pentru acest aspect există așa numitele work items ("elemente de lucru") user stories, requirements și task-uri.
Project management functions (funcții de management de proiect), care permit planificarea și urmărirea dezvoltării proiectului folosind Microsoft Excel și Microsoft Project.
Team build, pentru a permite un proces comun pentru dezvoltarea și compilarea de produse software. Procesul poate fi configurat în funcție de cerințe și necesități, pentru diferite tipuri de build-uri, incluzând build-uri de tipul continuous integration, scheduled builds, gated check-in, shelveset and rolling builds.
Data collection and reporting (servicii de colectare a datelor și raportare), care ajută la evaluarea stadiului de dezvoltare a unui proiect
Team Web Portal, care oferă un punct central de comunicare pentru echipe și care nu depinde de o instalație Visual Studio pe PC-ul utilizatorului.
TFS poate fi cel mai bine descris dacă ținem cont de cele două aspecte principale ce-l definesc. Pe de o parte, reducându-l la funcția primară pentru care am folosi TFS într-o organizație, putem spune că TFS este o platformă de colaborare ... sau, altfel spus, nu este decât o colecție de tool-uri care permit colaborarea la un proiect atât a membrilor echipei de dezvoltatori cât și de clienții și partenerii acestei echipe. Această colecție de tool-uri centralizate le permite să lucreze împreună mai eficient. Se pot împărtăși planurile de proiect și notebook-uri, evaluări intermediare, coduri sursă. Organizația se bazează pe o instalare "out of the box" de TFS sau pe consolidarea și îmbunătățirea elementelor ce însumează TFS-ul ca soluție ALM, prin modificarea sau adăugarea de noi elemente și scenarii de utilizare pentru a alătura noi funcționalități eficiente. Pe de altă parte, dincolo de ceea ce are de oferit TFS "out of the box", se poate spune că TFS este o platformă de colaborare proiectată special pentru integrare și extensibilitate. Prin intermediul API-ului (Application Programming Interface) se poate adapta Team Foundation Server la nevoile organizațiie, proiectului și echipelor individuale prin adaptarea și atașarea de noi funcționalități. Extensiile pot îngloba schimbări simple precum redenumirea unui câmp într-un work item, dar și pentru a integra un tool sau o funcționalitate complet nouă.
Extensibilitatea TFS este dată de structura sa multi-tier, pe mai multe niveluri, precum și de diferite modele cu care un utilizator poate interacționa în scopul de a adapta sau adăuga noi funcționalități. Team Foundation poate fi adaptat nevoilor individuale ale echipei și a proiectului folosindu-se unul dintre următoarele modele puse la dispoziție de Microsoft:
Client object model (cum sugerează și numele, se aplică la computerele pe care se utilizează TFS respectiv interfața la această platformă, Microsoft Visual Studio), poate fi folosit în scopul de a influența comportamentul TF atunci când vine vorba de controlul versiunilor, work item tracking și a build-urilor.
Server object model (se aplică pe application tier), poate fi folosit în scopul de a integra instrumente suplimentare în Visual Studio, în crearea de rapoarte și chiar în crearea de evenimente ce pot declanșa anumite acțiuni, cum ar fi copierea unui build pe share-ul clientului după ce s-a schimbat build quality-ul unui build ce a fost compilat cu succes.
Fig 1. TFS multi-tier environment
La Siemens, una dintre diviziile ce utilizează TFS a dezvoltat un tool care adaugă funcționalități adiționale pentru work item tracking. Printre funcționalitățile suplimentare care sunt disponibile după instalarea acestui tool pot fi enumerate următoarele: câmpuri și tab-uri suplimentare, funcționalitatea de a reactualiza cache-ul structurii work item-urilor, verificarea permisiunii utilizatorilor fără a fi nevoie de a intra în interfața administrativă, pentru a crea template-uri pentru diversele work item-uri folosite (fără a fi nevoie să se instaleze extensia oferită de Microsoft (Power Tools for Visual Studio) și posibilitatea de a se asocia și sincroniza work item-uri din diferite TFS Team Collections sau chiar servere de TFS.
Printre alte îmbunătățiri, care au fost aduse la instalarea noastră de TFS în scopul de a facilita și de a spori scenariile de utilizare nu numai pentru dezvoltatorii noștri dar și pentru clienții noștri se numără un tool ce poate copia build-urile de pe droplocation pe share-ul clientului în urma unor acțiuni și evenimente predefinite, instrumente pentru export și importarea de build definitions, integrarea cu instrumente de traducere, integrare cu alte produse PLM cum ar fi Team Center, check-in policies, securitate sporită pentru version control prin folosirea de folder-e și branch-uri securizate pe bază de IP direct în source control și multe altele.
Ar trebui remarcat faptul că Microsoft are un site numit Visual Studio User Voice, care poate fi folosit pentru a trimite sugestii și idei la Microsoft pentru a îmbunătăți TFS si\sau Visual Studio. Nu toate sugestiile vor fi puse în aplicare, dar este bine de știut că se poate transmite ideile direct către Microsoft și că este posibil să se obțină o funcționalitate nouă, benefică tuturor utilizatorilor de TFS fără a fi nevoie să înveți cum funcționează TFS și cum puteți utiliza TFS API în scopul de a dezvolta o extensie suplimentară.
Ca și în cazul tuturor platformelor de colaborare, există și unele neajunsuri care trebuie luate în considerare. Principalele mele nemulțumiri sunt legate de modul în care funcționează TFS, mai exact de faptul că este necesară o conexiune\comunicare constantă și activă între PC-ul utilizatorului și serverul de TFS. Dacă, de exemplu, aveți o pană de curent sau 'pica' rețeaua timp de 1 oră, procesul de dezvoltare de aplicații este forțat să stagneze. Motivul este că TFS va marca toate fișierele ca read-only pe sistemul utilizatorului până când se realizează un check-out. Dacă nu puteți comunica cu server-ul, nu puteți face check-aut și prin urmare nu le puteți edita. Dacă, pe de altă parte, le-ați dat check-out înainte și ați terminat de editat, nu puteți da check-in în timp ce conexiunea cu server-ul de TFS nu este realizată; în unele cazuri nu se poate da check-in chiar și după ce serverul este din nou disponibil, deoarece fișierul *.sln este marcat ca fiind offline și, uneori, nu reușește să se reconecteze la server în mod automat. În acest caz veți fi întâmpinați cu un mesaj asemănător:
This solution is offline.
[Team Foundation Server: https://tfsURI:443/tfs/collection/project]
The solution was offline during its previous session and will remain offline.
În trecut era necesar să intervenim în Windows registry sau să-I dăm rebind la fișierele *.csproj pentru a putea continua activitatea de dezvoltare, dar se pare că Microsoft a lucrat la remedierea acestei probleme din moment ce nu am mai întâlnit-o în ultima vreme.
TFS nu este "un sistem închis" așa cum s-ar crede, ci poate fi integrat și cu alte sisteme 3rd party pentru source control și issue tracking. Unele dintre funcționalitățile care sporesc extensibilitatea și flexibilitatea TFS este capacitatea sa de a integra și de a lucra cu alte pachete software, dar fără a se limita în mod necesar doar la produsele Microsoft (cum ar fi Microsoft Project Server, SharePoint, Excel și Outlook), ci si de la alte companii si dezvoltatori, spre exemplu ClearCase (IBM), GIT și Eclipse.
Noi funcționalități pot fi dobândite și prin instalarea suitei Microsoft Test Manager, un client de TFS separat, ce îți permite să faci testare software, dându-ți posibilitatea de a planifica și executa teste și de a administra atât mediile de testare fizice cât și cele virtuale.
Microsoft a introdus Team Foundation Server Express și VisualStudioOnline (cunoscut și sub numele de Team Foundation Service, o versiune de TFS în cloud). TFS Express este o soluție optimală pentru studenti, dezvoltatori independenți și echipe mici de până la cinci developer-i. Versiunea de TFS Express este gratuită și poate fi instalată pe PC-ul personal fără a fi necesară crearea unui server specializat. Dacă se consideră mai apoi că se dorește un upgrade la o versiune comercială de TFS, se poate realiza acest lucru cu ușurință și fără a pierde datele și istoria aferentă elementelor din version control. Dacă nu ești convins că TFS ar putea reprezenta o soluție viabilă pentru echipa ta și nu vrei să investesti bani într-un mediu de testare, Visual Studio Express sau varianta în cloud, VisualStudioOnline (de asemenea gratuită pentru studenți și echipe de până la 5 dezvoltatori) reprezintă un punct de pornire solid, fără a crește costurile.
Asa cum sugerează titlul acestui articol, scopul nu este doar acela de a prezenta funcționalitățile TFS doar pentru software developers, ci și de a descrie scenarii de utilizare a TFS-ului în care și echipe de nondezvoltatori ar putea beneficia de pe urma acestei platforme.
Desigur că Siemens, pe lângă alte domenii de activitate, se ocupă și de dezvoltarea de aplicații pentru produsele proprii - în acest scop folosește mai multe platforme, printer care și TFS… dar aceasta nu schimbă faptul că aceia care se ocupă de dezvoltare și testare nu sunt și utlizatori finali. Pe lângă aceștia mai există și alte echipe care sunt implicate mai mult sau mai puțin în procesele aferente unui proiect de dezvoltare. Există numeroase alte echipe ce interacționează frecvent atât cu dezvoltatorii cât și cu utilizatorii: printre aceștia se numără trainer-i, project manager-i, configuration manager-I și echipele de suport tehnic.
Răspunsul este simplu: Începând cu TFS 2015 Microsoft a introdus o schimbare majoră în sistemul de licențiere pentru Visual Studio online și TFS prin adăugarea licenței de tip Stakeholder. Această licență poate fi acordată în mod gratuit unui număr nelimitat de utilizatori; aceștia vor putea crea și edita elementele de lucru, vedea dashboard-urile și Kanban board-urile.
Potrivit MS scopul acestei licențe este de a facilita comunicarea în cadrul proiectului și de a permite întregii organizații de a participa activ la dezvoltarea proiectelor. Prin aceasta Microsoft pune bazele unui nou început si redirecționează accentul pe dezvoltarea scenariilor diverse de utilizare a TFS-ului.
Partea a doua a articolului va fi publicată în numărul 44 / februarie al Today Software Magazine.
de Ovidiu Mățan
de Ovidiu Mățan
de Ovidiu Mățan
de Sorina Mone