Sunteți pe pagina 1din 52

Nr. 16 Octombrie 2013 www.todaysoftmag.ro www.todaysoftmag.

com

TSM

T O D A Y S O F T WA R E MAG A Z I NE

ile g A n es c i t c gnalR a i r S p d losin Best o f e UA im


C real t n OP i i r i p a Aplic triale s u d n zri i i t a m Auto

Automatizri industriale prin OPC UA Dezvoltarea de jocuri cross-platform Agilitatea Presupune Craftsmanship Promovarea fr costuri a organizaiilor non profit Scurt introducere n mediul SAP (II) SAP User Experience

Recenzie de carte: NoSQL Distilled Spre comunitatea IT via HR (3) SmartWebConf 2013 Analitica Big Data n aplicaiile moderne Gogu i comunicarea Leadership ctre liderul tu

6 Perspective
Marius Mornea

26 Spre comunitatea IT via HR (3)


Dan Ionescu i Cristina Nicule

7 Conectarea tehnologiilor inovative la piaa global


Ana Rducanu

29 Automatizri industriale prin OPC UA


Waldemar Knopp

8 Concurs de programare Catalysts CCC


George Platon

32 Aplicaii real-time folosind SignalR


Radu Vunvulea

9 Inovaie, antreprenoriat i tehnologie la How to Web 2013


Irina Scarlat

36 Scurt introducere n mediul SAP (II)


Victor Ionescu

10 SmartWebConf 2013
Radu Popescu

39 Automatizeaz toate lucrurile!


Attila-Mihaly Balazs

13 Best Practices n Agile


Dan Suciu

42 NoSQL de Pramad J. Sadalage i Martin Fowler


Silviu Dumitrescu

16 Agilitatea Presupune Craftsmanship


Alexandru Bolboaca i Adrian Bolboac

43 Dezvoltarea de jocuri cross-platform


Cristian Bidea

18 HR n Agile
Andreea Prvu

45 DoItFor.co
Teodor Olteanu

20 Analitica Big Data n aplicaiile moderne


Adrian Margin i Andras Gyalai

47 Leadership ctre liderul tu


Antonia Onaca

24 Promovarea fr costuri a organizaiilor non profit


Radu Popescu

49 Gogu i comunicarea
Simona Bonghez, Ph.D.

editorial

Ovidiu Man, PMP

ovidiu.matan@todaysoftmag.com Editor-in-chief Today Software Magazine

emult, n timp ce lucram la o companie multinaional, CEO-ul companiei a introdus un termen referitor la un mod de a lucra fr a face uz de poziia curent. Acel termen era modestia (e.n. humble) i a avut efecte imediate datorit exemplului. Dintr-o dat nu mai conta neaprat titlul fiecruia, ci puterea de a i asculta pe ceilali i de a gsi mpreun soluii. De altfel, dac v uitai n jur, cei mai apreciai lideri sunt cei care tiu s asculte i au un grad ridicat de modestie. Am asistat de curnd la o ntlnire a reprezentanilor IT din Romnia care a avut loc n Cluj, unde, din pcate, ultimul lucru pe care l-am vzut a fost modestia. Din cauza trend-urilor actuale care spun s fim din ce n ce mai buni i s impresionm pe toat lumea, omitem cteva lucruri de baz. Uitm c dorina de a empatiza, de a ptrunde n orizontul de ateptare al celor din jurul nostru i de a-l nelege se poate impune ca o condiie de baz a unei bune colaborri, care este prioritar n industria actual productoare de software. Eficiena comunicrii i colaborrii ntre entitile companii - universiti - startup-uri - angajai este de cele mai multe ori efectul aplicrii acestui principiu al modestiei i al abandonrii ideii c doar numele unei funcii cu rezonan poate impune respect i autoritate. Revenind la evenimentele zilnice, mi face plcere s v spun c am avut prima lansare n Bucureti a revistei, eveniment gzduit de Gemini Solutions. Au fost prezeni colegii din Bucureti ai revistei precum i susintori ai acesteia. Ne-am bucurat de un eveniment plin de profesionalism desfurat ntr-o atmosfer prieteneasc. Promitem s revenim ct de curnd n capital pentru lansarea unui nou numr TSM. Toamna a venit cu mai multe evenimente dedicate IT-ului. Am participat la SmartWeb Conf, un eveniment dedicat dezvoltatorilor web care va fi descris pe larg n paginile urmtoare. De asemenea, n Iai am participat ca parteneri la deja clasicul eveniment ..even mammoths can be Agile . Tot n acest ora vom fi prezeni ca parteneri media la CodeCamp Iai. Un element de noutate este proiectul unui mare eveniment, despre care nu v dezvluim nc foarte multe, dect c este dedicat trend-urilor din IT i c va avea loc n Cluj la nceputul lunii decembrie. Dar vom reveni cu detalii n urmtoarele sptmni. Tema acestui numr este server-side i agile, domenii interesante dezbtute pe larg n cadrul revistei. Tema agile este prezent ntr-o serie de articole: Best Practices n Agile, Agilitatea Presupune Craftsmanship i HR n Agile , n vreme ce server-side apare n Analitica Big Data n aplicaiile moderne, Aplicaii real-time folosind SignalR, DoItFor.co i review-ul crii NoSQL de Pramad J. Sadalage i Martin Fowler. Partea a III-a a studiului de HR privind companiile de IT din Cluj este publicat n acest numr n titlurile: SPRE COMUNITATEA IT via HR (3). Mai doresc s menionez prezena a dou articole inedite: Automatizrii industrialeprin OPC UA precum i Dezvoltarea de jocuri crossplatform semnat de studioul de jocuri King. nchei printr-o invitaie la un concurs de programare/algoritmic organizat de Catalyst CC. Acesta va avea loc vineri 11.10, simultan la Cluj (sediul FSEGA) i Viena. Participarea este gratuit, pe viitor vom ncerca s aducem aproape de voi mai multe concursuri de acest fel. V dorim o lectur plcut !!!

Fondator al Today Software Magazine


nr. 16/Octombrie - www.todaysoftmag.ro

Ovidiu Man

TODAY SOFTWARE MAGAZINE


Lista autorilor Redacia Today Software Magazine
Fondator / Editor n chief: Ovidiu Man ovidiu.matan@todaysoftmag.com Editor (startups i interviuri): Marius Mornea marius.mornea@todaysoftmag.com Graphic designer: Dan Hdru dan.hadarau@todaysoftmag.com
Attila-Mihaly Balazs Alexandru Bolboaca Dan Suciu

alex.bolboaca@mozaicworks.com Agile Coach and Trainer, with a focus on technical practices @Mozaic Works

dan.suciu@3pillarglobal.com Director of Engineering @ 3Pillar Global

Radu Vunvulea

Radu.Vunvulea@iquestgroup.com Senior Software Engineer @iQuest

Cristian Bidea
Lead developer @ King

Copyright/Corector: Emilia Toma emilia.toma@todaysoftmag.com Traductor: Roxana Elena roxana.elena@todaysoftmag.com

dify.ltd@gmail.com

Victor Ionescu

victor.ionescu@msg-systems.com SAP IT Consultant @ msg systems Romania

Code Wrangler @ Udacity Trainer @ Tora Trading

Adrian Bolboaca Teodor Olteanu


Teodor.Olteanu@betfair.com End User Computing Lead @ Betfair Romania

adrian.bolboaca@mozaicworks.com Programmer. Organizational and Technical Trainer and Coach @Mozaic Works

Reviewer: Tavi Bolog tavi.bolog@todaysoftmag.com Reviewer: Adrian Lupei adrian.lupei@todaysoftmag.com

Waldemar Knopp

knopp.waldemar@evoline.ro

Andras Gyalai andras.gyalai@isdc.eu Software architect @ ISDC

Today Software Solutions SRL


str. Plopilor, nr. 75/77 Cluj-Napoca, Cluj, Romania contact@todaysoftmag.com www.todaysoftmag.ro www.facebook.com/todaysoftmag twitter.com/todaysoftmag ISSN 2284 6352

Produs de

Software Engineer @ Evoline

Dan Ionescu

dan.ionescu@danis.ro Director Executiv @ Danis Consulting

George Platon

George.Platon@catalysts.cc Software developer @ Catalyst

Cristina Nicule

cristina.nicule@danis.ro Consultant @ Danis Consulting

Antonia Onaca

anto@aha-ha.com de aproape 10 ani trainer, psiholog, consultant sub form de antreprenor, intraprenor i antreprenor din nou

Simona Bonghez, Ph.D.

simona.bonghez@confucius.ro Speaker, trainer i consultant n managementul proiectelor, Owner al Colors in Projects

Irina Scarlat

irina.scarlat@howtoweb.co PR Manager @ How To Web

Copyright Today Software Magazine


Reproducerea parial sau total a articolelor din revista Today Software Magazine fr acordul redaciei este strict interzis. www.todaysoftmag.ro www.todaysoftmag.com

Adrian Margin adrian.margin@isdc.eu Software architect @ ISDC

Silviu Dumitrescu silviu.dumitrescu@msg-systems. com Consultant Java @ msg systems Romania

Radu Popescu

rpopescu@smallfootprint.com QA i Web designer @ Small Footprint

Andreea Prvu

andreea.parvu@endava.com Recruiter n cadrul Endava

www.todaysoftmag.ro | nr. 16/Octombrie, 2013

analize

Perspective
e msur ce devenim tot mai specializai, se ntmpl frecvent s ne izolm ntr-un mediu n care suntem nconjurai de oameni, idei, informaie, specifice domeniului n care ne specializm. Acest lucru l resimt frecvent cnd fac tranziia de la interaciunea cu colegii de birou, profesionitii de la evenimente de profil, prietenii de la facultate, spre cea cu familia, oamenii din medii diferite, iar cel mai puternic contrast l resimt cnd interacionez cu grupuri la fel de specializate, dar n alt domeniu, de exemplu medicii specialiti. De la subiectele specifice dintr-un domeniu strin, pline de termeni stranii i curioi, pn la amuzamentul tipic al specialistului pus n faa unei interpretri fanteziste a unei tehnologii din rutina sa zilnic, se contureaz un spectru de perspective total diferite de cele cu care suntem obinuii n mediul nostru izolat. Un astfel de spectru construiete Nicholas Carr n The Big Switch Rewiring the World, From Edison to Google. Exist multe motive, recenzii i argumente pentru a recomanda aceast lectur, dar eu am s insist pe acela al perspectivelor variate. ncep aceast recenzie informal, printr-o comparaie cu o alt lectur pe care o recomand cu cldur: Manna, de Marshall Brain. O nuvel care combin contrastant o viziune distopic i una utopic asupra evoluiei societii tehnologizate. ntr-o form succint, poate uor prea optimist i simplificat, sunt comparate dou extreme, binele i rul. Iar tocmai aici se difereniaz Carr, insistnd s nlocuiasc acest tablou alb-negru cu unul plin de nuane de gri. Jurnalist de meserie, Carr ncepe cu fapte i prezint o paralel ntre apariia reelei de distribuie curent electric i cea de calculatoare. Este fascinant s descoperi c aceast revoluie tumultoas, generat de apariia calculatorului, internetului i al Facebook-ului, este doar o nou instan a unei istorii vechi. Tehnologii care au schimbat complet viaa umanitii, au dus la dispariia unor ntregi industrii i moduri de via, se ntmpl mai des dect realizm, la doar o generaie distan. Plin de date i argumente, partea de nceput a crii pare un studiu de caz, foarte detaliat, al crui rezultat este de mult cunoscut de ntreaga lume, dar ale crui detalii l fac extrem de actual i pertinent. Motiv pentru care, toate perspectivele mistice i apocaliptice asupra efectelor curentului electric asupra societii, aa cum era perceput acum un secol, par amuzante i nefondate. n partea a doua a crii, Carr adun tocmai astfel de perspective mistice i apocaliptice, dar de aceast dat legate de the World Wide Computer, le tempereaz cu pragmatismul specialitilor IT, politicienilor i oamenilor de afaceri, le condimenteaz cu euforia filozofilor, revoluionarilor i a jurnalitilor de senzaie, i construiete un caleidoscop n care perspectiva noastr, a profesionitilor IT, devine greu de recunoscut. Se pierde ntre tranzaciile pe burs, scenariile de distrugere a web-ului de ctre armata american, teorii ale echilibrului sistemelor naturale, pierderea intimitii, identitii i diversitii, libertatea de exprimare i manipularea, roboti i tranziia spre o inteligen comun, de roi, n care individul este subordonat inteligenei colective. Toate par uor nerealiste i exagerate, amuzante i nefondate, la fel ca i cele de acum un secol, cnd curentul electric revoluiona umanitatea. i totui, cnd privind ca un specialist IT, regseti n paginile unei cri din 2008, realiti din ziua de azi, argumente care dovedesc o bun nelegere a conceptului de cloud computing i cu greu descoperi mici inconsistene la nivel de detaliu tehnic, merit s te ntrebi dac toate celelalte perspective sunt la fel de bine studiate i imparial prezentate. Este tentant s dai vina pe autor pentru stilul uor senzaional al diverselor viziuni, pn ce realizezi c nu sunt ale lui proprii, el doar le culege i le retransmite din viaa celor din jur. Iar n acel moment, nu mai exist bine i ru, optimism i pesimism, viziuni utopice sau distopice, doar foarte multe fee ale industriei IT, ale internetului i ale modului n care este perceput de toi cei din jur. Iar eu ca specialist am fost fascinat s descopr ct de diverse pot fi perspectivele altora asupra muncii mele de zi cu zi. Gsii un loc ntre lecturile tehnice i profitai de ocazia s citii despre IT i istoria lui cu ochii celor din jur.
Marius Mornea
marius.mornea@todaysoftmag.com Inginer interesat i implicat n diverse activiti IT, de la dezvoltare, management, pn la educaie i jurnalistic n cadrul Epistemio, UTCN i TSM

nr. 16/Octombrie, 2013 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE

startups

Conectarea tehnologiilor inovative la piaa global


ntreprenorii n tehnologii inovative din Romnia se confrunt cu provocri precum lipsa accesului la capital, a informaiilor despre pia i a conexiunilor la reele globale n vederea comercializrii. Pentru a rspunde acestor provocri, un model de asisten antreprenorial vine n completarea ecosistemului romnesc de inovare. Programul de Asisten n Comercializarea Inovrii din Romnia (RICAP) este complementar altor iniiative de sprijin antreprenorial, abordnd componenta de comercializare a inovrii. Utiliznd modelul i resursele Institutului Larta, din n Los Angeles, SUA, programul conecteaz ntreprinderile bazate pe tehnologie la o reea global de poteniali parteneri, expertiz i capital. Facilitnd tranzitul produselor inovatoare din laborator ctre pia, RICAP urmrete construirea unei reele de ntreprinderi inovatoare i mentori locali i conectarea acesteia la o reea global. RICAP se adreseaz antreprenorilor i cercettorilor romni inovatori n tehnologie, cu potenial de comercializare. Aplicanii pot proveni din orice domeniu de activitate, inclusiv IT&C, mecanic, mecatronic, tehnologii agricole, biotehnologii, precum i altele. Dac suntei selectai pentru a participa la RICAP, vei beneficia de programe de mentorat personalizat cu experi din Romnia i din SUA, training-uri n comercializarea inovrii i ntlniri cu poteniali parteneri i finanatori pe plan internaional. Inovatorii interesai vor putea s aplice la program pn pe 15 noiembrie 2013. Aplicarea se face prin completarea unui scurt formular online, care cuprinde informaii de baz despre profilul organizaiei, tehnologia, ncadrarea pe pia i obiectivele de comercializare. Pentru mai multe informaii, cei interesai sunt invitai s participe la evenimentele RICAP Innovation Info. Aici se va discuta despre program i comercializarea inovrii mpreun cu Rohit Shukla, CEO Larta Institute, Drago Pslaru, manager general GEA Strategy & Consulting i director de program RICAP, precum i cu restul echipei de proiect. Evenimentele vor avea loc la: Bucureti - Tech Hub, 22 octombrie, 18:30 Cluj - Universitatea Tehnic din Cluj-Napoca, 23 octombrie, 14:00 Iai - Tehnopolis, 25 octombrie, 9:30 nscrierea se poate realiza pe blogul www.ricap.ro/blog sau printr-un e-mail la contact@ricap.ro pn joi, 17 octombrie. RICAP este rezultatul unui parteneriat ntre Centrul Romn pentru Inovaie n Dezvoltare Local (CRIDL) i Institutul Larta, localizat n Los Angeles, SUA. Programul este finanat de Romanian-American Foundation (RAF) i implementat cu sprijinul GEA Strategy & Consulting. RICAP se bazeaz pe reeaua internaional i expertiza acumulat timp de douzeci de ani de Larta Institute prin susinerea a circa 3.500 de inovatori din aptesprezece ri, precum i pe experiena membrilor CRIDL i GEA Strategy & Consulting n sprijinirea antreprenoriatului din Romnia.

Ana Rducanu

ana.raducanu@cridl.org Communication manager @ RICAP

www.todaysoftmag.ro | nr. 16/Octombrie, 2013

evenimente

Concurs de programare Catalysts CCC

Catalysts Coding Contest (vezi http:// contest.catalysts.cc ) a fost organizat prima dat n anul 2007 n Austria. Datorit feedback-ului pozitiv primit, de atunci s-au organizat cte trei concursuri n fiecare an, cu un numr crescnd de participani din toat lumea la fiecare ediie. Catalysts Coding Contest const n trei concursuri care au loc n paralel: n locaii specifice cum ar fi ClujNapoca, Linz, Vienna sau Hagenberg. online la care particip concureni din Franta, Spania, Grecia, Anglia, Ungaria etc. ntre coli, numit CCC-School, care momentan este disponibil doar n Austria. Evenimentul adun n fiecare an persoane de toate vrstele, ncepnd de la elevi talentai de liceu, studeni remarcabili care vor s i testeze limitele pn la programatori experimentai toi avnd n comun pasiunea pentru programare i probleme de logic. Datorit faptului c participarea este gratuit i limbajul de programare este la libera alegere a concurentului, exist o mare varietate de tehnologii implicate i persoane concurente. De aceea, la aceeai mas a concursului poi gsi un tnr programnd n Java, C++ sau Pascal, pe altul bucurndu-se de noile faciliti aduse de limbaje mai noi cum ar fi Scala, Groovy sau Haskell i nu n cele din urm un fan nrit iOS care i foloseste cunotinele pentru a rezolva cerinele i exemplele

n urma succesului concursului organizat n data de 26 aprilie n Cluj-Napoca (Romnia) i Linz (Austria), am decis s organizm ediia 17 a evenimentului din nou n Cluj. V invitm vineri pe 11 octombrie la ora 14:00 (ora de incepere este 15:00) n campusul universitii Babe-Bolyai, FSEGA, etajul 3, strada Teodor Mihali, nr. 58-60, Cluj-Napoca! pot continua. De fapt, acesta este unul dintre lucrurile noi pe care le aduce concursul nostru fa de toate celelalate olimpiade de informatic sau alte competiii de programare - unitate n diversitate. Unitate prin faptul c toi participanii trebuie s rezolve aceeai problem format din cele 6, 7 niveluri i diversitate prin toate celelalte aspecte fie prin concureni, fie prin tehnologiile folosite. De-a lungul celor 16 concursuri am colectat statistici despre varietatea limbajelor de programare, media de vrst a participanilor, nivelurile la care s-a ajuns cu fiecare limbaj de programare i diferitele versiuni de implementare n limbajele folosite. Aceste statistici sunt disponibile la cerere pe site-ul concursului. Pentru a familiariza concurenii cu modul de desfurare i tipurile de probleme ntlnite, se ofer posibilitatea antrenamentului pe platforma CatCoder (vezi https://catcoder.catalysts.cc ). Concursul const dintr-o problem de logic/algoritmic care are ase sau apte niveluri i trebuie rezolvat n patru ore. Aceasta are o tem specific, care se schimb la fiecare ediie a concursului. Astfel, concurenii sunt prini n rezolvarea problemei prin trecerea fiecarui nivel care aduce noi cerine i noi indicii folositoare. De aceea, concursul se poate asemna cu o cltorie n care n primul nivel se dau cerinele iniiale, iar cu fiecare nivel rezolvat se adaug cerine, noi dificulti, precum i noi informaii folositoare. Pe parcursul concursului se ofer buturi i mncare, iar dup concurs va avea loc ceremonia de premiere n cadrul creia se ofer pizza i buturi. Dup aceea, se asigur timp pentru socializare i schimb de idei, unde concurenii pot lua legatura cu alte companii i cu persoanele pasionate de informatic. Pentru condiii de participare vezi regulile oficiale i manualul la http://bit. ly/14HrTA8 .

Blog - http://contest.catalysts.cc/ Facebook - http://www.facebook.com/ CatalystsCodingContest

George Platon

George.Platon@catalysts.cc Software developer @ Catalyst

nr. 16/Octombrie, 2013 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE

evenimente

Inovaie, antreprenoriat i tehnologie la How to Web 2013


ucureti, 11 septembrie 2013 Pe 20 i 21 noiembrie Crystal Palace Ballrooms gzduiete a patra ediie a How to Web, cel mai important eveniment dedicat inovaiei, antreprenoriatului i tehnologiei din Europa de Sud-Est. Vorbitori internaionali de calibru vin n premier n Romnia pentru a mprti bune practici unei audiene formate din peste 800 de persoane. n paralel competiia i programul de orientare Startup Spotlight aduce fa n fa cele mai bune 32 de echipe din regiune cu mentori de excepie i reprezentani ai celor mai apreciate acceleratoare din lume. S cretem mpreun n 2013! Aceasta este tema principal a How to Web, eveniment care va aduce de aceast dat n discuie modul n care pot fi dezvoltate produse de succes la scar global. Subiectele acoperite vor include inovaie i scalabilitate, aplicaii pentru dispozitive mobile, software-as-a-service i jocuri sociale, big data i interfee inteligente, hardware i IoT, dar i localizare i paticularitile caracteristice pieei est-europene. Cei peste 800 de participani ateptai vor avea ocazia s urmreasc studii de caz practice, s descopere puterea inovaiei de a schimba lumea, dar i s cunoasc reprezentani importani ai scenei tech la nivel global. La final, audiena va avea ocazia sa aplice leciile nvate pentru a-i dezvolta n continuare produsele i a-i scala propriile companii. i de aceast dat How to Web se remarc prin calitatea invitailor care vor fi prezeni pe scena conferinei. Printre vorbitorii confirmai pn n acest moment se numr Thomas Hartwing (CTO i Co-Fondator al King.com, una dintre cele mai importante companii de gaming din lume), Christian Reber (CEO i Fondator al 6Wunderkinder, unul dintre cele mai de succes start-up-uri europene), Paul Ford (VP i CEO SoftLayer, companie de infrastructur achiziionat de IBM cu 2 miliarde USD la nceputul anului), Adii Pienaar (Co-Fondator i ex-CEO Woo Themes, liderul mondial n crearea de teme i plugin-uri pentru Wordpress), Kei Shimada (Director of Business Development Dentsu, antreprenor originar din New York care, dup ani de experien n companii de top la nivel mondial, a decis s i dedice timpul pentru a susine companiile japoneze s dezvolte produse i servicii globale), Tal Siach (Co-Fondator i CMO Visual.ly, cea mai mare comunitate de infografice i vizualizare de date din lume), Philipp Kandal (Co-Fondator i CTO Skobbler, start-up care a ctigat premiul pentru cea mai inovatoare companie din Europa la Navteq LBS Challenge n 2009 i care are n prezent peste 3.5 milioane de utilizatori la nivel mondial), sau Michael Levit (Fondator Spigot i Managing Partner Founders Den, incubator exclusivist din San Francisco). n paralel, Startup Spotlight aduce mpreun cele mai inovatoare 32 de startup-uri din regiune, acceleratoare de talie mondial, investitori, experi n tehnologie la nivel internaional i programe de suport. Echipele cu cele mai bune rezultate vor avea ocazia s i prezinte produsele pe scena principal a How to Web, iar ctigtorii vor fi rspltii cu premii cash n valoare de 20.000 USD. Participanii vor primi feedback i vor interaciona cu reprezentani ai celor mai apreciate acceleratoare din lume. Printre acetia i amintim pe Jon Bradford (Managing Director TechStars London, UK, program de 13 sptmni care ofer echipelor finanare seed, spaiu de lucru i acces la mentori i ali antreprenori), Carlos Espinal (Partener Seedcamp, UK, liderul european al programelor de mentorat i finanare micro-seed) sau Rune Theill (Director Program Rockstart Accelerator, Olanda, program care ofer investiie de tip seed, spaiu de birouri, acces la 99 de mentori, coaching i o vizit de 3 sptmni n Silicon Valley). Acestora li se adaug Lyuben Belov (Co-Fondator LAUNCHub, Bulgaria), Dylian Dimitrov (Fondator Eleven Startup Accelerator, Bulgaria) sau Sitar Teli (Managing Partner Connect Ventures, UK). Biletele de tip early bird pentru How to Web 2013 sunt disponibile pn pe 12 noiembrie i pot fi achiziionate online pe site-ul evenimentului http://howtoweb.co. Echipele inovatoare care i doresc s participe la Startup Spotlight pot aplica online la http://startupspotlight.co. Participarea la competiia i programul de orientare pentru start-up-uri este gratuit pentru cei 32 de finaliti care vor fi selecionai de un juriu format din experi internaionali. How to Web este un eveniment dezvoltat cu susinerea IXIA i X3.

Mediatizarea evenimentului este asigurat de parterii media principali Prove PR, Digi TV, Adevrul, Forbes Romnia, Capital, Wall-Street.ro, Evenimentul Zilei, DAS Cloud, Revista Cariere, Ctrl-D, Start-ups.ro i Entrpreneur. bg, si de partenerii media Economy.bg, Newtrend.bg, Digijtale, IT Dogadjaji, CEE Startups, Invendor.hu, Goal Europe, Akcees, IQ Ads, Computer World, PC World, Business Cover, Tech Cover, Business Woman, Gadget & Trends, Comunicaii mobile, Market Watch, Business Review, Manager Express, Romnia Liber, Comunicatedepres.ro, Zelist, Ejobs i Today Software Magazine.

Irina Scarlat

irina.scarlat@howtoweb.co PR Manager @ How To Web

www.todaysoftmag.ro | nr. 16/Octombrie, 2013

evenimente

SmartWebConf 2013
startups
n 24 septembrie a avut loc la Bucureti, n elegantul JW Marriott Grand Hotel, prima ediie a SmartWeb Confrence 2013, un eveniment dedicat web-designerilor din Romnia i din Europa de Est, la care revista Today Software Magazine a fost partener media. Prezentrile din cadrul conferinei au acoperit o serie de subiecte aflate ntr-un trend ascendent n ultima vreme, precum Responsive Web Design, HTML5/CSS3 dar i care sunt cele mai bune practici de lucru sau tips and tricks. Avnd n vedere c a fost un eveniment internaional, ntreaga conferin s-a desfurat n limba englez. viitorului magazin virtual s nu fie pe placul clientului. Practic un design care va genera conversii mai multe, nu trebuie neaprat s arate bine, ci s respecte anumite regului de user experience.El ne-a dezvluit i modul prin care poate convinge un client c o anumit modificare e necesar. Pur si simplu i spune c aceasta i va aduce mai HTML5 video player, el ne-a artat cum muli bani. este creat acesta i cum putem s l editm. Un alt subiect abordat de Peter a fost custom elements; acestea ofer web designer-ilor posibilitatea de a crea noi tipuri de elemente reutilizabile precum butoane de share sau chiar video playere custom. Nite colecii foarte bune se pot gsi pe CustomElements.io sauhtml5rocks.com. Prezentarea sa a fost una foarte tehnic i bazat pe exemple. Designer, fotograf i expert UX, Dan Rubin este un speaker obinuit la conferine i ateliere de lucru din ntreaga lume pe diverse teme legate de web, mprtindu-i experiena din companii precum MailChimp, Google, Yahoo!, Microsoft sau Meebo. Prezentarea sa a avut n centru un studiu de caz, care ne-a artat metoda prin care a reuit s ofere un prototype testing foarte rapid unui client din Statele Unite. Dup un scurt coffee break, sponsorizat Primul pas pe care ne recomand s l de celebrul site IconFinder.com a urmat facem este s gsim lucrurile care funciprezentarea singurului speaker romn oneaz bine n actualul site. Aceste lucruri din cadrul evenimentului. Clujeanul Radu nu trebuie schimbate pentru a nu ndeprta Chelariu, Art Director n cadrul Busteco utilizatorii. Un alt lucru interesant este fapGlobal Brain i Adobe Certified Expert n tul c, n acest tip de testare, grupurile mici Photoshop, ne-a vorbit despre provoc- ofer o valoare foarte mare. n exemplul rile pe care le are zi de zi n relaia client su, grupul care a testat prototipurile situ designer. n prezentarea sa a fost foarte lui a fost alctuit din numai 12 persoane categoric spunnd c, atunci cnd vine (aflate n target bineneles). Abordarea sa vorba de e-commerce i despre dorina legat de crearea prototipurilor nu a fost clientului de a genera un profit ct mai nou sau ieit din comun. Pentru a oferi mare, nu se poate vorbi de sentimente. Din o experien ct mai bun persoanelor care cauza acestui lucru s-ar putea ca designul participau la test, el a folosit o imagine

Cel care a nceput seria prezentrilor a fost proprietarul i fondatorul nGEN Works, Carl Smith care conduce o echip neconvenional ce lucreaz cu diferite companii pe care le ajut s ii redefineasc identitatea, idealurile i s creeze echipe de dezvoltare solide. Unul dintre lucrurile pe care pune accent foarte mare este continuitatea proiectelor. Sub nicio form nu este de acord cu oprirea echipelor de dezvoltare nainte de terminarea proiectului. Acest lucru ar scdea moralul lor i ar ncetini progresul n momentul readucerii n lucru a proiectului. Dnd un exemplu, el a povestit cum a finanat terminarea unui proiect n momentul n care clientul nu a mai putut s plteasc. n construirea unor echipe, Carl se concentreaz mult i asupra prii de comunicare sau chiar inside jokes. Acest lucru sudeaz foarte bine relaiile dintre colegi. O alt schimbare cu care vine foarte des, este aceea prin care d echipelor posibilitatea de a angaja candidatul pe care l vor, astfel deciza aceasta nu mai este luat, ntr-o mare masur, de HR sau manager. Peter Gasston este un web developer cu o experien de peste doisprezece ani, acumulat n numeroase agenii, start-upuri i corporaii, iar n prezent este Creative Technologist la RehabStudio. Este autorul crilor The Book of CSS3 i The Modern Web . n prima parte a prezentrii ne-a vorbit despre Shadow DOM i ncapsulare. Pornind de la exemplul unui simplu

10

nr. 16/Octombrie, 2013 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE

evenimente

mbuntit a site-ului clientului (bazat pe un PSD) peste care a adugat cteva funcionaliti eseniale cu ajutorul HTML/ CSS i Java Script. Acest mod de lucru ofer mai mult dect nite eventuale wire frames, iar timpul de realizare este aproape la fel de mic.

Jonathan Snook, autor al The Art And Science of CSS i Accelerated DOM Scripting,a vorbit audienei despre CSS. ntrebarea care a generat unele discuii a fost cea referitoare la CSS code review. Se face aa ceva? Dei pare un lucru neimportant, pe care aproape nimeni nu l face, revizuirea i optimizarea codului CSS este esenial n acest moment n care toat lumea alearg dup performane crescute pe device-uri mobile. Snook a prezentat pe scurt cei trei pai pe care i recomand n momentul n care ncepem s scriem cod CSS. Primul pas ar fi crearea unor categorii (Base, Layout, Module, State etc.) n care s introducem fiecare clas. Categoria Base s-ar ocupa de CSS reset, spre exemplu, iar categoria Module de butoane, liste, taburi sau elemente reutilizabile. Al doilea pas se refer la naming convention. Numele claselor trebuie s clarifice intenia lor,la care el mai recomand i folosirea CamelCase. Al treila pas const n decuplarea HTML i CSS prin folosirea child selector(>).

folosirea frame-urilor; afiarea web site-ului doar pe anumite device-uri, folosind userAgent; crearea elementelor mici cu ajutorul multor div-uri (ex. un buton realizat din 5 div-uri imbricate); realizarea ntregului website n Flash; pstrarea unui <body> gol i introducerea coninutului i a layout-ului din Java Script; crearea link-urilor folosind <span> (mpreun cu Java Script) i nu prin tagul <a>; mpiedicarea prin User Agreement de la vederea sursei HTML (cybertriallawyer.com); adugarea unui copyright, prin User Agreement, asupra unor librrii precum jQuery (cybertriallawyer.com); mpiedicarea prin TOS de a aduga de linkuri spre site (New York Stock Exchange web site).

Bruce Lawson, evanghelist pentru Open Web Standards n cadrul Opera, a susinut o prezentare uor neconvenional, prin subiectul abordat. El a exemplificat mai multe moduri prin care putem distruge web-ul sau mai exact cum ncearc anumite site-uri s distrug web-ul. Printre aceste exemple, care nu sunt de urmat i nu sunt recomandate, ar fi de amintit aici:

Vasilis Dimos este unul dintre fondatorii Skroutz, o companie ce opereaz cel mai mare comparator de preuri din Grecia,a explicat audienei ce nseamn cu adevrat responsive. n momentul n care dorim s avem un site responsive trebuie s ne stabilim nite obiective (ex. unul dintre obiectivele Skroutz a fost acela de a avea un timp de ncrcare a site-ului n browser sub 2.5 secunde). Dup stabilirea obiectivelor, toi membrii echipei vor trebui s contribuie la realizarea acestora, nu doar web designerul. Acesta ar trebui s se ocupe de realizarea unei interfee responsive n timp ce programatorii vor trebui s gseasc cea mai rapid i optim metod prin care s implementeze o funcionalitate.Inginerii de sistem trebuie s gseasc i s aplice soluiile pentru conexiuni directe ntre rile n care site-ul este prezent pentru optimizarea vitezei de ncrcare, iar database developeri-i ar trebui s gseasc moduri n care s analizeze date foarte mari pentru a oferi utilizatorilor cele mai bune oferte. Binecunoscutul Vitlay Frideman, cofondatorul SmashingMagazine.com, unul dintre cele mai bloguri de web-design

din lume a susinut o prezentare despre responsive web design, artnd cteva tehnici mai puin cunoscute prin care putem micora timpul de ncrcare a paginilor. Cnd vorbim despre acest timp, ne gndim automat la Java Script. O metod inedit de mbuntire a vitezei este ncrcarea funcionalitaii JS n momentul n care user-ul este cu pointer-ul mouse-ului n apropierea unui buton care necesit respectiva funcionalitate.Vitaly a mai prezentat un studiu care arat c existena unui loading bar animat, care nu trebuie s aib o funcionalitate real (ex. s arate n procente ncrcarea paginii) poate convinge utilizatorul c pagina s-a ncrcat mai repede cu 11%. Cnd vine vorba de interfa, o propunere interesant este crearea unor aa-zise proficency profiles. Aceste profile nmagazineaz date despre recurena vizitelor unui utilizator. Avndu-le, putem s afim utilizatorului care viziteaz site-ul zilnic o interfa mai simpl i mai rapid de ncrcat. n momentul n care acesta face o pauz de cteva sptmni, i putem afia interfaa original din nou (mai complex i cu mai multe hint-uri) pentru a-l refamiliariza cu site-ul. n cazul optimizrii icoanelor dintr-un site Vitaly a sugerat folosirea unui stack SVG (un mod asemntor spriturilor PNG), iar in cazul imaginilor ar opta pentru o librrie JS precum picturefill sau pentru progressive JPEG. ntreaga conferin a fost un succes din punctul meu de vedere. Fiecare speaker a prezentat lucruri concrete i aplicabile, multe dintre ele noi pentru majoritatea participanlor. Toate aceste pot confirma faptul c n 2014 vom avea o a doua ediie a SmartWeb Confrence.

Radu Popescu

rpopescu@smallfootprint.com QA i Web designer @ Small Footprint

www.todaysoftmag.ro | nr. 16/Octombrie, 2013

11

comuniti

Comuniti IT

ecomandrile Today Software Magazine pentru aceast lun sunt Internet & Mobile World 2013 care se anun un eveniment de amploare considernd numrul de persoane cunoscute ce vor participa la acesta. Al doilea eveniment recomandat este Code Camp Iai, acesta fiind un eveniment dedicat strict programatorilor.

Transylvania Java User Group Comunitate dedicat tehnologiilor Java. Website: www.transylvania-jug.org Data nfiinrii: 15.05.2008 / Nr. Membri: 545 / Nr. Evenimente: 43 Comunitatea TSM Comunitate construit n jurul revistei Today Software Magazine. Website: www.facebook.com/todaysoftmag Data nfiinrii: 06.02.2012 / Nr. Membri: 894 / Nr. Evenimente: 13 Romanian Testing Community Comunitate dedicata testerilor. Website: www.romaniatesting.ro Data nfiinrii: 10.05.2011 / Nr. Membri: 656 / Nr. Evenimente: 2 GeekMeet Romnia Comunitate dedicat tehnologiilor web. Website: geekmeet.ro Data nfiinrii: 10.06.2006 / Nr. Membri: 565 / Nr. Evenimente: 17 Cluj.rb Comunitate dedicat tehnologiilor Ruby. Website: www.meetup.com/cluj-rb Data nfiinrii: 25.08.2010 / Nr. Membri: 150 / Nr. Evenimente: 35 The Cluj Napoca Agile Software Meetup Group Comunitate dedicat metodelor Agile de dezvoltare software. Website: www.agileworks.ro Data nfiinrii: 04.10.2010 / Nr. Membri: 329/ Nr. Evenimente: 37 Cluj Semantic WEB Meetup Comunitate dedicat tehnologiilor semantice. Website: www.meetup.com/Cluj-Semantic-WEB Data nfiinrii: 08.05.2010 / Nr. Membri: 152/ Nr. Evenimente: 23 Romanian Association for Better Software Comunitate dedicat oamenilor cu experien din IT indiferent de tehnologie sau specializare. Website: www.rabs.ro Data nfiinrii: 10.02.2011 / Nr. Membri: 225/ Nr. Evenimente: 14 Tabra de testare Un proiect care i dorete s strng ct mai muli oameni care lucreaz ca i testeri. Website: tabaradetestare.ro Data nfiinrii: 15.01.2012 / Nr. Membri: 356/ Nr. Evenimente: 20

Calendar
Octombrie 6 Tabara de Testare Weekend - Autumn Camp (Cluj) w w w . m e e t u p . c o m / Ta b a r a - d e - Te s t a r e - C l u j / events/131118462/ Octombrie 8 Lansarea numrului 16 TSM (Cluj) www.todaysoftmag.ro Octombrie 9-10 (Bucureti) Internet & Mobile World 2013 - recomandarea TSM www.imworld.ro/ Octombrie 10 Lets meetup and launch the UI/UX Cluj Community ! www.meetup.com/UXUICluj/events/143620322/ Octombrie 10 Arguing about code www.meetup.com/cluj-rb/events/143782662/ Octombrie 12 CodeCamp/Iasi 2013 - recomandarea TSM iasi.codecamp.ro Octombrie 14 Inovaia n IT&C Ediia a III-a (2013) it-events.ro/events/inovatia-itc-editia-iii-2013/ Octombrie 16 The Startup Kids - A documentary about startups www.meetup.com/The-Startup-Lab/events/139813132/ Octombrie 17 Lets meet up and ...Project Management - PMI w w w. m e e t u p. c o m / P M I - R o m a n i a - C l u j Napoca-Project-Management-Meetup-Group/ events/140762552/ Octombrie 17 Bucharest Java User Group #17 http://it-events.ro/events/bucharest-java-user-group-17/ Octombrie 22 Business Analysts Meetup #1 w w w. m e e t u p . c o m / B u s i n e s s - A n a l y s t s - C l u j / events/144323262/

12

nr. 16/Octombrie, 2013 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE

management

Best Practices n Agile

Dan Suciu

dan.suciu@3pillarglobal.com Director of Engineering @ 3Pillar Global

deea acestui articol mi-a venit cu mai multe luni n urm, atunci cnd pregteam o prezentare pentru conferina i mamuii sunt Agile ce a avut loc la Cluj-Napoca n aceast primvar. Se ntmpl uneori ca anumite lucruri s par a fi foarte clare i evidente la un moment dat, ns atunci cnd le studiezi mai ndeaproape ai surpriza s constai contrariul. Aa s-a ntmplat i atunci, cnd dorind s studiez eficiena i beneficiile aderrii la bunele practici Agile adoptate n anumite organizaii sau echipe de proiect, am ajuns la concluzii ce sunt departe de a le considera optimiste. Voi ncerca n cadrul acestui articol s identific principalele elemente ce duc la ideea c a aplica practici de succes n implementarea Agile ale altor organizaii/echipe n propria echip de proiect poate s aib mai multe dezavantaje dect avantaje. Evident n modul Waterfall probabilitatea de eec este semnificativ, lucrurile ameliorndu-se n funcie de ct de repede ne trezim i ne coordonm micrile cu cele ale adversarului. Consider c aceasta este o vedere idilic a proiectelor IT deoarece pleac de la ideea Vederea idilic asupra proiectelor IT c dac stpneti foarte bine procesele ce O comparaie care mie mi se pare foarte guverneaz jocul i dac ai mai vzut un sugestiv este aceea dintre un proiect infor- stil de joc asemntor cu al adversarului n matic i un joc de ah. Suntem tentai s trecut, ansele de succes sunt mari. Strategia spunem c ambele au cteva caracteristici de de succes s-ar axa pe aceste dou compobaz pe care le cunoatem de la bun nceput: nente eseniale care te conduc la algoritmi tim care sunt juctorii, (aproape) infailibili n situaii date i care tim care sunt rolurile pieselor pe i i permit s faci predicii ct se poate de care le utilizm, realiste. tim care sunt procesele i regulile ce Multitudinea de cri de IT project manatrebuie urmate. gement se refer, n mare parte, la astfel de proiecte i iau n considerare un numiDac mergem mai departe cu aceast tor comun al proiectelor IT, un context comparaie, putem spune c o abordare Agile aproape ideal sau care se ndeprteaz ntra jocului de ah este una n care reacionm o manier decent, benign, de acest ideal, corespunztor la fiecare mutare a partene- specificndu-se de fiecare dat c anumite rului de joc, n timp ce Waterfall-ul clasic lucruri pot fi adaptate n practic n funcie este mai degrab o ncercare de a anticipa de specificul unui proiect sau altul. Project din start ct mai bine micrile adversaru- Managementul clasic se refer la proiecte ca lui, urmnd s mutm piesele pe baza unei la un context n care exist un set minim de strategii proprii i ignornd ce se ntmpl procese i reguli i sunt ndeplinite anumite de cealalt parte a mesei pn cnd apare o rolurile concrete, fiind pus accent pe cicluri, coliziune (mod de lucru care, de multe ori, mai lungi sau mai scurte, de monitorizare, are loc i la adversar). coordonare i control.
www.todaysoftmag.ro | nr. 16/Octombrie, 2013

13

management
Best Practices n Agile
n realitate ns proiectele IT sunt mult mai imprevizibile dect ar putea fi un joc de ah. Acest lucru se ntmpl pentru faptul ca regulile se schimb (de multe ori n timpul derulrii proiectului), procesele sunt mai mult sau mai puin respectate, iar unele roluri pot lipsi complet din peisaj. Spunem adesea c proiectele IT nu sunt fair, surprinzndu-ne cu elemente ce le scot din sfera a ceea ce cunoatem sau am mai ntlnit deja. A dori s fiu bine neles: pornim deja de la premisa c proiectele, prin definiia lor, sunt ntreprinderi unice, care au elemente ce nu au fost ntlnite pn atunci, ns caracteristicile specifice proiectelor IT (despre care am vorbit n detaliu n numrul 8 al Today Software Magazine) fac ca numrul diferenelor ntr-un astfel de proiect s fie covritor. Iar acest lucru nu se ntmpl n cazul unor excepii nedorite, ci n marea majoritate a proiectelor IT. Iar unul dintre motivele principale pentru care project managementul clasic nu s-a dovedit a fi eficient n cadrul proiectelor IT este tocmai faptul c nu acoper aceste excepii majoritare. neaprat s adaptm contextul la condiiile noastre, ci mai degrab s ne adaptm noi la condiiile impuse de context. ns noi suntem diferii. Modul n care reuesc eu s m transpun i s gestionez o anumit situaie cheie difer de modul n care o fac ceilali. Sfaturile lor i ideile lor despre cum ar trebui s abordez o anumit problem mi sunt folositoare atta timp ct le trec prin filtrul personal i reuesc s le adaptez la context.Prin urmare Agile trebuie privit ca o stare de spirit, ca un mod de abordare, ca un mindset. Pentru a m face mai bine neles voi da cteva exemple despre cum nu ar trebui s procedm n anumite situaii. Conferinele de profil abund uneori n descrierea unor studii de caz i ale unor poveti de succes despre aplicarea Agile. Foarte muli dintre cei prezeni la astfel de conferine vin cu sperana c vor gsi sfaturi utile pentru proiectele n care sunt implicai la momentul respectiv. ntrebrile sunt foate diverse: Ct de mare e echipa?, Echipa este colocat sau nu?, Product Owner-ul este la client sau din propria organizaie?. Toate aceste ntrebri au doar darul de a gsi un ablon ct se poate de potrivit care s fie aplicat propriului proiect pentru a garanta succesul. De cele mai multe ori ns acest lucru nu se ntmpl, i este normal s fie aa: sunt att de multe configuraii posibile i situaii aparte n proiectele IT, nct este foarte greu s gseti dou proiecte similare. Prin urmare, n loc s ncercm s gsim proiecte de succes similare cu ale noastre, principala ntrebare pe care ar trebui s o adresm este: Cum reuesc s aplic i s adaptez unele dintre lucrurile auzite n rezolvarea propriilor probleme pe care le am n proiect? Un alt exemplu este dat de cei care, n diverse situaii, spun: Proiectul pe care lucrez nu este Agile, referindu-se n general la faptul c anumite roluri nu sunt ndeplinite corespunztor, c anumite documente nu au o structur ideal sau c anumite edine (sau ceremonii cum sunt ele denumite n Agile Scrum) nu se desfoar aa cum scrie la carte, uitnd faptul c rolurile, documentele sau ceremoniile sunt doar instrumente de lucru Agile. Nu proiectul este Agile, ci modul n care l abordm poate fi Agile. i acest mod de abordare este i cel pe care va trebui s l aplicm pentru a adapta aceste instrumente (cnd e cazul) sau pentru a ne adapta noi la intrumentele pe care le avem la dispoziie. Nu cdei n capcana de a stabili o singur cale adevrat de abordare Agile a unui proiect!

Este Agile glonul de argint al proiectelor IT?

Metodologia Agile a aprut ca o necesitate n a accepta i trata excepiile pomenite mai sus i fiind n primul rnd, o schimbare de atitudine. Abordarea clasic foreaz setarea unui anumit context rigid care garanteaz succesul unui proiect i ofer sugestii cu privire la modul n care ar trebui s fie tratate situaiile de excepie pentru reintra n normal. Filozofia Agile pornete de la ideea c aceste excepii sunt fireti, i nu trebuie

n sfrit, o alt greeal frecvent este aceea de a aplica n mod identic o abordare de succes dintr-un proiect anterior n proiectul curent. Acest lucru este o greeal deoarece, dup cum am mai subliniat, proiectele IT difer foarte mult unele de celelalte. ntr-o companie ce ofer servicii software, aa cum este i 3Pillar Global, acest lucru este dureros, pentru c n cazul fiecrui client porneti aproape de la zero. Fr doar i poate exist o experien n spate care s-a format, ns contextul va fi
Our core competencies include:

Product Strategy

Product Development

Product Support

3Pillar Global, a product development partner creating software that accelerates speed to market in a content rich world, increasingly connected world.
Our oerings are business focused, they drive real, tangible value.

www.3pillarglobal.com

14

nr. 16/Octombrie, 2013 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE


a unui fapt pe care mult lume pare s-l fi uitat: nu exist o formul Agile. Agile este n principal un set de valori i principii, iar dac cineva nu i poate imagina modaliti de organizare unei echipe de proiect n jurul acestor valori i principii atunci putem spune c acea persoan nu este Agile. Aceast lucru este foarte important de neles ntr-o perioad n care muli devin rigizi n susinerea unui mod unic de a fi Agile. A mai sublinia n ncheiere c adoptarea unei metodologii Agile poate da natere n general unei micri de rezisten puternice, deoarece afecteaz toat activitatea unei persoane implicate. n general, din ceea ce am constat eu, lumea nu se plnge de schimbarea stilului de dezvoltare ci de faptul c acesta nu se schimb. Exista n acest moment o dorin mare de a fi Agile pe toate nivelele de senioritate i n toate categoriile de oameni implicai ntrun proiect. Toti vor s devin Agile, dar Agile n sensul n care fiecare dintre ei l vd. Fiecare are o viziune proprie despre ce nseamn a fi Agile, fiindu-i adeseori greu s mprteasc aceast strategie cu ceilali, dar manifest o rezisten mare la schimbri n momentul n care direcia de agilitate nu este cea anticipat.

de fiecare dat altul i multe dintre concluziile trase n trecut nu mai sunt valabile n noua variant.

Concluzii

O prim concluzie pe care o putem trage este faptul c ideea de best practices n gestiunea proiectelor software nu doar nu ajut foarte mult, dar poate chiar duna. Un set de worst practices ar fi mult mai util oricui este responsabil de gestionarea unui proiect IT. O a doua concluzie este doar o reiterare

www.todaysoftmag.ro | nr. 16/Octombrie, 2013

15

management

programare

Agilitatea Presupune Craftsmanship

n 2001, un grup de oameni nemulumii de starea lucrurilor din industria de software development s-a adunat ntr-o staiune de schi din Utah. Dintr-una n alta, au ajuns s discute despre metodele industriale aplicate la vremea respectiv pentru gestiunea programatorilor i despre metodele aa-numite lightweight pe care muli dintre ei le foloseau informal. Rezultatul acestei ntlniri, cum probabil tii, a fost The Agile Manifesto. Conversaiile despre Agile Manifesto se concentreaz de obicei pe coninut. Dar ce putem spune despre autori? Mike Beedle - a publicat articole despre Object-Oriented Programming (OOP), pattern-uri, reutilizarea componentelor i framework-urilor, limbaje de programare. Ward Cunningham - a fost Principal Engineer la Tektronix, compania care a creat Smalltalk, primul limbaj object oriented utilizat pe scar larg. A participat la crearea Extreme Programming (XP), a creat metoda de software design cu CRC i a contribuit activ la comunitatea de patterns Patterns Language of Programming (PLoP). Martin Fowler - este un binecunoscut autor n subiecte de software design i refactoring. Andrew Hunt - partener la editura Pragmatic Programmer care ne-a dat multe crti utile pentru programatori i co-iniiator al micrii Software Craftsmanship. Ron Jeffries - consultant i programator foarte experimentat n Extreme Programming. Jon Kern - evanghelist OOP, ncepand cu C++ i continund cu Java Brian Marick - tester i programator specializat n limbaje functionale. Robert C. Martin - binecunoscut autor al unor cri despre design i despre programare, promotor al micrii Software Craftsmanship. Acestea sunt doar cteva nume din lista de autori. Ceea ce putem observa este c fiecare dintre ei avea o baza solid n programare, inclusiv pe proiecte foarte complexe. Astzi agile este cel mai adesea considerat sinonim cu Scrum, fiind cea mai rspndit metod agil. Pe bun dreptate: Scrum poate mbunti productivitatea unei echipe ntr-un mod fundamental. Dar dac am compara Scrum cu Extreme Programming, vom observa ceva interesant. Modalitatea de lucru n Scrum i XP e foarte similar. Rolurile i structura unui sprint sunt mai bine definite n Scrum dect n XP. Diferena major ntre ele const nsa n faptul c XP cerea un set de practici tehnice, de la collective code ownership, continuous integration, coding standard pn la pair programming, refactoring, TDD i simple design. Motivul este simplu i corect: Scrum s-a dorit a combina setul de practici agile care se pot aplica la orice tip de knowledge work. De aceea, Scrum las la latitudinea echipei practicile pe care le vor folosi pentru a livra software de calitate n fiecare sprint. Dup cum Ken Schwaber a spus la conferina OpenAgile 2009 Bucureti, Scrum se bazeaz pe craftsmanship, fie el n software, marketing sau crearea unei emisiuni radio. Setul de practici tehnice difer n funcie de tipul de munc. Companiile care aleg s adopte Scrum trec prin cteva etape. Mai nti, echipa e format. Apoi planul i starea curent sunt

Alexandru Bolboaca

alex.bolboaca@mozaicworks.com Agile Coach and Trainer, with a focus on technical practices @Mozaic Works

Adrian Bolboaca

adrian.bolboaca@mozaicworks.com Programmer. Organizational and Technical Trainer and Coach @Mozaic Works

16

nr. 16/Octombrie - www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE


fcute vizibile. Cteva lucruri se pot ntmpla de acum ncolo: Echipa nu tie s lucreze incremental, drept urmare apar story-uri care nu pot fi terminate ntr-un sprint. E nevoie de mbuntirea modului de a face story slicing. Dezvoltarea se termin n cadrul sprintului, dar nu e timp pentru testare. Testarea se mut n alt sprint (sau sprinturi). E nevoie de: testare ncruciat, pairing ntre programator i tester i automatizarea testelor. Story-urile sunt n general dezvoltate i testate n cadrul sprintului, dar punerea n productie dureaz foarte mult i reduce semnificativ viteza de dezvoltare. E nevoie de continuous integration pentru automatizarea incremental a deployment-ului. Viteza de dezvoltare crete, se stabilizeaz, dar apare un story care modific fundamental o parte din design-ul aplicaiei i dureaz mai mult de un sprint. E nevoie de refactoring i de design mai bun care urmrete principiile SOLID. Dac aplicaia este dezvoltat pentru un mediu mai complex, de obicei enterprise , anumite modificri sunt foarte dificil de mprit n story-uri care ncap ntr-un sprint. Uneori este un semn de architectural debt, i e nevoie de gndire arhitectural pe termen mediu i lung. Iat cum agilitatea presupune aplicarea unor practici precum: Pair programming pentru prevenirea greelilor i obinerea unui design mai flexibil; Unit testing pentru scurtarea timpului necesar validrii produsului; Refactoring continuu pentru pstrarea unui design flexibil; TDD (Test Driven Development) sau BDD ( Behavior Driven Development ) pentru definirea clar a problemei i gsirea soluiilor celor mai simple; Urmrirea unor principii de design i folosirea de design patterns pentru a pstra deschiderea la modificari; Gndirea strategic pe termen lung a arhitecturii pentru micorarea riscurilor tehnice i de dezvoltare. Mai mult, agilitatea presupune c toi membrii unei echipe, fie ei testeri, programatori, designeri, analiti de business nva permanent noi metode de a lucra mai bine mpreun, pe baza impedimentelor ntlnite. Acest lucru presupune fie planificarea sesiunilor de nvare n cadrul sprintului, fie nvarea n communities of practice. Acesta este software craftsmanship: combinaia ntre practicile care ajut n mod pragmatic la aducerea de valoare de business mai repede i mai eficient i dezvoltarea personal continu ntr-o comunitate de oameni care au aceleai valori. Agilitatea presupune craftsmanship, pentru c nu se poate altfel. A nu se nelege de aici c abordarea Scrum este greit. Dimpotriv, ea permite adoptarea incremental a practicilor tehnice care sunt de ajutor n contextul dat. Una este dac trebuie s faci un release la ase luni deoarece clienii nu vor mai des (exemplul tipic fiind spitalele sau bncile) i alta s trebuiasc s faci release de 15 ori pe zi precum aplicaiile web pentru consumatori care au adesea nevoie. Selecia practicilor tehnice depinde fundamental de nivelul de agilitate dorit. Cei care au pornit pe acest drum pot s le descopere singuri sau s cear ajutor expert pentru a nva mai rapid. n concluzie, practicile tehnice au fost de la nceput parte din agile. Scrum le-a eliminat din model nu pentru c nu sunt utile, ci pentru c a vrut s fie mai general i pentru c se bazeaz pe echip s le selecteze pe cele care au sens n context. Dar agilitatea este imposibil de atins fr un set de practici tehnice pe care s se poat adaug organizare i, n final, business agility.

www.todaysoftmag.ro | nr. 16/Octombrie, 2013

17

HR

HR n Agile

red c nu exist persoan sau companie din zona de IT care s nu fi auzit mcar o dat despre Agile -Scrum. Pentru cei care nc nu sunt familiarizai cu acest concept, pe scurt. Agile Scrum poate fi definit ca o metodologie de management a dezvoltrii priectelor IT, care asigur livrarea la timp i ncadrarea n termenele stabilite de ctre client, optimiznd att munca n echip ct i rezultatele obinute.
Andreea Prvu
andreea.parvu@endava.com Recruiter n cadrul Endava

Acest articol nu va prezenta rolurile n Scrum: product backlog sau sprint-uri, ci va prezenta cteva soluii i bune practici pentru a implementa eficient procese de resurse umane care s rspund att nevoilor clienilor, ct i organizaiei. Pentru c ntr-un mediu dinamic i agil, aa cum este piaa de IT, inclusiv departamentul de HR este necesar s aib o alt abordare. Articolul se va concentra pe a prezenta o paralel ntre modelul vechi HR (en. the old HR model) implementat de majoritatea companiilor i modelul nou HR (en. the new HR model), care este un trend adoptat mai ales n Europa de Vest i Statele Unite. Sunt numeroase corporaii, care au neles c pentru a supravieui ntr-un mediu dinamic, inclusiv mentalitatea i abordarea HR-ului trebuie schimbat.

percepia asupra conceptului de resurs uman prin evidenierea valorii oamenilor ca resurs vital. Natura strategic a MRU are la baz o filosofie orientat managerial i economic. Se susine c MRU nseamn o activitate esenial care ar trebui s rspund intereselor organizaiei printr-o aliniere a obiectivelor angajaiilor la cele ale companiei. HR strategic desemneaz o abordare integrat a elaborrii strategiilor de resurse umane, care vor permite organizaiei s-i ating scopurile, prin luarea deciziilor n privina definirii i integrrii planurilor care fac referire la raporturile de munc, strategiile de recrutare, formare profesional, dezvoltare profesional, managementul performanei, recompensare i managementul relaiei cu angajaii. n ansamblu, ia n considerare orice chestiune important care influeneaz planul de dezvoltare al companiei. HR operaional traduce strategia n programe cu obiective i sarcini precis formulate. n vechiul model HR nevoile Fig 1. Modelul vechi HR clientului i ale organizaiei erau luate n considerare n definirea i implementarea Managementului resurselor umane strategiilor de resurse umane, ns lipsea (MRU) are un rol cheie ntr-o companie, flexibilitatea i adaptarea lor n funcie de datorit faptului c a schimbat cel puin context i de situaii, pentru a rspunde

18

nr. 16/Octombrie - www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE


prompt cerinelor celor dou entiti companiile s pun un accent deosebit pe menionate mai sus. capitalul intelectual care este singura surs de avantaj competitiv pentru acestea. Provocarea const n a face ca firmele s Fig 2. Modelul nou HR aib capacitatea de a gsi, a integra, a remunera i a pstra capitalul uman sub forma Concurena global n sectorul IT angajaiilor pregtii, care s poat susine este din ce n ce mai mare. Transferul de evoluia organizaiei, care este receptiv tehnologie i diminuarea barierelor de att la cerinele clienilor, ct i la nevoile comunicare internaional contribuie la angajailor. dezvoltarea acestui fenomen. Exigenele Astfel n noua abordare, HRul este un clienilor cresc, pe msur ce se ating stan- partener de afaceri (en: business partner), darde noi graie rivalitii internaionale un partener strategic de ncredere pentru ntre mai multe concerne. Companiile liderii afaceri i liderii proiectelor. Are rolul rspund acestor cerinte, devenind ori- de a traduce nevoile clientului n obiective entate ctre client n primul rnd prin de resurse umane i planuri de aciune care reducerea timpilor de reacie, punnd s asigure capacitatea organizaiilor de a accent pe calitate i mbuntire continu, anticipa schimbrile de pe pia. n acelai iar n al doilea rnd prin accelerarea intro- timp ofer soluii durabile i pe termen ducerii de noi tehnologii. O reacie des lung care sunt aliniate cu strategia compantlnit la presiunea forelor concureniale niei pentru a aborda, atrage i reine cele este reproiectarea organizatoric a sisteme- mai bune talente. Aadar ca pai concrei lor din ntreprindere (proces cunoscut ca este necesar: Business process re-engineering), care cer Descentralizarea i delegarea la niveceteaz i evalueaz paii necesari definirii lurile inferioare a lurii deciziilor; strategiilor ce cuprind i leag ntre ele Structuri organizatorice plate i orifunciile firmei. Analiza studiaz procesele entate pe orizontal mai mult dect pe operaionale desfurate pe orizontal, penvertical, care ofer autonomie n luarea tru a vedea cum ar putea fi nglobate mai deciziilor; bine pentru a rspunde nevoilor clienilor. Crearea unei fore de munc flexibil Dintr-o perspectiv agil, efectul acestui i agil, care s aib un grad ridicat de demers poate s fie necesitatea de a atrage autogestiune i responsabilitate pentru i de a dezvolta personal cu aptitudini noi, echipe i membrii lor; precum i mbuntirea muncii n echip. ncurajarea iniiativei i munca n De asemenea, se accentueaz importana echip, lucrul pe proiecte i implicare i unei abordri integrate i coerente a elaboparticipare interdepartamentala; rrii i implementrii proceselor de resurse Crearea unui mediu organizaional umane. deschis, onest i transparent care s Ansamblul acestor factori contexncurajeze parteneriatul ntre client, tuali menionai mai sus, ridic o serie organizaie i angajai; de provocri concureniale care oblig Necesitatea unui stil de leadership participativ, n care liderii s aib aptitudini interpersonale, de conducere a echipelor i de motivare a lor. Scopul acestei noi abordri este de a aduce o valoare adugat, printr-o mai bun nelegere a relaiei de business i a contextului, precum i a stakeholderilor care sunt direct beneficiarii implementri proceselor i sistemelor de HR. Rezultatul poate fi uor cuantificabil att pentru: 1. Angajai - care i vor crete productivitatea prin dezvoltarea competenelor i abilitilor, prin angajamentul fa de companie i prin contribuia lor la dezvoltarea afacerii. 2. Compania - care ctig un avantaj competitiv pe pia nu prin structura pe care a creat-o, dar prin capabilitile pe care le dezvolt. Logica implementrii acestui model este una simpl i care ne va duce la premisa de la care am pornit n momentul n care am nceput scrierea acestui articol i anume: HR-ul trebuie s aib flexibilitate i capacitate de adaptare ntr-un mediu dinamic, care s aduc plus valoare n companie. n ncheiere, v adresez urmtoarea ntrebare Care este cea mai mare provocare cu care organizaia voastr se confrunt?. Dac rspunsul este atragerea, retenia i dezvolarea talentelor, precum i ndeplinirea nevoilor clienilor ntr-un mod ct mai eficient din punct de vedere al costurilor, atunci o soluie n a depi aceast provocare este implementarea unui model de parteneriat de afaceri ntre HR client i organizaie. Succes!

www.todaysoftmag.ro | nr. 16/Octombrie, 2013

19

programare

Analitica Big Data n aplicaiile moderne


rivind napoi la ultimii douzeci de ani, ne confruntm cu ceea ce oamenii de tiin numesc Legea ntoarcerilor accelerate. Pe scurt, transformarea i inovaia tehnologic a acestor ultimi douzeci de ani reprezint rezultatul ultimilor dou mii de ani laolalt. Mai precis, industria tech a suferit schimbri fundamentale n felul n care software-ul este construit, livrat i n final experimentat de ctre omul de rnd consumatorul. De la batch jobs (programe cu comenzi multiple, executate fr intervenia utilizatorului) la aplicaii care ruleaz pe computerele personale i apoi aplicaii web-based i mobile, asemenea dislocri implic modificri semnificative n hardware, asociate cu noi tipuri de aplicaii. n plus, aplicaiile moderne pun accent pe un nou vrf al transformrii turbulente i accelerate: utilizarea Big Data. Cererea crescnd pentru platforme analitice de generaie urmtoare care ofer clienilor rspunsuri aproape n timp real, declanate de date n timp real cum ar fi clickstreams (istoria accesrilor sau parcursul vizitatorilor), social media, sensori, combinate cu puterea de executare distribuit a seriilor de comenzi, demonstreaz nc o dat faptul c inteligena ar trebui s se afle, implicit, n centrul oricrei aplicaii software. DEOARECE DATELE CONDUC LA COMPORTAMENT INTELIGENT CARE DUCE LA PROFIT. Acionnd potrivit provocrilor din afaceri i ambiiilor clienilor si, ISDC a creat PLATFORMA ANALITIC BIG DATA care se adreseaz nevoilor mai sus menionate i faciliteaz o rat crescut a productivitii i o rentabilitate mai mare. Soluia noastr ajut afacerile s i administreze mai bine fluxurile de date cu volum mare, varietate mare i vitez mare i s transforme aceste date n informaii care s genereze profit. Aceast lucrare explic arhitectura din spatele soluiei noastre i ofer pai practici pentru implementarea eficient a proiectelor analitice Big Data.

Aplicaiile moderne

n anii trecui a avut loc o schimbare treptat a ceea ce constituie elementul pe care o aplicaie software pune accentul. Din anii 90 i pn recent, o aplicaie software punea accentul n primul rnd pe funcionalitate. Mai nou n principal datorit consumatorismului funcionalitatea este considerat ceva absolut obligatoriu, iar accentul principal s-a mutat pe design. n ultimii ani, exist o tendin evident de a integra din ce n ce mai mult comportament inteligent n aplicaii, n timp ce funcionalitatea i designul au devenit noul must have. Nevoia de comportament inteligent nu este nou, dar la tehnologiile din trecut, acesta era un el greu de atins. n ciuda dificultii n utilizare, metodele statistice clasice erau folosite pentru a genera modele predictive, ceea ce primea multe critici din partea industriei. Au aprut noi modele

predictive, dar i acestea au dat natere unor noi probleme. Unul dintre motoarele principale care angreneaz schimbarea este nevoia de a analiza cantiti de date din ce n ce mai mari, mpreun cu creterea acurateei modelelor. Dar aceast cerin atrage o nou problem: capacitatea de calcul crete exponenial, atunci cnd acurateea este mrit. Noile tehnologii Big Data i Analitice ofer o putere de calcul mare pe un hardware disponibil i accesibil, de calcul n paralel. Rspunsul la aceast provocare este apariia unui nou set de tehnologii centrate pe Big Data i analiza datelor. Ele ofer o capacitate mare de calcul pe un hardware disponibil i accesibil, de calcul n paralel. Aceste dou tehnologii fac opiunea de a include inteligen n fiecare aplicaie software mult mai atrgtoare deoarece acum ele sunt mai rentabile i au capacitatea mai mult ca nainte de a transforma datele n profit prin intermediul comportamentului inteligent.

Big Data

Organizaia dumneavoastr, ca orice alt companie de succes, adun i distribuie

20

nr. 16/Octombrie, 2013 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE


mai multe date, din mai multe surse, n mai multe forme dect nainte. Din acest motiv, v confruntai cu provocarea de a gestiona fluxuri de date de volum mare, varietate mare i vitez mare. Aproape orice companie descoper c trebuie nu doar s gestioneze volume de date din ce n ce mai mari n sistemele lor n timp real, dar i s analizeze aceste informaii astfel nct s poat lua rapid deciziile potrivite pentru a concura eficient pe pia. Potrivit studiului fcut de Andrew McAfee i Erik Brynjolfsson (MIT), companiile care introduc Big Data i analitic n operaiunile lor indic procente de productivitate i profitabilitate cu 5% - 6% mai mari dect cele ale colegilor lor. indicatori predictivi concrei, capabili s transforme datele n informaii care, la rndul lor, s genereze profit. Acesta este momentul n care avei nevoie de analitic. algoritmi pentru a gsi tipare n date, prin analizarea surselor Big Data. Tiparele sunt materializate n modele predictive. Tiparele pot prezice rezultate similare, de aceea, utilizarea lor poate mbunti performana afacerii sau poate diminua riscurile. De ce avei nevoie pentru a beneficia de observaiile ascunse n date? Pentru a-i mbunti performana cu analitica avansat Big Data, companiile trebuie s i dezvolte abilitile n trei domenii: SURSE DE DATE MULTIPLE: mbuntii arhitectura i infrastructura IT pentru o mbinare uoar a surselor multiple de date, interne i externe. De asemenea, alegei datele potrivite. MODELE DE PREDICIE I OPTIMIZARE: Construii modele analitice care compenseaz complexitatea cu uurina utilizrii, concentrnduse asupra celor mai mari motoare de performan. T R A N S F O R M A R E ORGANIZAIONAL: Creai instrumente simple, uor de neles pentru oamenii din linia nti i actualizai procesele i dezvoltai capacitile pentru a facilita utilizarea instrumentelor. Cunoaterea este profit. Atunci cnd plnuii s utilizai analitica, avei dou opiuni: fie utilizai pachetele de analitic universale, fie construii aplicaii de analitic la comand. Dup cum afirm raportul McKinsey, pachetele de analitic universale pot fi rentabile i mai rapid de instalat dect modelele la comand, ajustate. Dar

Pai n construirea unui proiect Big Data

Dup definirea scopului afacerii, sunt necesari urmtorii pai: Obinerea datelor neprelucrate din surse de date multiple, cu volume diferite i vitez diferit. Rafinarea datelor neprelucrate obinute. Depozitarea datelor neprelucrate. Integrarea datelor (structurate, nestructurate, n timp real, etc.) Transformarea, gruparea datelor i stocarea rezultatelor.

Companiile care introduc Big Data i analitic n operaiunile lor indic procente de productivitate i profitabilitate cu 5% 6% mai mari dect cele ale colegilor lor. n Big Data exist multe ntrebri valoroase, fr rspuns. Provocarea este aceea de a gsi modalitatea de a separa semnalul de zgomot din date, determinnd

Analitica Big Data

Cunoaterea este profit pentru acele firme care utilizeaz soluiile analiticii predictive Big Data pentru a reduce riscurile, a lua decizii nelepte, a crea experiene difereniate i mai personale pentru clieni. Rspunsurile se afl n date dar numai dac companiile le caut. Ana lit ic a pre dic t iv ut i lize az

www.todaysoftmag.ro | nr. 16/Octombrie, 2013

21

programare
Analitica Big Data n aplicaiile moderne
acestora le lipsesc calitile unei aplicaii killer, care este construit pe cazuri de business reale i care poate motiva managerii. Pe baza nevoilor identificate la clienii si, ISDC a conceput Arhitectura Analiticii Big Data care reflect viziunea noastr cu privire la modalitatea n care trebuie aplicat analitica n zilele noastre pentru a genera profit. pe un algoritm de exploatare a textului care este capabil s detecteze, cu mare acuratee, atunci cnd un cod este indicat n mod greit i s prezic codul corect pe baza descrierii textuale a procedurii medicale. Modelul predictiv const ntr-un clasificator probabilistic capabil s nvee singur relaiile dintre cuvintele/ expresiile din fiele medicale existente i codurile corespunztoare. n algoritm sunt inclui urmtorii pai: procesarea textului; amestecarea textelor i formarea a dou grupe: antrenare (3/4), test (1/4); convertirea cuvintelor n atomi lexicali; eliminarea cuvintelor stop; generarea n-gram; extragerea caracteristicilor semnificative; executarea algoritmului de nvare folosing grupul de antrenare; prezicerea codului pe texte din grupul de test; calcularea acurateii prediciei. urmtoarele etape: procesarea textului, convertirea n atomi lexicali, marcarea prilor de vorbire, selectarea numai a cuvintelor lexicale relevante, aplicarea algoritmului de ierarhizare, obinerea celor mai relevante cuvinte cheie i propoziii.

Pai n construirea unui proiect de analitic Big Data

Dup definirea scopului afacerii, sunt necesari urmtorii pai principali: nelegerea datelor provenite dintr-o varietate de surse (interne i externe). Pregtire a datelor (integrare, curare, transformare). Crearea unui model predictiv (gsirea tiparelor). Evaluarea modelului predictiv (sunt reale tiparele?). Utilizarea modelului (folosirea Rezumarea textului prediciei). n instituiile de psihiatrie, fiecare Monitorizarea eficienei modelului pacient are un registru medical n care (evaluarea acurateei prediciilor). personalul instituiei descrie zilnic starea medical curent a pacientului i toate faptele semnificative din acea zi. Datorit caracteristicilor acestui tip de boal adesea incurabil i manifestat pe o perioad lung de timp dimensiunile fielor pacienilor cresc considerabil de-a lungul anilor. Atunci cnd se schimb personalul medical al unui anumit pacient, acesta trebuie s cunoasc condiia curent a pacientului, care poate fi uor accesat. n plus, ar fi un mare ajutor pentru ei s aib un rezumat rapid al dosarului pacientului (care are o reprezentare textual). Referine ISD C ajut as emenea instituii psihiatrice prin elaborarea unui software Prezicerea codurilor de procedur medical de analitic special conceput, care n spitale, fiecare procedur medical implementeaz o rezumare inovativ efectuat pe pacieni este numit i descris a textului i un algoritm de extragere a textual de ctre personalul medical, n fia cuvintelor cheie. medical a pacientului. De asemenea, n acest a lgor it m sunt inclus e fiecare procedur medical are un cod unic, iar acel cod trebuie indicat n fia medical. Fiecrui cod care indic o procedur medical i corespunde o sum de bani care va fi pltit de companiile de asigurri. Spitalele trimit lista de coduri companiilor de asigurri (cu documentaia ataat) cernd compensarea corespunztoare. Exist cazuri n care personalul medical omite s indice acele coduri sau codurile sunt incorect specificate. n aceste cazuri, spitalele pot pierde bani. ISDC ajut spitalele prin elaborarea unui software de analitic la comand, bazat

Personalizarea coninutului
Companiile mari care sunt extinse din punct de vedere geografic se confrunt cu provocri n ceea ce privete asigurarea coninutului web global i local, reticular i clasificat, care este optimizat pentru motoarele de cutare i relevant pentru mii de locaii de pretutindeni din lume. Exist multe surse poteniale de date care pot fi combinate laolalt, care genereaz site-uri complete i structuri de site-uri, cum ar fi: datele geo-politice ale lumii, regiunile comerciale, puncte de interes, produse ale companiei marcate geografic, media identificat geografic, coninut textual descriptiv, cuvinte cheie relevante i combinaii de cuvinte cheie, interconexiuni bazate pe volumul de cutare i valoarea afacerii, servicii locale i multe altele. ISDC a dezvoltat o soluie care const ntr-un set de activiti de procesare complexe, utilizate pentru a genera websiteuri mari, cu zeci de categorii i zeci de mii de pagini cu coninut relevant din punct de vedere geografic, pres bogat, texte descriptive, interconexiuni algoritmice, navigare ncruciat i informaii despre produs cu faete multiple. Paginile sunt construite utiliznd algoritmi de calcul geo, succesiuni de operaiuni de producere a coninutului cu distribuire, authoring, verificri multiple, verificare a calitii i publicare automat, algoritmi de conectare bazai pe volum de cutare i valoare, algoritmi de sincronizare media i selecie, categorii care pot fi modificate la comand, cu cuvinte cheie i modele de pagin, pentru a obine o fraciune din costul tehnicilor comune, iterarea fiind redus i avnd loc la intervale mai mari.

Analiza sentimentelor
Din dorina de a fi mai aproape de nevoile clienilor, o companie important

22

nr. 16/Octombrie, 2013 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE


din lumea financiar trebuia s obin pulsul pieei prin aplicaiile de pe mobilele personale ale acestora. Pentru a atinge acest scop, aveau nevoie s afle att gradul de satisfacie ct i zonele cheie unde se impunea mai mult atenie. n zilele noastre, feedbackul se afl altele. Deoarece abundena datelor include din ce n ce mai multe intrri n timp real, analiza predictiv are o tendin pronunat de a fi n timp real. Arhitectura de referin propus de ISDC include analitica n timp real pe acelai nivel de importan ca i prelucrarea pe loturi, punnd accent pe rolul analiticii n dou zone: raportare (aceasta este abordarea clasic) i software operaional (web sites, ERP, etc.). Diagrama de mai jos ilustreaz considernd web site-ul companiei drept software operaional cum analitica poate influena coninutul web site-ului vzut de fiecare utilizator, combinnd observaii din: tipare gsite n datele istorice prin intermediul analiticii de lot; tipare gsite analiznd, n timp real, fluxul de date provenit de la furnizorii de date n timp real (clickstreams, rata burselor de valori, diverse, etc.).

acolo pe internet. Trebuie doar s fie centralizat i analizat. Primele locuri de unde se poate aduna feedback sunt App stores, Social Media, Bloguri, etc. Datele rezultate sunt obinute prin analizarea i extragerea, din texte, a sentimentelor (gradelor de satisfacie) i zonele cheie de interes. Rezultatele obinute trebuie s fie afiate ntr-o manier inteligent i flexibil. Pentru a strnge datele, au fost utilizate numeroase accesorii ale aplicaiilor i conectori pentru a realiza conectarea la diferite suporturi de informaii de pe internet. Analiza a fost efectuat prin utilizarea unor algoritmi foarte performani de analizare a sentimentelor i extragere a cuvintelor cheie. Utiliznd Inteligena Business, ISDC a reuit s ofere tablouri de bord flexibile i inteligente care afieaz informaia pentru analiti. Cu ajutorul acestor tablouri de bord, clientul poate observa att gradul de satisfacie, ct i zonele cheie sensibile, dintr-o singur privire.

Cercetare unicatoare
n lumea cercetrii academice, gsirea articolelor relevante cu informaii de ultim or a fost ntotdeauna o sarcin dificil; unul dintre liderii de pe piaa mondial n serviciile de management al coninutului a

venit cu o soluie pentru a facilita procesul de descoperire i acces la coninutul electronic. Soluia este de fapt o platform cu totul nou peste care vor concepe alte soluii inovatoare pentru toi utilizatorii lor finali, nu doar pentru cercettori. Puterea platformei este dat de faptul c ea ofer acces direct, unitar, ctre toate resursele electronice ale bibliotecii cercettorului; i nu doar att, ci de asemenea i ctre acelea la care nu are acces, dar le va putea comanda/ cumpra. Toate informaiile erau deja disponibile n sistemele existente, ca i entiti separate; provocarea a fost aceea de a le cura, configura, aduna i n final de a le ncrca n baza de date de documente NoSQL. n viitor, vor putea dezvolta, pornind de aici, alte servicii de cercetare i descoperire. Platforma este conceput drept o combinaie ntre soluii universale i proprii, balansnd ce e mai bun din ambele; dezvoltare rapid i livrare rapid pe pia printr-o cutare rapid, flexibil i scalabil n baza de documente Big Data. i, nu n ultimul rnd, dezvoltare intern pentru aplicaia personalizat prin furnizarea unei interfee ce ofer o experien bogat utilizatorilor finali, cercettori sau bibliotecari.

Arhitectura de referin a analiticii Big Data ISDC


Sistemele de analiz anterioare erau n esen descriptive, bazndu-se pe date tranzacionale, vechi de sptmni sau luni i implicnd cantiti relativ mici de volum. Sistemele generaiei urmtoare asigur capacitatea de a captura noi informaii de pe web (clickstreams, etc.), locaii geografice, comuniti sociale, dispozitive inteligente, senzori i multe
Adrian Margin adrian.margin@isdc.eu Software architect @ ISDC

Andras Gyalai andras.gyalai@isdc.eu Software architect @ ISDC

www.todaysoftmag.ro | nr. 16/Octombrie, 2013

23

programare

programare

Promovarea fr costuri a organizaiilor non prot

organizaie non-profit necesit la fel de mult munc i dedicare, ca orice alt business, doar c totul se face cu o fraciune din bugetul unei afaceri. n general ONP-urile trebuie s lucreze cu nite bugete limitate, iar mediul online le ofer oportunitatea de a-i face mai cunoscute campaniile i programele fr a folosi prea multe resurse. Pe lng promovare, strngerea de fonduri este mai uoar i mai rapid. n acest articol am prezentat cteva metode prin care ONP-urile pot strnge fonduri.
Radu Popescu
rpopescu@smallfootprint.com QA i Web designer @ Small Footprint

Donaii prin Paypal

Paypal este cunoscut de utilizatorii de Internet din Romnia de mult timp. Acesta a nceput s fie folosit tot mai mult, avnd o cretere de aproximativ 50% pe an. Conform datelor oferite de Luca Cassina manager Paypal pentru zona central i est-european, acest lucru l putem folosi n favoarea noastr, adugnd pe situl sau blogul ONP-ului un buton pentru donaii. E important de tiut c persoanele care vor s doneze prin Paypal, nu au nevoie de un cont, ci doar de un card bancar. Odat ce donaiile au depit suma de 10.000 de dolari, organizaiile beneficiare trebuie s demonstreze cum vor folosi acei bani i pentru ce cauze. Un lucru care ne ajut la integrarea butonul Donate n website-ul organizaiei este opiunea de a-i customiza partea grafic, acest lucru ajutndu-ne s avem o pagin mai profesional. Mrimea i textul su conteaz foarte mult. Un buton cu o dimensiune mare (mai mare dect celelalte din pagin) precum i un call-to-action clar ajut foarte mult. Nu vrem ca utilizatorii siteului s doreasc s fac o donaie dar s nu gseasc butonul ori s nu fie siguri c

acela este cel cu ajutorul cruia pot dona. Pe lng prezentarea grafic a butonului i, plasarea sa este la fel de important. Plasarea above the fold este cea mai bun, astfel c putem identifica butonul pentru donaii din primele 2-3 secunde de la deschiderea paginii.

Licitaii online precum uCmb

Site-urile de licitaii pot s vin i ele n sprijinul ONP-urilor. Putem meniona un proiect personal care ofer copiilor din familii srace cadouri n preajma srbtorii de Crciun. Pentru a face proiectul mai cunoscut i pentru a atrage nite fonduri suplimentare am realizat o colaborare cu un tnr designer vestimentar din Romnia care va crea un brad special pe care l vom scoate mai apoi la licitaie. Site-ul de licitaii pe care l vom folosi se va ocupa n totalitate de aceast parte, noi trebuind s adugm doar cteva fotografii i descrierea campaniei.

Kickstarter pentru cauze sociale

Kickstarter.com este cunoscut drept un site prin care oricine poate s i gseasc finanare pentru proiectul su creativ. Din pcate proiectele sociale nu au o

24

nr. 16/Octombrie - www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE


trebuie doar gsit sunt eligibile pentru programul Grants metoda optim de a Pro n care bugetul lunar crete pn la recompensa donatorii. suma de 40.000 de dolari. La un calcul simplu, ntr-o perioada de un an, bugetul Donaii prin Techpentru promovare online poate ajunge la Soup suma de 480.000 de dolari. Aceast sum TechSoup este una nu este deloc de neglijat, chiar i pentru dintre cele mai mari o organizaie foarte mare i cunoscut. companii sociale din Criteriile de eligibilitate presupun existena domeniul tehnologic unui website i dovada c organizaia care a donat de-a funcioneaz n mod legal. lungul timpului, n Romnia, echipamente Problemele de User Experience hardware i software Organizaiile non-profit trebuie s n valoare de peste nvee cteva lucruri din zona e-commerce. 1.3 milioane de dolari Site-urile comerciale investesc mult n tesunui numr de 750 tarea i optimizarea proceselor de check-out, organizaii. Printre n timp ce siturile ONP-urilor nu se ocup partenerii donatori ai de acest aspect. O serie de studii legate TechSoup n Romnia de user experience, realizate de compania sunt companii de top american Nielsen Norman Group, pe 60 precum Adobe, Cisco de site-uri ale unor organizaii non-profit, sau Microsoft. Dupa arat c aproximativ 47% din vizitatori nu nscrierea i acceptarea au dorit s faca o donaie din cauza workorganizaiei n comu- flow-ului greoi, a paginilor prea ncrcate n it at e a Te c h S oup, sau a designului de slab calitate. Un al aceasta va putea accesa doilea donation-killer a fost coninutul siteun catalog cu peste 300 urilor. Informaiile neclare sau lipsa lor au de produse hardware ndeprtat utilizatorii. Pentru a avea suci software pentru care ces n strngerea de fonduri trebuie s ne se va plti o tax de asigurm c utilizatorii site-ului nostru au procesare de numai toate informaiile i mijloacele necesare 4-10% din valoarea de pentru a face o donaie. pia. Pe lng aceasta, toate organizaiile au acces gratuit la cursuri i traininguri, studii de caz, acces la evenimencategorie pe acest n consecin el este oco- tele i conferinele TechSoup i upgrade lit de organizaiile care ncearc s strng gratuit la produsele primite. fonduri pentru o cauz umanitar. Cu toate acestea, putem s strngem fonduri folosind Google Grants Kickstrater. Un exemplu foarte bun este Google Grants este un program proiectul Krochet Kids Peru, prin care sunt lansat n urm cu mai bine de zece ani ajutate femeile fr loc de munc din Lima i este adresat organizaiilor non-profit s genereze un venit. Iniiatorii campaniei din 28 de ri. Din pcate Romnia nu se intenionau s strng aproximativ 6000 numr printre aceste 28 de ri eligibile de dolari, dar la sfritul campaniei aveau dar cu toate acestea, avem posibilitatea 37.000 de dolari (cu 618% mai mult dect de a trimite o cerere online prin care s i-au propus). n schimbul acestor bani, solicitm companiei Google o excepie. fiecare donator primea un anumit numr Dac organizaia i cauza pe care dorim de cciuli, ediie limitat, confecionate i s le promovm sunt considerate ca fiind semnate de femeile ajutate. O alt metod importante, putem fi acceptai. Programul ntlnit este promovarea unor albume este unul simplu dar foarte eficient. foto care au la baz nite cauze sociale. Utilizatorii lui primesc un buget zilnic de n schimbul sumelor donate, susintorii 329 dolari (aproximativ 10.000 de dolari pe primesc un album foto profesional, iar o lun) pentru a rula reclame de promovare parte din fonduri merg spre cauzele soci- a campaniilor prin intermediul AdWords. ale promovate (nu doar pentru realizarea Dac organizaiile reuesc s utilizeze acest albumelor). Posibilitile sunt nelimitate, buget ntr-o proporie mai mare de 95%
www.todaysoftmag.ro | nr. 16/Octombrie, 2013

25

HR

programare

Spre comunitatea IT via HR (3)


e-am ntlnit pentru a treia oar n acest an cu reprezentani ai HR-ului din companii clujene IT de marc pentru a merge mai departe cu analiza comunitii de profil. Intenia noastr a fost s aducem la un loc profesioniti din domeniu pentru a oferi o perspectiv uman asupra ideilor de stabilitate, succes i comunitate pentru organizaiile de IT din Cluj una din cele mai dezvoltate arii economice locale. Pn n acest moment am analizat bune practici din companiile prezente la discuii privind principalele provocri cu care se confrunt fiecare organizaie din domeniu sintezele le putei gsi n numrul 11 i numrul 13 al revistei TSM partener media al acestei iniiative. A venit momentul s ndreptm discuiile dinspre analizele INTRA-companie spre analizele INTER-companii. Aadar ntrebrile pe care ne-am strduit s le dezbatem mpreun cu reprezentani ai Fortech, iQuest, ISDC i SmallFootprint crora le mulumim pentru implicare i interes! au fost: 1. Ce nseamn n Cluj o comunitate IT n adevratul sens al cuvntului n Cluj? Este nevoie de aa ceva, sau mai bine: fiecare pe cont propriu? un subiect care a necesitat mai multe discuii pentru a fi siguri care este punctul de plecare, care este inta dorit i motivaia pentru a ajunge acolo 2. Ce mpiedic n acest moment existena unei comuniti ideale? 3. Ce soluii exist pentru creterea coeziunii i crearea unei comuniti IT mature? ntrebare la care doar am nceput discuiile urmnd s elaborm mai multe n ultima ntlnire planificat ctre sfritul anului. (extras din DEX) 1. Faptul de a fi comun mai multor lucruri sau fiine; posesiune n comun; 2. Grup de oameni cu interese [] comune; Extrapolnd, o COMUNITATE IT Clujean ar nsemna ansamblul de companii clujene din domeniul IT care mprtesc o serie de norme, valori, posesiuni (bunuri / clieni / beneficii etc) comune, manifest interese comune i acioneaz mpreun n diverse direcii. De ce ar fi nevoie de aa ceva la Cluj? Sintetiznd discuiile avute, putem spune c beneficiile unei astfel de forme de organizare i aciune ar fi: Stabilitatea domeniului economic din ciclul mpreun avem puterea. Colabornd, firmele de IT pot accesa proiecte mai mari sau chiar pot crea produse proprii complexe, asigurnd astfel o baz mai solid de cretere economic; Imaginea, n exterior, a ntregii comuniti poate fi una n avantajul fiecrei firme n parte. O imagine de genul la Cluj exist o comunitate IT de bun calitate indiferent de firm ar ajuta mult pe termen lung la ctigarea clienilor; Creterea eficienei n gestionarea resurselor pe plan local poate fi un alt beneficiu important. Existena unor norme comune de performan, profesionalism, calitate precum i colaboAvem nevoie de comunitate IT n Cluj? n rarea pentru obinerea anumitor beneficii ce sens comunitate? comune pot ajuta fiecare companie n O definire oficial: COMUNITATE = parte.

Dan Ionescu

dan.ionescu@danis.ro Director Executiv @ Danis Consulting

Cristina Nicule

cristina.nicule@danis.ro Consultant @ Danis Consulting

26

nr. 16/Octombrie - www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE


Dezvoltarea profesional a oamenilor din domeniu poate fi accelerat i realizat la standarde ct mai nalte dac mprtirea de know-how n cadrul comunitii se face deschis, onest i cu intenii de colaborare. Dup clarificarea faptului c merit s discutm despre acest subiect, participanii la workshop-ul nostru au simit nevoia s defineasc i la ce nivele este nevoie s se realizeze aceast colaborare plaja fiind foarte larg, de la forme mai simple pn la cele extrem de complexe. Profesionitii de Resurse Umane sunt mai mult dect interesai s existe forme de colaborare pe ceea, ce n acest moment, este sursa adevrat de competiie ntre firmele IT clujene colaborare pentru resursele umane. Lupta ntre firme NU este pe pia, pe clieni, pe proiecte ci doar pe oameni care sunt prea puini pentru nevoile pieei. Crearea unui mediu de munc sntos ar fi o prim int dorit de colaborare ntre companiile de IT. Acest lucru ar nsemna: ncurajarea (inclusiv prin remuneraii) n toate companiile a performanei adevrate, a disciplinei muncii, a profesionalismului i calitii. n acest moment, exist situaii n care oamenii nu sunt remunerai dup performan, ci doar pentru faptul c sunt nite angajai att de greu obinui. De asemenea, din aceeai perspectiva strict a HR-ului, ar fi de dorit s funcioneze la capacitate i calitate mai mare sistemul de freelancing. Posibilitatea de a-i alege un profesionist bun pe termen determinat este nc limitat n acest moment. Ca i strategie pe termen mediu-lung, ar fi de dorit ca o comunitate IT clujean s colaboreze pentru crearea unei imagini UNICE pe piaa extern ntr-un fel crearea unui brand comun care s-i ajute pe toi s-i ctige clienii proprii. Este mult mai de ncredere pentru clieni buni, mari, stabili s apeleze la serviciile unei companii care vine dintr-o zon n care imaginea este, de exemplu, de profesioniti, creativi, inteligeni, stabili, cu firme mari, stabile. Nu discutm c n acest moment nu se ctig clieni, dar este nevoie de o gndire strategic cum va fi peste 5 / 10 ani? cum i vom atrage atunci, cnd, cu siguran vor exista i alte piee de outsourcing mai ieftine dect noi? i asta trebuie construit ncepnd de acum. Colaborrile pe proiecte ntre firme sunt extrema cea mai sofisticat a unei comuniti IT aa cum o vd profesionitii din Resurse Umane. n acest moment este mai mult un fel de vis frumos care poate c se realizeaz mai uor i la scar mic ntre firme mici, dar e greu de conceput i obinut n cazul actorilor mari de pe piaa IT-ului clujean. Deja ne imaginam cu toii un scenariu: cum ar fi ca ISDC-ul i iQuest-ul s lucreze mpreun la un proiect mare? (mare nsemnnd peste 15-20 milioane de Euro). Care ar fi provocrile? Ct de complex ar fi organizarea i mprirea atribuiilor i beneficiilor? Cu siguran nu ar fi uor dar ar putea fi o form de colaborare complex posibil la nivelul acestei comuniti IT, care merit s se gndeasc s treac la nivelul urmtor de maturitate, performan i rezultate. Este adevrat c anumite iniiative n aceast direcie a comunitii IT au fost fcute deja i sunt un semn c nevoile de colaborare i interese comune sunt naturale! Companiile mai mici, fiind mai flexibile au proiecte n comun cu rezultate bune. Iniiative de mprtire de knowhow profesional cum este i aceast revist, TSM, sau diverse conferine tematice sunt exemple punctuale nscute din dorina de a crete nivelul profesional al angajailor din domeniu. Cluster-ul IT este iniiativa cea mai complex care se dorete a ncuraja colaborarea ntre companii i crearea unei comuniti la nivel local. Toate aceste iniiative reprezint un nceput i sunt oarecum independente, neexistnd o integrare i o valorificare a lor la nivelul ntregii comuniti. Am dorit ns s aflm ce mpiedic ca acest nceput s se transforme mai rapid n aciuni mai complexe, n fapte, cu rezultate evidente. nc pregtite i ncreztoare s lucreze n sistem de freelancing la scar mai larg, iar pe de alt parte, piaa de freelancer-i nu este nc pregtit suficient la nivel antreprenorial. Oamenii care ncearc aceast latur nu au nc cunotine suficiente de gestionare antreprenorial care s le permit s se vnd i s-i realizeze un venit strategic i stabil. Pentru ca organizaiile s accepte s lucreze cu freelancer-i atunci cnd ar fi posibil acest lucru este nevoie s le creasc ncrederea n capacitatea lor de ase adapta rapid la nevoile i cerinele diverselor companii, la cultura i valorile fiecrei companii pentru care lucreaz. Acest lucru presupune o pia de freelancer-i foarte buni profesioniti i cu un profil specific acestui stil de lucru high-tech: o toleran mare la ambiguitate, capacitate antreprenorial i atitudine matur n faa schimbrilor. n acest moment, companiile IT din Cluj au de lucru, au rezultate, aduc clieni nivelele de satisfacie, cretere economic i de beneficii oferite angajailor sunt foarte bune. i atunci tendina actual este: De ce s ne batem capul cu colaborarea, dac fiecare avem suficient uneori chiar prea mult de lucru?. n acest fel, un rezultat de succes, pozitiv risc s devin un mare obstacol n calea evoluiei: pentru c multe companii au senzaia de ocupare, de implicare n propriile afaceri mult prea accentuat ca s mai aib timp s se gndeasc la lucruri imaginare n acest moment, cum ar fi colaborarea la nivel de comunitate IT. ns, parafraznd ceva nelepi din mai multe timpuri, acum ar fi momentul cel mai prielnic, cnd lucrurile sunt pe val, companiile de IT ar fi de preferat s stabileasc modaliti de colaborare strategic, pentru a nu se ajunge la un nedorit moment de colaps. Vestea mai puin bun este c, dintre principalele motive expuse, cele mai multe sunt cele legate de mentaliti i cultur care sunt motive profunde, oarecum mai greu de schimbat i care necesit timp pentru a se stabiliza, dezvolta. Chiar dac ntr-o mai mic msur dect n alte domenii, i n industria IT clujean, mentalitatea mioritic legat de capra vecinului ar putea fi un obstacol subtil n implementarea de proiecte concrete de colaborare. Declaraiile de bune intenii sunt un prim pas necesar i util, ns nu suficient. Faptele vor fi cele din care vom nva cu toii i merit s fim contieni c doar fcndu-le vom crete. Probabil c primele proiecte de colaborare nu vor fi i cele mai reuite, dar vor fi cu cele mai multe surse de nvare

Provocri de depit pentru a nainta spre comunitatea IT ideal

Ca prim i evident obstacol n implementarea ideii de comunitate i colaborare este lipsa unei culturi de business la nivel local (i naional) de care nc mai sufer poporul romn i oamenii din Cluj n particular. Este adevrat c s-au mai schimbat lucrurile, s-au mai nvat bune practici, au nceput s creasc afaceri locale, a existat o infuzie de cultur de business din occident, ns mentalitatea aceasta nu a fost absorbit n totalitate. Comparnd IT-ul clujean cu cel din Bucureti, participanii au considerat c, din punct de vedere al acestei mentaliti de business, Clujul mai are nc de asimilat i nvat. Un alt aspect al acestei mentaliti antreprenoriale se regsete i n gradul de maturitate al pieei de freelancing din Cluj. Pe de o parte, companiile nu sunt

www.todaysoftmag.ro | nr. 16/Octombrie, 2013

27

HR
SPRE COMUNITATEA IT via HR (3)
pentru toate prile implicate. Vestea bun este c motivele de acest gen sunt de natur UMAN adic exact domeniul de expertiz i profesie a oamenilor de HR cu ai cror reprezentani ne-am ntlnit i noi. Aadar input-ul lor este unul extrem de valoros pe lng toate celelalte considerente financiare, economice i de business de luat n calcul. organizate dup diverse criterii, ar putea fi o soluie punctual. *** Pentru a rmne sinceri pn la capt, suntem ncntai de entuziasmul i emulaia creat n cadrul acestui grup de analiz i ne-ar plcea ca aceste ntlniri de cercetare s se transforme de ce nu? ntr-un grup de iniiativ cu plan i aciuni concrete legate de comunitatea IT din Cluj. i entuziasmul pe care le mai ntlnim la prinii ce au primul copil.

Ce se poate face? n avanpremier

Mrturisim c nu i-am putut opri pe participanii notri entuziati doar la momentul de analiz a cauzelor pentru o colaborare nc insuficient aa cum am dorit iniial de la aceast ntlnire. Aa c, n preambulul workshop-ului urmtor n care vom sintetiza mai clar aciuni concrete, punctuale, care se pot realiza pentru a coagula i mai mult comunitatea IT clujean, v prezentm cteva dintre ideile vehiculate. Realizarea pentru clienii externi a unui proiect comun de creare a unei imagini convingtoare a comunitii IT din Cluj care s inspire ncredere i stabilitate. Implementarea de colaborri concrete mai mici la nceput pentru a nva din ele cum e s se lucreze mpreun. Una dintre ideile care ne-a plcut n mod deosebit este cea legat de realizarea unor aciuni de CSR mpreun deoarece astfel de aciuni, neavnd miz financiar, au mai puine riscuri de colaps i mai multe anse de cunoatere reciproc i colaborare de succes. Pentru oamenii de HR n principal dar cu efecte benefice pentru toate companiile ar putea fi realizarea unor asocieri pentru obinerea unor beneficii mai eficiente pentru angajai. Ar crete puterea de negociere i s-ar pstra calitatea acestor beneficii care n acest moment sunt subiectul unei inflaii n rndul angajailor din IT. O soluie strategic, dar care ar putea avea impact semnificativ, ar fi o mai evident colaborare / networking ntre liderii companiilor de profil de pe piaa Clujului. Dup cum menionam i ntr-un articol precedent, oamenii din IT, fiind la nceput de carier, au nevoie de modele iar exemplul oferit de lideri recunoscui pe piaa local ar fi calea cea mai sigur pentru mbuntirea mentalitii de munc i colaborare. Un club de business destinat domeniului IT, similar cu alte cluburi de business din Cluj

Cosmin Molnar (iQuest) psiholog de profesie, are o experien de apte ani n domeniul Resurselor Umane, trecnd prin aproape toate tipurile de companii: automotive, producie, distribuie, HR i acum, IT. Avnd aceste experiene n industrii diferite poate s analizeze foarte obiectiv profilul angajatului din IT i diferenele Participani workshop 3: specifice. n iQuest este responsabil de provocarea cea mai grea a oamenilor de HR Alexandra Bayer (Fortech) a nceput din IT: recrutarea i selecia de personal munca n domeniul IT n urm cu apte ani, i dorim succes! cnd a devenit membr a echipei Fortech. Practic, a crescut odat cu compania i a Rzvan Voica (iQuest) are un backgronvat alturi de colegii ei din conducere und vechi n IT (din 1997), avnd o cum s ctige ncrederea oamenilor din diversitate mare de experiene profesionale, IT: cu argumente logice, concrete, statistici. inclusiv ca programator. Din 2011 a ajuns Profesia de baz de inginer a ajutat-o mult n echipa de management a companiei n aceast abordare structurat a activiti- iQuest unul dintre juctorii importani lor de Resurse Umane. Chiar i acum, cnd pe piaa IT-ului din Cluj (i nu numai). n Fortech sunt aproape 300 de angajai, Recunoate c aceast poziie de manaAlexandra se vede ca un ajutor pentru toat gement n domeniul Resurselor Umane a compania, ca avnd ochi i urechi pentru fost dificil i foarte provocatoare pentru el. toi, dei devine din ce n ce mai dificil la De cnd este n iQuest a iniiat i dezvoltat aceast dimensiune a companiei. foarte multe sisteme i procese interne de management al Resursei Umane de care ar Iulia Dru (Small Footprint) face parte fi n stare s povesteasc cu mndrie i paside trei ani din echipa de management a une cteva ore! Small Footprint o companie care a crescut frumos n Cluj ocupndu-se exclusiv de aria de Resurse Umane, avnd ns experien n domeniul IT de peste ase ani. Provocrile pe care le ntlnete n momentele de cretere ale companiei sunt cu adevrat dificile, dar i cele mai frumoase pentru ca n astfel de etape ai cu adevrat senzaia c se creeaz ceva. Experiena profesional acumulat ca i antreprenor (2 ani) precum i cea din domeniul investiiilor financiare (2 ani) sunt un atu evident pentru a nelege un business din mai multe perspective. Cristina Ilinca (ISDC) ocup o poziie strategic n ISDC fiind Strategic & Operational HR Manager, avnd o vast experien n HR (peste zece ani) i n management n diverse domenii. A intrat n IT de 2 ani i, vzut din exterior, pare c se potrivete acolo dintotdeauna, deoarece creativitatea i iniiativa care o caracterizeaz au determinat-o nu doar s neleag foarte limpede specificul muncii n IT, dar i s devin Product Owner-ul unui game dezvoltat intern pentru knowledge sharing produs despre care vorbete cu mndria

28

nr. 16/Octombrie, 2013 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE

programare

Automatizri industriale prin OPC UA


PC (Open Platform Communication) este un standard n comunicaia industrial care permite conectivitate i interoperabilitate universal. Este utilizat n industria de automatizare i sistemele IT al intreprinderilor industriale. Interoperabilitatea este asigurat prin crearea i ntre inerea standardelor de specifica ie public (open specification). Tehnologia OPC se bazeaz pe arhitectura Client/Server i este o soluie care ofer o comunicare prin standarde industriale ce permit utilizatorilor s faciliteze crearea arhitecturii i implementarea proiectelor lor. driver personalizat. Scopul OPC este definirea unei interfee comune care dup ce a fost odat conceput poate fi reutilizat n orice alt proiect, SCADA, HMI sau alte pachete de software. Chiar dac un server OPC se implementeaz pentru un dispozitiv anume, el va putea fi reutilizat de ctre orice alt aplicaie ce poate aciona ca un client OPC. OPC Unified Architecture ofer: interoperabilitate i standardizare. n timp ce OPC-ul conven ional a rezolvat problema interoperabilit ii la nivelul de Control, a aprut necesitatea standardizrii layer-elor de la nivelul Enterprise i pn la plantfloor inclusiv. OPC-ul clasic este bazat pe Microsoft DCOM care poate duce la vulnerabilitatea acestor layer-e. Cerina pentru simplicitate, interoperabilitate i securitate maxim a determinat OPC Foundation s creeze o metod unificat a comunicrii de date privind partea specificaiilor OPC DA (Data Access), HDA (History Data Access), A&E (Alarms and Events) i Security. OPC Unified Architecture extinde protocolul de comunicare de mare succes al OPC, permi nd colectarea de date, modelarea informa iilor i o comunicare mai fiabil i mai sigur dintre plant-floor i enterprise layer.

Waldemar Knopp
Software Engineer @ Evoline

knopp.waldemar@evoline.ro

De ce OPC UA?

OPC a fost conceput pentru a conecta sisteme, reele, hardware cu diferite sisteme de operare (ex. Windows, Linux). De asemenea rolul este i procesarea i monitorizarea datelor primite de la hardware sau software. Este un open standard care ofer metode sigure de accesare i descriere al datelor (field data) care sunt trimise direct sau interogate de la dispozitivele plant-floor. Aceste metode rmn aceleai indiferent de surs i tipul de date. Serverul OPC ofer multe tipuri de pachete de software cu metoda de accesare a datelor de la dispozitive process control cum sunt PLC (Programable Logic Controller) sau DCS (Distributed Control System). n mod tradiional, de fiecare dat cnd un pachet de Specicaii OPC / OPC UA software vrea s acceseze date de la un dispoOPC este un set de interfee grupate zitiv este necesar scrierea unei interfee sau n categorii, fiecare fiind dedicat unei
www.todaysoftmag.ro | nr. 16/Octombrie, 2013

29

programare
Automatizri industriale prin OPC UA
funcionaliti aparte. Categoria este utilizat i pentru a distinge versiuni noi ale aceleiai grupe de interfee. Fiecare categorie de interfee este descris n documente separate o specificaie avnd o denumire simbolic i un numr de versiune explicit (ex. OPC Data Access 3.0, OPC UA DA 2.0). network, de exemplu Internet sau LAN, care n funcie de configurare poate fi o conexiune securizat. SDK-urile ofer posibilitatea ca serverul i clientul s fie implementate Arhitectura OPC UA prin diferite limbaje Urmtoarea imagine reprezint o arhi- de programare, iar prin aceasta ele capt Address Space i descrierea acestuia se tectur simplificat al OPC UA, compus independen fa de platform. numete Information Model. din cele dou elemente principale: serverul Imaginea de mai sus reprezint o i clientul. Modelul Informatiei abordare grafic al unui model deja impleServerul conine Address Space-ul pus Pentru ca sistemul s fie interoperabil, mentat. n vederea unei explicaii mai la dispoziia clienilor (informaii detailate mecanismul de transfer al datelor trebuie uoare, imaginea poate fi mprit n mai jos), care n exemplul de mai sus poate asociat unui model consistent de repre- dou pri de sgeata orizontal: n parreprezenta un dispozitiv cum ar fi un senzor zentare al informaiilor. OPC UA folosete tea dreapt este modelul de informaii termic, un manometru sau un comutator obiectul ca un concept fundamental pentru care conine tipurile de date i n partea feroviar etc. Modelul informaional conine reprezentarea datelor i a activitii unui stng este Address Space-ul bazat pe tipul exact al dispozitivelor i al relaiilor subsistem. Obiectele sunt substitueni pen- aceste tipuri. Sgeata orizontal din imadintre ele, de ex. valoarea senzorului termic tru variabile, evenimente i metode fiind gine este aa numita HasTypeDefinition. este stocat ntr-un cmp de tip double, float interconectate prin referine. Acest concept Nodurile First Name i Last Name al ori ntr-unul mai complex. este similar cu binecunoscuta programare obiectulului Who, respectiv al tipului C l i e ntu l i nte ro g h e a z Ad d re s s orientat pe obiecte (OOP). Modelul de Person Type sunt conectate de acestea Space-ul, de exemplu toate componentele informa ii OPC UA furnizeaz caracte- prin HasComponent. unui comutator feroviar i le prezint utili- ristici cum sunt abstractizarea datelor, zatorului ca pe o interfa grafic. Clientul ncapsularea, polimorfismul i motenirea. Address Space are posibilitatea de a vedea toate datele proMetamodelul OPC UA permite definiAddress Space este un model intern venite de la componente i primete alarme rea unui model informaional prin definirea compus mai ales din noduri care reprezint i evenimente cu privire la starea acestora. obiectului, variabilei i a tipului de date, plant-floor-ul propriu-zis (senzor termic, De exemplu, n cazul n care manevra de precum i a tipului de referine. Specificaia comutator feroviar, etc.) de la care solicitm schimbare a unui comutator feroviar a definete modelul informaional de baz i ateptm date sau primim evenimente. avut loc cu succes, clientul va primi un care la rndul su conine deja o serie de Aplicaia client al OPC UA este un eveniment i ntre timp toate datele com- tipuri de baz. browser generic utilizat pentru a explora ponentelor participante la manevr se Unul dintre principalele scopuri ale i manipula Address Space-ul unui anumit vor actualiza la client: consumul de ener- OPC UA este expunerea informaiei care server. Clientul deine funcionaliti pregie electric, temperatura motorului de poate fi utilizat de clieni pentru a admi- cum navigarea prin Address Space, citirea comutare. n cazul n care manevra a euat, nistrara procesul de baz n timp real. De i scrierea atributelor unui nod, subscrieclientul va primi o alarm coninnd datele asemenea, se urmrete integrarea proce- rea la evenimente i modificrile de date care indic problema. sul de control i sistemul de management (venind de la layerul din plant-floor sau n cele mai multe cazuri, conexiunea ntr-un mediu omogen. De obicei, clienii cel din control) i multe alte posibiliti de dintre client i server utilizeaz layerul au nevoie numai de o parte anume a a apela metode. Address Space este stocat informaiilor ce le ntr-o surs de date special (baz de date stau la dispozi ie sau fiier XML) i n momentul pornil a u n m o m e n t rii server-ului este ncrcat n totalitate n d a t . P e n t r u a memoria acestuia, conferind astfel clientuputea face fa lui un acces rapid la informaiile solicitate acestei solicitri din Address Space. informa ia publiConinutul Address Space-ului, respeccat trebuie s fie tiv datele care reprezint plant-floor-ul bine organizat sunt create/modelate de ctre programe de i accesibil n modelare aparinnd unui anumit SDK, iar mod selectiv ca o din modelul creat se genereaz un cod utientitate (node) cu lizat de serverul OPC UA. adres concret . Fiecare SDK vine cu un modeler cu Colec ia acestor ajutorul cruia se poate construi Address no du r i pus e l a Space-ul, adic acel model care reprezint dispoziie de ctre dispozitivul plant-floor. OPC UA ser ver O aplicaie modeler prin adugae s t e d e n u m i t rea de noduri i referine, face posibil

30

nr. 16/Octombrie, 2013 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE


vizualizarea Address Space-ului pe interfaa grafic, prezentnd modelul proiectat n mod ierarhic i grafic. Prezentarea grafic urmeaz instruciunile i sintaxele OPC UA. La sfrit, printr-o singur apsare de buton genereaz un cod cum ar fi C, C++, C#, Java. Astfel, implementarea este mai rapid, iar calitatea softwareului mai bun, deoarece codul generat este bine structurat i fr erori. Prin reducerea implementrii la modelare i generare pot fi implementate foarte rapid chiar i modelele complexe.

Concluzii

Avnd n vedere independena fa de platform i faptul c utilizeaz tehnologia Web service state-of-the-art, ne putem atepta ca OPC UA s fie aplicat ntr-o gam din ce n ce mai larg de industrii i aplicaii.

Caracteristicile cheie i beneciile OPC UA sunt:

Evenimentele

Evenimentele sunt recep ionate prin subscriere la EventNotifier. n mod obinuit, ele nu sunt vizibile n Address Space, dar exist cteva excepii, cum sunt Alarms i Conditions. Evenimentele sunt tipizate, iar n funcie de un anumit tip evenimentul are diferite cmpuri. OPC UA definete o ierarhie de baz Principii OPC UA: a tipurilor de evenimente, care poate fi extins. n cazul n care problema este unic, acestea trebuie extinse cu tipuri proprii, pentru a putea recepiona date privind starea sistemului, a procesului din background etc.

capacitatea platformei de a rula pe orice sistem de operare, configurare i ntreinere uoar, tehnologie service-based, transparen mrit, domeniu de conectivitate mai larg, performan mrit.

Acces unificat OPC UA integreaz specificaiile OPC existente: DA, A&E, HDA, Commands, Complex data and Object Types, ntr-o singur specificaie. Acces prin Firewall i prin Internet OPC UA utilizeaz securitate la nivel de mesaj ceea ce nseamn c mesajele pot fi transmise prin HTTP, port UA TCP sau orice alt port disponibil. Fiabilitatea OPC UA implementeaz timeout-uri configurabile, detectarea erorii i recuperarea comunicaiilor cu eec. OPC UA permite comunicarea cu redundan ntre aplicaiile diferiilor furnizori. Securitate OPC UA este sigur implicit, cu posibilitate de encriptare i utilizeaz un sistem avansat de tratare a certificatelor de securitate Independen fa de platform OPC UA este conceput pentru a fi independent de platform. Utiliznd SOAP/ XML prin HTTP, OPC UA poate fi rulat pe Linux, Windows XP Embedded, VxWorks, Mac, Windows 7 i alte platforme Windows clasice.

Metode (Funcii)

Specifica iile existente al OPC COM se concentreaz pe date sau evenimente, dar multe aplicaii necesit operatiuni mai complexe care nu pot fi reduse la o singur dat sau un singur eveniment. Prin metodele OPC UA serverele permit clienilor de a invoca funcii complexe cu un set de parametri. Funciile pot fi utilizate pentru a controla un proces background care declaneaz evenimente de raportare a progresului acestuia.

Servicii OPC UA

Cteva dintre funcionalitile OPC UA sunt oferite ca service-uri. De exemplu, urmtoarele service-uri sunt implementate de ctre server i folosite de ctre clieni: CreateSessionService pentru a stabili conexiunea ntre server i client, BrowseService pentru a explora Address Space-ul, ReadService pentru a citi date de pe server, WriteService pentru a actualiza date pe server, etc.

Citirea de date (Read Service)

Read Service este utilizat pentru a citi unul sau mai multe atribute ale unor sau mai multe noduri. Permite citirea subseturilor de elemente sau al unui singur element dintr-o mulime de valori. n Address Space fiecare nod are atribute prestabilite care de obicei pot fi doar citite i determin starea i validitatea nodului. Atributele care sunt adugate pe parcursul modelrii i dezvoltrii conin informaii care provin de la layer-ul din plant-floor. Cu ajutorul Read Sevice, clienii pot solicita de la server informaii privind validitatea unui nod i despre datele pe care le conine i care provin de la plant-floor.

Scrierea de date (Write Service)

Write Service este utilizat pentru a scrie unul sau mai multe atribute ale unor sau mai multor noduri. Permite att scrierea de subseturi, ct i a unor elemente individuale dintr-o multitudine de valori. Ca cele mai multe OPC UA Service-uri, Write Service este optimizat pentru a scrie mai multe operaiuni n acelai timp i nu pentru a scrie un singur atribut de valori. Clienii OPC UA pot scrie datele existene n Address Space, iar aceste schimbri pot atinge nivelul layer-ului din plant-floor sau ajung numai la nivelul control-ului.

Referine
OPC Unified Architecture, Wolfgang Mahnke, Stefan-Helmut Leitner, Matthias Damm, Springer, 2009 http://www.opcfoundation.org/ http://www.commsvr.com https://www.matrikonopc.com

www.todaysoftmag.ro | nr. 16/Octombrie, 2013

31

programare

programare

Aplicaii real-time folosind SignalR

rim ntr-o lume dinamic, o lume n care datele zboar extrem de rapid. n aceast lume, aplicaiile web au devenit din ce n ce mai complexe. Zilele cnd aveam doar pagini web statice au trecut de mult, la fel i perioada n care Ajax i jQuery erau la putere.
Radu Vunvulea
Radu.Vunvulea@iquestgroup.com Senior Software Engineer @iQuest

Aplicaii real-time

ntre client i server real time. Aceasta ntr-o lume n care aplicaiile real time este o soluie dedicat pentru cei care folofac parte din viaa noastr, avem nevoie de sesc .NET. i rezolv trei mari probleme pe noi mecanisme pentru a putea face ape- care dezvoltatorii le ntmpinau: luri server2client. Aplicaiile web pentru Push de date de la server la client monitorizare, jocurile online, aplicaiile peste conexiuni HTTP/S, bursiere sau cele n care editm documente Ap elur i de t ip RPC ( Remote au nevoie de sisteme de acest fel, care s fie Procedure Call) peste conexiuni HTTP/S, robuste i scalabile. Compatibilitate cu browser-ele mai vechi.

Web Sockets

HTML5 a adus cu el Web Sockets. O soluie perfect care ne face viaa mult mai uoar. Acesta ne permite s inem o conexiune deschis ntre server i client prin care serverul poate s trimit date la clieni (chiar dac aplicaiile ruleaz ntrun browser). Un mecanism perfect pentru ceea ce avem nevoie. Chiar dac rata de adopie la HTML5 este bun, mai avem civa ani de ateptat pn cnd vom avea o adopie de peste 90% la HTML5. Pn la apariia WebSockets, pe pia au existat diferite soluii de genul Forever Frame, Server Send Events, Pooling sau SPDY. Pn n acest moment niciuna dintre ele nu a fost adoptat n una limitat de ctre toate browser-ele. De aceea au aprut diferite frameworkuri care ne ajut n aceast zon. Commet, Pusher, SockJSm Now.js sunt doar o parte din ele. Un framework care ne ajut s putem notifica clienii web este SignalR.

Chiar dac este susinut de Microsoft, acest framework este open source, putnd fi gsit pe GitHub - fiind unul dintre cele mai urmrite proiecte de pe GitHub.

Unde putem s folosim SignalR

Acesta poate s ruleze pe sisteme care au ca backend Windows (.NET) i nu numai. Deoarece acesta poate s ruleze i pe Mono, putem s avem un sistem care ruleaz sub Linux i s foloseasc SignalR. Clienii pe care i putem avea sunt extrem de variai, ncepnd de la browsere i terminnd cu aplicaii desktop, Silverlight, Windows Store, Windows Phone i IoS. Acesta poate s ruleze pe diferite browsere, chiar i pe cele pe care Web Sockets nu este suportat. Acest lucru este posibil datorit modului prin care SignalR comunic cu clienii.

Ce este SignalR

Acesta suport mai multe mecanisme SignalR este o librrie ce ne ofer o de comunicare, iar n cazul n care observ modalitate extrem de simpl pentru a c unul dintre ele nu este suportat de ctre putea avea o comunicare bidirecional browser (client) va face fallback automat la

Mecanisme de comunicare

32

nr. 16/Octombrie - www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE


un alt mecanism. Metodele de comunicare } } suportate sunt: Web Sockets, Pe partea de client, odat ce clientul Server Side Event, obine o referin la connection, poate s Forever Frame, fac override la metode precum received Ajax long pooling. sau error. Este foarte important de reinut c nu este de ajuns acest lucru. Odat ce Dac un mecanism nu este suportat, se am fcut override la ele, este necesar s desface fallback automat pn cnd se ajunge chidem o conexiune cu serverul, apelnd la Ajax Long Pooling, care este suportat de metoda start. toate browser-ele de azi. Datele sunt trimise var connection = $.connection(/echo, name= + nickname, true);; la clieni n format JSON sau Plain Text. connection.received(function (data) { ... Trebuie inut cont c aceast soluie nu }); connection.error(function (err) { este gndit s trimit date de dimensiuni ... }); mari - fiiere. connection.start(function () { ... Not: Singurul browser care nu suport }); Server Side Event este Internet Explorer. Hub-urile pot s fie privite ca o abstractizare a Persistent Connection. API-ul Base API care ne este pus la dispoziie prin hubSignalR ne ofer dou modaliti de uri este mult mai simplu i mai uor de comunicare: Persistent Connection i folosit. Aceast abstractizare ne aduce o Hubs. funcionalitate care nu este disponibil Persistent Connection este foarte ase- dac folosim Persistent Connection RPC mntoare cu WebSockets, oferindu-ne (Remote Procedure Calls). Da, ai auzit o conexiune persistent ntre client i bine, hub-urile ne permit s facem acest server. Evenimentele i metodele disponi- lucru extrem de uor. bile n cazul Persistent Connection sunt Putem foarte uor s apelm metode aceleai pe care le avem la dispoziie i client de pe server (chiar dac sunt definite cu WebSockets Connect, Disconnect, n JavaScript) sau Receive, Error, Send, Broadcast. cl i e ntu l p o ate Prin intermediul unei conexiuni de la fel de bine s acest tip putem s facem broadcast la apeleze metode mesaje la toi clienii sau doar o parte din care sunt pe seracetia. Comparat cu WebSocket, avanta- ver. Cred c acest jul folosirii Persistent Connection apare lucru este unul n momentul n care avem clieni care nu din cele mai mari suport WebSockets. Noi vom putea comu- avantaje pe care nica cu ei, chiar dac comunicarea se face hub-urile le aduc. prin Forever Frame sau Ajax. Modul n care P e s e r v e r, se face comunicarea ntre client i server nu dac dorim s trebuie rezolvat de ctre dezvoltator. adugm un nou Pentru a putea folosi un Persistent hub este nevoie Connection este nevoie s extindem clasa s extindem clasa PersistentConnection i s facem over- Hub. De aceast ride la metodele de care noi avem nevoie. dat nu mai avem Dou din cele mai importante metode din nevoie s facem aceast clas sunt OnConnected (care se override la nici o apeleaz cnd un nou client se conecteaz) metod. Trebuie i OnReceived (apelat cnd un client tri- doar s ne defimite un mesaj). Mesajele se pot trimite la nim metodele pe unul sau mai muli clieni apelnd meto- care dorim s le expunem. dele pe care proprietatea Connection ni le La hub-uri este foarte important s pune la dispoziie. adugm atributul HubName pe clasa public class FooConnection:PersistentConnection care definete hub-ul nostru. Acesta va { specifica ce nume de clieni hub trebuie s protected override Task OnConnected(IRequest request, string connectionId) foloseasc pentru a apela hub-ul nostru. { return Connection.Broadcast(We have a new user: + request.QueryString[nickname]); Pentru a apela metodele pe care clientul le } expune este nevoie s ne folosim de proprotected override Task OnReceived(IRequest request, string connectionId, string data) prietatea Client care ne pune la dispoziie { return Connection.Broadcast(request. diferite metode s apelm metodele expuse
QueryString[nickname] + : + data);

de client. Putem s facem att apeluri la un anumit client ct i apeluri de tip broadcast. n aceste cazuri datele de tip dynamic ne sunt de mare ajutor.
[HubName(footballScore)] public class ScoreHub : Hub { public void Start(string matchId, string team1Name, string team2Name) { DateTime when = DateTime.Now; Clients.All.matchStart(matchId, team1Name, team2Name, when.ToShortTimeString()); } public void Stop(string matchId) { DateTime when = DateTime.Now; Clients.All.matchEnded(matchId, when. ToShortTimeString()); } public void NewScore(string matchId, string team1Score, string team2Score, string playerName) { Clients.All.goal(matchId, team1Score, team2Score, playerName); } }

Fiecare client se identific unic printrun connection token . Managementul acestuia este fcut n ntregime de server i semnat cu o semntur digital. Connection token exist pn la finalul conexiunii i este format din connection id i username. Dac username-ul exist doar n cazul n care clientul este autentificat, connection id-ul exist din primul moment cnd o conexiune este stabilit ntre client i server.

Pe partea de client, lucrurile se simplific. Odat ce avem o referina la hub-ul nostru, putem s definim metodele client pe care serverul le poate apela sau s scriem cod care apeleaz metodele expuse de ctre server. nainte s ncepem s trimitem date sau s fim apelai este nevoie s apelm $.connection.hub.start().
// server2client example var footballScore = $.connection.footballScore; $.extend(footballScore.client, {

www.todaysoftmag.ro | nr. 16/Octombrie, 2013

33

programare
Aplicaii real-time folosind SignalR
matchStart: function (matchId, team1Name, team2Name, when) { ... }, matchEnded: function (matchId, when) { ... }, goal: function (matchId, team1Score, team2Score, playerName) { ... }, }); // client2Server example var footballScore = $.connection.footballScore; $.connection.hub.start() .done(function() { $(#Start).click(function() { footballScore.server. start($(#TeamId).val(), $(#Team1Name). val(), $(#Team2Name).val()); }); $(#Stop).click(function () { footballScore.server. stop($(#TeamId).val()); }); $(#Goal).click(function () { footballScore.server. newScore($(#TeamIdScore).val(), $(#Team1Score).val(), $(#Team2Score).val(), $(#Player).val()); }); });

persistat pe client. Din cauza ultimului punct menionat, dac avem doua tab-uri deschise vom avea dou connection token-uri diferite i automat doi clieni separai. Cu puin custom code putem s trecem peste aceast limitare.

Performan

Performanele pe care SignalR le are sunt bune. Putem s avem peste 450.000 de mesaje manipulate de ctre un singur server, iar numrul de conexiuni pe o singur main pe care le putem avea este de 15.000-20.000. Numrul de conexiuni este limitat de un singur factor numrul de porturi pe care le avem disponibile.

noi modalitatea de sincronizare. Dac folosim mai multe maini cu SignalR care se sincronizeaz ntre ele este bine de tiu c latena n cazul unui broadcast crete uor. Acest lucru se ntmpl din cauza c un mesaj odat ce ajunge la server trebuie s fie trimis i la restul serverelor. O ferm format din noduri cu SignalR poate s fie folosit cu succes dac dorim s facem broadcast la mesaje, iar o laten de cteva milisecunde nu ne afecteaz. Aceasta nu este recomand pentru comunicri de tip client2client sau high-frequency realtime deoarece latena poate s fie destul de mare, nefiind cea mai bun soluie de care noi avem nevoie.

De remarcat este faptul c dac avem mai multe mai multe hub-uri, pe care serverul le expune, comunicare ntre clieni i server se va face pe cte un connection pentru fiecare client. Un client va folosi aceeai conexiune pentru a comunica cu dou sau mai multe hub-uri de pe acelai server. Acest lucru este fcut deoarece se ncearc limitarea numrului de conexiune deschise ntre server i clieni. Folosirea unei singure conexiuni nu are nici o repercusiune din punct de vedere a performanei.

Scalabilitate

Concluzie

Scalabilitatea ntr-un astfel de sistem nu este foarte uoar. Acest lucru se datoreaz problemei pe care SignalR o rezolv. Deoarece face handling la mesaje, dac scalm cu nc o instan i pune un load balancer n fa la server, un apel de tip broadcast nu o s ajung la toi clieni.

Am vzut c SignalR este un framework care ne ajut s avem aplicaii web care pot s comunice n ambele sensuri, fiind perfect pentru aplicaii bursiere sau aplicaii de monitorizare. Numrul de mesaje pe care un server cu SignalR le poate procesa este extrem de mare fiind o soluie ideal cnd avem nevoie s facem fa la zeci de milioane de mesaje pe or. V invit s incercai s folosii SignalR i s vedei ct de simplu este.

Hubs vs Persistent Connection

O ntrebare destul de fireasc care poate s apar n acest moment este: Cnd s folosesc un hub i cnd s folosesc persistent connection? Rspunsul este destul de simplu. Hubs se recomand s fie folosit n momentul n care avem nevoie de RPC. Pentru cazurile n care formatul mesajului trebuie specificat sau vrem s folosim un model de tipul messaging and dispatching atunci Persistent Connection este soluia recomandat. Totodat n cazul n care integrm ntro aplicaie deja existent SignalR, atunci se recomand s folosim Persistent Connection, migrarea spre SignalR fiind mult mai uoar.

Pentru a putea rezolva aceast problem trebuie s folosim un mecanism prin care un mesaj poate s fie trimis la toate nodurile din cluster. Acest lucru se face destul de uor prin intermediul a trei soluii aplicabile n acest moment: Windows Azure Service Bus, Redis, SqlServer. Folosirea unui astfel de serviciu este simpl, singurul lucru pe care trebuie s l facem este s specificm string-ul de conexiune. De exemplu integrarea cu Service Bus i sincronizarea ntre noduri se reduce la o singura linie de cod:
GlobalHost.DependencyResolver. UseServiceBus(sbConnectStrion, codecampcluj);

Securitate

Apelurile de tip CSRF (Cross-Site Request Forgery) sunt evitate prin urmtoarele mecanisme: Apelurile de tip cross domain sunt dezactivate by default, Connection token-ul este verificat la fiecare apel, Connection token este pus n query string, Niciodat connection token nu este

Totodat nimic nu ne oprete s extindem modul n care nodurile se pot sincroniza, doar c este nevoie s scriem

34

nr. 16/Octombrie, 2013 | www.todaysoftmag.ro

programare

Scurt introducere n mediul SAP (II) SAP User Experience

n acest numr al revistei continum seria de introducere n mediul SAP printr-un nou articol n care abordm tema SAP User Experience(pe scurt UX). Aceasta reprezint totodat i unul dintre subiectele prezentate la conferina pe tehnologii SAP organizat de msg systems luna trecut n Cluj-Napoca. n cadrul acestui articol ne propunem s discutm despre evoluia UX-ului produselor SAP de-a lungul timpului despre ateptrile cu privire la user experience pe care clienii le au de la o soluie enterprise n contextul actual i mai ales despre ce presupune strategia pe baza creia SAP intenioneaz s rspund acestor ateptri. Time Sharing Option(TSO). Interfaa utilizatorului cu sistemul era realizat prin intermediul unui terminal i se baza pe o linie de comand.

Victor Ionescu

victor.ionescu@msg-systems.com SAP IT Consultant @ msg systems Romania

SAP R/3. Dynpro


Anii 90 au adus trecerea la SAP R/3, o soluie ERP nou, bazat pe o arhitectur 3-tier n care nivelul prezentare era reprezentat de calculatorul local al utilizatorului (pentru aceasta fiind necesar instalarea unui client SAP GUI pe PC). De asemenea acest moment a reprezentat i prima apariie a Fig. 2 Dynpro tehnologiei Dynpro, care n momentul actual reprezint cea mai rspndit tehnologie UI SAP. n esen, fiecare Dynpro se definete prin layoutul elementelor grafice de pe screen i prin logica de flow ce poate fi ataat diferitelor evenimente (before output / after input / on value request...)

SAP R/2
Vom ncepe discuia din anii 80, perioad n care SAP punea la dispoziia clienilor si SAP R/2 - una dintre primele soluii ERP aa cum le tim astzi, aceasta oferind suport pentru cteva dintre procesele tipice ntlnite n cadrul oricrui enterprise: accounting, manufacturing, supply chain management. R/2 rula n cadrul unui enterprise mainframe, permind accesul simultan al mai multor clieni printr-un mecanism numit

Fig. 1 Terminalul SAP R/2

36

nr. 16/Octombrie - www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE


Aceast abordare ns a condus n prezent la o situaie n care n multe aplicaii logica de procesare a datelor este strns legat de logica de afiare a acestora, astfel nct astzi s fie nevoie de o serie de soluii tehnice inovative (dup cum vom vedea i n seciunile urmtoarele) pentru a putea realiza o decuplare a acestora.

Cum funcioneaz?
D.p.d.v. tehnic portalurile funcioneaz prin redarea Dynpro-urilor ntr-un browser web. Pentru a face posibil acest lucru a fost nevoie de introducerea unei noi componente n cadrul arhitecturii 3-tier a sistemelor SAP R/3: serverul ITS (Internet Transaction Server). ITS-ul funcioneaz ca un middleware care intermediaz comunicarea dintre serverul aplicaie ABAP i browser-ul web, transformnd datele care in de layout-ul Dynpro-urilor n tag-uri HTML ce pot fi interpretate de orice browser. Compilarea layout-ului din format Dynpro n HTML se face pe baza unui template de conversie predefinit, specificat ntr-un limbaj derivat din HTML numit HTMLBusiness

Cum funcioneaz?

Crearea de noi Dynpro-uri se realizeaz de ctre developer cu ajutorul tool-urilor ce fac parte din Workbenchul ABAP. La adaugarea unui nou screen application, server-ul ABAP, salveaz toate informaiile necesare pentru afiarea ulterioar a screen-ului n tabele predefinite ale bazei de date din spatele server-ului aplicaie. La runtime clientul SAP GUI instalat pe calculatorul local iniiaz o conexiune Ateptrile actuale cu privire la UX ctre serverul aplicaie, primete definiia Modul n care omul interacioneaz cu screen-ului i se ocup de redarea local a diversele software-uri a cunoscut o schimacestuia (v. Fig. 2). bare radical n ultimii ani. Ateptrile fiecruia dintre noi de la aplicaiile pe care mySAP Portals le folosim n viaa profesional sunt influO dat cu trecerea n noul mileniu, un enate de aplicaiile pe care le folosim n alt tip de aplicaii a ctigat din ce n ce mai timpul nostru liber (Facebook, Twitter, mult teren: portalurile web. Un portal SAP Google...), aplicaii care pun accentul reprezint o aplicaie web care faciliteaz pe simplitate i interfee grafice ct mai accesul la diveresele module ale soluiei intuitive. ERP printr-un punct de acces unic (sinAa se face c n ziua de azi, pn i n gle point of entry). Portalurile au adus o cazul soluiilor enterprise, clienii declar serie de mbuntiri n ceea ce privete din ce n ce mai des c n alegerea unui UX-ul soluiilor SAP cum ar fi utilizarea software, User Experience-ul a devenit unei autentificri unice pentru accesul la factorul decisiv, mai mult chiar dect funcntreaga suita de aplicaii ERP sau posibi- ionalitile pe care software-ul le ofer. litatea de configurare a interfeei portalului Pentru dezvoltatorii de soluii business n funcie de rolul utilizatorului. enterprise acest lucru nseamn c vechile interfee care se caracterizau n special prin complexitate i multitudinea de funcionaliti suportate, trebuie nlocuite cu unele noi care pun accentul pe simplitate, mobilitate i caracterul intuitiv al interfeelor. innd cont de aceste aspecte, SAP n calitate de furnizor de soluii business enterprise, pe locul nti n lume - i-a propus s devin de asemenea lider mondial n ceea ce privete User Experience-ul soluiilor business. Iar pentru a atinge acest el au fost stabilite o strategie i un roadmap tehnologic care se nvrt n jurul a trei termeni cheie: NEW, RENEW, ENABLE. n continuare vom analiza la ce se refer fiecare dintre aceste trei elemente.

modul n care acesta va interaciona cu sistemul. Din aceast cauz se urmrete oferirea unui nivel de control mai ridicat clienilor prin uurarea activitii de personalizare a produselor respectiv interfeelor SAP. Problemele majore care mpiedic atingerea acestui scop sunt flexibilitatea redus a aplicaiilor bazate pe tehnologii Dynpro, cunotiinele tehnice necesare pentru a putea personaliza aplicaiile respective i timpii mari necesari pentru implementarea acestor modificri. Tehnologia SAP care vine s soluioneze problema aceasta este SAP Screen Personas. Aceasta reprezint o soluie nou (prima versiune a fost lansat la finalul anului trecut) care permite end-user-ului s redefineasc layout-ul oricrui Dynpro prin intermediul unei interfee web dragand-drop intuitive i simple de utilizat. Astfel activitatea de personalizare a screenurilor este mult uurat, nefiind necesare cunotiine tehnice iar timpul de implementare fiind mult redus. Exemple de activiti de personalizare sunt ascunderea de elemente grafice, stabilirea de valori implicite pentru anumite cmpuri, nregistrare unor pai pentru automatizarea acestora sau pur i simplu re-design-ul aplicaiilor.

Cum funcioneaz?
Versiunea de kernel 7.21 a server-ului aplicaiei ABAP expune un nou serviciu prin intermediul cruia definiia oricrui Dynpro poate fi extras sub forma unui Object Model.

Fig. 4 SAP Screen Personas @ Design Time

ENABLE SAP Screen Personas


Acest aspect al strategiei SAP se bazeaz pe ideea c atunci cnd un client implementeaz o soluie SAP, vor aprea inevitabil situaii n care acesta dorete s customizeze software-ul pentru a optimiza

Fig. 3 Internet Transaction Server

Aplicaia web Screen Personas se folosete de aceast interfa pentru a afia Dynpro-urile n editorul Personas i ofer utilizatorului posibilitatea de a aduce diverse modificri acestora. Varianta modificat a unui Dynpro (numit new Flavor) este salvat pe serverul aplicaie ABAP (cu

www.todaysoftmag.ro | nr. 16/Octombrie, 2013

37

programare
Scurt introducere n mediul SAP (II) - SAP User Experience
ajutorul Add-On-ului Personas instalat n prealabil pe server) urmnd ca la runtime noul flavor s fie aplicat pe Dynpro nainte ca acesta s fie redat n browser. Avantajul acestei abordri este c utilizatorul poate, cu un minim de efort i fr a avea cunotine tehnice, s modifice dup bunul plac modul n care arat un Dynpro, iar la runtime aplicarea acestor modificri are loc transparent pentru server-ul aplicaie din backend. Astfel nu apar probleme de inconsisten, dat fiind faptul c aceleai verificri au loc n cadrul unei aplicaii, fie c aceasta a fost executat prin clientul clasic SAP GUI sau n browser avnd aplicat un nou flavor. Independena fa de client este atins prin utilizarea mai multor motoare de randare(rendering engines). Fiecare astfel de engine a fost conceput pentru a genera cod surs specific pentru un anumit client/pentru o anumit platform, iar la runtime mediul de execuie WebDynpro alege dinamic, n funcie de context, ce motor s foloseasc. Desigur utilizarea unei astfel de abordri face foarte uoar implementarea unui engine de randare ter, ceea ce ofer un plus de flexibilitate aplicaiilor WebDynpro. Acestea i alte aspecte pe care nu le vom enumera aici fac din WebDynpro un framework de dezvoltare foarte puternic care s-a impus rapid ca i nlocuitor al clasicelor Dynpro-urilor

Fig. 6 SAP Fiori - aplicaie dezvoltat utiliznd SAP UI5

RENEW - WebDynpro
Strategia de rennoire (RENEW) se adreseaz nevoii de a oferi soluiilor SAP existente (n mare parte bazate pe tehnologie Dynpro) interfae noi, mai intuitive i uor de utilizat, n concordan cu ateptrile deja identificate. Cuvntul cheie n acest context este WebDynpro - o tehnologie dezvoltat practic pentru a nlocui treptat Dynprourile. WebDynpro nglobeaz un mediu de dezvoltare conceput pentru a uura crearea de noi aplicaii i un mediu de execuie care face posibil dezvoltarea de aplicaii independente de platforma clientului pe care va avea loc execuia aplicaiei.

avnd rolul de a mpacheta serviciile expuse de soluiile SAP n interfee noi punndu-le la dispoziia aplicaiilor tere utiliznd protocoale standard precum OData. (Fig. 7 - dreapta) Dup ce am analizat aceast varietate de soluii tehnice, ceea ce putem concluziona este c produsele SAP (i soluiile enterprise n general) se afl ntr-o stare de tranziie, fiind nevoite s se adapteze la noile cerine ale pieei cu privire la User Experience. n cazul platformei SAP o serie de noi tehnologii au fost dezvoltate care vin s uureze aceast tranziie, fiecare avnd un scop bine definit n cadrul strategiei de dezvoltare SAP UX.

NEW SAP UI5. Netweaver Gateway

Capitolul NEW al strategiei SAP UX are n vedere aplicaiile noi ce urmeaz s fie dezvoltate n viitor, i care ar trebui s ofere utilizatorilor o experien consumergrade, cu interfee intuitive construite n jurul celor mai noi tehnologii din domeniu. n acest context menionm SAP UI5, o librrie JavaScript bazat pe standarde precum HTML5, CSS, JSON i optimizat pentru dezvoltarea de aplicaii business pentru desktop i mobile. UI5 se bazeaz pe JQuery i poate fi privit ca un layer adiional peste acesta, care aduce n plus un set de elemente grafice tipice aplicaiilor business i posibilitatea de a accesa datele din backend-ul SAP utiliznd protocoale consacrate precum JSON, OData, XML. Problema care se pune ns n cazul Fig. 5 WebDynpro rendering integrrii funcionalitilor SAP existente Astfel, crearea de aplicaii se bazeaz cu aplicaii noi bazate de exemplu pe UI5 pe o abordare declarativ i nu una impe- este dat de multitudinea de tehnologii rativ, n care motto-ul este Minimize folosit n expunerea acestor funcionalicoding, maximize design: La design-time ti (de ex. RFC, BAPI, MDX ...). Aceast dezvoltatorul software are posibilitate de a diversitate face ca problema de integrare s defini prin drag&drop tot ceea ce ine de fie una anevoias i mai ales costisitoare.(v. interfaa utilizatorului cu aplicaia: layout- Fig. 7 - stnga) ul screenurilor, structurile de date folosite, Netweaver Gateway este componenta posibilitile de navigare de la un screen SAP conceput pentru a soluiona aceast la altul. Aceste informaii sunt colectate i problem i a crea un mediu omogen, n formeaz metamodelul aplicaiei, care la care comunicarea are loc pe baza unor proruntime va putea fi folosit pentru generarea tocoale standard. n acest scop, Netweaver codului surs corespunztor. Gateway acioneaz practic ca un proxy,

Fig. 7 Netweaver Gateway

38

nr. 16/Octombrie, 2013 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE

programare

Automatizeaz toate lucrurile!

Ideile fundamentale
Attila-Mihaly Balazs
dify.ltd@gmail.com Code Wrangler @ Udacity Trainer @ Tora Trading

cest articol i propune s ofere un plan de nivel nalt pentru automatizarea unei mare pri a ciclului de via al software-ului. De asemenea va arta, pe baza unui exemplu concret, cum poate fi implementat un astfel de plan. De asemenea, este un mod excelent de a rspndi cunotine despre sistemul aflat sub dezvoltare n interiorul echipei, reducnd riscul de eec n cazul n care cineva devine indisponibil (nu mai exist problema c o anumit bucat de cod este cunoscut de o singur persoan). Din pcate revizuirea codului poate fi foarte lent (o estimare pune vitez optim la aproximativ 150 de linii/or) i consumatoare de timp. Acesta este un alt motiv bun pentru automatizarea proceselor: elibereaz timpul dezvoltatorilor n favoarea revizuirii de cod.

Mai nti s menionm ideile fundamentale pe care se bazeaz planul. Postulm c urmtoarele idei sunt bune. Pe acestea ar trebui s le implementm sau s ne strduim s implementm i care ne ajut s avem un ciclu de via software lin: revizuire cod (code review), dezvoltare condus de teste ( test driven development), sisteme versionare a surselor (version control systems), analiz static de cod (static code analysis / linting), metodologii agile / lean, definirea infrastructurii ca i cod (infrastructure as code). Din lista de mai sus a dori s subliniez n mod special importana revizuirii de cod: conform [CC2nd]1 revizuirea codului de o alt persoan este de cel puin de dou ori mai eficient n gsirea defectelor comparativ cu testarea (unit-teste sau de alt natur).
1 Code Complete: A Practical Handbook of Software Construction, Second Edition, 978-0735619678

Ce este livrarea continua?

Livrare continu (continuous delivery) nseamn c organizaia are o modalitate relativ automat de a pune software-ul dezvoltat n producie. n termeni mai concrei, dac avem n vedere procesul de dezvoltare software din figura de mai jos, se poate vorbi despre un proces continuu de livrare dac domeniile evideniate sunt automatizate.

www.todaysoftmag.ro | nr. 16/Octombrie, 2013

39

programare
Automatizeaz toate lucrurile!
cincime de timp. astfel de procese sunt implementate de multe companii care de zeci de ori2 pe zi pun cod n producie fr ca cineva s observe. Singurul efect este c oamenii vd mbuntiri i corecii mai rapid. Dac te doare, f-l mai des 3 oameni i organizaiile nu devin mai bune exersnd doar punctele lor forte. Ei trebuie s se uite mereu la cea mai slab verig a lanului i s-l mbunteasc. n cazul n care instalarea este o piedic, trebuie s dedicai efort mbuntirii lui. De asemenea v-ai putea sim ngrijorai c procesul de implementare este att de complicat nct nu se poate automatiza. Relaxai-v, respirai adnc i facei urmtorii pai: creai o list de pai urmat de persoana care face n mod curent instalarea. Aceast list n sine este foarte valoros: se poate folosi ca s ne asigurm c paii nu sunt omii i poate servi ca material de instruire pentru alte persoane. parcurgei lista i transformai fiecare pas ntr-un proces de automatizat. realizai c vor exista cazuri n care procesul automat nu funcioneaz impecabil (sau chiar eueaz n mod catastrofal)). Cnd vedei aceste cazuri, amintii-v c i un proces uman poate s eueze. Pstrai o statistic de genul X zile de la ultimul eec dac v ajut. ntroducei un pas de verificare efectuat de un om dup instalare dac simii nevoia - chiar i aa, cel puin persoana este scutit de munca plictisitoare, automatizabil. De asemenea, considerai modurile n care putei detecta (sau chiar mai bine) de a evita data viitoare eecurile de acel tip ntr-un mod automat.

Acest plan exemplificativ funcioneaz n urmtorul fel: Dup definirea cerinelor (care ar trebui s fie ct mai mici posibil conform mentalitii Agile) este creat un loc de munc (aceasta poate fi un feature branch n cazul n care folosim un DVCS ca i Git sau Mercurial sau o copie separat a codului surs). Se scriu testele i codul surs necesare pentru a pune n aplicare cerinele (n aceast ordine dac respectm metodologia TDD). Dup ce codul este complet se public (din nou, n funcie de instrumentele specifice utilizate acest pas poate s ia mai multe forme - de exemplu cu Git acest pas se realizeaz prin mpingerea (push) codului ntr-un repository). Automat atunci cnd codul este publicat se ruleaz testele. n cazul oricrui eec este notificat dezvoltatorul. Automat se efectueaz o analiz static a codului. Dac sunt detectate posibile probleme se notific dezvoltatorul. n cazul n care codul trece de teste i de analiza static, sunt notificai oamenii care pot s revizuie codul. Avnd n vedere c codul a trecut deja de dou controale la acest punct, revizuitorul uman nu este deranjat cu problemele triviale (cum ar fi codul nu este formatat corect) i se poate concentra pe aspectele importante, de nivel de business. Automat , dac revizuitorul d und verde, codul este integrat (aceasta nseamn fuzionarea - merge - ntr-o anumit ramur dac se utilizeaz un DVCS). Automat dup ce codul este integrat, acesta este instalat ntr-un mediu de pregtire (staging). n mediul de pregtire se poate efectua un proces manual de asigurare a

calitii (QA). Automat, dup verficarea calitii, codul poate fi instalat n mediul de producie. Probabil suntei deja familiari cu integrarea continu i v ntrebai: care este diferena? i, ntr-adevr, exist foarte puine - livrarea continu este integrare continu dus la concluzia sa logic: automatizarea tuturor etapelor dup integrare. Dac avei ezitri n legtur cu rspunsul la ntrebrea: pot s am ncredere ntr-o main s aib aceeai grij ca un inginer de instalare (deployment engineer) cu experien?, urmtoarele idei v pot oferi unele clarificri: poi cu adevrat ncredere c oamenii interacioneaz ntotdeauna cu grij maxim cu sistemele? Oamenii devin neglijeni n timp, au o zi proast, pot fi distrai i aa mai departe sau chiar mai ru - ei pot deveni indisponibi, temporar sau permanent, fr avertisment. oamenii nu se scaleaz - Ce se ntmpl dac mine vrei s instalai soft-ul n dou medii? Va fi nevoie de dou ori mai mult timp sau de dou ori mai muli oameni. Un program poate fi executat foarte simplu de mai multe ori sau chiar rula n paralel. oamenii sunt leni - sunt ntrzieri ntre momentul n care un e-mail este trimis / un ticket este completat n momentul cnd inginerul de instalare l vede. Ce se ntmpl dac el/ea este n pauz? Un sistem automat va porni n cteva secunde dup ce codul devine disponibil oameni nu se scaleaz, partea a doua - n cazul n care mediul este format din cinci servere, inginerul de instalare trebuie s le modifice pe rnd. Un proces automat le poate actualiza pe toate n paralel, terminnd procesul ntr-o

Instrumente folosite

Inima unui proces de implementare continu este un sistem care poate reaciona la evenimente externe (cum ar fi disponibilitatea unei noi buci de cod surs) care execut paii necesari. O soluie frecvent utilizat este Jenkins 4 (cunoscut anterior sub numele de Hudson) care este foarte versatil i poate interaciona cu o mulime de sisteme prin intermediul plugin-urilor. Cteva sfaturi legate de configurarea Jenkins-ului: Jenkins pot folosi sclavi ( slaves ) pentru a executa procesul de build. Acest lucru nseamn c Jenkins maestru
2 h t t p : / / w w w. t h o u g h t w o r k s . c o m / e v e n t s / thoughtworks-quarterly-briefing-continuous-delivery 3 http : / / m ar t i n fow l e r. c om / bl i k i / FrequencyReducesDifficulty.html 4 http://jenkins-ci.org/

40

nr. 16/Octombrie, 2013 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE


(master) poate rula pe o main Linux, n timp ce sclavii pot rula pe diferite platforme (Windows, MacOS X - orice care poate rula Java), fcnd posibil rularea procesului de build pe toate platformele suportate Stabilii limite pentru procesul de build . Specificai timpul maxim care poate s dureze pentru a preveni un build blocat care s consume toate resursele. Specificai numrul maxim de build-uri vechi pe care ar trebui s fie arhivate pentru a evita umplerea spaiului pe disc. Profitai de job-urile parametrizate pentru a evita crearea job-urilor (aproape) identice. Profitai de declanarea de la distan (remote triggering) a job-ului. n acest fel un build poate fi declanat chiar n momentul n care o anumit schimbare a fost comis s v informai despre hooks / webhooks pentru VCS-ul vostru. Rupei build-ul n pai mai mici - de exemplu, un pas ar putea fi rularea unit test-elor, a doua ar fi rularea testelor de integrare i un al treilea pas ar putea s fie rularea analizei statice. Paii mici ofer feedback mai rapid i fac posibil rularea mai multor pai n paralel. Cnd rupei un proces n pai mici, asigurai-v c fiecare pas opereaz pe exact aceleai fiiere surs. Fii ct mai specifici. Specificarea unui branch nu este suficient de specific, folosii identificatorii de commit / changeset. Jenkins te poate notifica n mai multe moduri cu privire la progresele job-ului (build-ul a nceput / a reusit / a euat) - n interfaa web, e-mail, chat. S-l configurai n aa fel nct s fie ct mai convenabil pentru membrii echipei dar s nu le spameze. Alte variante n afar de Jenkins ar fi: TeamCity, CruiseControl i Travis-CI. Cea de-a doua parte a unui astfel de configurri este un loc pentru a ine codul i comentariile legate de revizii. Acest lucru poate fi un sistem sau dou sisteme distincte (n cazul n acesta avei nevoie s le sincronizai - probabil folosind Jenkins). Cteva variante: soluii complete (cod hosting i revizuire): Github, BitBucket, Google Code, hosted TFS Cod hosting pe care le putei instala pe serverul vostru: RhodeCode, Gitorious, Gitlab, gitweb, hgserv R e v i z u i r e d e c o d : G e r r i t , ReviewBoard, Rietveld A treia pies a puzzle-ului este un sistem care efectueaz analiza static pe cod pentru a oferi feedback despre problemele care pot fi detectate n mod automat. Pentru aceasta recomand SonarQube 5 (cunoscut anterior sub numele Sonar). Ea nu face analiz static pe cont propriu, ci consum rapoartele create de alte instrumente (cum ar fi FindBugs, FxCop, Pylint, etc) i le prezint ntr-o interfa web frumoas, oferind o clasificare a problemelor, statistici, rapoarte cu schimbri i aa mai departe. Cteva sfaturi legate de folosirea SonarQube: are o arhitectur ciudat: analiza se execut pe client care are nevoie de acces direct att la interfaa web ct i la baza de date. analiza unui proiect mare poate s dureze o lung perioad de timp i s consume multe resurse (CPU/ memorie - putei gsi sfaturi specifice pentru proiecte mari de Java pe blog-ul Transylvania JUG6). Dac apar astfel de probleme, este un indicator bun c ar trebui s desprii proiectul n mai multe module mici. SonarQube are nevoie de o baz de date performant. Nu rulai cu baza de date ncorporat (H2) cu care vine sau cu o instan MySQL slab. Recomand s folosii un PostgreSQL configurat corect. i David Farley. De asemenea, putei arunca o privire asupra unei prezentri cu acest subiect8 sau putei s m contactai pentru ntrebri / sfaturi sau chiar s venii la urmtoarea ntlnire Cluj.PM9 unde voi vorbi despre acest subiect.

Concluzii

Existena unui deployment pipeline are multe beneficii. Se elibereaz timpul pe echipe. Instalarea se face mai repede i garanteaz rezultate consistente. Asigur c procesul de instalare este definit cu precizie (suficient de precis ca s-l poate executa un calculator). De asemenea, ne nva despre instrumentele de baz i despre linia de comand, un lucru indispensabil pentru a depana problemele de producie. Putei aplica livrarea continu la toate tipurile de sisteme software, nu doar siteuri sau servicii gzduite (acolo unde este cel mai uor). Pipeline-ul poate produce installkit-uri sau chiar maini virtuale complete cu software-ul preinstalat. Livrarea continu nu nseamn neaprat c trebuie livrat noul software-ul la client de fiecare dat cnd se schimb ceva. nseamn doar c avei opiunea de a face acest lucru la orice moment n timp. O carte bun (dei uor depit) este Continuous Delivery : Reliable Software Releases through Build, Test, and Deployment Automation7 de Jez Humble
5 6 7 http://www.sonarqube.org/ http://www.transylvania-jug.org/archives/5702 ISBN: 978-0321601919 8 http://vunvulearadu.blogspot.ro/2013/09/postevent-web-codecamp-event-in-cluj.html 9 http://cluj.pm/

www.todaysoftmag.ro | nr. 16/Octombrie, 2013

41

programare

NoSQL, A Brief Guide to the Emerging World of Polyglot


Persistence, de Pramad J. Sadalage i Martin Fowler
oi ncepe aceast recenzie printr-o scurt trecere n revist a conceptelor legate de bazele de date nerelaionale, concepte care au dus la apariia limbajelor NoSQL (Not Only SQL). Bazele de date relaionale reprezint nc, cel mai rspndit model de baza de date, raportat la numrul de aplicaii ce l folosesc. Acest model aduce o serie ntreag de constrngeri, cunoscute n special drept constrngeri de integritate, dar aduce anumite reguli pentru eliminarea redundanei sau creterea ncrederii, acestea fiind cunoscute ca forme normale. Ceea ce am amintit pn aici reprezint punctul forte, pe care relaionate, dar ineficient la cutri). main. ncepnd cu capitolul al optulea majoritatea dezvoltatorilor de aplicaii l i Aadar, dou motive importante con- se pune accentul pe implementare. Prima urmresc. Cum, din pcate, pentru orice duc la alegerea unui model nerelaional: implementare este Riak, ca exemplu de baz trebuie s pltim ceva, i pentru acest volumul mare de date i dinamicitatea de date cheie-valoare. Capitolul al noulea punct forte pltim prin greutatea regsirii modelului. aduce n atenie MongoDB, ca exemplu datelor n baza de date, prin complexitaCartea pe care v-o supun ateniei astzi, al bazelor de date orientate pe document. tea interogrilor i, n general, prin faptul NoSQL, A Brief Guide to the Emerging Capitolul al zecelea exploreaz Cassandra, c acest model nu este propice gestionrii World of Polyglot Persistence, avndu-i ca exemplu de baze de date colonare, iar unui volum de date mare. Ca alternativ a ca autori pe Pramad J. Sadalage i Martin capitolul al unsprezecelea prezint Neo4J aprut modelul nerelaional, care ncepe s Fowler este o scurt introducere n utili- pentru bazele de date orientate pe grafuri. prind din ce n ce mai muli adepi. zarea i ntelegerea conceptelor mai sus Ultimele patru capitole se concentreaz pe Vom continua introducerea n modelul enumerate ale bazelor de date nerelai- diverse particulariti ale bazelor de date nerelaional al bazelor de date prin cteva onale. Nivelul crii este accesibil, deci NoSQL. Capitolul al doisprezecelea aduce descrieri a ceea ce numim big data. Big avem un excelent ghid pentru a putea face n discuie migrarea schemelor de baze data reprezint mulimi mari de date. o comparaie cu modelul bazelor de date de date. Cum NoSQL nu are neaprat o Caracteristicile generale ale acestora sunt relaionale, cunoscut deja de majoritatea schem de date care s descrie structura (the four Vs): volumul, viteza, varietatea i cititorilor revistei. lor, problema este a msurii n care putem valoarea. Ultimele dou caracteristici sunt Cartea cuprinde 15 capitole pe care le utiliza date dintr-o baz de date relaional mai interesante i vom zbovi un pic asupra voi descrie pe scurt. ntr-una nerelaional i invers. Capitolul lor. Varietatea nseamn c mulimile de Capitolul nti este introductiv, adu- ale treisprezecelea supune ateniei o comdate pot proveni din diferite surse. Aceasta cnd n discuie noiunile de baz ce binaie de mai multe tipuri de depozite le face greu de integrat ntr-o baz de date descriu o baz de date NoSQL. Capitolul de date care pot s coexiste ntr-o aceeai relaional, din cauza structurii diferite al doilea este o introspecie a modelelor aplicaie. n capitolul al patrusprezecelea a lor. Valoarea nseamn c o poriune folosite pentru descrierea acestor baze de se prezint elemente avansate n ceea ce de date din mulimea de big data nu este date, modele amintite i n introducerea nseamn extinderea tipurilor de date la valoroas ca entitate, ci devine valoroas n recenziei (cheie-valoare, graf, coloan, fiiere sistem, imagini, baze de date XML, ansamblul mulimii. document). Capitolul al treilea descrie etc. n sfrit, ultimul capitol ofer cteva Cum din ce n ce mai muli oameni neajunsurile pe care le constatm la folo- sfaturi n ceea ce privete alegerea tipului acceseaz volume mari de date, precum sirea bazelor de date NoSQL. Capitolul al de tehnologie folosit n gestionarea bazei cele produse de senzori, GPRS, date aflate patrulea ndreapt discuia spre bazele de de date. n diverse formate, manipularea lor este date distribuite, temele importante fiind diferit, iar ateptrile de vitez ale pro- acelea ale replicrii: master-slave sau peerLectur plcut! cesrilor sunt la nivelul instant. Bazele de to-peer. Distribuia este strns legat de date tradiionale nu pot rspunde acestor consisten, de aceea n capitolul al cinciprovocri. Cteva exemple de baze de date lea se discut despre consisten la update NoSQL sunt: Oracle NoSQL, Cassandra, sau read. n capitolul al aselea se discut Voldemort, Neo4J, Riak sau MongoDB. mult mai amnunit problema tranzaciintr-o baz de date NoSQL nu exist o lor, pentru sistemele distribuite. Capitolul schem propriu-zis a datelor, ele fiind sto- al aptelea aduce n discuie un al concept cate ca perechi cheie-valoare (foarte eficient menit sa creasc eficiena utilizrii bazelor i flexibil, dar datele nu sunt self-descri- de date distribuite: map-reduce. Conceptul Silviu Dumitrescu bing), sau de coloane (folosit pentru date de map-reduce const ntr-o modalitate de silviu.dumitrescu@msg-systems.com mprtiate), sau document (folosit pentru organizare a procesrii, astfel nct o parte Consultant Java depozite XML, dar ineficient ca perfor- ct mai nsemnat a procesului i a date@ msg systems Romania man), sau graf (folosit pentru traversri lor necesare acestuia s se afle pe o singur

42

nr. 16/Octombrie, 2013 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE

programare

Dezvoltarea de jocuri cross-platform


n momentul n care am nceput s lucrm la primul nostru joc n cadrul King Romnia, tiam c proiectul urma s fie distractiv, pe de o parte pentru c, dei toi membrii echipei dezvoltaser pn atunci jocuri, era prima dat cnd lucram la un joc casual-social i, pe de alt parte pentru c urma s fie primul joc serios de la King care ajungea pe mobile. King mai lansase nainte un joc, att pe App Store, ct i pe Google Play (pe atunci App Market), dar nu era un joc high-profile lansat pe Facebook, aa cum era n cazul lui Bubble Witch Saga. n momentul seleciei jocurilor pentru portarea pe mobile, Bubble Witch Saga a fost o alegere foarte natural. Era cel mai popular titlu din portofoliul companiei n perioada respectiv, iar King i dorea o intrare n for pe piaa de mobile. Iniial am crezut c o s fie o munc uoar i, ntr-un fel, ne i doream acest lucru deoarece abia pusesem bazele studioului i eram contieni c urmau s intervin probleme legate de administrarea sa. A trebuit s cumprm hardware, s setm servere, servicii i canalele de comunicaie cu birourile din Suedia i Londra etc. Pe lng toate aspectele logistice, au intervenit i alte aspecte care trebuiau definite pentru o funcionare ct mai eficient: viziunea studioului, profilul oamenilor pe care doream s-i angajm, modul n care ne organizm n echip. Apoi a urmat o discuie cu managerii de proiect de la Bubble Witch Saga, varianta de Facebook, n care am fost informai c urma s realizm un lucru pe care nimeni nu-l mai ncercase pn atunci: s sincronizm versiunea de Facebook cu cea de mobile. n momentul acela ne-am dat seama c dezvoltarea va fi mai complicat, dar n acelai timp mult mai interesant. Jocul de Facebook ine datele pe un server, ntr-o baz de date distribuit. Din acest punct de vedere, teoretic, este simplu: clientul de mobile ar trebui doar s acceseze aceleai date. ns n practic nu este chiar att de uor deoarece utilizatorii care se joac pe telefoane nu sunt tot timpul online, n comparaie cu cei de pe Facebook care sunt forai s rmn online pentru a accesa jocul. Pe telefoane, odat ce aplicaia a fost instalat, aceasta poate fi accesat n orice moment. Am fi putut opta pentru varianta n care s le impunem utilizatorilor s fie online pentru a accesa jocul, dar n felul acesta am fi pierdut foarte muli juctori i, chiar dac acesta n-ar fi fost un impediment, experiena de joc ar fi fost n mod cert una inferioar (de exemplu, jocul s-ar fi ntrerupt de fiecare dat cnd se pierdea conexiunea la Internet). Toate aceste date indicau ctre o decizie clar: trebuia s le permitem utilizatorilor s se joace cnd doresc, iar n momentul n care exista o conexiune la Internet disponibil, sincronizam progresul juctorului cu serverul. Aadar, gsisem o soluie, ns nu rezolva neaprat toate problemele. Am avut destul de multe dezbateri pn am ajuns la soluia final, dar tiam c aceasta aduce cu ea alte probleme. Ce se ntmpla cnd un utilizator se juca pe telefonul care era offline, dup care se juca online pe Facebook ? Pentru c telefonul era offline, versiunea de Facebook nu nregistra sesiunile de joc completate pe telefon. Erau destul de multe cazuri speciale la care

trebuia s ne gndim cu atenie, astfel nct juctorul s nu observe, pe ct posibil, c acceseaz jocul pe platforme diferite. De exemplu, exist utilizatori care acceseaz jocul de pe o tablet Android, un telefon mobil iPhone i l joac i pe Facebook. Acetia trebuie s simt mereu c joac acelai joc. Trecerea de la o platform la alta trebuie s fie complet transparent. Numai acest aspect al jocului a consumat n timp (investit n dezvoltare i depanare) aproximativ 35% din durata total a proiectului. Cnd ne-am impus s facem ca jocul de pe mobile s fie la fel ca cel de pe Facebook, iniial am mers prea departe i am copiat jocul de pe Facebook n toate aspectele lui. n cazul anumitor aspecte ale jocului, abordarea aceasta este foarte bun. De exemplu, fizica de joc este o portare aproape direct n C++ a codului de Action Script i jocul se comport foarte apropiat de jocul de Facebook, neexistnd diferene foarte mari n scoruri. Scorurile sunt sincronizate ntre versiuni i atunci nu ai dori ca toi utilizatorii s joace pe Facebook pentru c acolo nregistreaz scoruri mai mari sau invers.

www.todaysoftmag.ro | nr. 16/Octombrie, 2013

43

programare
Dezvoltarea de jocuri cross-platform
Pentru alte aspecte ns, copierea nu este la fel de eficient i n acele situaii a trebuit s adaptm jocul. Am fcut butoanele mai mari, pentru c utilizatorii interacioneaz cu jocul folosind degetele i nu mouse-ul, care este mult mai precis i fin. Am eliminat pe ct posibil textele pe care utilizatorii de telefoane nu sunt obinuii s le citeasc; acetia se ghideaz mai mult dup icoane, animaii sau feedback vizual contextual. Am adaptat jocul astfel nct s rspund la diverse ntreruperi: recepionarea de apeluri, mesaje, apsarea butonului de home (pe iOS) sau back (pe Android) etc. Toate aceste elemente nu exist pe Facebook. Pn acum, am abordat aspectele oarecum evidente n procesul de portare a unui joc de pe Facebook pe mobile, pentru c acestea in de interaciuni vizibile sau de interfa. ns foarte mult timp este investit n aspectele care nu sunt imediat aparente. Jocul de Facebook ruleaz pe un calculator foarte puternic. Asta nseamn c jocul de Facebook are acces la o putere de procesare virtual nelimitat. n schimb, este limitat de viteza reelei i a conexiunii la Internet. Utilizatorul nu dorete s fie inut prea mult n faa unui ecran de loading i atunci apare problema limitrii cantitii de date care poate fi trimis pe reea, fr ca utilizatorul s atepte prea mult. Toate aceste limitri sunt cel puin de dou ori mai mari pe mobile. n primul rnd, procesoarele ARM cu care sunt echipate telefoanele mobile, n general, sunt mult mai slabe dect un procesor Intel care se gsete de obicei pe PC sau Mac. n al doilea rnd, memoria RAM pe telefoane este de 4 - 6 ori mai mic dect pe PC. n acelai timp, telefoanele au cerine speciale de consum al energiei. De exemplu, dac jocul nu este activ, atunci nu trebuie s consume, pe ct posibil, resurse. Fiind un joc casual-social, ne doream ca acesta s fie descrcat att prin reea WIFI, ct i prin 3G. Pentru a fi eligibil pentru descrcare prin reea 3G, aplicaia trebuia s aib sub 50 MB. Aceasta este o alt limitare pe care jocul de pe Facebook nu o are. Ce au nsemnat pentru noi toate aceste limitri? n primul rnd, a trebuit s gsim metode mai bune de mpachetare i de compresie a datelor. Cnd vorbim despre compresie, vorbim tot timpul despre un compromis care se face ntre memoria ocupat i ciclurile de procesor consumate pentru decompresie. A trebuit s ne gndim foarte atent la aceste compromisuri, deoarece nici cea de a doua resurs (procesorul) nu ne oferea foarte multe. Compromisurile sunt i mai importante cnd este vorba despre lansarea unui joc universal pe App Store, adic un singur pachet/ aplicaie care ruleaz pe toate modelele de iPhone, iPod sau iPad. Acest lucru nseamn c, n anumite cazuri, n acelai pachet o s existe aceeai resurs (imagine, sunet, text) multiplicat pentru fiecare device . n alte cazuri, soluia a constat n gsirea unor hack-uri istee prin care reueam s refolosim aceeai resurs pe toate device-urile. Dei poate prea excelent, soluia rmne totui un compromis, pentru c la fiecare modificare a unei resurse comune trebuia s ne asigurm c jocul se comporta consistent pe toate device-urile. Acest lucru se traduce printr-un timp de QA crescut. Pn acum am vorbit despre jocul pe mobile versus jocul pe Facebook. Dar mobile nu este o platform mare, unitar i uniform. Din contr! Este o platform mare, neunitar, neuniform i fragmentat. Am nceput s portm Bubble Witch Saga pe iOS (iPhone, iPod, iPad) n ianuarie 2012 i l-am lansat (doar n cteva ri pentru nceput) n luna mai a aceluiai an. Apoi, ne-am concentrat pe versiunea de Android, care a plecat de la aceeai baz de cod i a fost lansat aproximativ cinci luni mai trziu. O echip mprit n dou - o parte (trei programatori) concentrat n continuare pe lansarea versiuni de iOS i ulterior a update-urilor, iar cealalt parte (tot trei programatori) concentrat pe versiunea de Android. n total, a durat aproximativ 10 luni s lansm un joc pe toate platformele mari (iOS, Android). Cel mai important factor, care conduce la mrirea timpului de dezvoltare, este reprezentat de fragmentarea platformelor. Dei jocul rula att pe iOS, ct i pe Android nc din ianuarie (pentru c aproximativ 90% din totalul codului era comun), ne-au mai trebuit nc cinci luni ca s lansm un joc polished pentru Android. Am vrut ca jocul s fie compatibil cu ct mai multe modele de telefoane i ne-am confruntat cu tot felul de diferene subtile ntre aceste modele, ntre versiunile de sistem de operare i ntre rezoluiile telefoanelor, uneori foarte atipice. Pentru c o mare parte din grafic era deja realizat pentru varianta de Facebook, am avut un singur grafician n echip care s-a ocupat de elementele noi specifice

Echipa King Romnia

versiunii de mobile i de adaptarea graficii existente. Din punct de vedere al QA-ului, proiectul rmne unul foarte dificil. Are cteva sute de niveluri, avea peste zece charm-uri permanente care influenau i modificau jocul (n varianta curent s-a renunat la acestea n favoarea wish-urilor), o serie de elemente speciale in-game (Doom Skull Bubble, Infected Bubble, Bomb Bubble etc) i booster-e temporare. Multitudinea de elemente creeaz foarte multe situaii posibile care trebuie testate. Pentru acest proiect am avut ase analiti care testau jocul n cele mai mici detalii. Un ciclu de testare tipic, spre finalul proiectului, dura ntre trei i apte zile, n funcie de ce se testa. Ciclul de testare pre-release era mai lung, pentru c se testau elemente adiionale specifice lansrii. Asigurarea calitii este foarte important pentru noi, pentru c dup trimiterea versiunii de joc la Apple, dureaz n medie dou sptmni pn ca aceasta s fie aprobat i lansat pe store. Dac detectm vreo greeal dup lansare, trebuie s o lum de la nceput i s-ar pierde nepermis de mult timp! De aceea, ne concentrm foarte mult pe QA i ncercm s fim ct mai proactivi cnd vine vorba de calitatea produsului. Mult munc, foarte mult atenie i concentrare la detaliile care conteaz, o mic armat de oameni implicai direct n dezvoltarea produsului i o alt mic armat implicat n activiti adiacente produsului (marketing, finance, accounting etc) i la final un scor de cinci stele ne face pe toi s decretm: da, e distractiv s faci jocuri!

Cristian Bidea
Lead developer @ King

44

nr. 16/Octombrie, 2013 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE

startups

DoItFor.co

m participat anul acesta pentru prima dat la Startup Weekend Cluj. i nu oricum, am mers pregtit s prezint propria mea idee. La primul pitch, aceast idee se numea TaskList pentru ca la sfritul evenimentului s se transforme n Do it for. Am pornit cu ideea unui site prin care s poi externaliza acele sarcini pe care nu tii, nu poi sau nu vrei s le faci tu. M gndeam aici la curenie, splat haine, fcut de mncare, stat la coad, splat maina, etc.
Teodor Olteanu
Teodor.Olteanu@betfair.com End User Computing Lead @ Betfair Romania

Alturi de o echip numeroas i energic am luat locul 3 la acea competiie. Avnd acest feedback pozitiv i fiind foarte motivai s realizm acest site care s ne ajute s avem mai mult timp liber am continuat s lucrm la Doitfor n timpul liber. Din echipa iniial am rmas eu, Codin, Gabi si Victor. Motivai i dornici s facem ceva care s fie folositor i altor oameni am lucrat cu bucurie la realizarea site-ului. Dup trei luni, pe 1 iunie, am lansat site-ul doitfor.co (cred c am fost prima echip de la StartupWeekend care au lansat dup eveniment). Aa cum este el acum, site- ul rezolv dou probleme mari: nevoia de mai mult timp i nevoia de venituri n plus. Cine vrea s externalizeze o activitate, oricare ar fi ea, este cel mai avantajat, posteaz un task i cei dornici s l ajute i

s ctige bani n plus liciteaz pentru acest task cu suma i detaliile necesare (cnd, cum i n ce condiii poate realiza task u l). Cel care a postat task ul e singurul care vede cu ce sum au licitat cei interesai, utilizatorii care liciteaz vd doar cte licitri sunt, nu i valoarea lor. Astfel evitm goana dup cel mai mic pre, care nu avantajeaz pe nici una dintre pri. Cteva statistici interesante de pe site: pn acum au fost postate 150 de task-uri cu valori cuprinse ntre 10 si 3500 lei. Avem aproape 1000 de utilizatori scrii pe site care au licitat de peste 500 de ori pe task-urile postate. n cele patru luni de la lansare site-ul a fost vizitat de aproape 10.000 de vizitatori unici, care au fcut peste 17.000 de vizite i au vizualizat de 73.000 de ori paginile site-ului. Aproape 60% au navigat pe site folosind browserul Chrome, 25% cu Firefox si doar 6% cu Internet Explorer, iar 90% din utilizatori au folosit un PC pentru a vizita site-ul, 8% un telefon mobil si 2% o tablet. Au fost realizate cu succes o multitudine de activiti: platou sushi, montat tapet, administrat pagini de facebook, redactare de documente, prjitur tiramisu, activiti de merchandising i

www.todaysoftmag.ro | nr. 16/Octombrie, 2013

45

startups

DoItFor.co

multe altele. Suntem abia la nceputul activitii noastre i mai avem multe de fcut pe toate planurile: marketing, design, programare. Chiar dac este mult munc i mult timp n care am putea s ne odihnim dup orele de munc full time pe care toi le avem, satisfacia pe care ne- o aduce este pe msur. E super s tii c ai fcut ceva care le face oamenilor viaa un pic mai uoar. Momentan doitfor este complet gratuit, oamenii i schimb banii direct ntre ei. Sperm ca n aceast toamn s reuim s implementm un sistem de plat electronic.

Detalii tehnice

Din punct de vedere tehnic n primul rnd aveam nevoie de un limbaj de programare care s ne ajute s ne miscm rapid. n echipa iniial erau programatori Java (Android), .NET i Python. Am ales Python pentru aplicaia web, iar programatorii pentru mobil au dezvoltat n Java pentru Android o aplicaie prototip care a fost prezentat la sfritul evenimentului.

Aplicaia prezentat la Startup Weekend a avut nevoie de funcionalitate minim pentru a demonstra ideea de baz a proiectului: dou formulare, unul de nscriere n site i unul de adugare a unui task, iar pentru mobil, un API simplu compus din dou funcii: una pentru a obine lista de taskuri din jurul tu, respectiv pentru a putea licita pe un task. Pentru partea de web am ales ca framework Django. Dar pentru c aveam nevoie s interogam baza de date n funcie de locaia utilizatorului, am folosit o variant a framework-ului - GeoDjango V invit s folosii platforma i s ne impreuna cu PostgreSQL cu extensia spunei cum putem s o mbuntim. PostGIS ca i baz de date. Am cumprat o baz de date de IP-uri de la MaxMind i mpreun puteam s determinm n primul rnd locaia utilizatorului n funcie de IP, iar apoi s cutm n baza de date task-uri relevante pentru utilizator sortate dup distana fat de acesta. Tot pe partea de back-end aveam nevoie de o modalitate de a executa funcii asincron, ca de exemplu, trimiterea de mailuri

sau backup la baza de date. Pentru asta am folosit Celery configurat cu un broker bazat pe Redis. Redis va fi foarte foarte probabil folosit n viitor pentru diferite sarcini n aplicaie, inclusiv pentru cache, de aceea am optat pentru el n defavoarea brokerului default RabbitMQ. Pentru partea de front-end am integrat puternica librrie de la Twitter, Bootstrap, mpreun cu un limbaj dinamic pentru prezentare, numit LESS. Interaciunea cu utilizatorul este deocamdat static, dar pe masur ce complexitatea va creste vom alege un framework pentru front-end de asemenea, cel mai probabil AngularJS. Deployment-ul a fost fcut pe infrastructura de la Amazon. n prima faz folosim trei micro instane de EC2: una pentru webserver, una pentru baza de date, iar a treia pentru sarcini administrative si asincrone. Webserverele sunt n spatele unui load balancer ELB, dei nu a fost implementat funcionalitatea de scalare automat nc. Tot de la Amazon se folosete Route 53 pentru serviciul de DNS, SES pentru trimitere de e-mailuri i S3 pentru fiiere statice. Dac se va aduga suport pentru PostgreSQL la serviciul RDS, probabil vom migra spre acesta pentru baza de date. Deja avem o multitudine de tehnologii interesante pentru un proiect la nceput de drum!

46

nr. 16/Octombrie, 2013 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE

HR

Leadership ctre liderul tu

C
Antonia Onaca
anto@aha-ha.com de aproape 10 ani trainer, psiholog, consultant sub form de antreprenor, intraprenor i antreprenor din nou

red c nu este nimic mai demotivant i enervant dect s ai un sef groaznic. Un ef care: - Nu tie nimic despre munca ta sau dimpotriv crede c le tie pe toate; Cedeaz presiunilor celorlalte echipe sau a managementului superior; Cere prea mult n timp prea scurt; E venic defensiv; Minte sau distorsioneaz realitatea; E un fricos i nu i asum nici un risc sau decizie; si lista ar putea continua pe inca cateva pagini Asa este nu e nimic mai demotivant si enervant dect un ef cu aceste caracteristici, chiar si cu numai una dintre cele mai sus enumerate. Da, ne ateptm ca liderul s: Cldeasc ncredere i mndrie, s exercite influen; Treac peste interesele individuale i s se uite la interesele grupului; Fie un model de referin; Trezeasc respectul celor din jur; Fie contiincios; Exercite autocontrol; Fie etic; Dea feedback obiectiv n concordan cu ateptri realiste; Ofere soluii i apoi contextul de dezvoltare n care oamenii s nvee cum s le implementeze; Acorde un timp rezonabil ca oamenii s nvee i inclusiv s accepte c n procesul de nvare oamenii mai greesc; i motiveze pe oameni s creasc i apoi s aib performan; Fie atent la nevoile de realizare i dezvoltare ale membrilor echipei; Stimuleze spiritul individual i cel de echip; Creeze oportuniti de dezvoltare i un climat orientat spre sprijin; Recunoasc potenialul i capacitile membrilor i s le ofere provocri s

Vorbete cu tine numai cnd i spune c ai dat-o in bar; Nu i explic de ce anumite lucruri trebuie fcute ntr-un anumit fel; E autocrat; Nu i ia aprarea; i asum ideile tale; Este ncuiat la minte, neaaceptnd alte idei dect ale lui; St toat ziua n meeting-uri i nu lucreaz nimic; Nu i d niciodata feedback pozitiv; E dezinteresat; E c o n t r o l - f r e a k i f a c e micromanagement; Te minte; E indecis; E mndru i niciodat nu recunoate c a greit; i acoper toate greelile; D vina pe upper management sau pe echipa lui; Nu comunic; Zice una i face alta; Cere ceva i apoi se ateapt la altceva; Are ateptri pe care nu i le comunic; i intoarce pe membri unul mpotriva celuilalt; Nu deleag ; Nu reacioneaz n timp util la probleme; E workohlic sau se ateapt c tu sa fii; Nu accept idei despre cum se poate schimba felul n care se fac lucrurile; Cere rapoarte peste rapoarte i apoi nu le citete; i submineaz autoritatea n faa colegilor sau a altor echipe; Te vorbete de ru; Nu te dezvolt i nici nu i acord timp s te dezvoli; E haotic; Se rzgndeste tot timpul; Nu are un plan logic;

www.todaysoftmag.ro | nr. 16/Octombrie, 2013

47

HR
Leadership catre liderul tu
creasc; Recunoasc i srbatoreasc chiar i micile succese i s ajute colaborativ la corectarea eecurilor; Dea semnificaie muncii; Ofere i construiasc ncredere n membrii echipei; ncurajeze gndirea inovativ, s construieasc soluii mpreun cu echipa, s ia n considerare ideile i perspectivele celorlali; ncurajeze experimentarea i creativitatea; Nu uite s ofere credit; Genereze efort suplimentar; Nu evite implicarea; Nu fie defensiv i s ncerce s neleag feedback-ul pe care l primete; Genereze soluii i s lucreze activ s le implementeze; Caute s obin feedback i s aib o perspectiv obiectiv; Fie eficient; Reprezinte i s apere echipa n exterior; Fie atent la rezultatele finale; Genereze satisfacie interpersonal; Fie cald i onest; Fie rbdtor; i n acest caz am putea s continum lista i s umplem multe pagini. Lucrez de mult vreme n leadership development. E greu, pentru c leadershipul presupune anumite comportamente care nu sunt att de uor de modificat. Nu este vorba de ct de multe caracteristici personale deja dezvoltate are sau nu. Nu este vorba nici de ct training primete i nu este nici mcar vorba despre ct de dispus este liderul s nvee. Din experiena mea unul dintre lucrurile care mpiedic semnificativ ansele de dezvoltare este faptul ca liderul este rupt de realitatea obiectiv a aciunilor sale i ale efectelor pe care acestea le produc. Ar fi foarte uor s dm vina pe el pentru asta, chiar foarte la ndemn, ns cred c a venit momentul s confruntm realitatea i s ne uitm la exact ce determin aceast rupere de realitate. n foarte multe cazuri, din experiena mea a spune n mai mult de 80% din cazuri liderul e rupt de realitate pentru c realitatea e rupt de el. Ce nseamn aceasta? Echipa acestuia nu face ceea ce se ateapt de la el s fac. Avem tendina s fim ipocrii n aceast situaie avnd standarde duble. Avem ateptri de la liderii notri pe care noi nu le ndeplinim. De foarte multe ori mi s-a ntmplat s vd faa mirat a liderilor n momentul n care se ntlneau cu acea realitate. Era incredibil ct de ocai erau de opinia echipei lor despre ei. Iniial i eu am crezut c acest lucru se datoreaz faptului c ei au ignorat indiciile oferite de echip ns n timp am ajuns la concluzia c acele indicii sunt mult prea generale i att de subtile nct rareori pot fi observate. Propunerea pe care v-o lansez este s facei ceea ce ateptai de la liderul vostru. inei minte c rolul lui este cel de leader i atunci ateptrile i feedback-ul vostru ar trebui s fie intit spre a mbunti aceasta. Nu o facei hit and run cum se ntmpl la performance reviews, cnd s-a umplut paharul i rabufnii, sau la exit interviews. Asigurai-v ca strategiile voastre vor fi eficiente n schimbarea comportamentelor nu numai n a-l face s se simt vinovat. V las cu cteva sfaturi specifice pentru nceput, lansndu-v provocarea ca n timp ntreaga list de ateptri menionat mai sus s reprezinte comportamentele voastre fa de liderul vostru: Dac ceva nu v place, spunei. Spunei atunci cnd nu v place i oferii i o soluie. Formulai soluia n termeni de aciuni pe care le dorii sau le ateptai. Avei rabdare ca liderul vostru s nvee, aducei-I aminte, ncurajati-l i recompensai efortul. Dac ceva v place, spunei. Spunei atunci cnd se ntmpl. Inclusiv pentru cele mai mici succese. Dup ce ai epuizat aceast list luai lista extins de comportamente de leadership (menionat mai sus) i punei-o n aplicare ca i cum ai fi liderul liderului vostru. n cazul n care sunteti deja ntr-un rol de lider i ai simit pe pielea voastr ce am menionat mai sus va recomand s vorbii cu echipa voastr i s le cerei explicit s fie la rndul lor leaderi. Dac suntei HR care citii acest articol v recomand ca pe lnga training-urile de leadership pentru lideri s livrai o variant adaptat i pentru echipe. Avem tendia s ne plngem i s fim nemulumii atunci cnd ceva nu este ok pentru noi. Din pcate plnsul i nemulumirea nu au rezolvat nimic niciodat. Discuia trece de la ce nu ne place la ce putem s facem s ne fie mai bine. De ce s depunem acest efort? Pentru simplul motiv c l ateptm din partea liderilor notri i standardele duble nu au fost niciodata sexy.

48

nr. 16/Octombrie, 2013 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE

management

Gogu i comunicarea

ogu se uit pentru a zecea mia oar la ceas. Nu e normal, nici acceptabil i n nici un caz scuzabil s ntrzie cineva att, i spuse el i, de aceast dat, puse mna pe telefon. Tocmai apelase numrul, cnd l vzu pe Miu intrnd, relaxat i cu zmbetul larg ntins pe faa de moroan. - No, ce te uii aa-ncruntat? l ntreb pe Gogu, dup care, adug repede: Stai o r, c mi-s cutat... i scoase telefonul, se uit pre de o clip la ecran, i mut privirea spre Gogu, apoi iar la telefon i iar la Gogu. Zmbetul fcu loc mirrii: - No..., spuse i se opri, uitndu-se ntrebtor spre Gogu: Ce-i? - Cum adic ce-i?! Lui Gogu replicile i se nclecar pe limb i se fcur ghem, de nu mai putea iei niciuna. ntr-un trziu, cu greu, i fcur loc printre dini i ieir mai mult ssite, ca un uierat de arpe: Ce-i?! Adic de ce stau ca prostu i m uit la tine, de ce nu strig sau de ce nu te iau la trei pzete? Ce-i cu rbdarea mea care s-a evaporat de o jumtate de or, sau ce-i cu rnjetul la lit pe faa ta?! se ambal Gogu. - Ce-i? adic de ce m suni?... rspunse Miu buimac de la uvoiul ssit ncasat n plin fa, ncercnd fr succes s neleag ce se petrece. Gogu ddu s continue, dar faa lui Miu era att de sincer mirat, nct l dezarm. i nchise telefonul i continu, mai calm, dar tot ssit i apsat: - Te rugasem s vii azi mai devreme s stabilim mpreun un plan de btaie pentru ntlnirea cu clientul. Nu doar c n-ai venit mai devreme, ai venit att de trziu nct am ratat i ntlnirea! Aerul buimac struia pe faa lui Miu. ncerc s explice: - Dar i-am trimis e-mail nc de sptmna trecut c azi vin mai trziu, i-am dus pe englezi s vad noile birouri. N-am tiut de ntlnirea cu cli... - Cum n-ai tiut?! i tie vorba Gogu indignat. V anunasem, pe toi, nc de vineri. Nu-i citeti e-mailurile?! - Pi, sincer... - Ce sincer? se zburlui Gogu. N-ai citit, aa-i? Miu cumpni o clip nainte s rspund. Cnd ncepu s vorbeasc, vocea i era calm, dar ferm:

Simona Bonghez, Ph.D.

simona.bonghez@confucius.ro Speaker, trainer i consultant n managementul proiectelor, Owner al Colors in Projects

www.todaysoftmag.ro | nr. 16/Octombrie, 2013

49

management
Gogu i comunicarea
- No, m Gogule, aici i de discutat. Nici tu n-ai citit e-mailul meu, aa-i? Nu l-ai citit i nici io nu l-am citit pe al tu. Noi n-am citit multe e-mailuri sptmna trecut. i nu numa noi, ci i nc civa. Gogu nu nelese: - Adic cum, e un fel de grev?! - Nu i grev, Gogule, ori, cel puin, nu una contient. ii minte ce ne-ai spus acu dou sptmni la edina de proiect? S punem toat echipa la CC la toate corespondenele legate de proiect? - Da, s tie toat lumea ce se ntmpl, s fim cu toii informai. Sunt foarte multe aspecte de luat n considerare i nu ne putem permite s pierdem ceva din vedere. - Aha... i dup aia a aprut problema la configurarea noilor echipamente. tii cum s-a terminat? - Da, m-a anunat Maria cnd au nceput instalarea licenelor. Ce-are-a face? - Te-a anunat Maria pentru c tu nu mai citeai e-mailurile, nu-i aa? Vznd c Gogu nu mai zice nimic, continu: Au zburat emailurile pe tema configurrii pn cnd nu le-a mai citit nimeni n afar de vreo trei care erau strict interesai. Iar tu probabil ai dat reply la vreunul dintre ele cnd m-ai chemat s vin mai devreme azi, nu? Sigur aa a fost, c altfel nu ratam. i eu am anunat vizita englezilor tot aa. Nimeni nu tia azi ca vin... Gogu prinse ideea. ntr-adevr, srise peste e-mailurile pe acelai subiect, dar nu se gndise c aa vor face toi. Dei... era normal. Hmm, din dorina de a-i ine pe toi informai, de fapt doar i suprancrcase, iar ei s-au protejat. i ce era s fac acum? C doar nu putea s i foreze s citeasc emailuri... Acum i explica de ce i scpau i lui efu multe e-mailuri: dac era copiat la toate, probabil c se proteja i el. Se strmb fr s vrea: trebuia s gseasc o soluie. i cu ct se gndea mai mult, cu att se convingea mai mult: soluia era, n mod neateptat pentru el, mai puin informaie, trimis doar la cei interesai. Restul, la edina sptmnal... l concedie pe Miu cu un gest, se aez la calculator, deschise e-mailul. i ce de e-mailuri avea... Din reflex deschise unul s dea reply ctre toat echipa, dar i ddu seama imediat: Nici pe asta n-o s-o citeasc. Clar, trebuia o nou abordare. Deschise un e-mail nou i scrise la subiect: Gogu recunoate c-a greit... Zmbi n sinea lui: Pe sta o s-l citeasc toi...

Romanian Mobile Systems Community Conference

Mob S
Cluj Napoca, 21 - 22 November 2013 Hotel Golden Tulip Ana Dome
www.romobos.com

SPEAKERS
Android: 21.11.2013
Sergi Almar

Enirique Lopez Manas

iOS: 22.11.2013
Kuba Brecka

Matteo Manferdini

50

nr. 16/Octombrie, 2013 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE

sponsori

powered by

S-ar putea să vă placă și