Documente Academic
Documente Profesional
Documente Cultură
com
TSM
T O D A Y S O F T WA R E MAG A Z I NE
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
10 SmartWebConf 2013
Radu Popescu
18 HR n Agile
Andreea Prvu
45 DoItFor.co
Teodor Olteanu
49 Gogu i comunicarea
Simona Bonghez, Ph.D.
editorial
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 !!!
Ovidiu Man
alex.bolboaca@mozaicworks.com Agile Coach and Trainer, with a focus on technical practices @Mozaic Works
Radu Vunvulea
Cristian Bidea
Lead developer @ King
dify.ltd@gmail.com
Victor Ionescu
adrian.bolboaca@mozaicworks.com Programmer. Organizational and Technical Trainer and Coach @Mozaic Works
Waldemar Knopp
knopp.waldemar@evoline.ro
Produs de
Dan Ionescu
George Platon
Cristina Nicule
Antonia Onaca
anto@aha-ha.com de aproape 10 ani trainer, psiholog, consultant sub form de antreprenor, intraprenor i antreprenor din nou
Irina Scarlat
Radu Popescu
Andreea Prvu
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
startups
Ana Rducanu
evenimente
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 .
George Platon
evenimente
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
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
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
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
management
Dan Suciu
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!
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
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
15
management
programare
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
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
19
programare
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
20
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
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
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.
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
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.
23
programare
programare
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
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.
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.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
25
HR
programare
Dan Ionescu
Cristina Nicule
26
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
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.
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
programare
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
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.
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.
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.
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
31
programare
programare
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.
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
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, {
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.
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
programare
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
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
36
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.
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
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
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.
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,
38
programare
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
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.
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
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/
41
programare
42
programare
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.
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
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
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
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
HR
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;
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
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:
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...
Mob S
Cluj Napoca, 21 - 22 November 2013 Hotel Golden Tulip Ana Dome
www.romobos.com
SPEAKERS
Android: 21.11.2013
Sergi Almar
iOS: 22.11.2013
Kuba Brecka
Matteo Manferdini
50
sponsori
powered by