Today Software Magazine N11/2013

Embed Size (px)

Citation preview

  • 7/30/2019 Today Software Magazine N11/2013

    1/52

    T O D A Y

    S O F T W A R E

    Nr. 11 Mai 2013 www.todaysoftmag.ro www.todaysoftmag.com

    M A G A Z I N E

    Buctria

    arhitectuluiso

    ftware-Ca

    rdurideS

    cenarii

    Testarean

    CloudSo

    ftwareCra

    ftsmansh

    ip

    ITCamp 2013

    Orchestrarea Testarii Automate

    Recenzia crii:RESTful Web Services Cookbook

    JAVA EE7. Cloud, Web 2.0+

    Dezvoltarea de aplicaii safety-critical

    n SCADEManagementul performanei

    Roller Coaster-ul Imagine Cup

    Gogu i plinul de benzin

    Programare Funcional n Haskell

    Trenduri i Big Data

    Arhitectura extransibila i durabil

    S uitm de modelul Silicon Valley

    OPTIONSABILITY - O caracteristicdiscret a proiectelor IT

    (un) prieten pentru startup-uri

    Istoria IT-ului Clujean (V) - nvturidin Junimea

    SPRE COMUNITATEA IT via HR

  • 7/30/2019 Today Software Magazine N11/2013

    2/52

  • 7/30/2019 Today Software Magazine N11/2013

    3/52

    6

    S uitmde modelul

    Silicon Valley

    B I

    7

    ITCamp2013

    M T

    8

    (un) prieten pentru startup-uri

    C M

    10

    JAVA EE7. Cloud,

    Web 2.0+S D

    11

    Istoria IT-ului Clujean (V)- nvturi din

    Junimea

    M M

    13

    S CA B A B

    16

    Din buctria arhitectuluisoftware - carduri de scenarii

    A A

    19

    Arhitectura extransibil idurabil

    L V

    22

    Testarea n Cloud

    V Z

    24

    Orchestrarea TestriiAutomate

    L R

    28

    OPTIONSABILITY - Ocaracteristic discret aproiectelor IT

    B M

    31

    Dezvoltarea de aplicaiisafety-critical n SCADE

    H C

    34

    Trenduri i Big Data

    R V

    39

    Programare Funcional n

    HaskellM M

    40

    Recenzia crii: RESTful WebServices Cookbook deSubbu Allamaraju

    S D

    42

    SPRE COMUNITATEA IT via HRD I C N

    45

    Managementulperformanei

    A P

    47

    Poate da ...poate nu ...

    A O

    48

    Roller Coaster-ul Imagine Cup

    A P

    50

    Gogu i plinulde benzin

    S B, P.D.

  • 7/30/2019 Today Software Magazine N11/2013

    4/52

    4 nr. 11/Mai, 2013 | www.todaysoftmag.ro

    Buzz-uldin ultimele luni este crearea structurilor i a oportunitilor pentru dez-voltarea I-ului i poate mai mult ca oricnd apariia unor soluii romneti prinstimularea startup-urilor. SM a ost i rmne un promotor al acestora dar nudorim s cdem n extrema cealalt i s nu vedem pdurea din cauza copacilor.

    Probabil 90% din zona de I, exceptnd aacerile cu statul romn, reprezint outsour-cingrealizat pentru companii din exterior. Problema major care apare este lipsa IP-ului(intellectual property), respectivele companii putnd s i mute centrele de dezvoltareoricnd n alt loc. Pe de alt parte, s nu scpm din vedere ce au cut pentru noi com-paniile de outsourcingi ce pot s ac n continuare. n primul rnd ne-au nvat cum sescrie so comercial, care este nivelul de calitate cerut, 99.999% pentru availability, cumse creeaz o arhitectur perormant a sistemelor i multe altele. n timp, acestea au ostasimilate de specialitii romni, iar acum noi i nvm pe alii. La el se va ntmpla icu crearea de produse. Companiile, care pn nu demult aveau doar execuia n Romnia,au ncredere n noi dorind acum s crem produsele pentru care ei sunt business owneri.Pe piaa de munc se vede aceasta, iar lipsa de business analiti i deproduct managementnu trece neobservat. Nu sunt muli, dar vor n civa ani i vor avea n CV realizri ale

    unor produse importante. Ei vor ti cum se creeaz un produs comercial bazat pe businessrequirements i probabil tot ei vor ajuta lansarea startup-urilor romneti.

    Aadar, pentru a avea la scar larg apariia unor noi startup-uri, este nevoie de ocultur i o experien la care se poate ajunge doar n timp i cu mult perseveren.Desigur, pot exista excepii, cum am vzut n industria de jocuri sau n cea de divertis-ment. Incubatoarele de startup-uri i spaiile co-work ncep timid s i ac apariia iarnoi vom publica ncepnd cu numrul urmtor o analiz a celor existente. E important caun nou startup s tie de la nceput cui s se adreseze pentru nanare sau suport.

    Aa cum ne-am ateptat, luna mai este plin de evenimente n zona I-ului: n 14Mai vom avea Soware architecture workshop organizat de ctre Arobs i care l areca invitat pe Simon Brown; n 16 Mai, tot la Cluj va avea loc a doua ediie a Romanianesting Community; n 17 Mai .msg systems organizeaz workshop-ul Java EE 7 susinut

    de ctre Silviu Dumitrescu; n 23-24 Mai vom avea ICamp, cea mai mare conerinpe tehnologii Microso din Romnia iar n 30-31 Mai, n Bucureti are loc I .A.K.E.Unconerence pentru cei ce doresc s ating o excelen tehnic. Doresc s menionezi IC Spring Europe care se va desura n 19-20 Iunie, n Luxemburg. Evenimentulva reuni 3,500 de participani din Europa, iar startup-urile beneciaz de participaregratuit. Acestea vor avea ocazia s i prezinte soluiile n cadrul evenimentului. Ceicare vor doar s participe la eveniment, vor benecia din partea SM de o reducere de50%. i rugm pe cei interesai s ne scrie pe adresa redaciei [email protected].

    Numrul 11SM v propune o serie de articole interesante acoperind sera de interesdin acest domeniu. La seciunea startup-uri articolul S uitm de modelul Silicon Valley(aka Ft Frumos din Vale i Merele de Siliciu), este o analiz obiectiv a acestui eno-men. n un prieten pentru startup-uri, este vorba de Marius Mocian i suportul acordatde acesta pentru MIRA. Aceast seciune este ncheiat de ctigtorii din acest an ai

    Microso Imagine Cup care ne povestesc evoluia produsului de la concept la imple-mentarea nal. Soware Crasmanship este un domeniu destul de puin cunoscut im bucur c putem publica un articol pe aceast tem. Arhitectura soware este prezentprin articolele: Din buctria arhitectului soware carduri de scenarii i Arhitecturaextransibila si durabila (grow orm novice to guru). OPIONSABILIY este unsubiect interesant legat de proiectele de I. Continum cu Dezvoltarea de aplicaiisaety-critical n SCADE i o nou serie despre Programare Funcional n Haskell.Primele rezultate ale studiului pentru realizarea unor Best Practice-uri n HR sunt publi-cate n acest numr n SPRE COMUNIAEA I via HR, iar personajul nostru avorit,Gogu este prezent la nal n Gogu i plinul de benzin.

    V dorim o lectur plcut !!!

    Ovidiu ManFondator i CEO al Today Sofware Magazine

    Ovidiu Man, [email protected]

    Fondator i CEO al

    Today Software Magazine

    editorial

  • 7/30/2019 Today Software Magazine N11/2013

    5/52

    5www.todaysoftmag.ro | nr. 11/Mai, 2013

    TODAY SOFTWARE MAGAZINE

    Redacia oday Soware Magazine

    Fondator / Editor n chie: Ovidiu [email protected]

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

    Graphic designer: Dan [email protected]

    Colaborator social media: Rodica [email protected]

    raductor: Cintia [email protected]

    Reviewer: avi [email protected]

    Reviewer: Adrian [email protected]

    Produs deoday Soware Solutions SRL

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

    www.todaysomag.rowww.acebook.com/todaysomag

    twitter.com/todaysomag

    ISSN 2284 6352

    Copyright oday Soware Magazine

    Reproducerea parial sau total a articolelordin revista oday Soware Magazine

    r acordul redaciei este strict interzis.

    www.todaysomag.rowww.todaysomag.com

    Silviu [email protected]

    Consultant Java@ .msg systems Romania

    Marius [email protected] senior software developerin cadrul Nokia, n prezentfondatorul platformei MintakaResearch

    Radu [email protected]

    Senior Software Engineer@iQuest

    Lista autorilor

    Antonia [email protected] aproape 10 ani trainer, psi-holog, consultant sub formde antreprenor, intraprenori antreprenor din nou

    Mihai [email protected]

    Microsoft MVPCodeCamp

    Co-fondator ITCamp

    Bogdan [email protected]

    este Co-Fondator al How to Web,cel mai important evenimentweb din Europa de Est

    Alexandru [email protected]

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

    Attila [email protected]

    Software Architect@ ISDC

    Levente [email protected]

    Design Lead@ endava

    Vlad [email protected]

    Senior QA Engineer@ Small Footprint

    Bogdan [email protected]

    Senior Php Developer@ 3Pillar Global

    Lucian [email protected]

    OO Content Arhitect@ HP Software Cluj

    Hunor [email protected]

    Software Developer@ evoline

    Mihai [email protected]

    IxNovation @ IXIAmembru ROSEdu, ARIA

    Adrian [email protected]

    Programmer. Organizational andTechnical Trainer and Coach@Mozaic Works

    Dan [email protected]

    Director Executiv@ Danis Consulting

    Cristina [email protected]

    Consultant@ Danis Consulting

    Andreea [email protected] n cadrul Endava

    Alex [email protected]

    internship student@ Tora trading

    Simona Bonghez, [email protected]

    Speaker, trainer i consultant nmanagementul proiectelor,

    Owner al Confucius Consulting

  • 7/30/2019 Today Software Magazine N11/2013

    6/52

    6 nr. 11/Mai, 2013 | www.todaysoftmag.ro

    S uitm de modelul Silicon Valley(aka Fat Frumos din Vale i Merele de Siliciu)

    startups

    Dup aproape 60 de ani, Silicon Valleynumr cteva sute de mii de ingineri(dintr-un total de 7 milioane locuitori nBay Area), sute de irme de investiii iacceleratoare care atrag peste 10 mld USDn investiii anuale (peste 40% din totalulanual al tuturor investiiilor de venturecapital din SUA), un sistem educational

    excepional ce include Stanord, una dintrecele mai importante 6 universiti ale lumii,i aproape toi giganii industriei tech:Intel, Google, Facebook, Apple, Amazon,Qualcomm, Yahoo! etc.

    Acum aproape o lun, cnd am ajunsn San Francisco, se desura LaunchFestival 2013, una dintre ele mai mariconerine dedicate startupurilor din SF iam cut un scurt clip.1

    Romnia are un pic de recuperat.Cu un total de aprox. 80000 ingineri, cuinvestiii anuale locale ce nu depesc 10

    mil USD (poate chiar mult mai puin)n 2012, cu un sistem educaional orga-nizat anacronic i ineicient care nc iace treaba datorit unui numr redusde oameni pasionai, cu cteva irme deprodus oarte interesante (BitDeender,Avangate etc.) care ns insumeaz doar5-10% din exportul total al industriei I&C(restul ind outsourcing), nu putem dects concludem c nu stm ru ca industrie,dar suntem cu cteva ordine de mrime nurm.

    Periodic citesc articole i tiri desprecum Bucuretiul, i mai nou Clujul, ba chiari Mgurele, va deveni un Silicon Valley de

    1 http://www.youtube.com/watch?v=NB1O0bqPa3Q&eature=player_embedded

    Romnia. Pi mi dragilor, dac ar aasimplu, a ace un Silicon Valley i la minela urnu Severin. E vreme bun, investito-rii pot merge n pauza de mas la tranduldin Herculane, antreprenorii se pot relaxape terasele de la marginea Dunrii dup ozi de lucru iar pentru programatori avempete, iein i bogat n osor. Bnuiesc ns

    c nimeni nu vorbete serios, ci sunt doarguri de stil (parabole, hiperbole etc.), ocomparaie propriu-zis ind exclus.

    ansele apariiei unui nou SiliconValley oriunde n lume, inclusiv n SUA,sunt extrem de mici, i cred c ar trebui snvm ce avem de nvat i apoi s uitmde modelul Silicon Valley atunci cnd negndim la crearea unui ecosistem techlocal.

    Poate ar trebui s uitm i de mode-lul New York, unde startupurile tech s-audezvoltat i datorit industriei locale de

    advertising. Poate ar trebui s uitm i demodelul Israel, al doilea stat din lume dpdval numrului de IPO-uri ale companiilorde tehnologie pe burs din SUA, pentruc industria de tehnologie de acolo a ostcreat n primul rnd prin nanarea cer-cetrii n industria de aprare de ctre stat.i poate ar trebui s uitm i de modelulLondra, cel mai important centru nanciareuropean, unde industria tehnologiei s-adezvoltat datorit accesului la mecanismelede nanare existente. i a putea continua

    cu Boulder, Berlin, Singapore i attea altecentre unde tocmai actorii locali, i numodelele externe, au cut ca industria sse dezvolte.

    Poate ar trebui s ne uitm cu atenie noglind, s ne ntrebm cine suntem i ceputem ace cu adevrat peromant la scaraglobal a inovaiei, i s executm linitiivreo 20 de ani, cu mai puine poveti despreFt Frumos din Vale i Merele de Siliciu icu ochii larg deschii spre noi.

    PS: toate gndurile mele bune sendreapt spre Comic Con Bucuresti, undemi-a dorit teribil de mult s u.

    Acum aproape 60 de ani, William Shockley prsea Bell Laboratories i deschidea, n 1956, compania Shockley Semiconductor

    Laboratory n Mountain View, cu convingerea c siliciul, i nu germaniul, este materialul potrivit pentru producerea tranzis-toarelor. n 1957, 8 dintre inginerii lui prseau compania i ondau Fairchild Semiconductor, dintre care doi (Robert Noyce

    i Gordon Moore) aveau s ondeze ulterior Intel.

    Bogdan [email protected]

    este Co-Fondator al How to Web,cel mai important eveniment

    web din Europa de Est

  • 7/30/2019 Today Software Magazine N11/2013

    7/52

    7www.todaysoftmag.ro | nr. 11/Mai, 2013

    TODAY SOFTWARE MAGAZINE

    ITCamp 2013

    eveniment

    ICamp este o conerin non-prot,organizat de membri ai comunitilorproesionale CodeCamp i ISpark, avnd

    ca i obiective ridicarea nivelului expertizeiI i a cunotinelor proesionitilor I dinRomnia, precum i mbuntirea imagi-nii Romniei n aara granielor noastre.

    Prima ediie a conerinei ICamp aavut 21 de sesiuni tehnice i s-a desuratpe dou track-uri paralele (Dev iIPro), nregistrnd puin peste 200 departicipani. Coninutul a ost prezentat despeakeri de renume locali i internaionali,printre care Paula Januszkiewicz i StephenForte. ICamp 2012 a cut trecerea la

    ormatul curent de 3 track-uri (Private &Public Cloud, Development & Mobile iArhitecture & Best Practices). Cei apro-ximativ 300 de participani au asistat laprezentrile unor speakeri de renume,cum ar i im Huckaby, Lino adros iMartin Kulov. n anii precedeni, majorita-tea audienei a ost ormat din mid-leveli senior developers, precum i team leadsi arhiteci.

    Ediia din 2013 va continua tradiia,anunndu-se dou zile n care dezvol-tatorii, proesionitii I i arhiecii vor

    beneicia de 30 de sesiuni tehnice i unopen-panel, prezentate de 26 de speakerilocali i internaionali. ntre acetia, patruexperi cu titul de Microsot RegionalDirector (Richard Campbell, RD si MVP,creatorul unei varieti de programemultimedia, dintre care amintim .NERocks!, RunAs Radio i Te ablet Show;im Huckaby, RD i MVP, numit de ctrepresa de specialitate un pionier al revo-luiei Smart Client; Martin Kulov, RDi MVP; Ciprian Jichici, RD i MVP),

    Peter Leeson, CMMI Specialist i 13 aliexperi cu titlul Microso Most ValuableProessional (MVP), o parte din ei iindspeakeri internaionali (Raaele Rialdi,Developer Security MVP; Andy Cross,Windows Azure MVP; obiasz Koprowski,SQL Server MVP etc.). n zilele premerg-toare conerinei ICamp, se vor organizao serie de workshop-uri i seminarii, cudurata de o zi sau de dou zile. Subiectele

    abordate vor de nivel avansat, i vor oeriparticipanilor ansa de a pune n prac-tic cele nvate, beneciind de asistena

    trainerilor. axa de participare la acesteworkshop-uri nu este inclus n preulconerinei.

    Imagini, nregistrri video i mai multedetalii despre ICamp:

    http://itcamp.ro/about.cshtml http://itcamp.ro/past.cshtml (ediii

    anterioare) https://www.acebook.com/ICamp.

    ro/photos_albums?re=hl h ttps : / /v imeo . c om/c h an n e ls /

    itcamp2012 (cteva sesiuni din 2012)

    h ttps : / /v imeo . c om/c h an n e ls /itcamp2011 (cteva sesiuni din 2011)

    ICamp este cea mai mare conerin premium pe tehnologii Microso organizat n Romnia, care se adreseaz proesionitilorimplicai n implementri ale tehnologiilor Microso i managerilor cu rol decizional, care doresc s e la curent cu ultimeletehnologii, s-i mbogeasc cunotinele tehnice i care urmresc participarea la training-uri cu adevrat eciente, bazate petehnologiile disponibile astzi.

    Mihai [email protected]

    Microsoft MVPCodeCamp

    Co-fondator ITCamp

  • 7/30/2019 Today Software Magazine N11/2013

    8/52

    8 nr. 11/Mai, 2013 | www.todaysoftmag.ro

    startups

    un prieten pentru startup-uri

    sptmnal, OpenCoee Cluj. Prin el, amcut cunotin cu o mulime de oamenidin zona start-up-urilor, persoane care nudoar c au acceptat s ne mprteascexperienele lor, dar ne-au oerit i saturipentru a mica business-ul nostru na-inte. La mai puin de o lun de la prima

    ntlnire, Marius ne-a trimis un e-mail princare ne ncuraja s aplicm la HealthboxLondon Accelerator (www.healthbox.com).Healthbox este un accelerator medical ceavea s nceap n octombrie n Londra iera probabil cea mai bun opiune pentrunoi s transormm produsul nostru ntr-

    un businessuncional. Am

    ascultat suges-tia lui i dupo lun, am pri-mit oerta sparticipm inprimul accele-rator Europeano r i e n t a t p em e d i c i n .Ne-am cutbagajele, amp l e c a t s p r eLondra i am

    ormat compa-nia cunoscuta c u m s u bn u m e l e d eMIRA Rehab.

    nD e c e m b r i e2012, Mariusne-a recoman-dat s aplicmla Kairos 50.Am ascultat

    d in n ou deel i ne-amc a l i i c a t l aKairos GlobalS u m m i t .

    Kairos Global Summit a ost un evenimentn New York n Februarie 2013, unde celemai inovative 50 de business-uri condusede studeni au ost chemate s-si prezinteideile lor la parterul Bursei din New York(New York Stock Exchange).

    Apreciam oarte mult ajutorul luiMarius i implicarea lui perseverent ndezvoltarea acestui proiect. nainte de

    a-l cunoate, tiam direcia n care nendreptam, dar el ne-a ajutat s acem pri-mii pai care au dus la business-ul nostrucurent. Reeaua lui de cunotine, ambiiade a vedea creterea altor companii micii implicarea lui cu saturi pot ajuta oricestart-up, pe oricine care are o idee bun, sac primii pai spre un potenial succes.

    L-am cunoscut pe Marius la Cluj-Napoca Business Days n iulie 2012, unde am avut un stand de prezentare a produsului nostruMIRA (www.mirarehab.com). Dup ce i-am explicat ce ace MIRA, Marius a nceput s cheme lumea la standul nostru i s dis-cute cu noi aspecte business despre produs, spre deosebire de ntrebrile medicale sau tehnice care eram obinuii s rspundem.Am observat imediat interesul lui a de ceea ce dezvoltam, ncrederea lui n potenialul pe care MIRA poate s-l aduc kinetoterapiei

    i a remarcat c aveam nevoie de ajutor n strategia noastr de business pentru a atrage investitori i a transorma MIRA ntr-o aacere.Dup Cluj-Napoca Business Days, Marius a inut legtura cu noi i ne-a invitat s participm la evenimentele organizate de el

  • 7/30/2019 Today Software Magazine N11/2013

    9/52

    LUXEMBOURG

    www.ictspring.com

    Koichiro TsujinoFounder Alex Corporation anddeveloped VAIO, Sony, former

    President of Google Japon

    Ruppert KeeleyCEO EMEA, Paypal

    Pepe MODER

    Global Director fot the DigitalMarketing & Communication, Pirelli

    BRIAN STEVENSCTO, Redhat

    PeterSondergaard

    Senior Vice President, ResearchGartner

    Laura YeciesCEO, SugarSync

    Trip HAWKINSFounder of Electronic Arts,

    CEO, Digital Chocolate

    Biz StoneCo-founder, Twitter

    ReGISTER NOW

    MORE SPEAKERS ON

    JUNE

    www.ictspring.com

  • 7/30/2019 Today Software Magazine N11/2013

    10/52

    10 nr. 11/Mai, 2013 | www.todaysoftmag.ro

    eveniment

    JAVA EE7. Cloud, Web 2.0+(Features, Deltas, Changes)

    Partea central a versiunii 7 a plator-

    mei Java Enterprise este legat de cretereasimplicrii, productivitii i asigurarea desuport pentru HML 5. O alt preocuparerezolvat prin aceast platorm este des-crcarea dezvoltatorilor de grija task-urilorlegate de inrastructur, prin olosirea con-tainerelor i abstractizarea accesului laresurse. n versiunea 7 platorma simplicconsiderabil API-ul de acces la serviciilecontainer-ului, lrgind domeniul de serviciidisponibile. De asemenea, se are n vedereextinderea platormei pentru a cuprinde

    tehnologiile n dezvoltare din spaiul web.

    Workshop-ul despre Java EE 7 esteorganizat pe trei seciuni:

    Prima va oglindi principalele mbu-ntiri aduse de Java EE 7. Aceastanseamn aducerea n discuie a proble-melor de design sau de implementareexistente n versiunile anterioare imodul n care ele au ost rezolvate.Mai mult, majoritatea componentelorenterprise au suerit modicri datoritevoluiilor platormei standard precum

    i celor din lumea web. Modelul cloud,

    care se intenioneaz a inclus n aceast

    versiune, modic semnicativ. API-ulcomponentelor EJB sau Servlet, doar caexemple. Cea de-a doua va evidenia tendin-

    ele programrii enterprise. Amintitulmodel cloud, dar i API-uri noi pentruWebSocket, JSON, utilitare de concu-ren, Java Caching i batch applicationssunt tot attea provocri. Partea a treia va prezenta o aplicaie

    care va rula n nori. Acoperit exclusivprin tehnologii Oracle aplicaia va pre-

    zenta acilitile i modicrile pe caremodelul cloud le aduce. O aplicaie ceruleaz n nori va avea alte roluri dedezvoltare i ntreinere dect o aplicaieenterprise obinuit.

    n orice moment interveniile dinpartea auditoriului pentru clariicri idiscuii sunt binevenite. Sursele bibliogra-ice au ost numeroase, din pcate uneledintre ele contradictorii. Spre exemplu, nacest moment nu este clar cnd va lan-sat Java EE 7. ermenul estimat iniial de

    aprilie 2013 este aproape sigur depit. De

    asemenea, este interesant de urmrit care

    dintre specicaiile iniiale ale versiunii 7vor rmne n aceast versiune i care vor postponed n versiunea 8. Sursele dedocumentare includ prezentri la eveni-mente precum JavaOne, articole publicatede presa Oracle, orumuri i altele. Aplicaiaa ost dezvoltat olosind Oracle Cloud i,local, WebLogic.

    Sunt invitai s participe toi cei care aupreocupri n acest domeniu sau sunt inte-resai de tendinele de dezvoltare din lumeaenterprise, Java sau alternativ. Specialitii

    vor gsi cu siguran elemente care s-iprovoace la discuii sau reecii.

    V ateptm cu toat plcerea!Silviu Dumitrescu

    De-a lungul timpului, n lumea dezvoltatorilor de soware, s-au evideniat cteva cerine undamentale precum nevoia dedistribuie, tranzacionalitate sau portabilitate a aplicaiilor. Limbajul Java a susinut n permanen aceste tendine, iar plat-orma enterprise, este poate modelul cel mai bun de reectare a lor. Din pcate, implementarea tendinelor a creat numeroaseprobleme printre care viteza, securitatea sau ncrederea.

    Silviu [email protected]

    Consultant Java@ .msg systems Romania

  • 7/30/2019 Today Software Magazine N11/2013

    11/52

    11www.todaysoftmag.ro | nr. 11/Mai, 2013

    TODAY SOFTWARE MAGAZINE

    Istoria IT-ului Clujean (VI)

    nvturi din Junimea

    istorie

    Am s ncep cu ncheierea cutde Iacob Negruzzi crii sale:Amintiri din Junimea.Cnd privesc napoi, la viaa trecut a

    Junimii, m conving pe deplin c o aseme-

    nea societate nu s-a putut orma dect prin

    concursul unor mprejurri cu totul deose-

    bite. A trebuit s se ntlneasc ntr-un ora

    de provincie, departe de zgomotul centrului

    politic, un numr de brbai tineri, la careplcerea literaturei i ndeobte a ocupaiilor

    intelectuale s e deopotriv vie. Acetia au

    trebuit s e ntr-o situaie material inde-

    pendent, aa ca s aib de unde ajuta pe

    ali tineri lipsii de mijloace, ce le preau a

    avea talent i srguin. A trebuit ca mem-

    brii Junimii s-i recunoasc deplin meritele

    unii altora i ca nici un sentiment de invidie,

    ct de ascuns, s nu turbure senintatea con-

    stant a relaiilor lor. Condus de asemenea

    brbai i n asemenea mprejurri, negreit

    c Societatea a putut ine atta timp, chiarlipsindu-i desvrit orice organizare exteri-

    oar. Dar mprejurri identice nu se vor mai

    repeta uor n viaa unui popor i de aceea o

    a doua ediie a unei asemenea societi va

    poate cu neputin n timpuri viitoare.

    Avut-a Junimea merite nsemnate? Acel

    care, ca mine, a ost nsui actor cu greu

    poate judeca valoarea piesei n care a jucat

    un rol de cpetenie. Viitorul singur se va

    rosti cu neprtinire cnd noi nu vom mai

    . Totui, credina mea este c Junimea va

    pstra o pagin n istoria literaturei romne,

    cci prea am avut noi nine plcere la lucr-rile noastre, pentru a nu adus mulumire

    i olos i publicului celui mare. Vor veni

    mai trziu alte societi mai nvate, poate

    mai active i mai neobosite, ns nu va mai

    nici una care s cut lucrri serioase

    ntr-o orm att de vesel, de plcut i de

    neobinuit.

    Pe lng valoarea intrinsec a citatuluide mai sus, putem extrage cteva nvturirelevante extrapolnd la contextul actual al

    I-ului clujean. O simpl recitire, n carenlocuim literatura cu I-ul, evoc oimagine apropiat de realitatea actual.Realitate plin att de asemnri, ct idierene a de contextul istoric al Junimii.

    La primul capitol, contextul geograc, poli-tic i economic, par s e de partea noastr.Suntem un ora de provincie, sucient dedeparte de capital, cu o generaie tnrde iubitori de I, avnd o situaie nanciarpeste medie (o statistic la nivel naionalplaseaz I-ul n top 3 cele mai bine pltitedomenii, Clujul ocupnd poziia secund,dup Bucureti). ndrznesc s sintetizezaceste asemnri contextuale sub sintagma

    de inrastructur social.La capitolul dierene separm sim-

    pla asemnare de inrastructur de acelemprejurri identice eseniale pomenite deNegruzzi. Pentru a elimina dierenele estenecesar nsuirea urmtoarelor nvturi.

    n primul rnd recunoaterea meritelorcelorlai, r invidie. Junimea se oloseade ntlniri oarte dese ntre membrii eii de prezena Convorbirilor Literare, ounealt oarte bun pentru a aduna talente,a crete voci i a polemiza cu celelalte

    centre universitare i culturale ale rii.Aceast combinaie ntre comunicare cri-tic intens n particular i o voce unitarpentru publicul larg, ajut la uniormi-zarea i coagularea societii, permindleuirea orgoliilor nainte de expune-rea public. Exist i la Cluj un eort decunoatere a valorilor individuale printr-ocomunicare activ i deschis ntre mem-brii dieritelor comuniti. Revista SM areca misiune principal ntocmai acilitareaacestei comunicri i creterea vizibilitiintre proesionitii din mediul I local,

    alturi de tot mai multe astel de iniiative,de la grupri tehnologice, la organizaii detip breasl (vezi Cluj I cluster). Importanteste s nvam a echilibra sucient orgoliu,ct s ne contientizm propria valoare, darnu prea mult, ct s cdem n mndrie iinvidie. Dei programatorii sunt o speciedestul de orgolioas, exist destule semnede reuit n evitarea ragmentrii, izol-rii i diluarea valorii introdus de primeledou.

    La urmtoarele dou nvturi, suntem

    nc n stadii incipiente: nanarea talente-lor aate la nceput de drum i atmoseravesel i plin de satisacie. Cnd ne ree-rim la inanare, merit extins nelesuljun imist de ajutor inan ciar persona l,

    deoarece n practic acest rol de investitorl pot juca att indivizii, ct i compani-ile. Similar putem extinde nelesul detnr talentat, att asupra proesionitilorangajai n dierite companii, ct iasupra antreprenorilor din scena startup-urilor. Indierent de combinaiile posibileale nelesurilor de mai sus, prioritar estenecesitatea susinerii inanciare i acce-lerarea proceselor de investiii pentru a

    contracara exodul talentelor ctre alte sursede nanare internaionale. Similar mode-lului junimist, investim n colarizareatalentelor (intern n companii, iar din per-spectiva antreprenorial prin programepublice locale), dar ar merita extrapolatatt la nvmntul public (toate nivelele),ct i la programe de investiii n startup-uri. Ne punem sperana n noul cluster, ndeschiderea tot mai evident a companiilorlocale spre colaborare i implicare social,i n cele cteva incubatoare/acceleratoare

    emergente.La nal aleg s vorbesc despre atmo-ser i atitudine. Ambele eseniale, att nopinia lui Negruzzii, ct i a mea personal.Exist tensiuni n mediul actual, generateatt de predilecia unora spre outsourcingi toate implicaiile acesteia, de competiiatot mai strns pe resurse, ct i de unelediscrepane ntre discursul diplomat oi-cial prietenos i lipsa unor proiecte realede colaborare ntre juctorii principalidin pia. Chiar i la nivelul startup-uri-lor, unde deschiderea spre comunicare

    i suport mutual este mai mare, exist ocompetiie oscilant ntre sntoas iuneori doar orgolioas. Reeta Junimiicondiioneaz satisacia nal de plcereai veselia cu care se desoar activitilesale. Consider prioritar aceast rearanjarea valorilor noastre i chiar dac un mediude proesioniti I veseli este uor utopic,cel puin plcerea i mplinirea proesionalar trebui s ocupe primul loc.

    Marius [email protected]

    Fost senior software developerin cadrul Nokia, n prezentfondatorul platformei MintakaResearch

  • 7/30/2019 Today Software Magazine N11/2013

    12/52

    12 nr. 11/Mai, 2013 | www.todaysoftmag.ro

    ransylvania Java User GroupComunitate dedicat tehnologiilor Java.Website: http://www.transylvania-jug.org/

    Data ninrii: 15.05.2008 / Nr. Membri: 535 / Nr. Evenimente: 41

    Comunitatea SMComunitate construit n jurul revistei oday Soware Magazine.Website: https://www.acebook.com/todaysomagData ninrii: 06.02.2012 / Nr. Membri: 585 / Nr. Evenimente: 9

    Romanian esting CommunityComunitate dedicat QA.Website: http://www.romaniatesting.roData ninrii: 10.05.2011 / Nr. Membri: 593 / Nr. Evenimente: 1

    GeekMeet ClujComunitate dedicat tehnologiilor web.Website: http://geekmeet.ro/Data ninrii: 10.06.2006 / Nr. Membri: 537 / Nr. Evenimente: 16

    Cluj.rbComunitate dedicat tehnologiilor Ruby.Website: http://www.meetup.com/cluj-rb/Data ninrii: 25.08.2010 / Nr. Membri: 132 / Nr. Evenimente: 34

    Te Cluj Napoca Agile Soware Meetup GroupComunitate dedicat metodelor Agile de dezvoltare soware.Website: http://www.agileworks.ro

    Data ninrii: 04.10.2010 / Nr. Membri: 303 / Nr. Evenimente: 26

    Cluj Semantic WEB MeetupComunitate dedicat tehnologiilor semantice.Website: http://www.meetup.com/Cluj-Semantic-WEB/Data ninrii: 08.05.2010 / Nr. Membri: 139/ Nr. Evenimente: 22

    Romanian Association or Better SowareComunitate dedicat oamenilor cu experien din I indierent detehnologie sau specializare.Website: http://www.rabs.roData ninrii: 10.02.2011 / Nr. Membri: 219/ Nr. Evenimente: 12

    n acest numr vreau s v recomand dou evenimente din perioada urmtoare: Romanian esting Community Conerence2013 2nd Edition i I CAMP 2013. Ambele sunt evenimente anuale i au n comun ambiia de a cel mai mare evenimentde prol din Romnia. Din ce am vzut pn acum, reuesc i v recomand cu cldur s participai la dou evenimente pline de

    prezentatori de calibru internaional.

    Calendar

    Mai 7AgileWorks Remote Open Spacewww.meetup.com/he-Cluj-Napoca-Agile-Sotware-Meetup-Group

    Mai 8

    Monthly Meetup #13www.meetup.com/abara-de-estare-Cluj

    Mai 9Lansarea numrului 11 SMwww.todaysomag.ro

    Mai 14Soware architecture and the balance with agilitywww.arobs.com/architecture-workshop

    Mai 16-17

    Romanian esting Community Conerence 2013www.romaniatesting.ro

    Mai 17JAVA EE7. Cloud, Web [email protected]

    Mai 17-19Startup Live Cluj-Napocastartuplive.in/cluj-napoca/2

    Mai 18-19Asynchronous Master Class

    codecamp-cluj-mai2013.eventbrite.com

    Mai 23-24ICAMP 2013itcamp.ro

    Mai 25Fun Meetup v2.0w w w . l i n k e d i n . c o m / g r o u p s /Functional-Programming-in-Romania-4338166

    Mai 30-31

    I .A.K.E Unconerence Bucuretihttp://itakeuncon.com/

    Comuniti IT Cluj-Napoca

    comuniti

  • 7/30/2019 Today Software Magazine N11/2013

    13/52

    13www.todaysoftmag.ro | nr. 11/Mai, 2013

    TODAY SOFTWARE MAGAZINE

    Pentru a sprijini nevoia aspiranilor lasoware crasmanship de a ajunge la acestnivel, promotorii micrii au recurs la ometaor bazat pe istoria breslelor i ameterilor.

    Metaoran epoca medieval bunurile erau

    produse manual. Fiecare proesie era struc-turat n bresle, unde meteugarii puteaus se ntlneasc, s nvee unii de la ceilalii s-i apere proesia. Pentru c unelebresle din anumite ceti controlau oartebine calitatea produselor, acestea dobn-deau aim. Acesta este motivul pentru carebreasla era o instuie nchis; orice meterce intra n breasl trebuia s produc la oanumit calitate.

    ntre breslele dintre diverse orae era ocompetiie acerb, de aceea calitatea pro-duselor cretea constant. Fiecare breaslavea un statut care reglementa uncionareaintern a sa. De asemenea organizareabreslelor era reglementat prin legi.

    Pentru a deveni meter, un tnr tre-buia s treac cteva etape: s devinucenic, apoi s devin cal, s clto-reasc ntre ceti pentru a nva de la alimeteri si doar apoi putea s devin i elmeter. Ascensiunea n cadrul breslelor nu

    era deloc simpl i necesita ani lungi depregtire.Un tnr intra n ucenicie nc de la

    10-12 ani. nainte de a intra n ucenicie

    tnrului i se testau 2-3 sptmni aptitu-dinile. Ucenicia dura n jur de patru ani,timp n care ucenicul era un el de slug ncasa stpnului avnd sarcini de la rsritulpn la apusul soarelui.

    Dup terminarea uceniciei, ucenicu-lui i se elibera un certiicat de nvare ameteugului, care i permitea s e anga-jat drept cal. Dup acest moment calaavea trei opiuni: s rmn n atelierulmeterului, s se angajeze la alt meter saus-i ac timpul de cltorie1. Cltoriaavea scopul de a-l ajuta pe cal s-insueasc mai bine meseria. impul obli-gatoriu de cltorie era de 2-4 ani.

    Dup cltorie, cala trecea un examende meter: o proba practic, o lucrare demiestrie sau capodoper. Breasla analiza

    lucrarea pe care o aproba sau o respingeaprintr-o comisie. Doar dup un proces deacceptare n breasla tnrul meter aveavoie s-i deschid un atelier. Un meterera un cetean al oraului n care locuiai putea s participe la deciziile politice aleoraului.

    n cadrul unei bresle, exista o con-ducere aleas. Meterul cu cea mai mareexperiena i cu reputatie imaculat era deobicei conductorul breslei. Aceast con-ducere avea grij ca breasla s prospere,

    stabileau standardele de calitate ale produ-selor i realizau toate actele administrative.

    1 http://arheologie.ulbsibiu.ro/publicatii/bibliotheca/bresle/4%20capitolul%20II.htm

    Software Craftsmanship

    Micarea Soware Crasmanship a prins contur n 2009, ca reacie la ideea c

    putem reduce temporar calitatea codului pentru a scoate produse mai repede.Promotorii micrii consider c dimpotriva, ceea ce trebuie sa mbuntim

    este viteza cu care un programator scrie cod de calitate. Altel, utilizatorii, clienii icompania care produce soware au de suerit: primii din cauza greelilor introduse naplicaii (bug-uri), iar compania datorit scderii vitezei de producie a noilor versiuni ia nemulumirii utilizatorilor.

    programare

    Alexandru [email protected]

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

    Adrian [email protected]

    Programmer. Organizational andTechnical Trainer and Coach@Mozaic Works

  • 7/30/2019 Today Software Magazine N11/2013

    14/52

    14 nr. 11/Mai, 2013 | www.todaysoftmag.ro

    PrincipiileDup cum menionam mai sus,

    Soware Crasmanship este o abordare inindustria de Sotware Development careaccentueaz importana abilitilor dezvol-tatorilor. Iniiatorii micrii doresc s ridicestandardele proesiilor din industria Iprin aplicarea acestor concepte din epocamedieval. Micarea a luat iin n anul2009 prin realizarea unui maniest

    Acest maniest este o continu-are al Maniesto or Agile SotwareDevelopment, care presupunea existenasotware-ului uncional, s putemrspunde rapid la schimbri, valori-zarea interaciunilor ntre persoaneleimplicate n dezvoltarea unui sotware

    i colaborarea intensiv cu clien-tul. Sotware Cratsmanship vrea scompleteze Maniesto or Agile SowareDevelopment prin aptul c nu se doretedoar sotware uncional, ci un sotwarecreat cu grij i pricepere. Pe lng arspunde schimbrii rapid i eicient,adugm valoare prin uncionalitiimportante pentru utilizatori. E importantca nu doar s valorizm interaciunea din-tre oameni, ci dorim s crem o comunitatede proesioniti.

    Istoriencepnd cu anul 2009 cnd a

    ost publicat acest maniest, tot maimuli programatori au nceput s se

    auto-denumeasc Aspiring SotwareCratsman, echivalentul ucenicului dinistoria breslelor de meteugari. Scopullor este ca programatorilor s le pese decalitatea produselor, calitate codului i sdoreasc s nvee continuu. Dupa cumun ucenic lucra de la rsrit pn la apus,la el i un aspiring soware crasman artrebui s exerseze ct mai mult pentru a-imbuntai abilitile. Astel au devenit i

    mai cunoscute practicile urmtoare: codingkata, coding dojo, pair-programming, dar aost inventat i un alt concept: code retreat.Vom reveni la ele n detaliu.

    Corey Haines este printre primii pro-gramatori care a preluat modelul clatorieiucenicilor i s-a autodenumit sotware

    journeyman. Ceva mai mult de un anCorey a cltorit n lume cu singurul scopde a nva lucruri noi de la ali programa-tori. n timpul cltoriei dorea doar sa aibaunde s doarm i s aib ce s mnnce, nschimb dezvolta orice aplicatie era nevoie.Dup ce i-a ncheiat cltoria, Corey arevenit la maestrul su, Robert C. Martin,i i-a povestit ce a nvat, la el ca n timpulbreslelor.

    Practici de programare

    Spre deosebire de alte proesii, unprogramator nu are un set de practicistandardizate pe care trebuie neaprat sle nvee. Exist desigur practici pe care oechip sau alta le olosesc, dar la nivel de

    industrie avem oarte puine dovezi des-pre ce anume ajut i ce nu la dezvoltareaaplicaiilor complexe.

    Aceasta a ost o problem pentruSotware Cratsmanship, pentru nu poidezvolta abilitile programatorilor atuncicnd nu tii care ar trebui s e. Iniiatoriimicrii au cut dou lucruri: au selectatcteva practici din experiena unor progra-matori cu zeci de ani de experien i auinsistat ca ecare programator sa nvee ncontinuu n cadrul comunitii, n speranac vor reui s descopere ce deineteproesia.

    Cteva din aceste practici recomandatepentru orice aspirant sotware cratsmansunt: testarea automat sub orma unittesting sau test driven development, reac-toring continuu, meninerea cureniei

    codului prin urmarea unor reguli de cleancode, elemente de design i arhitectur,paradigme dierite de programare objectorientediuncionalipair programming.Aceast list este doar o baz pe care mem-brii comunitilor construiesc.

    La nivel personal, recomandareamicrii este ca iecare programator sncerce s stpneasc aceste practici, sle discute n comunitate i sa le aleag pecele care l ajut cel mai mult n cadrul unuiproiect.

    Micarea este uneori criticat pentruaceast list de practici. Multe din criticivin ca reacie la airmaiile lui Robert C.Martin, probabil cel mai vocal promotoral soware crasmanship, care susine cundrjire practicile de mai sus. Scopul luieste acela de a deni un standard al pro-esiei, dar metodele olosite nstrineazunii programatori interesai de micare.n realitate, majoritatea celor care aspirla crasmanship sunt persoane pragmaticecare preer s stpneasc toate uneltelemeseriei, pentru a le putea selecta pe cele

    utile la un moment dat.

    Moduri de a nvaO dat ce o list de practici de progra-

    mare care trebuie stpnite sunt denite,programatorii au nevoie de metode dea le nva. Aa cum arat experiena luiCorey Haines (i nu numai), una din celemai bune metode de a nva programareeste prin interaciunea cu comunitatea. nacelai timp ns, este important ca un pro-gramator s i dezvolte i singur abilitile.

    Soware crasmanship propune ctevametode de a nva aceste practici.Coding kata este o metod mpru-

    mutat din arte mariale i se reer laexersarea unei practici de programare prin

    programare

    Maniestul Soware Crasmanship

    Software Craftsmanship

  • 7/30/2019 Today Software Magazine N11/2013

    15/52

    15www.todaysoftmag.ro | nr. 11/Mai, 2013

    TODAY SOFTWARE MAGAZINE

    rezolvarea repetat a unei probleme sim-ple olosind acea practic. Exist pe webdestule probleme documentate n acestscop, la el cum exist nregistrri videoale unor programatori din comunitate careo demonstreaz. Cel mai important lucrueste ca dup ecare rezolvare, programato-rul s se gndeasc ce l-a ncetinit n timpulexerciiului i ce ar trebui s schimbe pen-tru a elimina aceast rn.

    Coding dojo este o alt metod mpru-mutat din artele mariale. Se reer la unexerciiu de grup cu scopul de a transmitecunotine ntre participani. Grupul vancerca s rezolve o problem, exersndanumite practici. n orma lui cea mairspndit, doi programatori scriu codolosind un proiector pentru ca toat lumeas poat vedea. La un interval de timp (n

    jur de 7 minute), unul dintre ei este nlocuitde urmtorul programator din sal. Astel,prin rotaie, toat lumea va scrie cod i vavedea cum scriu cod ceilali.

    Code retreat este un alt ormat, deaceast dat preluat de la comuniti descriitori. Ideea unui code retreat este de acombina mai multe din elementele dintr-un coding dojo sau coding kata ntr-osingur zi de exersare. Code retreat-urile auloc de obicei smbta i dureaz toat ziua.Evenimentul este structurat n 6 sesiuni

    de 45 de minute, separate n retrospec-tive scurte. Regulile sunt simple: n cadrulecrei sesiuni, programatorii lucreaz npereche cu scopul de a scrie cod cu anumiteconstrngeri impuse de acilitator i careaciliteaz nvarea. Dup ecare sesiune,codul scris este ters complet, perechile iconstrngerile se schimb i scrisul de codrencepe.

    Primele code retreat-uri au avut locn SUA n 2009, urmate oarte curnd deRomnia, unde au ost acilitate de Maria

    Diaconu i Alexandru Bolboac n cadrulcomunitii AgileWorks. Corey Hainesa avut un rol oarte important n rspn-direa evenimentului n ntreaga lume,totul culminnd cu Global Day o CodeRetreat cnd timp de 24 de ore au loc coderetreat-uri non-stop n toat lumea. AdrianBolboac este responsabilul pe Europa alacestui eveniment global.

    n oarte scurt timp aceste practici auost preluate i de comunitatea de testare,iar acum exist testing kata si testing dojo.De asemenea de curnd Markus Grtner arealizat primul test automation retreat.

    La el, aceste practici au ost adaptatei pentru arhitectur, aprnd architecturekata i architecture retreat.

    Noi tipuri de exerciii au aprut ntimp. Adrian Bolboac a inventat sesiu-

    nea numit aking baby steps cu scopulde a nva reactoring i a avut succesla conerine internaionale, n cadrulcomunitilor i la code retreat-uri. AdrianBolboac i Alexandru Bolboac au inven-tat sesiunea Brutal reactoring, care a ostpreluat n ntreaga lume. Keith Braithwaitea inventat sesiunea numit DD As I YouMeant It, acum preluat n aproape ecarecode retreat.

    n aara acestor evenimente de comu-nitate, exist i posibilitatea de a nva

    prinpair programming. Orice programa-tor ar trebui s poat invita pe un altul lao sesiune privat de exersare. Civa pro-gramatori ac acest lucru i la distan;Alexandru Bolboac a deschis de civa aniun Remote Pair-programming our nacest scop.

    ConerineComunitatea de sotware cratsmans-

    hip organizeaz cteva conerine. Celemai cunoscute sunt n SUA i Londra,

    iar Romnia se altur anul acesta princonerina I. .A.K.E. Pe 30-31 mai, eveni-mentul va aduna programatori din ntreagaEurop i invitai din SUA cu scopul de adiscuta, exersa i nva mpreun acestepractici de programare. Nu doar c toivorbitorii vor scrie cod, dar i participaniivor programa n cadrul workshop-uri-lor, concursului kata lounge, dezvoltriiunui produs open source ntr-un ormathiper-agil numit Open Space SotwareDevelopment sau n timpul track-uluide unconerence organizat sub ormatulOpen Space. Liderii multora din comuni-ttile europene de soware crasmanshipvor participa la conerin ca vorbitori i cuworkshop-uri. Acest eveniment deschidetuturor programatorilor din Romniaporile ctre nivelul cel mai nalt de

    cunotine despre dezvoltarea de sowaredin Europa.

    Concluzien concluzie, Soware Crasmanship

    este o micare de amploare internaional,care are la baz ideea c proesia de progra-mator nseamn putina de a livra cod decalitate sub presiune. Pentru a ajunge acolo,programatorii trebuie sa stpneasc o listde practici. Pentru a le stpni, ei pot exersasinguri i n cadrul comunitilor olosind

    anumite ormate specice de ntlniri. Coderetreat-uleste ormatul care s-a rspnditcel mai rapid n ultimii ani, culminnd cuGlobal Day o Code Retreat. n Romnia,micarea este promovat de comunitateaagile AgileWorks, de conerina I .A.K.E.,precum i de programatori pasionai dinar.

    Reerine:http://arheologie.ulbsibiu.ro/publicatii/bibliotheca/bresle/4%20capitolul%20II.htmhttp://maniesto.sowarecrasmanship.orghttp://agilemaniesto.orghttp://en.wikipedia.org/wiki/Kata_%28programming%29http://codingdojo.org/cgi-bin/wiki.pl?WhatIsCodingDojohttp://coderetreat.org/abouthttp://www.testingdojo.org/tiki-index.phphttp://blog.adrianbolboaca.ro/2013/04/the-history-o-brutal-reactoring-game/http://blog.adrianbolboaca.ro/2013/01/the-history-o-taking-baby-steps/http://www.alexbolboaca.ro/wordpress/articles/how-to-organize-a-code-retreat

    http://www.alexbolboaca.ro/wordpress/the-remote-pair-programming-tourhttp://agileworks.rohttp://itakeuncon.com

  • 7/30/2019 Today Software Magazine N11/2013

    16/52

    16 nr. 11/Mai, 2013 | www.todaysoftmag.ro

    Cardul de ScenariiCardurile de scenarii sunt olosite pen-

    tru argumentarea decizilor din dieritepuncte de vedere. Cardurile sunt create dearhitectul din proiectul respectiv i suntdistribuite pentru evaluare de ctre mem-brii decizionali ai echipei, inclusiv de ctreclient.

    Un ablon al cardului de scenarii esteprezentat n schema de mai jos. Dup cum

    se observ cardul are patru zone: Zona cu detalii, unde se introduceun cod relevant al scenariului i o scurtdescriere a lui. Zona cu detalii legat de mediu de

    lucru din punct de vedere arhitectural. Zona cu deciziile care urmeaz s e

    luate specic scenariului. Zona cu argumentele arhitectu-

    rale, motivul i o diagram simpl carereect obiectul scenariului.

    Zona cu deciziile are un cmp de

    explicatii i alte patru de impact asupra

    arhitecturii curente. Acestea ind: Pucte Sensibile marcate cu cod S1,

    S2, Puncte de Compromis marcate cu

    cod 1, 2, Riscuri marcate cu cod R1, R2, Non-riscuri marcate cu cod N1, N2,

    Un punct sensibil nseamn o proprietate a

    unei componente care este critic pentru obinereaunui atribut de calitate.

    Punctul de compromis e o proprietate care

    aecteaz mai multe atribute de calitate sau e un

    punct sensibil pentru mai multe atribute.

    Riscurile sunt decizile arhitecturale care pot s

    cauzeze probleme poteniale.

    Non-riscurile sunt menionarea deciziilor

    arhitecturale bune, n cardul de scenarii au caracter

    inormativ.

    Aceste coloane pot conine una sau maimulte valori n oma codicat (menionat

    deja mai sus). Aceste coduri urmeaz s e

    Din buctria arhitectului softwarecarduri de scenarii

    Metodologia care urmeaz a prezentat n acest articol a ost dezvoltat de ceide la SEI (Soware Engineering Institute, Carnegie Mellon) i ace parte dinmetodologia AAM (Architecture Tradeo Analysis Method).Articolul prezint ntr-o orm simplicat aceast metodologie accentnd latura

    practic.

    arhitectur

    Attila [email protected]

    Software Architect@ ISDC

  • 7/30/2019 Today Software Magazine N11/2013

    17/52

    17www.todaysoftmag.ro | nr. 11/Mai, 2013

    TODAY SOFTWARE MAGAZINE

    explicate n liste dedicate.

    Studiu de cazPentru a prezenta ct mai real cum uncioneaz procedeul

    prin care se gsete o soluie potrivit cu ajutorul cardurilor descenarii, voi prezenta n continuare un caz ipotetic.

    Deci, un presupus client are o aplicatie n care n stratul delogic de business vrea s introduc un modul care decide iinueneaz rezultatele la anumite calcule. Aceasta i va cere arhi-tectului proiectului (n acest context ind vorba de noi) s vin cunite idei de implementare.

    Arhitectul, adica noi, vom realiza trei scenarii i l vom treceprintr-un procedeu de evaluare i la inal ncearcm s gsimsoluia cea mai potrivit.

    S vedem scenariile!

    DL1: Logic Hardcodat

    Scenario #: DL1 Se va olosi o logic de decizie intern,hardcodat.

    Attribute(s) PerormanceEnvironment n timpul rulrii (Runtime)Stimulus Cerere de luare decizii dinspre Business Logic.Response Decizii luate pe baza logicii interne.Architecturaldecisions Sensitivity

    radeo Risk Nonrisk

    Hardcodare S1 R1 N1

    ReasoningFolosind modul de decizie hardcoded sereduce complexitatea i n plus se poate obineperormana maxima de executie.

    ArchitectureDiagram

    DL2: Logic Confgurabil

    DL3: Logic Bazat pe Rule Engine

    Scenario #: DL3 Se va olosi un Rule Engine pentru decizii.

    Attribute(s) Flexibilitate

    Environment n timpul rulrii (Runtime)Stimulus Cerere de luare decizii dinspre Business Logic.Response Decizii luate de Rule Engine.Architecturaldecisions Sensitivity

    radeo Risk Nonrisk

    Folosirea unuiRule Engine

    S2, S32

    Maintenanpentru baza dereguli

    S4R3 N2

    ReasoningIntroducerea n arhitectur a unei Rule Engineaduce exibilitate i congurabilitate.

    ArchitectureDiagram

    Lista Punctelor SensibileCode Description

    S1 Logica de decizie e greu de modicat mai trziu inecesit relansarea produsului n producie.

    S2 Introduce complexitate n proiect.S3 Necesit expertiz i/sau experien.

    S4Comunicarea i planicarea n sync cu echipa carentreine baza de reguli.

    Lista Punctelor de CompromisCode Description

    1rebuie decis dac propriettile vor recitite imediatdup modicare sau numai dup relansarea aplicaiei(exibilate vs. garania calculaiilor ptr. toi).

    2 rebuie ales un Rule Engine portivit.

    Lista RiscurilorCode Description

    R1 Schimbarea logicii necesit development.

    R2Fiind ierul de proprieti un punct sensibil alsistemului trebuie protejat i asignate roluri specicemodicrii.

    Lista Non-RiscurilorCode Description

    N1 Este uor de realizat i garanteaz lansarea n timp nproductie.

    N2 Gsit o soluie uoar de lansare a regulilor.

    EvaluarePentru evaluarea scenariilor vom olosi orma tabelar a unuiUtility ree. Enumerm scenariile de pe carduri dar putem ad-uga si altele (r card) i rugm prile participante din parteaclientului s dea o not de importan (L low, M medium,

    Scenario #: DL2

    Se va olosi o logic de decizie intern semi-hardcodat bazat pe anumite atributecongurabile prin intermediul unui ier deproprietai.

    Attribute(s) CongurabilityEnvironment n timpul rulrii (Runtime)Stimulus Cerere de luare decizii dinspre Business Logic.

    Response Decizii luate pe baza logicii interne inuenatedin exterior.

    Architecturaldecisions Sensitivity radeo Risk Nonrisk

    Hardcodare R1 N1

    Fiier deProprieti

    1 R2

    ReasoningDac logica de decizii se bazeaz pe niteparametri care se pot externaliza, atunci se poateintroduce congurabilitate.

    ArchitectureDiagram

  • 7/30/2019 Today Software Magazine N11/2013

    18/52

    18 nr. 11/Mai, 2013 | www.todaysoftmag.ro

    H - High). Coloana de diicultate va i marcat de arhitectulproiectului.

    n cazul nostru tabela va arta astel (coloana de importanind o presupunere):

    QualityAttribute Scenario Importance Difculty

    PerormanDL1: Logichardcodat

    LL

    CongurabilitateDL2: Logiccongurabil

    HM

    FlexibilitateDL3: Logic bazatpe Rule Engine

    HH

    Din tabela de mai sus trebuie selectate cele cu importantmare, deci:

    DL2: Logic congurabil (H,M) DL3: Logic bazat pe Rule Engine (H,H)

    Fiindc scenariul # DL3 are i dicultate mare avem nevoiede mai multe analize din partea prilor i de vzut dac ntr-ade-vr au nevoie de aceast solutie. Dicultatea mare n cazul nostruputnd tradus prin: mai scump, timp mai mare de implemen-tare i eventuale costuri de licent i ntreinere.

    Deci putem pronuna c pn se nate o decizie legat de # DL3soluia ctigtoare va cel de # DL2.

    SumarConcluziile pe care le putem trage dup citirea acestui articol

    sunt:

    Arhitectul trebuie s vin tot timpul cu dierite scenarii pen-tru o singur problem. Cardul de scenarii este un mediu de prezentare a unei idei i

    n acelai timp este i mediu pentru a aduce decizii. Cardul de scenarii este prima linie unde vor menionate

    punctele sensibile, compromisurile i riscurile. Fiecare card trebuie sa e evaluat de ctre client sau de ctre

    reprezentantul tehnic al clientului Cardurile de scenarii trebuie colectate i catalogate pentru

    c ac parte din procedeul de luare de decizii i pe de alt parteele pot reutilizate.

    Din buctria arhitectului software

    arhitectur

    Throughout the year, ISDC

    engineers dreams of customers.

    Only in spring time, we engineer

    Easter sponge cakes!

    PATE FERICIT!

    FIJNE PAASDAGEN!

    FROHE OSTERN!

    !

  • 7/30/2019 Today Software Magazine N11/2013

    19/52

    19www.todaysoftmag.ro | nr. 11/Mai, 2013

    TODAY SOFTWARE MAGAZINE arhitectur

    THE PHILOSOPHYn zilele de azi dezvoltarea de aplicaii

    nu se rezum la dezvoltarea de module,la mentenana aplicaiilor dezvoltateacum ani de zile sau la o simpl testare deuncionalitate. Soiti romni au ajunsla nivelul la care nu numai clientul sau

    dezvoltatorul dorete mai mult, ci i piaadorete ceva mai mult de la dezvoltatoriromni. Clientul ateapt ceva mai preiosdect o executare coordonat, ateapt cevan plus care s l surprind chiar i pe el.Desigur, marea majoritate a programa-torilor neglijeaz acest detaliu pe care lcontientizeaz doar atunci cnd devin einii clieni.

    Marea majoritate a dezvoltatorilor nuva i n stare s sacriice timp i energieadiional ca s oere ceva n plus. Motivese gsesc, multe personale ct i nanciare

    sau alegerea stagnrii n zona de conort.Articolul de mai jos este adresat tutu-

    ror care doresc s oere ceva n plus ade cerinele standard, totodat s se pre-gteasc pentru a deveni cei mai buni ndomeniul I. Desigur iecare are la dis-poziie o cale unic i proprie pentru aatinge nivelul de Arhitect, ceea ce necesitexperien de ani de zile.

    Pentru a deni un Arhitect, e el dincategoria system-soware, solution sau busi-ness, a olosi cteva cuvinte cheie: dreams

    (vise), reality(realitate), creation (creare),timeless (inexpirabil).

    Un arhitect trebuie s ia n conside-rare ca orice soluie, aplicaie creat de elreect n realitate visul unui/unor oameni

    i va ct de ct posibil o creaie de durat.n cazul n care v-ai regsit mai sus

    vocaia, putem trece la urmtoarele niveleunde vom discuta succint despre uneleaspecte din modul n care transormm unvis n creaie real.

    THE SECRETCare este cheia succesului unei arhi-tecturi care satisace toate cerineleproiectului? ntrebarea este retoric, darse poate rspunde la ea. Arhitectura ide-al este cea care satisace cele patru criteriide mai sus i este consecvent cu deciziileluate pe durata implementri , totodat nudeviaz de la criteriile de baz propuse nprimele etape ale arhitecturi.

    Dei pare uor de cut a celor de maisus, cu att e mai greu s menii n echilibrucreaia din dierite motive cum ar decizii

    manageriale, nanciare, schimbri de sco-puri sau schimbri de echipe.

    THE BUCKET LISTPentru a ine totul sub control trebuie

    s m contieni c r o list de to-donu prea vom putea consecveni, ceea ceinduce ca arhitectura aleas s nu e suste-nabil. Desigur aceast list are sens numaidac periodic relum i vericm dac maieste actual ceea ce am denit iniial, dacdeviaia este prea mare e timpul s regn-

    dim dac arhitectura aleas va i sau nuprea bun.O list de necesitai SMAR poate i

    urmtoarea:

    Arhitectura extransibil i durabil(grow form novice to guru)

    he dialogue between client and architect is about as intimate as any conversationyou can have, because when youre talking about building a house, youre talkingabout dreams. Robert A. M. Stern

    Levente [email protected]

    Design Lead@ endava

  • 7/30/2019 Today Software Magazine N11/2013

    20/52

    20 nr. 11/Mai, 2013 | www.todaysoftmag.ro

    A. Colectarea inormaiilor1. Creai o lista de cerinele uncionale.

    Exemplu: Dorim o aplicaie care ace rezervri de biletede avion.

    2. Creai o lista de cerine non-uncionaleNot: Dac nu avei aa ceva de la client, atunciARHIECUL are responsabilitatea de a ace o listaexemplicat mai jos, care i va ajuta i pe dezvoltatori.Exemplu:Soluianoastrn30demilisecundegsetetoatebile -tele disponibile pentru o anumita rut.Fiecareinterogaredebazdedatenudureazmaimultde 10 milisecunde.Putemdeservi1000deutilizatoripeminut.Folosimecareserverdeaplicaiecuungraddeocu-pare maxim 70%.

    3. Creai o list proprie de posibile cerine (denim ctextensibil s e aplicaia).

    Exemplu: Dorim n viitorul apropiat s deservim

    aplicaiile mobile prin servicii web(Restul).4. Creai o lista despre ateptrile stakeholder-ilorde la

    soluia propusExemplu:Directoruleconomic:reducerecu10%alcosturilordevnzriDirectorulIT:sreducnemulumireaangajailorcuaccesul la sistemAngajai:clienis-ipoatrezervafoarterapidbiletele.

    Not: lista de mai sus va una benec n nal la preda-rea aplicaiei cnd va prezentat aplicaia. otodat pe

    parcursul discuiilor i al ideilor de implementare vomnevoile dieriilor stakeholderi.

    B. Shape it:Frizerul prietenul nostru1. Slice aie pe mrimea potrivita

    Descompuneproblemanproblememaimici,uncionalitii mari n sub-uncionaliti ce pot irezolvate.altmetodestedescompunereanmodule/blocuriceaduc mai aproape de conceptul OOP.

    2. Frizerul ortogonal:Sneorientamctreortogonalitate,adicsmodula-rizm soluia. Astel avem posibilitatea de a crea dieritemodule i interee acilitnd testatarea i mentenanaprodusului.

    3. DRY(Dont Repeat Yoursel) UscatulCelmaicunoscutacronimlegatdeideea:unsingurrezultat la o singur problem. E important s nu ncer-cam s repetm codurile, modulele, intereele care auaceeai uncionalitate.

    4. est it: testul cu oglindaTestabilitateasoluieiesteceamaivitalpentruasusine o arhitectur robust, dar totui receptiv laschimbri.Eimportantsdecidempnlaceniveldorimstes-tm soluia propus: nivelul micro pentru care vor itestat ecare variabil, metod sau clas ori putem s neorientm ctre o testare macro caz n care ne intereseazs poat testate modulele.

    5. FixIt: - un coaor priceput se respect:Ebinedecreatmodulecaresuportmodificrileix-urile, astel nct s nu aib impact asupra altorcomponente.ncazulncareix-uladuce modiicri asupra maimultor module n acelai timp, e necesar de revizuit pla-nul iniial, dac arhitectura chiar corespunde nevoilornoastre.

    6. Cost o changes: plata la rizerarhitecturarobusttrebuiessuporteschimbricon-tinue, dar n acelai timp preul schimbrilor trebuie srmn minim.

    Pentrucalcululcostuluischimbrilorsepoatefolosioecuaie simpl care avertizeaz asupra riscurilor:

    Sum( Change[1..n]x Sum(Affected Module[1..m]) )= Cost of Change

    Unden,m reprezint numrul maxim de schimbri imodule.Fiecareschimbareimodularevaloare1,desigurdacmodulele sunt mai complexe putem deni pentru ecaremodul un cost specic.Costulmaximlvomobinepentrucazulncare

    Arhitectura extransibila si durabila (grow form novice to guru)

    arhitectur

  • 7/30/2019 Today Software Magazine N11/2013

    21/52

    21www.todaysoftmag.ro | nr. 11/Mai, 2013

    TODAY SOFTWARE MAGAZINE

    ecare schimbare are impact asupra ecrui modul.Costulidealestede30%dincostulmaxim,costuloptim ntre 30% i 70%, iar costul critic peste 70% dincostul maxim.

    Exemplu: n cazul a 3 module , unde Modul3 are cost 3,pentru la 2 schimbri avem urmtorul cost:

    o Change1 x (Module 1 + Module 2) + Change2x (Module1+Module2+Module3) = 1x(1+1) +1x(1+1+3) =2 +5=7o Cost maxim: Change1(Module1 + Module2 + Mod-ule 3) + Change2x(Module1+Module2+Module3)=1x(1+1+3)+1(1+1+3)=10

    o Cost Maxim : 10; Cost ideal: 3; Cost critic: 7.

    n exemplul dat suntem la limit ntre costul critic i celideal, cea ce ne inormeaz ca ar posibil ca arhitecturas e aectat i s aib consecine majore.

    C. Focus Point: de reinut

    Svericamcalitatea,metrica,redundanamodulelori a claselor;Svericmdacarhitecturaaleassaustandardelede aliniere (oga, ISO etc) se mai mapeaz pe soluiacurent;Sintroducempunctedecontrolpentruvalidareasoluiei si a arhitecturi;Sneamintimdelimiteledehardware,reeasiacom-ponentelor integrate;S inemmintec resurselesuntlimitate(bani,dezvoltatori);

    D. The Good is the enemy o The Perect: s tindem la perecionismDefiecaredatsncercmsambuntimcodulexistent.Snunelsmpradideilor:mbuntireanusepltete, las c rezolvam cndva etc.Respectmuncataiaaltora.UtilizeazconceptulBenefits+1,ntotdeaunasaduci ceva n plus a de ce i s-a cerut.PROTOTYPE:creareadeprototipurineajutsmsiguri c suntem pe drumul cel bunDESENEZ:aareagracaaarhitecturiineaducebeneciul vizual al unei analize rapide

    Lista de mai sus se poate completa cu multe altele, astel ncts e una oarte complex i satisctoare, de ecare dat nstrebuie luat in considerare BENEFICIUL adus prin introducereanoilor complexiti.

    n urmtorul numr al revistei SM vom identica nite bestpractices pentru a crea arhitecturi accesibile ntregii echipe.

  • 7/30/2019 Today Software Magazine N11/2013

    22/52

    22 nr. 11/Mai, 2013 | www.todaysoftmag.ro

    Serviciile oerite de Cloud se mpart ndou mari categorii: SaaS i IaaS

    SaaS Soware as a Service: adicnchirierea de licene soware (pe bazde abonament). Mai exact, SaaS repre-zint o metod de a urniza acces lalicene sotware i uncionalitiloracestora printr-un serviciu Web-based.Folosirea acestei metode duce la elimi-narea nevoi de a instala i rula aplicaia

    local ceea ce va duce la uurareamentenanei i a suportului. Exemplede SaaS: CMS, CRM, Email, VirtualDesktop, Communications, Games, etc IaaS Inrastructure as a Service:

    reprezint nchirierea de resursehardware (spaiu de stocare, memoriei procesor). Acestea similar cu SaaS,odat externalizate vor aduce o relaxarea mentenanei i a suportului pe local,ocusul putnd mutat spre alte deta-lii. Exemple de IaaS: Virtual Machines,Servers, Storage, Load Balancers,

    Network, etc.

    n alte variante serviciile oerite deCloud mai conin de asemenea PaaS iNaaS:

    PaaS Platorm as a Service: nchi-rierea de platorme complete pentrudevelopment ce includ sistemele de ope-rare, mediile de programare, bazele dedate i web-serverele NaaS Network as a Service :

    nchirierea reelei, serviciilor de inter-

    conectare, VPN, optimizarea resurseloralocate, amd.

    Cteva din avantajele oerite de Cloudar i mobilitatea, viteza, capacitatea de

    stocare relativ nelimitat, puterea de pro-cesare i memorie cu mult superioare, lipsagrijilor n ceea ce privete mentenanasoware i hardware.

    Alte avantaje pe care un manager leurmrete n mod particular ar putea ireducerea cheltuielilor cu licenele sowarei hardware, dimensionarea costurilor nuncie de nevoi i transormarea costurilorde capital n costuri operaionale.

    Cine oer aceste servicii? n generalcompaniile mari gen HP, Keynote Systems,Advaltis, Compuware, Load Impact,SOASA, etc. Acetia se olosesc de servi-ciile de hardware vndute sau nchiriate deAmazon, Google, Microso, etc.

    Testarea n Cloudestarea este o provocare pentru multe

    proiecte, n special pentru aplicaiile mariunde business-ul i perormana au de sue-rit condiii grele de utilizare. Cantitateade testcase-uri poate varia de la cteva

    sute la cteva mii, iar toate acestea necesitresurse semnicative de hardware i timpde execuie. S nu mai vorbim de numrulmare de resurse umane necesare pentru aputea acoperi aceste nevoi. Cloud-ulvinen ntmpinarea acestor probleme ioer potenialul de abordare a acestora.Acesta oer resurse precum virtualizareahardware-ului n mod ecient, stocare neli-mitat i servicii de sotware i hardwarecare pot ajuta la reducerea timpului deexecuie.

    Cu toate aceste avantaje, migrarea nCloud este o operaiune destul de costisi-toare, iar uneori nu este neaprat cea maibun soluie la toate problemele de testare.

    Aadar ce ar trebui luat n considerare

    nainte s ne mutam testarea n Cloud?

    A. Caracteristicile aplicaieiCloud-ulne poate ajuta atunci cnd

    avem nevoie de conexiuni din dieritelocaii geograice cum ar i un site desocializare sau video-streaming. estarea

    rewall-urilori load-balancerelorimpliccheltuieli hardware, soware i ntreinereaacestora. n cazul aplicaiilor unde rata

    de cretere a numrului de utilizatori esteimprevizibil sau unde avem multe mediide deployment, Cloudul se arat din noumai ecient dect abordarea tradiional.

    B. Tipurile de teste pe care dorim s le acemDintre cele mai populare activiti de

    testare pe care le putem ace n Cloud: Stress Testing

    Load Testing

    Perormance Testing

    Functional Testing

    Compatibility Testing

    Browser Perormance Testing Latency Testing

    Mutarea n Cloud se ace de obicei pen-tru activiti ce in de testarea perormaneii simularea unui trac ct mai apropiat derealitate, distribuit in locaii diverse. Aici,Cloudul se remarc prin adaptabilitatei rapiditate n ceea ce privete rezultatulnal.

    Paii de urmat

    Aadar dup ce am stabilit c ne mutmn Cloud cu testarea, care ar i urmtoriipaii de cut?

    n prima az avem de identiicat istabilit care sunt scenariile pe care un

    n ziua de azi toat lumea vorbete despre Cloud, despre cum s ne mutm activitile pe Cloud, cum s ctigm timp olosindavantajele oerite de acesta. Dar pn la urm ce este de apt acest Cloud i cine are grij ca totul s mearg bine n interiorul lui?

    Cloudul este un mecanism complex ormat dintr-o multitudine de servicii soware i hardware adaptabile la nevoile clienilor.

    QA

    Testarea n Cloud

  • 7/30/2019 Today Software Magazine N11/2013

    23/52

    23www.todaysoftmag.ro | nr. 11/Mai, 2013

    TODAY SOFTWARE MAGAZINE

    utilizator al aplicaiei le va ace. Extragemtestcase-urile i trecem la urmtoarea az.Aceste dou etape sunt sau ar trebui ori-cum acoperite de la nceputul sprintului/proiectului.

    Al treilea pas, cel de selecie a CloudService Provider-ului, trebuie cut inconcordanta cu specicul aplica si rezul-tatele pe care dorim s le obinem. Deasemenea trebuie inut cont de serviciilepe care Providerul le urnizeaz. Lista deCloud Service Providers iind una oartedinamic, trebuie s avem n vedere s

    nu rmnem n urm n perioada ime-diat urmtoare innd cont de cerinele i

    expectanele pe care noi le avem.Al patrulea i al cincilea pas, Setup

    Inrastructure i Leverage Cloud Serverspresupun stabilirea hardware-ului necesarrulrii testelor, calibrarea i optimizareaserverelor din Cloud ca s corespundsetup-ului de producie n care aplicaianoastr va rula.

    Evident, ncepem rularea testelor,monitorizarea i apoi extragerea rezul-tatelor relevante, a rezultatelor care neintereseaz de apt pe noi.

    Flow-ulpare relativ uor i simplu din

    schema de mai sus dar totui ar ctevasaturi pentru o migrare cu succes. Unul

    dintre acestea estenelegerea plator-mei pe care se vamuta testarea i aconiguraiei aces-teia. Un alt punctde care trebuie inutcont nainte s nemutam n Cloud esteidentiicarea tipuri-

    lor de testare ce sepreteaz a i mutatedin interiorul com-paniei n exterior. Nutoate se preteaz saumerit a mutate.

    Avantajele mutriiin Cloud C o s t u r i

    reduse odat mutain Cloud; scpm degrija ntreinerii unui

    Cloud privat att dinpunct de vedere aresurselor hardwarect i a resurselorumane implicate nacest scop. Spaiu de sto-

    care oarte mare iaccesibil de oriunde;de pe device-urimobile dar i PC-uri Ru larea de

    teste automatizate ceau ost iniial nre-gistrate i veriicatelocal; Flexibilitatea

    la schimbarea sistemelor de operare,browser-elor; Mobilitate mare pentru departa-

    mentul de testare, acolo unde acestaeste distribuit n mai multe locaii; aicitestarea va avea un mare avantaj, timpulpetrecut n sincronizarea environment-urilor de test scade la minim. Relaxare n ceea ce privete

    mentenana serverelor de test pentru ctrecnd pe Cloud, aceasta grija se exter-nalizeaz i ea

    Dezavantajele mutrii in Cloud Conguraia iniial presupune nite

    costuri pentru mutarea testelor i adap-tarea acestora la environmentul nou pecare Cloud-ulle are. De aici se pleac deobicei n luarea unei decizii dac meritschimbat modul de testare curent sau nu; Securitatea de asemenea poate repre-

    zenta nc o problem pentru anumitetipuri de aplicaii; Rezultate dierite provenite din

    acelai testcase datorate schimbrii

    perormanei environmentului pe careproviderul de servicii le poate avea;

    ConcluziiVedem n jurul nostru tot mai multe

    companii care oer servicii de Cloud, nspecial de storage. Avem i companii ori-entate spre servicii mai specializate cumar testarea. Decizia de a muta testarea nCloud este pn la urm nu doar o deciziece ine de actori tehnici ci i o decizie deordin nanciar. Avantajele pe termen scurtpentru o aplicaie mare probabil nu vor

    vizibile, dar n timp cu siguran acestea sevor ace simite, investiia ind amortizat.Aadar, ne mutm testarea n Cloud?

    Reerine:http://cloudcomputing.sys-con.comhttp://wikipedia.orghttp://ieeexplore.ieee.org/xpls/abs_all.

    jsp?arnumber=5463680

    Vlad [email protected]

    Senior QA Engineer@ Small Footprint

  • 7/30/2019 Today Software Magazine N11/2013

    24/52

    24 nr. 11/Mai, 2013 | www.todaysoftmag.ro

    QA

    De asemenea, n companiile sowaremari unde exist departamente deDezvoltare, estare i I implicate nprocesul de dezvoltare exist nevoia decolaborare strns. Pentru asigurareaeicienei colaborarea se realizeaz prinprocese i produse standard care, datoritdiversitii proceselor i produselor utili-zate, devine un obiectiv greu de ndeplinit.

    Metodologia de dezvoltare careaccentueaz colaborarea ntre echipelede Dezvoltare, estare i I se numeteDevOps. Aceast metodologie presupunedenirea echipelor, a proceselor i a produ-selor olosite astel nct ciclul de producieal unei versiuni s e ct mai scurt.

    n companiile I romneti, care imple-menteaz metodologia DevOps, se olosescadesea soluii specice, dezvoltate intern,precum scripturi sau dierite utilitare. ncazul proiectelor dezvoltate n regim de out-sourcingacestea depind de procesele i/sau

    produsele impuse de nevoile i posibilitileclienilor. Departamentul i echipamenteleI sunt situate adeseori ntr-un centru dedate la distan i care este bazat pe serverezice, virtuale sau cloud.

    Prima problem o constinuie colabo-rarea ntre departamentele implicate. Dinacest punct de vedere echipa de dezvoltareare, de exemplu, o viziune a calitii die-rit de viziunea echipei de testare, echipade testare asupra implementrii iar echipade I despre produsul dezvoltat i testatde ctre echipele anterioare. Echipele aunevoie de un limbaj comun pentru comu-

    nicarea ecient.A doua problem este aceea de inte-grare i standardizare a proceselor iproduselor utilizate atunci cnd proiectele,produsele sau clienii se schimb. Pentru csoluiile iniiale sunt specice proiectelorexistente, acestea trebuie adaptate noilorcerine. Costul necesar implementrii uneiintegrri noi este semniicativ i trebuiemultiplicat n uncie de numrul de pro-duse noi utilizate i de natura lor.

    Prezentul articol prezint o abordare acelor dou probleme bazat pe o strategie

    de testare automat. Soluia denumit AOse dorete s e aplicabil n lumea DevOpsi reprezint un exemplu i nu o soluieabsolut. De asemenea, exemplele i teh-nologiile reerite sunt din lumea Java, iaraceast opiune e justicat de experienaautorului n acest domeniu I.

    StrategiaPentru dezvoltarea unei soluii abile

    i scalabile de testare automat, propunemobservarea a trei aspecte: mediul de tes-

    tare, testabilitatea produsului i integrareacontinu

    Mediul de Testare Complexitatea mediul de testare

    F

    acebook, Google sau Flickr au posibilitatea de a introduce n producie pn la10 versiuni noi de produs pe zi ntr-un mod transparent utilizatorilor. n lumeaeterogen i agil din industria I, dezvoltarea aplicaiilor i a serviciilor devine o

    provocare att datorit diversitii tehnologiilor i a produselor, ct i datorit numruluiacestora.

    Orchestrarea Testrii Automate

    Lucian [email protected]

    OO Content Arhitect@ HP Software Cluj

  • 7/30/2019 Today Software Magazine N11/2013

    25/52

    25www.todaysoftmag.ro | nr. 11/Mai, 2013

    TODAY SOFTWARE MAGAZINE

    utilizat variaz de la un server zic, loca-lizat n proximitatea programatoruluisau a testerului, pn la centre de datecomplexe, bazate pe tehnologii de vir-tualizare sau cloud. De multe ori mediulde testare este condiionat de costuri saude disponibilitatea clienilor de aici i deprovocarea asupra generalitii soluieide testare automat. n categoria pro-duselor gratuite intr VMware Player,Oracle VirtualBox, Linux KVM. Dintresoluiile comerciale de virtualizare celmai des ntlnite sunt VMware vCenter,Citrix Xen i Microso Hyper-V. Cndeste vorba de tehnologii cloud AmazonEC2 i implementrile OpenStack (cumeste HP Cloud) sunt liderii. Controlul soluia de testare auto-

    mat trebuie s prezinte capabiliti debaz de control al mediului de testare.Este necesar ca sistemul de testare spermitprovision-ulmediului de testareprin aciuni generice: pornire, oprire,congurare pentru ct mai multe tipuride medii de test. Pentru aplicatiile carenu oer un modul de instalare silenios,este util ca mediul de testare s permitrevenirea la o stare iniial. Aceasta sepoate ace prin snapshot-uri sau dispozi-tive de stocare nepersistente(o astel de

    uncionalitate este oerit de VMwarevCenter)

    Testabilitatea Produsului Instalarea - modul de instalare i

    dezinstalare. De multe ori aplicaiile per-mit un mod de instalare silenios. rebuieidentiicai parametri (iiere, regitrii,baze de date etc.) modicai n procesul

    de instalare/dezinstalare. Aceasta esteimportant pentru c, ntr-un sistemde testare automat este imperios nece-sar instalarea/dezinstalarea a dieritelorversiuni ale aplicaiei. Este recomandat

    utilizarea modului silenios de instalare/dezinstalare, dar exist i soluii alterna-tive care se pot utiliza; de ex dispozitivelede stocare non persistente menionatemai sus. Sistemul de testare automattrebuie s permit execuia local sau ladistan de scripturi: Bash, PowerShell,Python, Perl etc. Pentru conectare ladista acesta trebuie s suporte proto-coale precum SSH, WMI etc. . Conigurarea - opiunile de con-

    igurare a aplicaiei. Dup instalarea

    aplicaiei, pasul urmtor este congura-rea aplicaiei n vederea execuiei testelorautomate. Pentru injectarea datelor detest i congurarea aplicaiei se olosescrecvent opiuni precum: interaa uti-lizator, protocoale web (RES, SOAP),iiere, baze de date. ehnologiileimplicate adeseori n aceast az sunt:Selenium, HP UF (pentru interaautilizator), Soap-UI (SOAP), Spring,Apache Http Client (RES). Monitorizare - modalitile de

    observare a strii aplicaiei: interaa

    utilizator, baza de date, iiere log.

    Sistemul de testare automat trebuie sobin rezultatele rulrii testelor pentruvalidare i s notiice echipele impl i-cate asupra rezultatelor rulrii testelor.ehnologiile olosite pentru ndeplinireaacestei sarcini sunt de regul aceleai cucele menionate n seciunile de mai sus.

    Integrarea ContinuIntegrarea continu reprezint o prac-

    tic de promovare a unei integrri recventea codului surs ntr-un sistem de control

    al versiunilor central, build-ul recvent alaplicaiei mpreun cu rularea testelor uni-tare. Aceasta practic recomand existenaunui sistem de build ecient, a unei suitede teste unitate, a unui sistem de control alversiunilor i a unui sistem de noticare.

    Sistemul de Build dintre diversi-tatea sistemelor am identicat Jenkins,Hudson i CruiseControl ca iind celemai utilizate n lumea DevOps. Integrarea pentru un proces

    complet este necesar integrarea din-tre sistemul de build, testele unitare i

    produsele utilizare de echipa de testare

    Figura 1 Provizionarea mediului de testare

    Figura 4 Arhitectura generic TAO

    Figura 2 Instalarea, confgurarea i monitorizarea

    Figura 3 Serverul de build invoc testete automate

  • 7/30/2019 Today Software Magazine N11/2013

    26/52

    26 nr. 11/Mai, 2013 | www.todaysoftmag.ro

    QA

    (HP ALM/QC, Jira, Selenium, HP UF)precum i conectarea cu mediul de tes-tare. Comunitile Jenkins/Hudson oerextensii pentru dierite integrri precumJira, Selenium, HP UF, HP ALM/QCdar exist i alte soluii.

    Considernd toate aceste aspectelemenionate, o arhitectur generic de tes-tare automat este ilustrat n Figura 4.

    Soluia NoastrP r o d u s u l H P O p e r a t i o n s

    Orchestration(OO) automatizeaz pro-cesele I utiliznd luxuri i operaii deautomatizare. Operaiile sunt aciuniatomice care realizeaz sarcini speciiceprecum Remote Command Execution,SSH Command, SQL Query.

    Fluxurile sunt secvene de paiinterconectai logic, acestea constituind,n parte, cte o instan a unei operaii.Fluxurile reprezint procese complexede automatizare cum ar : Server HealthCheck, Provision Environment, Downloadand Install Application Build.

    n prezent, produsul oer o librriegratuit cu mai mult de 4000 de operaii i

    uxuri care acoper integrri cu tehnolo-gii precum HP, LDAP, SSH, WMI, Ant,PowerShell, integrri cu produse precumHP ALM, Jira dar i cu sisteme de virtua-lizare i cloud cum ar VMware vCenter,Hyper-V, Amazon EC2.

    Utilizatorul are posibilitatea s olo-seasc luxurile i operaiile oerite saus-i creeze unele noi, prin crearea de noiluxuri. Studio este un mediu vizual dedezvoltare care permite crearea de uxuriolosind structuri i paradigme mpru-mutate din programarea orientat obiectprecum: structuri de date (liste, iruri),structuri de control (i, case), reutilizare incapsulare.

    Fluxurile dezvoltate i testate n Studiosunt publicate ntr-o baz de date de unde

    sunt accesibile olosind o component webnumit Central. De aici, utilizatorul areposibilitatea s planice rularea uxurilor,astel nct acestea s e executate de exem-plu o dat pe noapte, dup ecare build.

    RezultateFolosind produsul OO am reali-

    zat o suit de luxuri de automatizare

    grupate sub numele AO (est AtomationOrchestration). Soluia rezolv problemade colaborare ntre echipele de dezvoltare,testare i I, printr-un mediu vizual uorde utilizat i de neles de ctre persoa-nele cu minim experien n limbajele deprogramare.

    Problema de integrare ntre dieriteletehnologii i produse este rezolvat olo-sind uxurile i operaiile oerite de ctreacest produs. n Figura 5 sunt reprezen-tate cteva luxuri utilizate olosind HPOperations Orchestration.

    Abordri SimilareExist produse similare care oer

    uncionaliti asemntoare cu OO dintrecare putem enumera: Electric Commander,

    Microsot System Center Orchestrator,UC4. Electric Commander reprezint,prin numrul de integrri i tehnologiiDevOps utilizate (sisteme de build, ser-vera de aplica ii, produse de testare), uncompetitor pentru produsul OO. Ambeleproduse oer un mediu de dezvoltarevizual a luxurilor, opiuni de planiicarea rulrii acestora i sisteme de raportare i

    Orchestrarea Testrii Automate

  • 7/30/2019 Today Software Magazine N11/2013

    27/52

    27www.todaysoftmag.ro | nr. 11/Mai, 2013

    TODAY SOFTWARE MAGAZINE

    monitorizare. Pe de alt parte, OO oer unset de uxuri mult mai extins pentru provi-zionare i integrare cu alte produse precumJira, HP ALM/QC, Amazon EC, HP ServerAutomation etc.

    ViitorulUrmtorii notri pai sunt extinderea

    uxurilor AO care sunt necesare n die-ritele scenarii DevOps precum integrareacu produse de analiz a codului (Sonar)i cu aplicaii de provizionare open-

    source. Ne propunem s cretem gradulde contientizare a calitilor produsuluiHP Operations Orchestration n generali a soluiei AO n particular prin crearea

    unei comuniti publice care s nlesneasci s ncurajeze accesul la luxurile dejaexistente.

    ReerineHP Operations Orchestration, Ofcial

    Webpage, Hewlett-Packard, November2012,

    HP Operations Orchestrat ion,Concepts Guide, Hewlett-Packard, June2010,

    Electric Commander, Ofcial Webpage,

    Electric Cloud, November 2012,op 10 Virtualization echnologyCompanies Webpage, Keneth Hess, 2010,

    Wikipedia, he Free Encyclopedia

    DevOps Webpage, November 2012.

    Figura 5 Fluxuri HP Operations Orchestration

  • 7/30/2019 Today Software Magazine N11/2013

    28/52

    28 nr. 11/Mai, 2013 | www.todaysoftmag.ro

    management

    OPTIONSABILITY

    O caracteristic discret a proiectelor IT

    Revenind la proiectele I, probabilmajoritatea, clieni i urnizori de soluii,ar deni o relaie de succes cnd livrareaprodusului s-a cut la timp, n bugetulalocat i a ndeplinit ateptrile legate

    de uncionalitate i calitate. Majoritateamanagerilor ar considera c proiectul s-aterminat cu bine i i-ar ndrepta ateniaspre o nou provocare. n realitate ns,perioada imediat urmtoare livrrii este unpunct critic, acolo unde oportunitile apar,att pentru client (beneciarul produsuluisotware), ct i pentru urnizor. Scopulacestui articol este s demonstreze de ceeste important acest moment, cui i revineresponsabilitatea lui i de ce merit tratat cun scop n sine al proiectului nc din azainiial a semnrii contractului.

    n general, la modul complet gene-ric, nelegerea i realizarea unui proiectsotware adun mpreun, ca echipauncional, trei pri:

    Analiznd proiectele de succes i maidetaliat, se constat ns c, dincolo dedierenele de tehnologie, metodologie ide process, succesul lor se datoreaz uneiproprieti creia, negsindu-i un nume

    denitoriu, i-am spus optionsability. Sedenete ca proprietatea de a avea i ur-niza opiuni. Relaia uncional ntre prise transorm puin i ncearc astel santicipeze drumul proiectului:

    Cum nehotrrea clientului este unapt destul de comun iar managementulriguros i pragmatic, componenta tehnici cunoate n schimb rolul precis. Dacpentru obiectiv sau produs toate prile sengrijesc consecvent, responsabilitatea pen-

    tru optionsability revine: .developerilori arhitecilor ca i o echip. Subliniez roluldeveloperilorpentru c un plan bun poateavea o implementare corect, dar rigid, iarei sunt cei care iau aceast decizie, voluntar

    Oprivire de ansamblu asupra actualitii sociale i proesionale ne relev o evoluiemai degrab exponenial, mai ales pe ultimii douzeci de ani, care ace ca astzi

    beneciile i standardele pentru persoana noastr s e oarte ridicate. Dincolode schimbrile evident perceptibile, dinamica i amploarea acestor evenimente a cut can ultimii ani s aib loc i o important, dar subtil, schimbare a poziionrii accentului:conteaz realizrile, dar, mai mult dect att, astzi, conteaz opiunile pe care le ai. Dacmai sunt i domenii n care acest lucru este mai puin valabil, n I aceast concluzie estect se poate de real i prezent.Bogdan Matei

    [email protected]

    Senior Php Developer@ 3Pillar Global

  • 7/30/2019 Today Software Magazine N11/2013

    29/52

    29www.todaysoftmag.ro | nr. 11/Mai, 2013

    TODAY SOFTWARE MAGAZINEprogramare

    sau imperceptibil. Aadar, la nivel local, areloc construcia unei proprieti importantea proiectului, ind un eveniment continuu,ataat azei dezvoltrii proiectului.

    Ideal ar i ca i clientul s conturezedirecii de deschidere ale unor viitoareopiuni, dar n practic acest lucru estemai rar ceea ce ace ca rolul tehnicienilorcu att mai important. i managerii au unrol important, prin atenia continu pen-tru meninerea proiectului n timp, bugeti unctionalitatea cerut.

    Am denit proprietatea, i-am exprimatdurata de via, am gsit responsabilii, darde ce este ea important i pentru cine?Pentru a rspunde de ce este sucient oprivire mai atent asupra produselor carese bucur azi de succes: SUVs, smartpho-nes, smart Vs, mobilierul modern (gen

    Ikea), articolele pentru sport, uneltelede bricolaj etc. i chiar tendinele dinI (Facebook, WhatsApp, iunes etc).Aspectul unui produs (designul) i cali-tatea materialelor (sau implementarea)de obicei calic un produs spre atraciai aectivitatea consumatorilor (devininteresai de el), ns cele care construiesclegtura de succes sunt opiunile pe careprodusul le oer. Uneori opiunile oeritereuesc singure s decid asupra succesu-lui. Majoritatea avem sau vom avea copii.

    Dup ce am realizat mai multe rateuri lacumprarea jucriilor, am constatat c,inclusiv de la vrste mici, alegerile se acn mod natural dup opiunile disponibile.Nu cred c are rost s detaliez ce opiuniau Spiderman, Batman, Ironman, eroii dinStar Wars i ransormers

    n ceea ce privete rspunsul la ntre-barea pentru cine?, rezultatul este simpludar surprinztor: pentru toi.

    Pentru client, implicat n comunitateaaacerilor, opiunile sunt mai importantedect realizrile n sine, n special nmomente de criz, cnd posibilitile scad.Un argument n acest sens este evoluiaaciunilor Apple n ultimul an, dei com-pania a raportat record la protabilitate.A avea optiuni a ajuns s reprezinte unavantaj mai important dect a avea reali-zari n sine. Opiunile sunt pentru aacereun rezervor de siguran, o margine deexibilitate, iar pentru proprietarul ei unconort care urnizeaz sentimentul ncre-derii i libertii. n sine, aceste detalii potparea lucruri nesemnicative, ns ele suntmotoarele care produc consecine n deci-ziile importante.

    Prin ndreptarea ateniei i dincolo descopul proiectului, ctre opiuni, pe ter-

    men scurt este posibil s apar i o creterea costurilor, datorit necesitilor de cali-icare mai ridicat i a schimbrilor dementalitate necesare. Aceast mentalitatede a te gndi la opiuni, nu implic neap-rat implementarea lor, ci doar o pregtireprealabil, nc din aza concepiei tehnice,pentru unele dintre ele - cele mai suscep-tibile s e cerute sau avantajoase. Pentruselectarea lor este nevoie de comunicarentre pri i o cunoatere atent. Pe ter-men lung ns (peste 1 an), ctigurile sunt

    incomparabile: crete eciena prin reducerea tim-pului petrecut pentru reinventarearoii; se realizeaz o baz de cunotiine i

    unelte (re)utilizabile; scade necesitatea rescrierii proiecte-

    lor (comarul clienilor); ajut la realizarea mult doritelor

    best practice;

    scade timpul dezvoltrilor, compen-sate de adaptri i integrare a ceea ceexist acut; integrarea juniorilor sau a noilor

    venii se ace mai rapid; estimarile sunt mai precise.

    Un motiv deloc de neglijat este i cres-terea aprecierii clienilor, care ajung sse consulte cu tine, s te recomande i saib ncredere n relaia de aaceri avutmpreun. n timp, rezultatele gndirii cuoptionsability se transpun n reputaiacompaniei.

    Pentru echipa tehnic, avantajele suntde asemenea considerabile: crete nivelulde proesionalism, cu implicare mai mareinclusiv n contextul de business (develope-rul se pune mai concret n pielea clientului

    i caut solutii i posibiliti), scrierea decod devine mai provocatoare. A ace oarhitectur exibil sau a scrie cod usor decitit, reutilizabil i robust este mai entuzi-asmant i mai olositor. Odata codul scrisastel se adun o baza reutilizabil, cretencrederea i se reduce stresul necunoscu-telor, estimrile sunt o mai mic problem.Juniorii au de asemenea un model mai bundect clasicul ncercare-greeal.

    Pentru echipa marketing, opiunilesunt materie prim de cea mai bun

    calitate. Luai spre exemplu cele mai cunos-cute produse: Coca-Cola, BMW, Audi,Starbucks etc. Aproape c nu se promo-veaz produsele n sine, ci direct opiunilesau emoii aduse de opiunile produselor.Opiunile ajut specialitii n marketings conceap reclame mai atractive i maieiciente, prin ocalizarea mesajelor peopiunile pe care oamenii le apreciaz celmai mult, dar, atenie, oerite de produs.

  • 7/30/2019 Today Software Magazine N11/2013

    30/52

    30 nr. 11/Mai, 2013 | www.todaysoftmag.ro

    managementOPTIONSABILITY - O caracteristic discret a proiectelor IT

    Pentru consumatorul inal a aveaopiuni este o justiicare retoric. Cu ctsunt mai educai, cu att oamenii realizeazimportana optiunilor n detrimentul acti-velor concrete (bunuri, bani etc.). Opiunilesunt vzute ca o soluie sau speran spreecien, perorman sau divertisment.

    Probabil pn n acest moment amlmurit aspectele deinitorii ale aces-tei proprieti, dar ceea ce este mult maiimportant este punerea n practic. Caorice schimbare de mentalitate nu cred ceste realist de ateptat o aderen imediati general la toate persoanele implicate.Aceast mentalitate necesit mai multcreativitate i pasiun