Arhitect Software Magicianul din ingineria programarii
Pentru cineva aflat in afara domeniului IT, denumirea de Arhitect Software este extrem de seducatoare. Te duce cu gandul la un proiectant de geniu care construieste lumi iluzorii. Un fel de creator al celebrului Matrix. Sau te gandesti la Marele Arhitect, care lucreaza cu materia cea mai soft dintre toate… Pentru a limita cutezantele imaginatiei, l-am vizitat la biroul sau de la Fotonation Romania pe Valentin Mocanu, Arhitect Software si, in acelasi timp, Directorul Tehnic al companiei.
Valentin Mocanu crede ca nici o firma de dezvoltare software, dintre cele care produc aplicatii si nu doar le intretin, nu se poate lipsi de aceasta pozitie. "Chiar daca pozitia ca atare nu exista in organigrama companiilor, cineva trebuie, totusi, sa acopere si partea aceasta. Este persoana care isi asuma, in fond, responsabilitatea pentru calitatea produsului".
Pornind de la o cerinta a clientului, transmisa de catre partea de marketing si management a companiei, Arhitectul Software trebuie sa genereze o imagine, sa produca o specificatie conceptuala a aplicatiei. De multe ori, nu se porneste de la o cerinta explicita a unui client, ci doar de la o nevoie intuita a pietei.
Arhitectul este cel care defineste aplicatia de sus pana jos. El trebuie sa inteleaga ce se asteapta de la aplicatie, dupa care trebuie sa vada cum se poate imparti aplicatia in componente, care este rolul fiecarei componente si cum interactioneaza unele cu celelalte. Nu trebuie sa piarda din vedere nici interfata-utilizator a aplicatiei. La capatul lantului, Arhitectul trebuie sa imagineze cum poate fi testata aplicatia si cum se poate face validarea finala a produsului inaintea lansarii.
Din punct de vedere tehnic, Arhitectul este "creierul" in toata povestea dezvoltarii de software. El concepe si coordoneaza totul. La companiile foarte mari, spune Valentin Mocanu, exista si un Product Manager, iar Arhitectul se limiteaza la a desena produsele care sunt cerute, ramanand in sarcina "inginerului de santier" sa se ocupe de implementare. In companiile mai mici insa, cele doua roluri sunt cuprinse intr-unul singur. Atunci, Arhitectul Software trebuie sa urmareasca procesul de la un capat la celalalt, intreg produsul aflandu-se in raspunderea sa.
Responsabilitatile esentiale ale acestei pozitii permit comparatia cu arhitectura clasica. La fel cum un arhitect proiecteaza atat desenul global al "casei", cat si fiecare perete, usa sau incapere, cu toate conductele si firele care trec dintr-o parte in cealalta, Arhitectul Software trebuie sa elaboreze intreg proiectul aplicatiei sale.
Creativitatea este o caracteristica foarte importanta pentru un Arhitect Software, deoarece, de foarte multe ori, el trebuie sa creeze un anumit produs din nimic. Stie doar care sunt cerintele produsului si de aici inainte trebuie sa decida cum este mai bine sa faca acest lucru, lucru care se poate face in foarte multe feluri. "Rolul principal al Arhitectului Software", afirma Valentin Mocanu, "este sa aleaga calea cea mai potrivita dintre toate, atat din punctul de vedere al cerintelor, cat si al resurselor de executie pe care le are la dispozitie".
Pozitia de Arhitect Software este una de elita, aflandu-se in varful departamentului tehnic din firmele dezvoltatoare de software. Valentin Mocanu afirma ca de aici s-ar putea inainta doar catre o pozitie de management, ceea ce inseamna sa te desprinzi de zona tehnica si sa te apropii de partea de business. "Personal, as dori sa ma limitez la domeniul tehnic, nu vreau sa urc mai sus de atat. Imi place aceasta lume unde lucrurile se discern numai prin criteriul competentei".
Arhitectul Software de la Fotonation are doua echipe de programatori in subordine. Fiecare dintre echipe este alcatuita din patru ingineri si este coordonata de catre un Senior Engineer.
Spre deosebire de programatori, Arhitectul Software nu scrie cod, ci elaboreaza intr-un format standard documentatia care cuprinde toate specificatiile produsului. Pe baza lor, elaboreaza la nivel conceptual modulele, submodulele si componentele. Primind aceasta documentatie, inginerul sau programatorul transpune totul in codul concret.
Valentin Mocanu recunoaste ca a fi Arhitect Software nu inseamna ca trebuie sa ai intotdeauna ideea cea mai buna. Solutiile se gasesc printr-un dialog permanent. "Eu cer intotdeauna punctele de vedere ale celorlalti", spune el. "De foarte multe ori, imi ofera idei chiar mai bune decat ale mele. O parte foarte importanta a meseriei este sa stii sa-i asculti pe ceilalti".
Pentru a ajunge Arhitect Software, Valentin Mocanu crede ca trebuie sa acumulezi foarte multa experienta in domeniul dezvoltarii de software. Si el, ca toti ceilalti, a pornit de jos, ca programator, primind la inceput specificatii, pentru ca mai tarziu sa evolueze, la Fotonation, catre pozitia de Senior Engineer, si apoi catre Arhitect Software. Fotonation este o firma multinationala al carei profil este furnizarea de solutii de conectivitate pentru camerele digitale. Unul dintre proiectele in care Arhitectul Software poate fi implicat este acela de a defini si implementa un protocol de comunicare intre camera digitala si calculator, pentru ca utilizatorul sa-si poata descarca pozele. Deoarece atat aparatul foto, cat si PC-ul sunt deja date, sarcina Arhitectului este de a construi module care sa faca posibila comunicatia intre cele doua dispozitive. Cunostintele obligatorii pentru aceasta profesie, asa cum le vede Directorul Tehnic de la Fotonation, sunt cele de ingineria programarii – disciplina care descrie in mod riguros si matematic etapele si modulele care alcatuiesc un produs software. Pentru foarte multe proiecte, Arhitectul Software trebuie sa aiba si cunostinte vaste de tehnologie, solutiile ramanand altfel aproximative.
Fara sa cunoasca foarte bine piata salarizarii, Valentin Mocanu estimeaza totusi ca salariul mediu al unui Arhitect Software este de aproximativ 2.000 de euro. In orice caz, cel mai mic dintre salariile pentru aceasta pozitie ar trebui sa se situeze peste 1.000 de euro.
Valentin Mocanu
Experienta profesionala
- 1996 – 1997: Junior Software Engineer, ID Software Romania;
- 1997 – 1999: Senior Software Engineer;
- 1999 – 2000: Senior Software Engineer, UTI Systems SA;
- 2000 – 2001: FotoNation Romania;
- 2001 – 2003: Senior Software Engineer, FotoNation Romania;
- 2003 – prezent: Software Architect, FotoNation Romania.
Studii
- 1991 – 1996: Facultatea de Automatica si Calculatoare, Specializarea Software – Aplicatii si inteligenta artificiala, Universitatea Politehnica Bucuresti.