Today Software Magazine N21/2014

Embed Size (px)

Citation preview

  • 8/12/2019 Today Software Magazine N21/2014

    1/58

    T O D A Y

    S O F T W A R E

    Nr. 21 Martie 2014 www.todaysoftmag.ro www.todaysoftmag.com

    M A G A Z I N E

    : H .

    L D T

    A A

    A

    F

    D A

    AOP .NET

    D

    A A

    T T B M QPM A

    I C S -D T @ B R

    BibliotecJavaScriptdelogare

    HipHopVirtualMachine

    http://../Library/Caches/Adobe%20InDesign/Version%208.0/en_US/InDesign%20ClipboardScrap1.pdfhttp://../Library/Caches/Adobe%20InDesign/Version%208.0/en_US/InDesign%20ClipboardScrap1.pdfhttp://../Library/Caches/Adobe%20InDesign/Version%208.0/en_US/InDesign%20ClipboardScrap1.pdfhttp://../Library/Caches/Adobe%20InDesign/Version%208.0/en_US/InDesign%20ClipboardScrap1.pdf
  • 8/12/2019 Today Software Magazine N21/2014

    2/58

  • 8/12/2019 Today Software Magazine N21/2014

    3/58

    6

    CS W

    2014M M

    8I C S -

    D T@ B R

    O M

    10

    C CIT:I I

    IT P M

    13

    L D T

    S M D I

    15

    PM A

    C C

    19A A

    A B A B

    21

    F

    A O

    23

    T T BM QT M

    26

    :H 2.0

    R R

    29

    B JS

    B C

    32

    C - D B

    35M

    HHR M

    39

    AR S

    41

    AOP .NET R V

    44

    D AM B

    46D C J

    48

    C C B A

    52

    T M S

    54

    MWC 2014: S-, T-, P S-D C

    56

    G

    S B, P.D.

  • 8/12/2019 Today Software Magazine N21/2014

    4/58

    4 nr. 21/Martie | www.todaysoftmag.ro

    Numrul 21 al oday Sotware Magazin are ca tem general Project mana-gement-ul. Aceast tem nu a ost aleas ntmpltor, ci pentru a se afla nconcordan cu ...even mammoths can be Agile, eveniment dedicat prin

    excelen domeniului project management-ului, care aflat acum la cea de-a cincea ediiese va desura la Cluj.oday Sofware Magazine i- a maniestat susinerea i implicarean organizarea acestui eveniment , cunoscndu-i eficiena de necontestat n a transmite ipromova principiile de baz ale acestui univers complex care este project management-ul.Vastitatea acestui domeniu genereaz de cele mai multe ori riscul unor interpretri multprea personalizate care conduc spre direcia nedorit a eecului. Project management-uleste destul de multe ori neles ca o modalitate de promovare a liderilor tehnici care s-aucut remarcai pentru rezultatele lor. Din pcate, prin acest demers de transormare aPM-ului ntr-un titlu de promovare se poate cdea n capcana ignorrii laturii mana-geriale.Exist riscul ca persoana investit cu noul rol s nu manieste aceleai abilitii competene de nivel superior i n domeniul managementului. Dincolo de ormula

    ideal a expertului tehnic dublat de un bun manager la care aspir project manager-ul,este important s i se oere ocazia de a evidenia i dezvolta calitatea de lider tehnic saupe aceea de manager. Strategia corect n astel de cazuri este existena a dou direcii deevoluie a carierei.

    La finalul anului 2013, Project Management Institute publica premiile oerite pen-tru cele mai bune proiecte.Ctigtorul desemnat a ost: Adelain Desalination Projectdin Australia. Lansat n 2008, pentru a reduce riscul de a rmne r ap din sudulAustraliei, proiectul a ost construit pentru a acoperi 25% din necesarul de ap. Ulterior,s-a cerut dublarea cantitii de ap urnizat. n aceste condii, echipa de managementa proiectului a reuit s finalizeze proiectul cu 19 zile mai repede de data limit i cu odepire a bugetului cu doar 1%. Un alt premiu a ost acordat construciei celei mai mariautostrzi din Utah, USA. Valoarea iniial a proiectului a ost de 1 miliard de dolari i s-a

    reuit finalizarea sa mai iefin cu 260 milioane dolari, doi ani mai repede i a livrat 10 milen plus. Prin aceste dou proiecte am vrut s evideniez avantajele unui management decalitate i valoarea real care pot fi aduse. Din aceast perspectiv, recomand o certificarePMP sau Prince 2 tuturor managerilor de proiect prin prisma standardizrii proceselori a structurii unui proiect. Bineneles, vom vorbi pe larg despre toate acestea n cadrulevenimentului ...even mammoths can be Agile.

    V oerim o scurt prezentare a articolelor din acest numr. Startup Weekend Clujeste un eveniment ncheiat de curnd, a crui caracterizare am inut s v-o oerim chiardin perspectiva celei care a construit echipa ctigtoare, Antonia Onaca. Pstrndu-ne nsera evenimentelor, menionm articolul despre Barcelona Mobile World Congress carea punctat principalele lansri de tablete i teleoane ce au avut loc. Continum cu interviulacordat de Csaba Sucket revistei. Acesta surprinde principalele provocri ce apar atuncieti cel mai mare dezvoltator de jocuri de noroc online. Articolele urmtoare, Lupta noas-

    tr mpotriva Datoriei Tehnice, PM n Agile, Agilitate nainte de Agile, Faze i procese nstructurarea unui proiect,se constituie ntr-o prim serie dedicat temei project mana-gement-ului. Dintre articolele cu tematic tehnic, care toate se remarc prin subiecteinteresante, v oerim cteva titluri precum:Tick Tock on Beanstalkd Message Queues,napoi n viitor: Http 2.0, Bibliotec JavaScript de logare pentru dezvoltatori. Mainavirtual HipHopprezint pe larg evoluia mainii virtuale olosit de ctre Facebook ,iarAutoencoderscontinu seria de articole din sera reelelor neuronale i inteligenartificial.

    V dorim o lectur plcut !!!

    Ovidiu Man

    Fondator al Today Sofware Magazine

    Ovidiu Man, [email protected]

    Editor-in-chiefToday Software Magazine

    editorial

    http://../Library/Caches/Adobe%20InDesign/Version%209.0/en_US/InDesign%20ClipboardScrap1.pdfmailto:[email protected]:[email protected]://../Library/Caches/Adobe%20InDesign/Version%209.0/en_US/InDesign%20ClipboardScrap1.pdf
  • 8/12/2019 Today Software Magazine N21/2014

    5/58

    5www.todaysoftmag.ro | nr. 21/Martie, 2014

    Redacia oday Sofware Magazine

    Fondator / Editor n chie: Ovidiu [email protected]

    Editor (startups i interviuri): Marius [email protected]

    Graphic designer: Dan Hdrudan.hadarau@todaysofmag. com

    Copyright/Corector: Emilia [email protected]

    raductor: Roxana [email protected]

    Reviewer: avi [email protected]

    Reviewer: Adrian [email protected]

    Contabil : Delia [email protected]

    Produs deoday Sofware Solutions SRL

    str. Plopilor, nr. 75/77Cluj-Napoca, Cluj, [email protected]

    www.todaysofmag.rowww.acebook.com/todaysof mag

    twitter.com/todaysofmag

    ISSN 2284 6352

    Copyright oday Sofware Magazine

    Reproducerea parial sau total a articolelordin revista oday Sofware Magazine

    r acordul redaciei este strict interzis.

    www.todaysofmag.rowww.todaysofmag.com

    Lista autorilor

    Alexandru [email protected]

    Agile Coach and Trainer, with afocus on technical practices@Mozaic Works

    Radu [email protected]

    Senior Software Engineer@iQuest

    Roland [email protected]

    Junior Python Developer@ 3 Pillar Global

    Simona Bonghez, [email protected]

    Speaker, trainer i consultant nmanagementul proiectelor,

    Owner al Colors in Projects

    Radu [email protected]

    PHP Developer@ Pentalog

    Claudia [email protected]

    Avocat & Consilier in domeniul marcilor

    @ IP Boutique

    Cluj Business Analystswww.meetup.com/Business-Analysts-Cluj

    Mdlina Crian, Business AnalystMonica Petraru, Product ManagerCtlin Anghel, Business Analyst

    Monica [email protected]

    Manager@ Artwin

    Diana [email protected]

    Marketing Manager@ Codespring

    Mihai [email protected]

    Delivery Manager@ Yonder

    Dnes [email protected]

    Software engineer@ Accenture Romania

    Bogdan [email protected]

    Java developer@ 3Pillar Global

    Rare [email protected]

    Software engineer@ Betfair Romnia

    Marius [email protected]

    Inginer interesat i implicatn diverse activiti IT, de ladezvoltare, management, pn

    la educaie i jurnalistic ncadrul Epistemio, UTCN i TSM

    Paulina [email protected]

    Coordonator al Comisiei Innovation@ ClujIT Cluster

    Ciprian [email protected]

    Project manager@ ISDC

    Septimiu [email protected]

    Development Lead@ Endava

    Daniel [email protected]

    Scrum Master@ Endava

    Tudor [email protected]

    Software Architect@ Yardi Romnia

    Augustin [email protected]

    Project Manager@ Fortech

    mailto:[email protected]://../.pdfmailto:[email protected]://../.pdfmailto:[email protected]:[email protected]://../.pdfmailto:[email protected]://www.todaysoftmag.ro/http://../.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_3/twitter.com/todaysoftmaghttp://www.todaysoftmag.ro/http://www.todaysoftmag.com/http://../Library/Caches/Adobe%20InDesign/Version%209.0/en_US/InDesign%20ClipboardScrap1.pdfhttp://../Library/Caches/Adobe%20InDesign/Version%209.0/en_US/InDesign%20ClipboardScrap1.pdfhttp://www.todaysoftmag.com/http://www.todaysoftmag.ro/http://localhost/var/www/apps/conversion/tmp/scratch_3/twitter.com/todaysoftmaghttp://../.pdfhttp://www.todaysoftmag.ro/mailto:[email protected]://../.pdfmailto:[email protected]:[email protected]://../.pdfmailto:[email protected]://../.pdfmailto:[email protected]
  • 8/12/2019 Today Software Magazine N21/2014

    6/58

  • 8/12/2019 Today Software Magazine N21/2014

    7/58

    7www.todaysoftmag.ro | nr. 21/Martie, 2014

    TODAY SOFTWAREMAGAZINE

    (consultan) concretizndu-se ca produsn momentul n care trebuia sm gndescce vreau sac la SWCluj. Organizatorii auprezentat acest event (cel puin mie) ca uncontext unde trebuie saci o treabbuni relevant. Au transmis standarde oartenalte pentru participare i atunci nu am vrutsnu le ntlnesc.

    Ce pregtiri ai cut naintede eveniment?nainte de eveniment nu aveam idee des-

    pre cum poate sarate n realitate o soluiede genul acesta. tiam cpiaa are nevoiede o soluie pentru a creste employee enga-gementi atunci nainte de eveniment, amcut researchpe ce nseamn acest concept,cum este abordat i care sunt metodele vali-date de soluii organizaionale care l potinfluena. Mai tiam din experiena de con-sultant cimplementarea oricrei soluii n

    organizaii trebuie saibnite caracteristici: s nu fie overhead- ceva oarte simplu. e greu s i duci pe oameni n alte

    medii dect cele n care sunt - aa ccelmai uor este sstai n clientul lor de mail.

    curba de nvare mare omoar multedin iniiativele organizaionale - un pro-dus oarte ergonomic i uor de nvat.

    Am ncercat svorbesc cu oameni dinorganizaii pentru a vedea dac sunt nprezent mulumii de soluiile pe care le olo-

    sesc. Am aflat cfirmele cu care am vorbitolosesc variaii din procesele tradiionale deperormance management,dar nu considerci ajuti simt csunt oarte greu de imple-mentat. Am mai alat de la ei cemployeeengagemente un lucru la care se gndescmult i pe care deja ncearc sl influenezecu dierite soluii organizaionale. naintede eventaveam milioane de idei, inormaiii concepte care, acolo la aa locului, s-auordonat i s-au transormat n cum ar puteaarta ele n realitate.

    Avnd n vedere importana echipei, ci

    membri ai reuit satragi i ce strategie aiolosit?

    Am ost opt oameni aini n echip. Netiam toi din alte contexte i cred crelaiaanterioara ost un actor determinant. Credcfiecare dintre cei din echipau ost la unmoment dat suprai pe sistemele actualede managementul perormanei i au vzutvaloarea ideii (ca posibili beneficiari). Maimult de att, cumva ne respectam i neplceam de dinainte, unul cte unul i credci asta a ost un actor. tiam cva i o

    experien ainn cele douzile i de aptcam fiecare urmream asta de la eveniment.Ci dintre ei vor rmne alturi de

    proiect?Ne-am plcut oarte mult i am lucrat

    excepional mpreun. Dup SWCluj, fiecaredintre noi ne-am ntors la proiectele noastre,pentru care cusem deja angajamente i amstabilit cdup ce ne linitim i ne odihnimcteva zile, ne ntlnim ssrbtorim i svedem cum punem ara la cale. Pentru astava trebui sacem un alt articol n SM :).

    Care sunt cele mai importante trei saturiprimite la SWCluj?

    Ce mi-a plcut mult la SWCluj a ostaptul cmentorii i juriul nu au venit cusaturi pe care noi s trebuiasc sle respec-tm. A ost o experien oarte aindatoritaptului cfiecare a ncercat sneleag cevrem, ce problemncercm srezolvm icum ne-am gndit sacem asta. Mentoriiau ost extraordinari cne-au pus cele maibune ntrebri care sne acsgndim, sducem ideile mai departe, sne uitm critic

    i constructiv la ele. Cred cdacar fi venitcu saturi pur i simplu nu ar fi avut acelaiimpact. Ceea ce au cut ei oarte bine aost cne-au nvat prin ntrebri cum sgndim.

    Strategia e oarte bunpentru c un satl ai o singurdati pe cele mai multe dintreele le uii. Dar daccineva activeaz un pro-ces de gndire, acela rmne cu tine i dupeveniment i mai ales atunci cnd chiar ainevoie i mentorii nu mai sunt lng tine.

    Care sunt cele mai importante trei reali-

    zri ale weekendului?n primul rnd, cred c am validatrelevana ideii. Fiecare dintre noi, din echip,a avut experien n medii antreprenorialei cred ctim ccel mai important este svalidezi ideea. n al doilea rnd a ost aptulcam avut acces la experiena reala altoroameni. tiu cfiecare trebuie sne acempropriile greeli, ns este nepreuit cndpoi snvei din realitatea experimentataaltora, chiar i numai ca saci greeli noi.Din pcate viaa e prea scurtca sapucamsacem toate greelile din care sputem

    nva.A treia realizare a ost aptul ca ost o

    experien oarte plcut. Chiar ne-am simitsuperbine. Aceasta se datoreaz echipei deorganizare care a ost oarte neleapt cnda gndit evenimentul raportat la cum l vomexperimenta noi. Din experiena mea, ne-arfi luat undeva la un an de via, cel puin, casnvm lucrurile de acolo. Asta au cutoarte bine organizatorii, au condensat un ande via antreprenorialn 54 de ore.

    Ce premii ai ctigat?

    Foarte multe premii, oarte relevantepentru un start-up. Ele sunt listate pe sitei n principal presupun acces n contexteunde ideea i munca poate fi acceleratsem-niicativ precum i tool-uri oarte utile i

    relevante ca produsul nostru sajung rea-litate. Premiile au ost oarte bine gndite naa el nct sai tot ce ai nevoie sa te apucide treab,stransormi n realitate ideeacare va ace lumea puin mai bun. Pe lngcele care sunt pe site,au ost de apt mult maimulte. De exemplu, contacte personale cuoameni care te pot i vor ste sprijine sincersaci ideea realitate, multe ncurajri care

    sunt eseniale mai ales n partea de nceputcnd uncionezi pe kerosen emoional iaptul cdevii parte dintr-un grup care idevine automat suport n a ace ala pro-vocrile inerente oricrui nceput.

    Ai un sat pentru viitorii participani ieventual o reet/ ingredient de succes?

    E un sat care vine din experiena antre-prenorial, dar care a ost confirmat oartebine de SWCluj.

    Nu te baza pe intuiie, asigur-te cexisto nevoie reali documentat. De multe ori

    ni se pare csoluia pe care o gndim e oarteutil,pentru c ne identificm noi cu ea, dartrebuie svedem a cui problemo rezolvsau a cui via o ace mai bun i dacacelcineva chiar vrea acea problemsfie rezol-vat. Mai mult de att, citete research-ulpe domeniu svezi dacchiar se ntmplcum crezi cse ntmpl. Este incredibilct researchrelevant este cut i cam tot lgseti prin scholar.google.comsau sagepub.Chiar dacindustria de I este inovativ, eancearc s rezolve tot probleme omeneti,iar n problemele omeneti exist oarte

    mult know-howutil. Un alt sat este ssedistreze sincer la eveniment. E incredibil celucruri aine ies atunci cnd eti ericit i tesimi bine (cei de la zenQ au i construit unprodus ain pe conceptul acesta). Cnd etiericit, aa cum ziceau i ei n pitch, eti maiproductiv, gndeti mai bine, ai soluii maiaine, colaborezi mai bine i experiena e orecompensn sine.

    Marius [email protected]

    Inginer interesat i implicatn diverse activiti IT, de ladezvoltare, management, pnla educaie i jurnalistic ncadrul Epistemio, UTCN i TSM

    http://../Library/Caches/Adobe%20InDesign/Version%209.0/en_US/InDesign%20ClipboardScrap1.pdfhttp://../Library/Caches/Adobe%20InDesign/Version%209.0/en_US/InDesign%20ClipboardScrap1.pdf
  • 8/12/2019 Today Software Magazine N21/2014

    8/58

    8 nr. 21/Martie, 2014 | www.todaysoftmag.ro

    La Cluj se dezvolt cinci arii principale: Platorm Development,e-Commerce, Gaming, Product i Enterprise Data Services.ehnologia inovativ din spatele produselor Betair permite pro-cesarea a peste apte milioane de tranzacii pe zi, reprezentnd maimult dect volumul tranzaciilor de pe piaa bursier europeanla un loc; 99,9% dintre aceste tranzacii sunt procesate n maipuin de o secund. Cel care ne poate dezvlui o parte din secretulsuccesului acestei companii este Csaba-Attila Suket, Director o

    echnology la Betair Romnia, care i-a artat amabilitatea i ne-arspuns la cteva ntrebri:

    Bun ,Csaba, spune-ne cteva cuvinte despre tine.Salut Ovidiu. Pe scurt, am 33 de ani, am studiat la Cluj

    Universitatea Babe-Bolyai, specializarea Inormatic. La Betairam ajuns n 2008 i am avut dierite roluri ncepnd cu EngineeringManager, evolund pn la rolul de Director o echnology.

    Fiind developer la origini (baze de date), m simt apropiat deOracle i de spaiul Data, dar n acelai timp sunt un an SOA,Cloud, sisteme distribuite i limbaje noi gen Go, Agile/Lean(Betair Romnia fiind printre pionierii Scrum-ului n Cluj).

    Motto-ul meu personal dup care mi-am ghidat cariera i viaa

    mea este:think simple and positive, believe and achieve. Despre hobby-urile mele a putea spune c acestea sunt

    hocheiul i filozofiile orientale.

    n scurta prezentare a Betair Romnia am menionat despreprocesarea a peste apte milioane de tranzacii pe zi. Pe ce tehnologiise bazeaz platorma Betair, dac ne reerim la partea de server ibaze de date?

    n ultimii ani, partea de echnology de la Betair a trecutprin diverse transormri tehnologice i organizaionale pn sajungem la un model Delivery Centric. n acest moment echipelenoastre asigur ,,end to end deliveryla cea mai mare parte din

    platorma Betair, de la stadiul de specificaii, design, implemen-tare, testare, pn la releasei partea operaional.ehnologiile pe care le olosim sunt Oracle pentru partea

    de baze de date, pe lng alte sisteme NoSql i Java pentruaplicaii. Arhitectura noastr este de tip SOA, peste care avem

    aplicaii Web care olosesc JavaScript, HML, CSS, emplating(FreeMarker). Serviciile sunt construite olosind unrameworkintern bazat pe Jetty i Spring (Core, DataAccess, AOP, Batch) iJMS unde este nevoie.

    Pentru partea de buildi releaseolosim dierite tool-uri caMaven, Jenkins, Sonar, Nexus, Che. Sistemele de caching, load

    balancing sunt olosite pentru cele mai importante flow-uri. nplus, punem oarte mult accent pe calitatea aplicaiilor pentru aputea ace a unui astel de loadi n acest sens utilizm Mockito,estNG, JUnit, Selenium. Nu n ultimul rnd, implementarea con-ceptului de DevOps ne permite o autonomie crescut pe partea dedelivery i ne asigur o reacie prompt la urgene operaionale.

    Care este strategia de dezvoltare din punct de vedere tehnologic?n momentul de a urmrim mai multe direcii strategice

    dintre care cteva ar fi Cloud, tehnologii/limbaje de programarenoi i evoluie artitectural bazat pe eicien i uurin n aopera produsele i componentele noastre.

    Pentru o imagine mai complet, poi s ne spui care a ost prin-cipala realizare din punct de vedere tehnic din ultimul an?

    A ost un an superb, plin de realizari, n care am rulat la ovitez oarte mare i n care echipele noastre au livrat la un ritm

    Betair Romnia este cel mai mare centru de dezvoltare sofware al Grupului britanic Betair. Sediul din Cluj are n prezent peste250 de angajai, specializai ntr-o gam larg de limbaje de programare, analiz de business,securitatea inormaiei iprojectmanagement.

    interviu

    Interviu cu Csaba Suket -

    Director of Technology @ Betfair Romnia

    Csaba Suket

    http://../Library/Caches/Adobe%20InDesign/Version%209.0/en_US/InDesign%20ClipboardScrap1.pdfhttp://../Library/Caches/Adobe%20InDesign/Version%209.0/en_US/InDesign%20ClipboardScrap1.pdf
  • 8/12/2019 Today Software Magazine N21/2014

    9/58

    9www.todaysoftmag.ro | nr. 21/Martie, 2014

    TODAY SOFTWAREMAGAZINE

    de 40 de release-uri de producie n fiecare lun. Aceasta ne-a per-mis s ne perecionm ncepnd de la nivel architectural, procese(operaionale, Scrum, de development i de testare, etc.). Mai multdect att, ocusul a ost pe crearea de oportuniti de inovaietehnologic pentru angajaii notri; unele idei de business care auavut un impact au venit din rndul angajailor. A spune c valo-area adaugat business-ului prin aplicaiile i capabilitile noudezvoltate se impune detaat ca principala realizare a anului.

    Cum vezi evoluia Betair Romnia n urmtorul an?n urmtorul an ne propunem s continum investirea n

    calitatea produselor i proiectelor pe care le livrm. BetairRomnia este un business solid din toate punctele de vedere; sun-tem bine poziionai ca angajator prin tehnologiile, oportunitilei beneficiile pe care le oerim. Pe termen mediu ocusul nostruva fi pe creterea eficienei continund n a oeri oportuniti decretere i perecionare la toate nivelele pentru angajaii notri.otodat vom pstra ocusul pe cultura organizaional a firmei.

    Am auzit de Betair University, poi s ne spui cteva cuvinte

    despre aceasta i cui se adreseaz?Betair University este un program intern pentru angajaii

    notri, desurat de Camelia Hanga i Andreea Misaras, care oeroportuniti de dezvoltare proesional i personal. Este practicun concept umbrel pentru toate activitile de nvare de la cur-suri, workshop-uri la certificri, mentoring, mese rotunde. oateprogramele sunt personalizate n uncie de nevoile individuale iale echipei. Rolurile de trainer cursant se schimb recvent- fiec-are angajat poate s contribuie cu expertiza sa. Gama de activitide nvare este oarte larg de la cursuri tehnice la sof skills,management school, edine de coaching, pn la competiii deprogramare i jocuri olimpice. Betair University este un element

    central al culturii oganizaionale, angajaii fiind cei carei acmanagementul propriei dezvoltri personale i proesionale.

    Dac ar trebui s scrii un articol tehnic, care ar fi titlul acestuia?Cred c ar i: Capacity and Scalability on an E-Commerce

    Platorm.

    i mulumesc pentru amabilitatea de a rspunde la acestentrebri.

    Ovidiu [email protected]

    Editor-in-chiefToday Software Magazine

    mailto:[email protected]:[email protected]
  • 8/12/2019 Today Software Magazine N21/2014

    10/58

    10 nr. 21/Martie | www.todaysoftmag.ro

    Probabil c este deja binecunoscut misiunea Clusterului ClujI n generarea isusinerea unui context de interaciune a reprezentanilor industriei sofware cumediul academic i cu instituiile publice.Consolidarea unui potenial menit adinamiza evoluia mediului nostru socio-economic i accederea la un nivel de dezvoltarecomplet armonizat cu poziia Clujului de lider n domeniul I pe direcia serviciilor deoutsourcingse impun ca principale direcii de aciune ale Clusterului ClujI.

    Consolidarea tendinelor de dezvoltare

    ale irmelor i entitilor cu activiti ndomeniul I, prin ncurajarea paradigmeide diversificare a activitilor prin realiza-rea de produse I proprietar inclusiv prinstart-up-uri inovative, creeaz premizelenecesare garantrii perenitii industrieiI n arealul clujean, n condiii de aug-mentare a tuturor eectelor benefice ce-iac simit prezena de pe acum, lucru dejaperceput n mod clar n comunitate.

    Cteva obiective erme n acest sens, n

    care se inscriu activiti concrete, vizeazurmtoarele: crearea premiselor pentrucreterea competitivitii ntreprinderilordin sectorul I&C, bazat pe utilizareaintensiv a cunoaterii identiicarea ipromovarea iniiativelor ce genereaz pro-duse i servicii inovatoare accelerareacolaborrii, n domeniul cercetrii, ntremediul universitar i companii generareai atragerea de inanri pentru proiecte

    business

    Clusterul ClujIT: InovareInterdisciplinar i soluii IT avansate,

    pentru o comunitate urban de

    avangard

    Paulina [email protected]

    Coordonator al Comisiei Innovation@ ClujIT Cluster

    http://../Library/Caches/Adobe%20InDesign/Version%209.0/en_US/InDesign%20ClipboardScrap1.pdfhttp://../Library/Caches/Adobe%20InDesign/Version%209.0/en_US/InDesign%20ClipboardScrap1.pdf
  • 8/12/2019 Today Software Magazine N21/2014

    11/58

    11www.todaysoftmag.ro | nr. 21/Martie, 2014

    TODAY SOFTWAREMAGAZINE

    de cercetare&dezvoltare i inovare, ct i crearea mecanismelorpentru abordarea colaborativ de proiecte inovative de anvergurcrearea i promovarea brandului industriei I&C locale con-solidarea potenialului inovativ din domeniul I prin instruirispecifice generarea de interaciuni i contexte care s susin posi-bilitatea de dezvoltare, la nivelul firmelor membre ale clusterului,de produse I inovative, menite a le poziiona la nivel de top pepieele existente i de a le deschide noi oportuniti de pia, inclu-siv piee de ni.

    Aceast list de obiective cu adevrat ambiioase, i con-firm viabilitatea printr-un comportament bazat pe interaciuni,cu eecte deja concrete pe zona competitivitii. Este vorba des-pre cadrul de instruire pentru contientizarea i consolidarea deknow-how privind avantajul competitiv, oerit n contextul pro-gramului Competitivitate i Inovare afiliat cu Harvard BusinessSchool i derulat prin departamentul DECID al UCN, ct i desprijinirea activitilor de branding i nregistrare de mrci laOSIM. S-a realizat, de asemenea, pregtirea de proiecte pentruprogramul Future Internet, iar in ceea ce privete identificarea

    de noi oportuniti pentru finanarea inovrii, s-a demarat con-stituirea de consorii pentru proiecte finanate din recentul lansatHorizon 2020 program cadru pentru cercetare i inovare alComisiei Europene.

    n virtutea unui crez asumat prin nsui statutul asociaieiClujI Cluster, obiectivul cel mai important este ns oerirea desoluii I inovative pentru comunitate, bazate pe aport colaborativde know-howi competene avansate / chiar de avangard (!), pro-venite din toate mediile urnizoare de knowledgei expertiz caresunt att de bine reprezentate n urbea noastr prin potenialul pedomeniul I probat cu brio de firmele clujene,n conjuncie cucapabilitatile de inovare oerite de cele patru universiti membre

    ale clusterului. Este vorba deci de un potenial urias, iar anverguraproiectelor care se deruleaz pe aceast direcie major este pemsur, cci vorbim aici de proiectul de Dezvoltarea Inovativprin Inormatizare a Ecosistemului Urban Cluj-Napoca cunoscuti sub denumirea de Cluj-Napoca: Next Generation Brained City- proiect aprobat spre finanare pe POSCCE/ Op.1.3.3, ct i deproiectul major Cluj Innovation City, consolidat prin intermediulunui parteneriat public-privat puternic ce reunete autoritilelocale, mediul academic, mediul de business reprezentat prinClusterul ClujI/, n jurul a ceea ce este deja considerat a fi celmai mare proiect urban al oraului nostru.

    Aceste dou proiecte de mare anvergur, sunt menite a generaun areal de vieuire bazat pe conceptul inovativ de comunitate

    de tip urban ecologic i complet inormatizat, consacrat subparadigma de networked ecological city. Conorm acestui con-cept, mediul nostru urban are anse s devin un mediu armoniosi eco-eficient, n care componentele i nivelurile specifice suntarmonizate prin intermediul unei inormatizri integrative iexhaustive, acest sistem inormatic urban jucnd rolul de creier(brain) ce utilizeaz date colectate prin intermediul unor reelede senzori (smart sensor networks), dar i prin intermediul ope-ratorilor umani din toate contextele specifice ale comunitii (debusiness, culturale, educationale, sociale, medicale etc.), pentru agestiona i armoniza ntr-un mod inteligent resursele i compo-nentele comunitii de la fiecare dintre aceste niveluri.

    Este absolut clar c i energiile implicate pentru realizarea npractica acestui concept, sunt i vor fi i n continuare deosebit de

    importante! Iar semnalul dat de aptul c exist deja susinereaerm att a autoritilor locale, ct i a celor de la nivel naional,cu puncte de sprijin bine conturate chiar i la nivel european, este,n mod clar, de bun augur!

  • 8/12/2019 Today Software Magazine N21/2014

    12/58

    12 nr. 21/Martie, 2014 | www.todaysoftmag.ro

    ransylvania Java User Group

    Comunitate dedicat tehnologiilor Java.Website: www.transylvania-jug.orgData nfiinrii: 15.05.2008 / Nr. Membri: 563 / Nr. Evenimente: 43

    Comunitatea SMComunitate construit n jurul revistei oday Sofware Magazine.Website: www.acebook.com/todaysofmagData nfiinrii: 06.02.2012 /Nr. Membri: 1241/Nr. Evenimente: 17

    Romanian esting Community

    Comunitate dedicata testerilor.Website: www.romaniatesting.roData nfiinrii: 10.05.2011 / Nr. Membri: 721 / Nr. Evenimente: 2

    GeekMeet Romnia

    Comunitate dedicat tehnologiilor web.

    Website: geekmeet.roData nfiinrii: 10.06.2006 / Nr. Membri: 573 / Nr. Evenimente: 17

    Cluj.rb

    Comunitate dedicat tehnologiilor Ruby.Website: www.meetup.com/cluj-rbData nfiinrii: 25.08.2010 / Nr. Membri: 170 / Nr. Evenimente: 40

    Te Cluj Napoca Agile Sofware Meetup Group

    Comunitate dedicat metodelor Agile de dezvoltare sofware.Website: www.agileworks.roData nfiinrii: 04.10.2010 / Nr. Membri: 396 / Nr. Evenimente: 55

    Cluj Semantic WEB MeetupComunitate dedicat tehnologiilor semantice.Website: www.meetup.com/Cluj-Semantic-WEBData nfiinrii: 08.05.2010 / Nr. Membri: 152/ Nr. Evenimente: 23

    Romanian Association or Better Sofware

    Comunitate dedicat oamenilor cu experien din I indierent detehnologie sau specializare.Website: www.rabs.roData nfiinrii: 10.02.2011 / Nr. Membri: 235/ Nr. Evenimente: 14

    abra de testare

    Un proiect care i dorete s strng ct mai muli oameni carelucreaz ca i testeri.Website: tabaradetestare.roData nfiinrii: 15.01.2012 / Nr. Membri: 285/ Nr. Evenimente: 27

    n luna martie vom avea evenimente de lansare a numrului 21 SM n Cluj i n imioara. V ateptm s participai, s rsoimrevista mpreun i s asistai la prezentri ale articolelor publicate. De asemenea, v invitm s participai n Cluj la InnovationDays i la ...even mammoths can be Agile.

    CalendarMartie 10-14 (Cluj), 17-18 (imioara), 20-12 (Cluj)

    Microsof echWavemicrosof.com/romania/techwave

    Martie 15 (Cluj)

    Coderetreat

    it-events.ro/events/coderetreat-3

    Martie 18 (rgu Mure)

    EDx rgu Muretedxtargumures.com

    Martie 19 (Cluj)

    Lansarea numrului 21 al oday Sofware Magazine

    www.acebook.com/todaysofmag

    Martie 20-21 (Cluj)

    Cluj Innovation Days - recomandarea SM

    www.clujinnovationdays.com

    Martie 24 (imioara)

    Lansarea numrului 21 al oday Sofware Magazine

    www.acebook.com/todaysofmag

    Martie 24 (Iai)

    Open Source Iaiit-events.ro/events/open-source-iasi

    Martie 25 (Cluj)

    Monthly BA Community Meetup #5meetup.com/Business-Analysts-Cluj/events/165537042

    Martie 29 (Cluj)

    Windows Azure BootCamp n Cluj-Napocacodecamp-cluj-azurebootcamp.eventbrite.com

    Martie 31 (Cluj)

    Mobile Monday Cluj #6meetup.com/Cluj-Mobile-Developers/events/153087092

    Aprilie 4-5 (Cluj)

    ..even mammoths can be Agile - recomandarea SM

    colorsinprojects.ro/eveniment-cluj-4-5-aprilie-2014

    Aprilie 4-6 (imioara)

    imioara Startup Weekendtimisoara.startupweekend.org

    Comuniti IT

    comuniti

    http://../Library/Caches/Adobe%20InDesign/Version%209.0/en_US/InDesign%20ClipboardScrap1.pdfhttp://www.transylvania-jug.org/http://www.romaniatesting.ro/http://geekmeet.ro/http://localhost/var/www/apps/conversion/tmp/scratch_3/Cluj.rbhttp://www.meetup.com/clujhttp://www.agileworks.ro/http://www.meetup.com/Clujhttp://www.rabs.ro/http://www.rabs.ro/http://www.meetup.com/Clujhttp://www.agileworks.ro/http://www.meetup.com/clujhttp://localhost/var/www/apps/conversion/tmp/scratch_3/Cluj.rbhttp://geekmeet.ro/http://www.romaniatesting.ro/http://www.transylvania-jug.org/http://../Library/Caches/Adobe%20InDesign/Version%209.0/en_US/InDesign%20ClipboardScrap1.pdf
  • 8/12/2019 Today Software Magazine N21/2014

    13/58

    13www.todaysoftmag.ro | nr. 21/Martie, 2014

    management

    Contientizarea

    Proiectul la care am lucrat a pornit de lazero. Au ost momente cnd am ost presaide timp i sprint dup sprint am nceput sacumulm puin cte puin datorie tehnica.De obicei, la sritul sprintului ne ddeamseama c ne-am supraestimat abilitaile dea livra noi uncionalitti. La acel momenteram mult mai interesai n a livra ct maimult i ct mai repede, n deavoarea calitiitehnice. Feedback-ul din partea clientu-lui pe partea de arhitectur a venit oartetarziu, iar cnd a venit am realizat c partedin codul nostru nu respect ndeaproape

    recomandrile lui. Cteodat am livrat ouncionalitate care mergea corect din punctde vedere al businessului, dar codul din spateera slab structurat.

    Ne place ideea de arhitectur emergentn care structura aplicaiei se dezvolt pemsura ce proiectul evolueaz. Pe msurce sunt implementate cerinele clientu-lui arhitectura aplicaiei se dezvolt i secristalizeaz. E o modalitate bun de a luptampotriva incertitudinii - atunci cnd nutim de la nceput n detaliu toate cerinele

    sistemului, l construim pe msur ce aflmrspunsul la ntrebri.Adugnd o component aici, alta din-

    colo, aplicaia noastr a nceput s semene

    tot mai mult cu Frankenstein. Din punct de

    vedere al utilizatorului - aplicaia cea tot cetrebuia - dar codul a devenit pe zi ce trece totmai greu de ntreinut.

    Un alt punct slab al echipei noastreera aptul c aveam o singur persoanspecializat pe o anumit tehnologie - ca deexemplu Alex pe BPM. Cnd el era plecatn concediu,ceilali membri ai echipei careau scris cod BPM, netiind ce era acolo, auscris cod doar ca s mearg r s neleagn amnunt implementarea BPM. Acest lucruse numete eectul autobuz: de ci oamenie nevoie s fie clcai de autobuz pentru ca

    echipa s nu-i mai poat continua activita-tea n mod normal. n cazul nostru eectulautobuz era egal cu unu. Pentru a nlturaaceast deficien, am ncercat s avem celpuin dou persoane care s tie codul careine de o anumit tehnologie (n cazul BPMa ost vorba despre Cosmin i tean).

    Nevoia de schimbarePe msura ce ncheiam un Sprint i nc

    unul, codul surs al aplicaiei devenea tot maidificil de ntreinut. ot ce am pus sub pre

    ncepea s ias la supraa. Dezvoltatorii numai erau capabili s scrie cod pentru o noucomponent pn nu puneau la punct codulexistent. Soluiile rapide aplicate n trecut au

    Cnd implementezi o nou uncionalitate ai dou opiuni: (neagr sau alb) - repedei neglijent sau curat i inteligent. n primul caz se tot adaug o datorie tehnicpe care vei fi nevoit s o plteti la un moment dat. Dac alegi opiunea a doua -investeti initial mai mult timp i energie - dar devine mai uor s dezvoli aplicaia n viitor.

    Lupta noastr mpotriva Datoriei Tehnice

    Septimiu [email protected]

    Development Lead@ Endava

    Daniel [email protected]

    Scrum Master@ Endava

    Fig 1. grafice adaptate dup cursul PSPO de la Scrum.org

  • 8/12/2019 Today Software Magazine N21/2014

    14/58

    14 nr. 21/Martie, 2014 | www.todaysoftmag.ro

    transormat codul n nisipuri mictoare.Auzeam tot mai des la ntlnirile zilnice SCRUM: task-ul meu

    a durat de dou ori mai mult dect a ost estimat pentru c a tre-buit s sap i s reactorizez sistemul. Oamenii deveneau pe zi cetrece tot mai rustrai. Dezvoltatorii deveneau tot mai nemulumiipentru c petreceau mai mult timp s curee codul existent dects scrie uncionaliti noi. Managementul s-a alarmat pentru c asczut velocitatea echipei. n acelai timp dezvoltatorii au nceputs stea tot mai mult peste program n ncercarea disperat de alivra uncionalittile promise la timp.

    Pentru a gestiona User Story-urile i task-urile olosim atttabla de SCRUM ct i Jira. abla de SCRUM e inima echipeinoastre unde ne ntlnim i discutm toate problemele. FolosimJira pentru a oeri Product Owner-ului posibilitatea de a vedeaevoluia proiectului (Product Ownerul se afla n alt locaie dectlocaia echipei de dezvoltare). Pe msura ce timpul trecea - Jira adevenit tot mai greu de gestionat datorit task-urilor nenchise,task-urilor neplanificate, modificrilor la User Story aprute ntretimp. Din Jira a devenit imposibil s-i dai seama de starea proi-

    ectului. La un moment dat lucrurile au devenit att de grave nctnu am mai putut continua s lucrm aa.

    VizibilitateaPentru c nu se mai putea continua aa am scos totul la

    lumin: am pus datoria tehnic pe tabla agilei n Confluence.Partea cea mai grea a ost discuia cu clientul, s admitem c avemo problema i s-i cerem susinerea.

    Am nceput prin a revizui ntreaga arhitectur i ntreg codul.Am extins utilizarea Sonar, intrumentul olosit de noi pentru con-trolul calittii i Jenkins - care ne ajut la livrarea continu.

    Colegul nostru de la Endava Cluj - Mdlin a mers un pas

    mai departe. A creat un panou care oer o imagine de ansam-blu asupra celor mai importani indicatori de calitate. i aceastapentru toate echipele care lucreaz la un acelai proiect ntr-unmod comparativ. Dup cum putei vedea n imaginea de mai josse pot urmri: numrul i tipul bug-urilor i trendul evoluiei lor,acoperirea cu teste unitare a sistemului i rezultatul rulrii testelorautomate.

    Plata datorieiSunt trei pai pentru a scapa de datorie (conorm cursului de

    PSPO de la Scrum.org):1. nceteaz s te mai mprumui.2. Pltete cte puin din datorie.3. Repet pasul 2.

    Dup ce am acut vizibil datoria tehnic pe tabla de agilein Confluence, am nceput s rezolvm din ea puin cte puin nfiecare sprint. La un moment dat ne-am dat seama c n ritmulacesta se termina proiectul i noi nu terminam datoria tehnic.Aa c ne-am luat un sprintca s o rezolvam. n acelai timp amncetat s ne mai mprumutm.

    managementLupta noastr mpotriva Datoriei Tehnice

    http://../.pdfhttp://../.pdf
  • 8/12/2019 Today Software Magazine N21/2014

    15/58

  • 8/12/2019 Today Software Magazine N21/2014

    16/58

    16 nr. 21/Martie, 2014 | www.todaysoftmag.ro

    managementPM n Agile

    dierite ormule de lucru pentru a inal-iza cu succes proiecte inormatice i de acolabora impreun. Foarte cunoscutulwateralla ost olosit din plin n proiecteleI cu secvenierea azelor de descriere decerine uncionale i tehnice, cu analiza idesignul, iar n final implementarea, inte-grarea i testarea. Au urmat alte ormuleintermediare, incrementale cu spargereamonoliticului model wateralln segmente/iteraii mai mici, dar tot waterall. n finalmodelul de dezvoltare sotware care s-aimpus global a ost cel agileprin flexibili-tatea sa, dar i printr-un time-to-marketmult redus.Vorbind de agile, m voi reerin continuare la Scrum n calitatea sa decadru de dezvoltare sofware, dar desigursunt i altele (de exemplu: DSDM, Extreme

    Programming).

    Identificarea stakeholder-ilorn majoritatea proiecte lor am

    lucrat cu clieni externi n conjuncturiorganizaionale complexe, ceea ce a cutdiicil, uneori imposibil, participa-rea tuturor stakeholder-ilor principali lasedinele de nceput de proiect (projectkick-off). De aceea, un el important pentruun PM este s-i cunoasc toi parteneriiinteresai direct/indirect de proiectul de

    care este responsabil i pe lng acesta sle cunoasc i interesele legate de proiectsau produsul livrat de proiect. Una dintrecele mai neplcute situaii este cnd unstakeholder este identificat prea trziu, naza inal a proiectului. Aceast situaieneplcut v poate da peste cap planurilei acceptana final a produsului dezvoltat.

    Faza de fundamentaren proiectele din ISDC am optat n

    ultimii ani s propunem clienilor o az deundamentare naintea nceperii eective a

    sprinturilor de dezvoltare. n aceast az,putem identifica i relaiona cu stakeholder-ii direct implicai. Beneiciile acestui paspreliminar nceperii proiectului propriu-zis sunt imense, echipele de lucru (clienti urnizor) se vor cunoate i se vor alinialegat de modul de lucru (way o working)ide alte aspecte importante ale proiectului.Cu siguran acest pas trebuie oarte bineorganizat cu un plan i o agend clar naa el nct timpul s fie olosit eficient is acopere aspectele prioritare pentru nce-

    perea dezvoltrii.

    Diferene de ateptrin momentul alinierii cu clientul pot

    iei la iveal o serie de dierene de ateptri

    de ambele pri, ce apar nc din etapa devnzri. PM-ul trebuie s aib n vedereidentificarea i clarificarea acestor dierenei stabilirea unor acorduri cu clientul. Aiciintervin i aspectele legate de planificare,deinirea azelor de lucrri, numrul desprinturi ce vor fi olosite, mrimea echi-pei i modul de lucru. Practic la pornireaproiectului, trebuie acoperite n discui-ile cu clientul subiecte care pornesc de lacerinele uncionale i non-uncionalecare influeneaz arhitectura i atributelede calitate ateptate pn la elul n care seva ace implementarea i testarea n pro-iect. n cazul n care totui rmn punctedeschise sau neclarificate atunci recomanddefinirea unei liste de aciuni pe care PM-uls o urmreasc.

    NFR cerine non funcionaleExist cazuri n care trebuie revenit de

    mai multe ori asupra unor aspecte cndproiectul este complex i de lung durat.Un caz pe care l-am ntlnit a ost revenireai clarificarea Non-Functional Requirements(NFR): printre care se numra perormana,mentenabilitatea, robusteea i securitateasistemului sofware dezvoltat. Atenie ns,acestea pot avea un impact oarte mare asu-pra sistemului dup cum arhitectul vostru

    v poate spune. Modificri ale NFR-urilorn timpul dezvoltrii sistemului sofware,vor impacta planiicarea i bugetul pro-iectului pentru c au un potenial mare dea genera re-worksau reactoring. n cazulunui proiect cu pre ix aceasta v va daansa s v exersai talentul de a convingeclientul s plteasc suplimentar pentrumodificrile cute.

    Roluri i guvernana n proiectDeinirea, clariicarea i atribuirea

    rolurilor nc de la nceputul proiectului

    sunt de asemenea eseniale, ncepnd de laguvernana la nivel de Project Boardpnla clarificarea rolurilor n echipa/echipelede Scrum: Product Owner (PO), Proxy-Product Owner (PPO), Scrum Master(SM) sau eam leader (L), Arhitect, PMetc . Exist multe coniguraii de roluricare uncioneaz, aspect care depinde ide elul n care se desoar acel proiect:cu echipe de development mixte (urnizori client) sau doar de partea urnizoruluisau n colaborare cu sub-contractori sau

    consultani ai clientului. Sunt roluricare se pot cumula, uneori un PM estei SM/L, uneori SM este i PPO etc.. Lamodul general, cumularea acestor rol-uri implic responsabiliti importante

    precum evitarea conlictelor de interesecare pot aprea i luarea n considerare aparticularitii organizrii interne a com-paniei sofware.

    Definirea cerinelor funcionale iManagementul schimbrii (ChangeManagement)

    O alta lecie nvat n timp este csunt clieni care tiu exact ce vor i oartemuli care nu pot indica cu exactitate i tre-buie ghidai. n ond, n calitate de urnizorde servicii sotware, una dintre provo-cri este s ghidm clientul spre cea maibun soluie care s-l ajute s-i dezvoltesau mbunteasc aacerea. Aici inter-vine definirea cerinelor uncionale, careie este realizat de oamenii de business

    ai clientului n colaborare cu consultanispecializai, ie de urnizorul sotware ncolaborare cu clientul. Odat cu trecereade la waterallla agiledefinirea cerineloruncionale se ace n pai, n care echipade dezvoltare este implicat nainte de fie-care sprint n acele sesiuni numite (Scrum)de pre-grooming sau grooming. Rareoriavem documentaii complete uncionalei chiar i atunci cnd ele exist la momen-tul implementrii sunt deja nvechite. Deaceea o prioritizare preliminar cu clientul

    a cerinelor uncionale majore (epics) dinproduct backlogeste de dorit, pe sprinturi.PM-ul trebuie s se asigure c acea priori-tizare este realist i abordabil n contexttehnic i uncional dup consultarea cuSM/L-ul i architectul. n cazul unui con-tract/proiect cu pre fix, pentru a realiza odelimitare clar a uncionalitilor (projectscope) poate fi necesar o detaliere n avansa tuturor acestor cerine majore (epics) nunele mai amnunite (userstories) pentrutoate sprinturile.Aceast delimitare repre-zint una dintre marile provocri ale unui

    proiect cu pre/buget ix. Pentru a puteaavea evidena schimbrilor uncionale,trebuie pus la punct managementul schim-brilor (change management) care const ndefinirea un proces de raportare i aprobarea cererilor de schimbare a speciicaiiloruncionale (change management flow) i nidentificarea actorilor cu responsabilitilelor n acest proces (client, echip, PO, PM,Project Board, etc.). E important ca echipade dezvoltare s aib oarte clar definiiaunei cereri de modificare (Change Request).

    Rolul PM-ului aici e esenial, de aceea obun colaborare cu SM/L-ul i o alinierepermanent este necesar. Orice cerince vine de la client i care declaneaz opotenial schimbare trebuie notificat de

    http://../.pdfhttp://../.pdf
  • 8/12/2019 Today Software Magazine N21/2014

    17/58

    17www.todaysoftmag.ro | nr. 21/Martie, 2014

    TODAY SOFTWAREMAGAZINE

    echip ctre PM.

    Planificare, Ipoteze de lucru, Con-strngeri i Riscuri

    Bugetul alocat, rolurile necesare nechip pe sprinturi pe sptmni, dealca-rea n timp a bugetului (n ore i bani) io secveniere a activitilor i a reperelor(milestones)la finalizarea azelor de lucrri-sunt aspectele de care trebuie s in conto planiicare de ansamblu a proiectului (high-levelplanning). Planificarea trebuie saib n vedere ipotezele de lucru (assump-tions) de la care echipa de dezvoltarepornete, care pot s fie tehnice, uncionaleetc..Diversitatea lor este surprinztoare.Ele vin la pachet cu constrngerile (con-straints) proiectului: bugetul, data livrrii,

    atributele de calitate, disponibilitateamembrilor echipei urnizor i client. Nu nultimul rnd planificarea este legat de ris-curile identificate la nceputul proiectului.Aceast planificare trebuie pus n acordcu clientul nc de la nceputul proiectului,menionnd validitatea ei doar n contex-tul listei de ipoteze, constrngeri, riscuri.n cazul modificrilor ulterioare aprute ncadrul ipotezelor de lucru, PM-ul trebuie sia n considerare impactul asupra planific-rii deja agreate.

    Comunicarea i managementul stake-holderilor

    Comunicarea este unul din acto-rii decisivi n succesul unui proiect. IarPM-ul este un dirijor care orchestreazaceast comunicare. Deseori comunicareaeste neglijat i problemele de comunicarempiedic bunul mers al proiectului, darexist cteva lucruri care pot preveni astelde probleme dac sunt de la bun nceputstabilite:

    cum i la cine se raporteaz progre-

    sul i cu ce recven (zilnic, sptmnal,lunar) i n ce ormat/canal (e-mail, pe oplatorm de colaborare, meeting, Skype

    call etc.) fie el un stakeholder intern dincadrul urnizorului, fie un stakeholderdela client;

    inormarea periodic a echipei dectre PM i reciproc, dincolo de stand-up-urile zilnice; un meetingsptmnalpoate fi de ajutor;

    alinierea intern n cadrul actori-lor decizionali (PM, SM/L, Arhitect,Management, Sales);

    De asemenea, sunt i lucruri care ar tre-buie evitate:

    ntreruperea de ctre PM a dailystand-up-ului cu subiecte ce pot fi dis-cutate ulterior i nu intereseaz toimembrii echipei; de apt nu totdeaunaeste necesar prezena PM-ului n acestemeeting-uri;

    atribuirea de task-uri direct de PMctre membrii echipei r inormareaSM/L-ului;

    convocarea de edine cu participa-rea ntregii echipei cnd nu este nevoiede toi membrii ei;

    neglijarea problemelor i riscurilorcomunicate de echip n dailysau ulte-rior n discuii cu membrii echipei.

    Identificarea i dezamorsarea riscurilorntr-adevr este vorba de manage-

    mentul riscurilor. Gndii-v la riscuri cala ceva cu capacitate distructiv pentruproiectul vostru. Nu ai vrea s le trataicu atenie? Dezamorsarea acestor riscuriar trebui s fie printre principalele griji alePM-ului.

    Noi am cut acest lucru permanentn proiectele n care am ost implicat, cuscopul de a reduce probabilitatea i impac-tul lor prin dierite aciuni. mpreun cuechipa i SM-ul, PM-ul trebuie s identificei s gseasc mijloace de a reduce pagubelen caz c riscurile se maniest. E nevoie de

    transparen n echip pentru ca aceste ris-curi s fie puse pe mas de echip. i apoide consecven din partea PM-ului pentru

    a le documenta, monitoriza i mitiga. Suntcazuri n care riscurile trebuie puse pe masaProject Board-ului. E important ca acesteriscuri s fie colectate de PM/SM/Arhitectpermanent n toate mprejurrile. Nu vrezumai doar a ntreba membrii echipein timpul daily-urilor. Participai din cndn cnd ca observatori la edine tehnice,la sprint planning-uri i grooming-uri ivei identifica riscuri. Discutai periodic cumembrii echipei voastre, aa vei colectape lng impedimentele zilnice i riscuri lacare este expus echipa i proiectul.

    Monitorizarea progresuluiMsurarea progresului este un actor

    cheie n a determina succesul unui proiecti a aplica aciunile corective potrivite. La

    ora actual exist o multitudine de aplicaiicare aciliteaz echipele de dezvoltare nstocarea cerinelor uncionale, criteri-ilor de acceptan, statusul activitilordesurate i estimrilor lor iniiale, tim-pul petrecut pe activiti, legtura cu codulsurs i altele.

    n proiectele recente la care amlucrat am olosit JIRA (Atlassian) sauFS (Microsot). Cu ajutorul burn-downchart-urilor putei identiica zilnic ntr-un sprint dac progresul a ost conorm

    sprint planning-ului iniial. n caz de devi-eri, mpreun cu SM-ul putei lua msuricorective. Periodic, de exemplu o dat pesptmn putei verifica i starea bugetu-lui (ore/bani). n cazul proiectelor cu preix este util s avei o descriere a produ-sului, dealcat pe uncionaliti, numiti PBS (Product Breakdown Structure), ncare s marcai proporia de implementarepe o anumit uncionalitate i s avei i oestimare n eort i durat a ceea ce a mairmas de implementat. De cele mai multeori putei deriva acest PBS din product

    backlog.

    SUMMERINTERNSHIP

    BRILLIANTINTERNSWANTED20

    .NET

    Testing

    JavaBig Data/Analytics/

    BusinessIntelligence

    JULY 1AUGUST 22, 2014 / APPLY UNTIL APRIL 11!

    www.isdc.eu/careers/summer-internshipe-mail to [email protected]

    BECOME AN ISDC PAID INTERN!

    Experience a company that understands and

    rewards talent. If you are an IT student or fresh

    graduate and have the latest technologies at

    your fingertips, apply to join a competitive team

    of professionals! Good knowledge of OOP is a must

    and team spirit definitely helps. We promise tough

    development assignments because you can!

    IN

    GOOD

    COMPANY

  • 8/12/2019 Today Software Magazine N21/2014

    18/58

    18 nr. 21/Martie, 2014 | www.todaysoftmag.ro

    PM n Agile

    management

    QA Asigurarea Calitiiermenele de livrare, eortul i costurile

    nu sunt totul, sistemul sofware dezvoltat nproiect trebuie s aib atributele de calitatedorite de client. n cadrul ISDC am avutansa s pot apela la expertiza pe zonauncional, pe zona architectural/tehnici cea de calitate a proceselor de dezvol-tare i testare. Aceasta mi-a dat o indicaieobiectiv a strii de sntate a sistemuluidezvoltat i a proceselor olosite. Pe lngmecanismele implicite built-in de reviewa codului surs i cel de testare uncional,regsit n practica echipelor de dezvoltare,care i oer sigurana c nu i-au scpaterori serioase tehnice sau uncionale, reco-mandabile n ciclul de via al unui proiectsunt urmtoarele aciuni:

    un review arhitectural cut de untechnical leadsau un arhitect sofware;

    un review al procedurilor de rele-ase/deployment i management deconfiguraii;

    un test de ncarcare i perorman(load/perormance test) al sistemului;

    un test de securitate (white/blackbox).

    Managementul impedimentelor iproblemelor

    Exist impedimente i probleme carenu pot fi nlturate de SM i atunci acesteavor ajunge pe masa PM-ului. n acest cazca PM este necesar s identiici mijloacei alternative de a le rezolva: comunic tudirect cu clientul, rezolv probleme legatede resurse sau dac nu le poi rezolva sin-gur, ai un instrument puternic i influent:Project Board-ul n aa cruia poi aduceacea problem cu alternativele propuse detine. Dar nu-l surprinde, pregtete dintimp o agend i comunic-o board-ului,

    fixeaz o dat cnd toi membrii se ntl-nesc i clariic ceea ce te astepi de laboard.

    Disponibilitatea clientului i planificareacomun

    Una dintre problemele majore n multedin proiecte este indisponibilitatea per-soanelor cheie de la client. Pentru acestproblem v propun o sesiune comun deplanificare cu persoanele n cauz de la cli-ent sau cu managerul lor.Practic o astel dereconciliere a planificrii cute de echipade dezvoltare mpreun cu partenerii cheiede la client va duce la rezultate mai bune.

    Managementul delegaiilor reciproceO alt cauz comun a impedimentelor

    i problemelor ne-rezolvate este lipsa sauraritatea contactelor directe dintre echipade dezvoltare (sau a reprezentanilor ei:PM, SM, Architect, PPO) i client (sau areprezentailor lui: PM omolog la client,PO, Key User, est Manager). PM-ul estecel n msur s propun clientului caparte din planul de comunicare: un plande vizite reciproce care s elimine barierelede comunicare i s stimuleze comunicareadintre membrii ambelor echipe.

    Demo la clientOri de cte ori avei posibilitatea,planificai accesul clientului la un demosauo perioad de acceptan User AcceptanceTesting (UAT)on-sitela client sau la voi.E vital pentru succesul UA-ului s iiaproape de client. Planiicai delegaii laclient n care s acei demo la ultimeleunctionaliti dezvoltate sau pentru ancepe o perioada de UA. E posibil sntlnii rezisten din cauza costurilor dedeplasare ,dar argumentai-le prezentnd

    avantajele.

    RetrospectivaCel puin la inalul iecrei aze de

    execuie (o nou versiune de exemplu)constnd dintr-o serie de sprint-uri,este indicat s avei un moment deretrospectiv cu echipa i clientul n cares analizai parametrii proiectului: devie-rea pe estimri, gradul de re-work, calitateauserstory-urilor, calitatea codului, calitateatest-scripturilor. Este posibil s dorii sacei aceasta n sesiuni separate, dar e bines identificai cu echipa lucrurile care auuncionat i pe care vrei s le pstrai dari pe acelea care nu vreti s se repete.

    Concluzii

    Din punctul meu de vedere un PMntr-un proiect agiletrebuie s fie dinamic,flexibil, receptiv la eedback-ul clientului/echipei i s aib ntotdeauna o privirede ansamblu asupra proiectului. FocusulPM-ului rmne pe satisacia clientului icalitatea sistemului dezvoltat n buget i latimp, lucruri care se obin prin: comunicaresusinut i managementul stakeholder-ilor, prezena la client periodic, evaluareconstant mpreun cu clientul a sistemu-lui dezvoltat pn n momentul respectiv i

    decizia implementrii de CR-uri, identifi-carea i ameliorarea impactului riscurilorconjugat cu un QA eficient.

    http://../.pdfhttp://../.pdf
  • 8/12/2019 Today Software Magazine N21/2014

    19/58

  • 8/12/2019 Today Software Magazine N21/2014

    20/58

    20 nr. 21/Martie, 2014 | www.todaysoftmag.ro

    managementAgilitate nainte de Agile

    echipei de dezvoltare, conduce la practicade a avea echipe colocate i de a organizantlniri cum ar i Daily Scrum, Planningsau Retrospectiva, unde toat echipa esteprezent izic oricnd posibil. Principiulde a aveaeedback rapid i des se traduce npractica prin:

    a lua e ed back de la clieni pedezvoltri,

    dezvoltatorii s scrie teste unitareastel nct primesc un eedback rapid nlegtur cu corectitudinea schimbrilorcute de ei,

    integrare continu a modiicrilorpentru a permiteeedback rapid pe schim-brile realizate,

    eedback nenricat ntre membriiechipei pentru a mbunti colaborarean echip.

    Principiile sunt structura de rezisten

    a tranziiei: oricnd scopul unei practici nue neles bine, principiile ajuta la luarea uneidecizii pentru a opri practica respectiv saupentru a mbunti modul cum este pus naplicare.

    Unele practici sunt oarte importantepentru agilitate. De exemplu, o echip cuadevrat auto-organizat care poate luadecizii singur, n nite limite setate demanageri, poate permite schimbri mult mai

    rapide dect un model decizional centralizat.Dei mecanismul echipelor auto-organizateeste adesea neintuitiv i poate prea hao-tic, este dovedit ca iind uncional i esteparte a unui nou tip de management care seocup de sisteme complexe, numit de obiceiManagement 3.0.

    Uneori raiuni practice mpiedic echi-pele de la aplicarea unui anumit principiu;de aceea practicile ar trebui adaptate pen-tru a echilibra aceste lipsuri. De exemplu,echipele care sunt orate s lucreze ntr-unmod distribuit ar trebui ajutate prin utiliza-

    rea unor conexiuni non-stop video i audiope un ecran mare, care poate prea aproapela el ca i cum ar lucra n acelai birou. Deasemenea, cltorii ale membrilor echipelorntre birouri pentru a se cunoate mai bineva ntri colaborarea.

    Dac cei care conduc aacerea au odorin serioas de a crete agilitatea ei, nuse vor opri la practici organizaionale pre-cum adoptarea Scrum pentru toate echipele.Schimbri n alte zone sunt adesea necesare.Haidei s ne uitm ndeaproape la cteva

    dintre ele.

    Ciclul de releaseReducerea acestui ciclu de la un an la

    o lun sau mai puin nu este posibil, dup

    cum consider cei mai iscusii practicienidin industrie, r a schimba practicile teh-nice care sunt olosite. Agilitatea la acestnivel are nevoie de design sotware lexi-bil, teste automate, specificaii executabile,integrare continu i reactoringzilnic. narticolul precedent Agilitatea presupuneCrafsmanship s-a explicat n detaliu de ce.Articolul Building Changeability in Designhttp://www.mozaicworks.com/blog/buil-ding-changeability-in-design exploreazrolul pe care l are design-ul sofware atuncicnd schimbarea este la ordinea zilei.

    FeedbackPrincipiul de a avea un eedback rapid

    tinde s se rspndeasc i ctre altedepartamente, n special ctre HR. Dacdepartamentul de HR obinuia s ac

    evaluri bianuale, dezvoltatorii cu com-portament agilecer evaluri mai dese aleperormanelor proprii. Practici cum ar intlniri lunare one-on-onecu manageriidireci,eedbacklunar de tipul 360 degreessaueedbackcontinuu ntre membrii echipeiajut la ndeplinirea acestei nevoi.

    Management 3.0Rolul managementului se schimb spre

    mai puin control direct i mai mult ctreleadership. Unele dintre deciziile luate n

    mod uzual de manageri sunt delegate ctreechipe auto-organizate, iar manageruldevine coachi ajut membrii echipelor nluarea deciziilor. La aceast situaie nu seajunge peste noapte ci necesit o perioad detranziie; vizualizarea ariilor de responsabi-litate i a nivelurilor de delegare ale echipeieste de ajutor att pentru management ct ipentru echipe pentru a nelege noul lor rolpe drumul pe care au pornit. Odata ce acestlucru s-a ntmplat, managerii au mai multtimp i energie pentru a se concentra pe gn-dire strategic.

    Business AgilityProbabil cea mai dificil zon de schim-

    bat este cea de business. Agilitatea estemsurat la acest nivel n termeni de ct derepede poate compania s intre pe o noupia sau s i schimbe modelul de busi-ness. Practicile i principiile lean joac unrol important pentru acest tip de schimbare.Primul pas este de a identifica fluxurile devaloare ale noului model de business, adicpentru ce vor plti clienii i care sunt paii

    care trebuie cui pentru a crea aceastvaloare. Dac aceste lucruri sunt necunos-cute, este timpul pentru a defini nite ipotezei de a le valida prin experimente n modulLean Startup (vezi articolul precedent despre

    Lean Startup). Odata ce luxul de valoareeste clar este vremea s:

    l vizualizm; msurm cycle time: timpul scurs ntre

    momentul n care ncepe o dezvoltare iaceasta este finalizat;

    msurm lead time: timpul scurs ntremomentul n care un utilizator a cerutceva nou i momentul n care dezvoltareaeste pltit;

    mbuntirea continu a luxuluide valoare prin eliminarea zonelor undevaloarea este blocat i prin eliminarearisipei (orice nu ajut la dezvoltarea unorelemente de valoare).

    mbuntirea Continumbuntirea continu este partea

    cea mai diicil deoarece necesit adesea

    decizii dificile de business i management.Coaching-ul ajut oarte mult la meninerearitmului de mbuntire; acestea sunt ade-sea invizibile pentru membrii echipei dincauza obinuinei cu procesul curent delucru.

    ConcluziiAgile i Lean nu conteaz n sine.

    Agilitatea conteaz.Agilitatea este proprieta-tea unei companii definit ca viteza cu care seschimb cnd este nevoit. Companiile au cel

    mai adesea nevoie s se schimbe atunci cndsunt orate de pia, cnd decid s intre ntr-o pia nou sau cnd o plnuiesc cretereaccelerat.

    Pentru a mbunti agilitatea, trebuiedefinite n primul rnd oarte clar obiecti-vele de business. Urmeaz adoptarea setuluide principii i practici utile din agilei lean,innd tot timpul cont de obiectivele de busi-ness. Practicile de la nivelul echipei precumcele deinite de Scrum sau XP sunt doaro mic parte din mbuntirea agilitii.Managerii trebuie s i modifice rolul de la

    cel tradiional la unul de leadershipi gn-dire strategic. Departmentele HR trebuies i adapteze procesele de evaluare pentrua permite eedbackrapid i des, chiar daceste transmis direct ntre membrii echipei.Liderii aacerii trebuie s se ndeprteze deviziunea tradiional de departamente com-partimentalizate i s perceap businessulca flux de valoare, bottlenecks i eliminarearisipei.

    Agilitatea poate i mbuntit i rmodificarea tuturor nivelelor din organizaie.

    Amintii-v totui c ntotdeauna putei acelucrurile mai bine.

    http://../.pdfhttp://../.pdf
  • 8/12/2019 Today Software Magazine N21/2014

    21/58

    21www.todaysoftmag.ro | nr. 21/Martie, 2014

    Augustin Onaciu

    [email protected]

    Project Manager@ Fortech

    Faze i procese n structurarea unui

    proiect

    n majoritatea proiectelor sofware, exceptnd poate cele de mici dimensiuni, manageriide proiecte olosesc metodologii bine cunoscute. Acestea pot fi reprezentate de sistemeconsacrate - PMBOK (Project Management Body o Knowledge) sau PRINCE2 - dar potfi redate i prin metodologii proprii, specifice unei anumite organizaii. Dei aceste abordriau o serie de dierene de orientare i olosesc terminologii specifice, toate ilustreaz ctevapuncte cheie: proiectele sunt livrate pe etape care implic olosirea anumitor procese comunemanagementului de proiecte.

    n acest context, etapele sau azele unuiproiect sunt de o importan crucial pentruun manager de proiect. Organiznd lucru-rile n etape, managerul de proiect se asigurc serviciile sau produsele livrate la finalulfiecrei aze sunt n conormitate cu scopulurmrit i, n acelai timp, c membrii echipeide proiect sunt pregtii pentru urmtoareaaz a proiectului. n continuare voi sintetizaazele generale ale unui proiect, precum icteva aspecte practice din experiena pro-iectelor derulate i a relaiilor cu membrii

    echipei, clieni i ali actori interesai la nive-lul unui proiect.

    Stabilirea strategiei proiectuluin aceast prim az din ciclul de via al

    unui proiect se vor defini cerinele de businessi se vor ace propuneri n ceea ce priveteabordarea i metodologiile care vor fi olositen cadrul proiectului. n esen, aceast etapare ca scop obinerea aprobrii privind stra-tegia de business care valideaz abordarea cese dorete a fi olosit. Mai mult, e recoman-dat ca la finalul fiecrei etape a proiectului,

    echipa de proiect s revizuiasc cerinele debusiness pentru a se asigura c acestea suntn continuare valide i de actualitate.

    Analiz i pregtireInteraciunea consistent cu clientul

    i/sau acionarii alturi de colaborarea cumembrii echipei reprezint punctele cheieale acestei etape, iar activitile care o defi-nesc pot include:

    descompunerea componentelorproiectului printr-un Work Breakdown

    Structure (WBS); recrutarea unei echipe de proiect saucompletarea celei existente (dac estecazul);

    stabilirea unui plan de proiect i a unor

    etape intermediare. Implicarea membri-lor echipei n detalierea planurilor pentruetapele intermediare le oer acestora unsentiment de responsabilitate i proprietateasupra etapelor, asigurnd o implicare maiaccentuat din partea acestora;

    stabilirea unui program de colaborarecu echipele de suport (I, operaiuni etc.).

    Arhitectur i designAspectele implicate n aceast etap ac

    reerire la deinirea i crearea elementelor

    ce vor i livrate avnd ca punct de pornirestrategia proiectului i cerinele de business.n cadrul acestei etape, n uncie de dimen-siunea proiectului, este important i aportulunui analist de business care s lucreze cuclientul n vederea stabilirii elementelor dedesign i a detaliilor ce in de arhitectur.n cazul n care sunt necesare schimbrila nivel de proces, e indicat olosirea unuiFlow Chart sau a unei Swim Lane Diagrampentru a crea o reprezentare grafic a proce-sului. n acest punct, toate eorturile trebuieconcentrate pentru a analiza i considera

    potenialele riscuri nainte de a ncepe dez-voltarea propriu zis. Problemele prevzutedin timp sunt aproape ntotdeauna mai uorde abordat n etapa de design dect dup ceeste nceput dezvoltarea.

    Realizarea unei etape de design completei bine documentate oer ntr-o anumitmsur o siguran n ceea ce privete conor-mitatea serviciilor sau a produselor ce vor filivrate, la el cum o az incomplet de designconduce de cele mai multe ori la omitereaobiectivelor i a ateptrilor clientului.

    Pentru proiectele n care sunt identii-cate riscuri de natur tehnic alturi de alteelemente generatoare de nesiguran e bines fie luat n calcul i o etap de analiz aezabilitii n care s dovedim validitatea

    management

  • 8/12/2019 Today Software Magazine N21/2014

    22/58

    22 nr. 21/Martie, 2014 | www.todaysoftmag.ro

    managementFaze i procese n structurarea unui proiect

    produsului prin dezvoltarea unui concept(demo) de dimensiuni reduse.

    Dezvoltare i testare

    Odat ce proiectul dispune de o ana-liz complet i de un design suficient dedetaliat, echipa de proiect poate ncepedezvoltarea componentelor proiectu-lui. Detalierea diverselor procese i apotenialelor abordri ale acestor aze nureprezint obiectul acestui articol, fiind nsine un subiect amplu de tratat.

    Pregtire i validareObiectivul acestei etape este pregtirea

    pentru lansarea produsului, aceast azputnd implica:

    pregtirea ghiduri lor pentruutilizatori;

    asigurarea planului pentru suport; transerarea datelor spre sistemele

    clientului; identiicarea elementelor care vor

    asigura eficiena proiectului din momen-tul lansrii;

    validarea obiectivelor proiectului.

    Suport i feedbackAsigurarea suportului n timpul

    tranziiei proiectului de la echipa de proi-ect la echipa clientului reprezint ocusul

    acestei etape. n multe cazuri, din diverseconsiderente, echipa de proiect esterealocat pe noi proiecte mult prea repedeodat ce proiectul a ost livrat. n acest else diminueaz contientizarea beneficiilorsau a potenialelor probleme aprute duplivrare din motive care nu in n mod nece-sar de echipa de proiect. Monitorizareabeneiciilor proiectului livrat este oarteimportant pentru moralul echipei ipoate ajuta la promovarea proiectului

    sau la stabilirea unor puncte de aciuneviitoare pentru a asigura succesul viitoare-lor iniiative.

    nchiderea proiectuluiDei aceast etap nu se regsete prin-

    tre azele cele mai ateptate sau dorite aleproiectului, ea trebuie realizat cu maximresponsabilitate pentru a nu interera cualte iniiative care s-ar putea rsrnge ntr-un mod negativ asupra organizaiei. ncadrul acestei aze sunt necesare:

    finalizarea i stocarea documentaieiproiectului;

    realizarea unei analize post lansarepentru ca echipa de proiect s poat uti-liza pe viitor experiena acumulat;

    realocarea membrilor echipei nproiecte n care s i poat valorifica i

    aduce aportul n raport cu experiena icunotinele dobndite.

    Pe parcursul tuturor acestor etape sepot identifica o serie de procese specificemanagementului de proiect. Acestea sunt:

    Managementul etapelor- n cadrulacestui proces se asigur aptul c sendeplinesc condiiile pentru finalizareafiecrei aze. Este esenial n acest pro-ces nelegerea elementelor care trebuielivrate la finalul fiecrei aze.

    Planificarea - iniial este necesaro planiicare pentru ntreg proiectul,pentru ca ulterior s fie necesar o plani-icare ct mai detaliat pentru iecareaz n parte. rebuie asigurat aptul cproiectul dispune de resursele necesare,de metodologii, de tool-urile de suportpentru fiecare az astel nct proiectuls fie livrat la timp, n bugetul stabilit ila standarde de calitate.

    Control - este esenial inerea sub

    control a scopului, a costurilor i o ges-tionare corect a timpului, a riscurilor ia beneficiilor. Crearea de rapoarte careconin inormaii relevante pentru sta-diul i progresul unui proiect reprezinto practic des ntlnit.

    Managementul echipei- un man-ager de proiect este responsabil i pentrugestionarea echipei de proiect. Proiectelenecesit de cele mai multe ori ormareaunei echipe compuse din persoanecare au cunotine i abiliti dierite,iar managerul de proiect trebuie s iecapabil s determine componena echi-pei, pstrnd un echilibru i acoperindtotodat i potenialele nevoi de training.

    Comunicare - n fiecare az a proi-ectului este esenial stabilirea celuisau a celor care sunt responsabili de

    comunicarea cu membrii echipei, cumanagementul i/sau cu acionarii.Comunicarea inadecvat i ineicienteste o problem recvent ntlnit ncadrul multor proiecte.

    Integrare - multe proiecte nu sunt desine stttoare, ci sunt pri componenteale unor sisteme mai complexe care serelect asupra unor pri importantedintr-o aacere. rebuie luat n calculcu atenie interaciunea dintre proiectulcurent i restul componentelor sau

    iniiativelor existente.

    Aadar, abordarea cu atenia i grijanecesar a tuturor acestor aze din ciclulde viaa al unui proiect este deosebit deimportant pentru succesul proiectului,pentru calitatea produsului oerit clientu-lui (extern sau intern) i pentru satisaciai totodat evoluia echipelor.

    Young spiritMature organizationA shared vision

    Join our journey!

    www.fortech.ro

    http://../.pdfhttp://../.pdf
  • 8/12/2019 Today Software Magazine N21/2014

    23/58

    23www.todaysoftmag.ro | nr. 21/Martie, 2014

    Tick Tock on Beanstalkd Message

    Queues

    Tudor [email protected]

    Software Architect@ Yardi Romnia

    programare

    Sunt sigur c muli dintre voi cunoateitermenul de cozi de mesaje (message queue),mai ales dac ai avut ocazia de a lucra cuaplicaii care i desoar operaiile ntr-unmod asincron. Aceste cozi de mesaje oercteva avantaje majore cum ar fi:

    Decuplare Separarea logicii aplicaiei, Scalabilitate Mai muli clieni pot

    procesa date n acelai timp, Redundan Erorile nu se pierd, iar

    procesarea lor poate fi reluat.

    Exist mai multe servicii prin care se pot

    implementa cozi de mesaje, dar acest articolse reer doar la Beanstalkd.

    BeanstalkdBeanstalkd este un serviciu cu o intera

    generic olosit pentru a reduce latena ntreprocesele unei aplicaii care necesit un timpmare de execuie. Datorit intereei gene-rice, serviciul reprezint un punct major descalabilitate n cadrul aplicaiei dezvoltate.Beanstalkd nu introduce nicio limitare deimplementare (limbaj sau serializare) deoa-

    rece se bazeaz pe PUSH sockets pentrucomunicare i are un protocol simplu princare ace acest lucru. Pentru a nelege maibine restul articolului este important s avemciva termeni de baz. Iat o descriere a

    vocabularului Beanstalkd:

    Job: Reprezint mesajul n sine, seriali-zat dup dorin sau n uncie de librriade client olosit.

    ube: Namespace-ul olosit pentrucoad. Beanstalkd suport mai multe coziin acelai timp.

    Producer: Procesul care se ocup depunerea mesajelor n coad pe tuburi.

    Consumer: Procesele care consummesajele puse n coad pe unul sau maimulte tuburi.

    Operations: Productorul sau con-sumatorul pot s eectueze urmtoareleoperaii pe joburile puse pe tuburi.

    put reserve delete release bury

    Problemind s cred c cel mai uor se nva din

    exemple; de aceea, m-am gndit la urmtoa-

    rea problem:

    S se construiasc o aplicaie web undeutilizatorii pot s ncarce iiere video ndiverse ormate, astel nct ulterior aceste

    n general,timpul e o dimensiune restrictiv, cu att mai mult n industria I, unde oriceprodus, n orice stagiu, se raporteaz direct la aceast unitate de msur. Mai mult dectatt, dezvoltatorii de sofware au clasificat timpul n categorii, iar resursele alocate unuiproiect se concentreaz n esen pe eficientizarea timpului pentru dezvoltarea produsului.n acest articol m voi reeri doar la timpul de execuie a unei aplicaii ntr-o sesiune dat.

  • 8/12/2019 Today Software Magazine N21/2014

    24/58

  • 8/12/2019 Today Software Magazine N21/2014

    25/58

    25www.todaysoftmag.ro | nr. 21/Martie, 2014

    TODAY SOFTWAREMAGAZINE

    {lename => $video->lename(),headers => $video->headers()->to_hash(),data => $video->slurp(),

    # ... additional user data}

    );

    # Making sure we use the right tube for sending the #data.

    MyApp::Globals->message_queue()->use( raw_videos );

    # Storing the data in the queue...MyApp::Globals->message_queue()

    ->put({priority => 10000,data => $object->pack(),

    # Serialization occurs automatically ...}

    );}

    Consumatorii lucreaz n bucle continue cernd mesaje de

    la Beanstalkd pe msur ce proceseaz datele, marcnd status-ulaciunii n urma procesrii, astel nct s putem identifica attnumrul de rulri corecte, ct i erorile care au aprut pe parcurs.Mai mult dect att, n cazul erorilor putem relua mesajele marcateca fiind eronate odat ce problema a ost corectat ulterior.

    Un alt aspect important este c paralelizarea consumatorilorse ace prin procese de sistem, ceea ce nseamn un managementuor. n acelai timp, se scoate din calcul locking-ul unor resurse lanivel de aplicaie i implicit memory leaks.

    # Getting messages only from these tubes ...MyApp::Globals->message_queue()

    ->watch_only( raw_videos );

    while( 1 ) {# Retrieving a job from the message queue and# marking it as reserved...

    my $job = MyApp::Globals->message_queue()->reserve();

    eval {my $data = $job->args();

    # Automatic data deserialization ...# Doing the magic on the data here ...

    };

    # In case of an error we signal the error in# back-end and budy the job.

    if( my $error = $@ ) {$logger->log_error( $error );$job->bury();

    } else {$job->delete();

    # If everything is ok we simply delete the job# from the tube!

    }}

    ConcluziiCa o not personal, ntotdeauna mi-au plcut soluiile simple

    i elegante care au un set redus de reguli i o terminologie simpl.Beanstalkd este un astel de exemplu. n alt ordine de idei, esteimportant s realizm c adoptarea acestui serviciu reprezint omunc de integrare, ntr-o oarecare msur, i roata nu ar trebuire-inventat n niciun punct de dezvoltare a aplicaiei.

    Un alt aspect important este aptul c, olosind un sistem dis-tribuit n aceast manier, el permite att compresarea/dilatareatimpului, ct i ragmentarea execuiei ntr-un mod evident, iarceea ce ar dura cteva sptmni, rulnd n mod secvenial, sepoate reduce la cteva zile sau chiar ore n uncie de durata pro-cesului de baz.

    Pros Rapididate Persisten

    Nu impune niciun model de serializare

    Cons Modul distribuit este suportat doar n client Lipsa model securitate

  • 8/12/2019 Today Software Magazine N21/2014

    26/58

    26 nr. 21/Martie | www.todaysoftmag.ro

    Rare [email protected]

    Inginer Software@ Betfair Romnia

    programare

    napoi n viitor: Http 2.0

    Oscurt privire n istoria i dezvoltarea protocolului HP (Hypertext ranserProtocol), pentru a nelege mai bine modificrile propuse pentru versiunea 2.0.Nevoia de evoluie a protocolului HTTP

    HP este unul din protocoalele care

    au alimentat evoluia spectaculoas aInternetului: permite clienilor s comu-nice cu serverele, undamentul a ceea ceeste azi Internetul. A ost conceput iniialca un protocol simplu care s asigure tran-serul unui fiier de la un server ctre unclient (versiunea 0.9 propus n 1991).Succesul incontestabil al protocoluluiace ca azi miliarde de dispozitive s iecapabile s comunice olosind HP (ver-siunea curenta 1.1). Variaia extraordinarde coninut i de aplicaii disponibile azi,mpreun cu cerinele utilizatorilor pentru

    interaciuni rapide mping HP 1.1 pestelimitele imaginate de cei care l-au proiectat.Prin urmare, pentru a satisace urmtorulsalt n perormana Internetului este nece-sar o nou versiune a protocolului, cares rezolve limitrile actuale i s permito nou clas de aplicaii, mai perormante.

    Laten versus lime de bandLatena i limea de band sunt dou

    caracteristici care dicteaz perormana tra-ficului de date n reea.

    Latena (dus/dus-ntors) se reer ladurata n care un pachet se propag de lasurs la destinaie(dus) i retur(dus-ntors)

    Limea de band este capacitateamaxim a unui canal de comunicare.

    Ca o analogie cu instalaiile sanitareale unei locuine, putem considera limea

    de band ca fiind diametrul unei evi pen-tru ap. Un diametru mai mare permites treac mai mult ap. Pe de alt parte,n situaia n care eava e goal, indierentde diametrul ei, apa va ajunge la destinaiedoar dup ce va strbate ntreaga lungime aevii (latena).

    Este intuitiv s judecm perormanaunei conexiuni n uncie de limea deband (o conexiune de 10 Mbps este maibun dect una de 5 Mbps), dar limeade band nu este singurul actor care con-troleaz perormana: de apt, din cauza

    particularitii aplicaiilor web de a uti-liza mai multe conexiuni de scurt durat,lantena influeneaz mai mult perormanadect limea de band.

    Figura 1. Evoluia timpului de ncrcare a

    unei pagini (milisecunde) n funcie de limea

    de band (Megabit/s). Reprodus dinMike Belshe

    - More Bandwidth Doesnt Matter (much)3

    http://../Library/Caches/Adobe%20InDesign/Version%209.0/en_US/InDesign%20ClipboardScrap1.pdfhttp://../Library/Caches/Adobe%20InDesign/Version%209.0/en_US/InDesign%20ClipboardScrap1.pdf
  • 8/12/2019 Today Software Magazine N21/2014

    27/58

    27www.todaysoftmag.ro | nr. 21/Martie, 2014

    Figura 2. Evoluia timpului de ncrcare a unei

    pagini (milisecunde) n funcie de laten. Reprodus

    dinMike Belshe - More Bandwidth Doesnt Matter (much)3

    Concluzia acestor observaii este corice mbunatire n lantena comunicaieiare un eect direct asupra vitezei aplicaiilorweb. Dac prin mbuntirea protocoaleloram putea reduce necesarul de comunicarentre cele dou capete ale unei conexiuni,

    atunci am putea transera aceleai date ntr-un timp mai scurt. Acesta este unul dinobiectivele asumate de HP 2.0.

    Scurt incursiune n TCPPentru a nelege limitrile versiunii

    1.1 este util s ne uitm puin la protoco-lul CP (ransmission Control Protocol),care asigur transportul datelor ntre clienti server:

    la stabilirea unei conexiuni estenevoie de un schimb de trei mesaje

    (three-way-handshake) ntre client i ser-ver, nainte de trimiterea oricrui pachetde date. Prin urmare latena conexiu-nii se reflect direct n viteza cu care setranser datele.

    CP este optimizat pentru conexiu-nile cu durat mare i pentru transerulunei cantiti mari de date pe aceeaiconexiune: dup stabilirea unei conexi-uni un server va crete gradual numrul

    de pachete trimise ctre client pe msurce primete conirmarea livrrii lor(algoritmul slow start). Astel, limea deband nu va fi olosit integral imediat cese realizeaz conexiunea. Prin contrast,majoritatea aplicaiilor web declaneazmulte conexiuni de scurt durat pen-tru a transera coninut (conorm HTTPArchive2o aplicaie web este compusn medie din 90 de resurse - coninutHML, Javascript, imagini etc.).

    Dei uncionarea HP nu estecondiionat de CP ca protocol detransport, unul din obiectivele HP 2.0este modiicarea standardului pentru aproita de aceste particulariti ale nive-lului de transport n scopul mbuntiriisubstaniale a vitezei percepute de utiliza-

    torii aplicaiilor web.

    Limitrile HTTP 1.1Unul din obiectivele HP 1.1 a ost

    de a mbunti perormanele HP. Dinpcate, dei standardul speciic lucruricum ar i procesarea cererilor n paralel(request pipelening), practica a invalidataplicarea lor din cauza imposibilitii utili-zrii corecte. n acest moment majoritateabrowser-elor dezactiveaz n mod implicitaceast opiune. Drept urmare, HP 1.1

    impune o ordine strict a cererilor adre-sate unui server: un client iniiaz o cererectre server i trebuie s atepte rspunsulnainte de a iniia alt cerere pe aceeaiconexiune. Astel, un rspuns de dimen-siuni mai mari poate bloca o conexiuner a permite procesarea altor cereri aleclientului n acest timp. Mai mult, serverulnu are posibilitatea de a aciona conormprioritii cererilor unui client.

    Dezvoltatorii de aplicaii web au gsitsoluii de evitare a acestor limitri, caren acest moment sunt considerate prac-tici recomandate pentru perormanaaplicaiilor web:

    majoritatea browser-elor deschidpn la ase conexiuni simultane ctreacelai domeniu - ca o alternativ laimposibilitatea practic de a cere maimulte resurse n paralel pe aceeai cone-xiune; am menionat deja c o pagineste compus n medie din 90 de resurse;dezvoltatorii web au supralicitat aceastacilitate i distribuie coninut pe dome-nii dierite (domain sharding) pentru aora descrcarea ct mai multor resursen paralel

    iierele de acelai tip (Javascript,CSS - Cascading Style Sheets, imagini)

    sunt concatenate ntr-o singur resurs(resource bundling, image sprites) pentrua evita penalizarea impus de HP ladescrcarea multor resurse de dimensi-uni mici; unele fiiere sunt incluse directn sursa paginii pentru a evita complet onou cerere HP.

    Dei aceste metode sunt consideratebune practici de dezvoltare ele deriv dinlimitrile curente ale standardul HP icreeaz alte probleme: utilizarea mai multor

    conexiuni i a mai multor domenii pentrua servi o singur pagin care duce la con-gestionarea reelelor, operaii suplimentareinutile (cutari DNS, iniieri de conexiuniCP) i ncrcarea suplimentar a servere-lor i a intermediarilor din reea (mai multesocketuri ocupate pentru a servi mai multecereri); concatenarea iierelor de acelaitip mpiedic stocarea lor eficient pe cli-ent (caching) i contravine modularitii

  • 8/12/2019 Today Software Magazine N21/2014

    28/58

    28 nr. 21/Martie, 2014 | www.todaysoftmag.ro

    napoi n viitor: Http 2.0

    programare

    aplicaiilor. HP 2.0 adreseaz acestelimitri.

    HTTP 2.0: design i obiectiveEortul de mbuntire a standardu-

    lui HP este unul considerabil. inndcont de rspndirea actual a protocoluluiintenia este de a aduce mbuntiri clarecu privire la aspectele menionate mai sus,nu de a rescrie sau modiica substanialspecificaiile actuale.

    Principalele intenii ale noii versiuni: s mbunteasc viteza de ncrcare

    a paginilor a de versiunea 1.1, s utilizeze paralelizarea cererilor dar

    prin intermediul unei singure conexiuniCP,

    s pstreze semantica existent

    n versiunea 1.1 cu privire la metode,coduri de raspuns, header-e,

    s defineasc interaciunea cu versi-unea 1.1.

    Paralelizarea cererilor n HTTP 2.0Schimbarea major introdus n versi-

    unea 2.0 este elul n care coninutul uneicereri HP este transmis ntre server iclient. Coninutul este binar, cu scopul dea permite mai multe cereri i rspunsuri nparalel peste aceeai conexiune CP.

    Urmtoarele noiuni sunt utile pentru anelege mai bine cum anume se realizeazparalelizarea cererilor i rspunsurilor:

    Stream - un schimb de mesajebidirecional n cadrul unei conexiuni.Fiecare stream are un identificator i oprioritate.

    Frame (cadru)- unitatea de baz decomunicare n HP 2.0 coninnd ozon de headercare identific stream-uldin care ace parte i o zon de date.

    Mesaj- o secven de cadre (rame)care ormeaz un mesaj n HP (cerere

    sau rspuns).

    n cadrul unei conexiuni pot exista unnumr nelimitat de stream-uri bidirectio-nale. Comunicarea n cadrul unui streamse realizeaz prin mesaje, care sunt ormate

    din cadre (rame). Cadrele pot fi livrate norice ordine i vor fi reasamblate de ctreclient. Acest mecanism de descompunere irecompunere a mesajelor este similar cu celexistent la nivelul protocolului CP. Estecea mai important schimbare din HP2.0, pentru c permite dezvoltatorilor weburmtoarele:

    s iniieze mai multe cereri n paraleli s proceseze mai multe rspunsuri nparalel,

    s oloseasc o singur conexiunepentru aceste cereri i rspunsuri,

    s reduc timpul de ncrcare al uneipagini datorit reducerii latenei,

    s elimine din aplicaiile web modi-ficrile specifice versiunii 1.1 cute cuscopul de a mbunti perormana.

    Server pushUna din limitrile evidente in HP1.1 este imposibilitatea serverului de a tri-mite rspunsuri multiple pentru o singurcerere a unui client. n cazul unei paginiweb,serverul tie c pe lng coninutulHML clientul va avea nevoie i de resurseJavascript, imagini, etc. . De ce s nu eli-minm complet nevoia clientului de acere aceste resurse i s dm posibilitateaserverului s le trimit ca rspunsuri supli-mentare cererii iniiale a clientului? Aceasta

    este motivaia uncionalitii numit ser-ver push. Funcionalitatea este la el cu ceeace se realizeaz n HP 1.1 prin inclu-derea coninutului unor resurse direct npagina trimis clientului (inlining). otui,marele avantaj al metodei server pushestec d posibilitatea clientului de a stoca ncache resursele astel primite evitnd ape-luri ulterioare.

    Compresia header-elorn HP 1.1 iecare cerere cut de

    client conine toate header-ele aerente

    domeniului serverului. n practic aceastaadaug ntre 500 i 800 de bytes iecreicereri. mbuntirea adus de HP 2.0este de a nu mai transmite header-ele carenu se schimb.Ne bazm pe aptul c avemo singur conexiune deschis cu serverul,

    deci serverul poate deduce c o cerere nouva avea aceleai header-e asemena cele iprecedente, n caz c nu specificm altceva.n plus, toat inormaia cuprins n hea-der-e este comprimat pentru eficientizare.

    Scurt privire n viitorHP 2.0 este nc un standard aflat n

    lucru. Majoritatea ideilor care stau la bazalui au ost preluate din protocolul SPDY,iniiat de Google. SPDY continu s existen paralel cu eortul de standardizare aHP 2.0 pentru a oeri un teren de ncer-care i validare a ideilor experimentale.Calendarul anunat n acest moment presu-pune ca n toamna anului 2014 specificaiaHP 2.0 s fie final, urmnd ca dup acelmoment s fie disponibile implementri.

    Bazat pe succesul extraordinar al

    HP, versiunea 2.0 ncearc s corectezelimitrile actuale i s oere mecanisme cucare dezvoltarea Internetului s poat isusinut n continuare.

    Referine1. Ilya Grigorik - High Perormance Browser

    Networking [http://chimera.labs.oreilly.com/

    books/1230000000545/index.html ]

    2. HP Archive [http://www.httparchive.org/

    index.php]

    3. Mike Belshe - More Bandwidth Doesnt Matter

    (much) [https://docs.google.com/a/chromium.org/viewer?a=v&pid=sites&srcid=Y2hyb21pdW0ub3J

    nGRldnxneDoxMzcyOWI1N2I4YzI3NzE2 ]

    http://../.pdfhttp://chimera.labs.oreilly.com/books/1230000000545/index.htmlhttp://chimera.labs.oreilly.com/books/1230000000545/index.htmlhttp://www.httparchive.org/index.phphttp://www.httparchive.org/index.phphttps://docs.google.com/a/chromium.org/viewer?a=v&pid=sites&srcid=Y2hyb21pdW0ub3JnfGRldnxneDoxMzcyOWI1N2I4YzI3NzE2https://docs.google.com/a/chromium.org/viewer?a=v&pid=sites&srcid=Y2hyb21pdW0ub3JnfGRldnxneDoxMzcyOWI1N2I4YzI3NzE2https://docs.google.com/a/chromium.org/viewer?a=v&pid=sites&srcid=Y2hyb21pdW0ub3JnfGRldnxneDoxMzcyOWI1N2I4YzI3NzE2https://docs.google.com/a/chromium.org/viewer?a=v&pid=sites&srcid=Y2hyb21pdW0ub3JnfGRldnxneDoxMzcyOWI1N2I4YzI3NzE2https://docs.google.com/a/chromium.org/viewer?a=v&pid=sites&srcid=Y2hyb21pdW0ub3JnfGRldnxneDoxMzcyOWI1N2I4YzI3NzE2https://docs.google.com/a/chromium.org/viewer?a=v&pid=sites&srcid=Y2hyb21pdW0ub3JnfGRldnxneDoxMzcyOWI1N2I4YzI3NzE2http://www.httparchive.org/index.phphttp://www.httparchive.org/index.phphttp://chimera.labs.oreilly.com/books/1230000000545/index.htmlhttp://chimera.labs.oreilly.com/books/1230000000545/index.htmlhttp://../.pdf
  • 8/12/2019 Today Software Magazine N21/2014

    29/58

    29www.todaysoftmag.ro | nr. 21/Martie, 2014

    Bogdan Cornianubogdan.cor