Sunteți pe pagina 1din 51

Nr. 15 Septembrie 2013 www.todaysoftmag.ro www.todaysoftmag.

com

TSM
tul n e i l C ay d o T iOS

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

ine z a g Ma e r a Softw

dry n u o F mini e G 8 area hone Lans P s dow n i W M in MVV

Comparaie ntre dezvoltarea aplicatilor native i cele hibrid Lean Six Sigma i managementul inovaiei SAP Conference Echipa Trilulilu din Cluj a lansat un serviciu naional revoluionar Model Based Testing fr presupuneri

Cum am facut primul meu Azure Mobile Service Business Networking de la offline la online pe platforma Business Days Debugging n producie Clustering for High-Dimensional Data Sets Empatia noua competen

6 TodaySoftMag aplicaia TSM pentru iPhone i iPad


Ovidiu Man

27 Clustering for HighDimensional Data Sets


Lucian Brescu

8 Echipa Trilulilu din Cluj a lansat un serviciu naional revoluionar


Clin Biri

30 SAP Conference
Victor Ionescu

9 Favorites: de la CRM la FRM


Victor Miron

31 Dezvoltarea aplicaiilor mobile: ntre nativ i hibrid


Ctlin Prata

10 Lansarea Gemini Foundry


Ovidiu Man

35 Debugging n producie
Radu Vunvulea

12 SmartWeb Conference
Iunieta Sandu

38 Recenzia crii:
Silviu Dumitrescu

13 AGILE LEAN EUROPE 2013


Ana Maria Constantinescu

40 Model Based Testing fr presupuneri


Tudor Cobla

15 Clientul iOS Today Software Magazine


3Pillar Global Team

42 TheOpen.com susinerea digital a unui turneu de success


Bogdan Moscaliuc

19 MVVM n Windows Phone 8


Cosmin Stirbu

44 Business Networking de la offline la online pe platforma Business Days


Ovidiu Man

22 Cum am facut primul meu Azure Mobile Service


Florin Cardasim

47 Lean Six Sigma i managementul inovaiei


Monica Petraru

24 Test Driven Development i design incremental


Alexandru Bolboaca i Adrian Bolboac

49 Empatia noua competen


Antonia Onaca

editorial

Ovidiu Man, PMP

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

mi face mare plcere s v anun c odat cu publicarea numrului 15 lansm i prima aplicaie TSM pentru dispozitive mobile. Este vorba despre reader-ul pentru iPhone/iPad i care este disponibil deja n Apple Store. A fost o experien inedit s crem aceast aplicaie. n doar dou luni, colaborarea tehnic a dou companii, 3Pillar Global i Gemini Solutions, a dus la realizarea unei aplicaii finite care ofer un mod facil de a citi revista atunci cnd nu eti n faa calculatorului. n dorina de a oferi ceva mai bun comunitii echipa a nvestit mult pasiune i pricepere. Mulumesc tuturor pentru sprijinul acordat iar n paginile revistei vei gsi dou articole dedicate acestei aplicaii. V invit totodat s o descrcai de pe site-ul revistei i s ne trimitei prerile voastre !!!! Pentru a pstra o concordan cu lansarea aplicaiei TodaySoftMag, numrul 15 TSM a dedicat tema general aplicaiilor mobile. De asemenea, pe lng lansarea lunar de la Cluj a revistei, TSM va avea ocazia s se fac cunoscut i n Bucureti, n cadrul evenimentului Gemini Foundry. Alte evenimente inedite la care v invitm s luai parte n luna septembrie sunt : SmartWeb Conference (Bucureti), SAP Conference (Cluj) i Cluj Business Days (Cluj). Fiecrui eveniment i-am dedicat un articol. Ca de obicei, facem o scurt inventariere a articolelor care se gsesc n acest numr. ncepem cu Test Driven Development i design incremental care este o revizuire a modului n care se aplic TDD i ne propune soluii practice a designului aplicaiilor. Pattern-ul MVVM este aplicat pentru Windows Phone 8. Din aceeai sfer a aplicaiilor mobile menionm titlurile: Clientul iOS Today Software Magazine, Comparaie ntre dezvoltarea aplicatilor native i cele hibrid, Favorites - de la CRM la FRM precum i Echipa Trilulilu din Cluj a lansat un serviciu naional revoluionar. Celor ce vor s i aminteasc de geometria euclidian i spaii v recomand s citii: Clustering for High Dimensional Data Sets. Seciunea de management conine Lean Six Sigma i managementul inovaiei, Empatia noua competen i interviul despre Business Days.

V dorim o lectur plcut !!!

Fondator i CEO al Today Software Magazine

Ovidiu Man

nr. 15/Septembrie | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE


Lista autorilor Redacia Today Software Magazine
Fondator / Editor n chief: Ovidiu Man ovidiu.matan@todaysoftmag.com Editor (startups i interviuri): Marius Mornea marius.mornea@todaysoftmag.com Graphic designer: Dan Hdru dan.hadarau@todaysoftmag.com Copyright/Corector: Emilia Toma emilia.toma@todaysoftmag.com Traductor: Roxana Elena roxana.elena@todaysoftmag.com Reviewer: Tavi Bolog tavi.bolog@todaysoftmag.com Reviewer: Adrian Lupei adrian.lupei@todaysoftmag.com Produs de
Alexandru Bolboaca Clin Biri

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

calin.biris@trilulilu.ro Marketing manager @ Zonga

Cosmin Stirbu Victor Miron


Co-fondator @ Favorites miron.victor@gmail.com

alex.bolboaca@mozaicworks.com iOS Software Developer @ Fortech

3Pillar Global Team


@ 3Pillar Global

Radu Vunvulea

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

Lucian Brescu

lucian.braescu@accesa.eu Software Developer @ Accesa

Adrian Bolboaca

adrian.bolboaca@mozaicworks.com Programmer. Organizational and Technical Trainer and Coach @Mozaic Works Iunieta Sandu iunieta.sandu@evensys.ro PR & Marketing Coordinator @ Evensys

Monica Petraru

monica.petraru@urss.ro Senior Business Analyst @ UNIQA Raiffeisen Software Service

Today Software Solutions SRL


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

Ctlin Prata Florin Cardasim


orin.cardasim@endava.com Head of Architecture &Analysis @ Endava Iai

catalinp@fortech.ro Mobile Software Developer @ Fortech

Bogdan Moscaliuc Ovidiu Man, PMP


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

bogdan.moscaliuc@endava.com

Horea Raiu

Horea.Ratiu@msg-systems.com Director Departament SAP @ msg systems Romania

Antonia Onaca

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

Tudor Cobla

tudor@xlteam.ro

Copyright Today Software Magazine


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

Business Developer @ XL Team

www.todaysoftmag.ro | nr. 15/Septembrie, 2013

lansare

TodaySoftMag

aplicaia TSM pentru iPhone i iPad


m dezvoltat aplicaia TSM pentru iPhone/iPad la initiativa lui Dan Suciu, Director of Engineering @3Pillar Global, de a colabora la scrierea acesteia i de a o publica n cele din urm pe AppStore. Procesul de dezvoltare a fost unul Agile n toate sensurile. Echipa a fost iniial format din trei programatori iOS: Mdlina Miron, Daniela Bulgaru i Tudor Stnean, avnd-o project manager pe Gabriela Boti. Ulterior, si-au adus contributia Robin Molnar pe partea de QA, iar pentru look&feel, colegii de la Gemini: Dan Hdru i Marius Chincian. S-a nceput cu cteva requirement-uri Au fost i multe feature-uri care din generale ale unui prim prototip, pentru ca pcate au fost scoase pe msura ce produsul la finalul celei de-a doua iteraii, s aveam se maturiza. S-ar putea ca unele s va plac, ceva funcional. Dup care, direcia dorit aa c scriei-ne, poate le reconsiderm: a fost stabilit, i ne-am ndreptat rapid infinite scroll - Iniial vzut ca o ctre produsul final. Am dorit s avem modalitate de aliniere cu alte produse ceva simplu, practic i funcional, iar n similare cum ar fi clientul Engadget, mai puin de dou luni aplicaia era deja s-a renunat la el, dei tehnic funciona disponibil pe AppStore. Principala caracfoarte bine, pentru c, din punct de teristic a aplicaiei este posibilitatea de vedere al experienei utilizatorului, a vizualiza toate numerele TSM de pn focusul era mutat practic pe animaia acum i de a citi fiecare articol din acestea. i libertatea de a vedea rapid sute de Dac unul dintre articole nu este disponibil n format HTML pentru vizualizare, n special n numerele mai vechi ale revistei, am optat pentru soluia oferit de ctre issuu.com care funcioneaz acum i pe device-urile Apple i permite vizualizarea direct a fiierului pdf. Vizual, a trebuit s redefinim identitatea produsului pentru dispozitivele mobile, i doresc s remarc n acest sens, icoana aplicaiei precum i splashscreen-ul acesteia. ntregind aceast experien, lista de reviste disponibile i animaia selectrii unui numr, au ncercat s fac ntreaga utilizare a aplicaiei ct mai natural. Remarcm de asemenea posibilitatea schimbrii limbii, care rencarc aplicaia si toate articolele n limba selectat. O optimizare a acestui feature este redirectarea, n funcie de limba aleas, ctre www.todaysoftmag.ro pentru limba romn i ctre www.todaysoftmag.com pentru limba englez.

Ovidiu Man, PMP

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

nr. 15/Septembrie | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE


este doar amnat, iar ntr-una dintre versiunile urmtoare, l vom include ntr-o form complet. 1. Vizualizare poze articole full screen; 2. Un help screen iniial ce conine tips&tricks pentru dezvoltarea aplicaiei; 3. Implementarea Apple notifications; 4. Funcionalitatea de search; 5. Includerea unei seciuni separate video, acestea fiind n momentul de fa disponibile doar n cadrul articolelor; 6. Events planner - o mai buna organizare a evenimentelor din jurul fiecruia.

Arhitectura general a sistemului

articole, pierzndu-se n schimb un lucru esenial, i anume direcionarea cititorului ctre ultimele articole publicate, offline mode - cel mai important feature pe care a trebuit s nu l includem deocamdat. Motivul este confuzia ce o poate crea utilizatorului. Aceasta este cauzat de faptul c articolele stocate pentru vizualizare offline erau doar articolele ce au fost citite pn atunci. Dar din punct de vedere al folosirii se nate ntrebarea: de ce a vrea s recitesc un articol deja citit? Valoarea real ar fi n schimb s pot citi tot timpul ultimul numr al revistei sau pe cele pe care doresc s le descarc. De asemenea, trebuie s acordm cititorului posibilitatea de a elibera spaiul folosit. Acest feature

Doresc s mulumesc echipei de dezvoltare, pentru c am creat mpreun o aplicaie foarte practic i util n mai puin de dou luni. Am demonstrat cu aceast ocazie potenialul pe care industria de IT romneasc l are n acest moment, i care Dac v ntrebai cum este transmis poate fi folosit i n scopul suportului miciarticolul propriu-zis, acesta este descrcat lor afaceri locale. direct n format HTML, oferind n acest fel, o mare libertate din punct de vedere al afirii coninutului. Practic, de la listarea n AppStore au fost adugate comentariile Disquss, iar modul de afiare al articolelor ce nu sunt n format complet a fost schimbat, n momentul de fa redirectarea fcndu-se direct la issuu.com

Att aplicaia de iPhone ct i cea de iPad utilizeaz acelai mecanism de comunicare cu serverul i anume REST folosind obiecte JSON. Am ncercat s inem totul ntr-o form simpl, astfel nct avem doar trei tipuri de request-uri: issues - lista de reviste noi considernd ultimul numr diponibil pe client articles - lista de articole dintr-un anumit numr al revistei author - detaliile despre un autor

Ce urmeaz?

Versiunea de Android, pe care o vom dezvolta mpreun cu echipa de Android din India a 3Pillar Global precum i suportul Gemini Solutions pentru partea de look&feel. n ceea ce privete aplicaia TSM de iPhone/iPad, plnuim s avem releaseuri ce vor conine mbuntiri graduale i bug fixing. Printre principalele noi featureuri putem enumera:

www.todaysoftmag.ro | nr. 15/Septembrie, 2013

business

Echipa Trilulilu din Cluj a lansat un serviciu naional revoluionar


odul n care ascultm muzic s-a schimbat enorm n ultimii 15 ani. De la casetele i bine cunoscutele walkmanuri, la CD-urile audio sau cele cu mp3-uri, pn la ipod-uri cu mii de piese. Astzi, dac ai o conexiune la internet i un telefon mobil, poi asculta milioane de melodii oriunde i oricnd. Acest lucru se datoreaz evoluiei online-ului i a smartphoneurilor care au deschis un nou orizont ctre consum colaborativ. Ecipa care a dezvoltat bine-cunoscuta platform trilulilu.ro a lansat n octombrie 2012 serviciul de muzic Zonga. Acesta ofer utilizatorilor acces pe mobil, PC i tablet la peste 19 milioane de melodii, prin intermediul platformei online zonga.ro i a unor aplicaii dedicate de Android, iOS i desktop. Zonga revoluioneaz modul n care romnii ascult muzic oferindu-le o alternativ legal pirateriei i funcionaliti ale serviciului care le simplific viaa: Sincronizarea muzicii, a playlisturilor i favoritelor ntre toate deviceurile i aplicaiile Zonga; Actualizarea coninutului muzical n timp real, odat cu apariia noilor lansri muzicale de pe pia; Oferirea de recomandri personalizate de piese, albume i artiti n funcie de activitatea utilizatorului; Seciune social unde se poate urmrii activitatea muzical a amicilor care folosesc Zonga; Realizarea unui astfel de serviciu a durat peste 2 ani din stadiul de idee i pn la lansarea oficial. n acest proiect sunt implicate cele mai importante case de discuri internaionale i locale, ct i operatorul de telefonie mobila Vodafone. Aceste parteneriate au ajutat ca proiectul s se poat realiza, s creasc i s aib o vizibilitate mai bun. Strategia de dezvoltare a fost s se intre pe pia cu un serviciu bun i mai apoi s fie mbuntit continu n funcie de feedback-ul consumatorilor i a viziunii proiectului. Dup aproape un an din momentul lansrii, toate aplicaiile au primit update-uri majore, mai stabile, mai rapide i mai uor de folosit. n curnd va fi lansat i aplicaia pentru Windows Phone. Provocrile proiectului au fost de a aduce sub aceeai umbrel coninutul legal al celor mai mari case de discuri ntr-un moment n care pirateria muzical online este pe val, de a avea ca partener un operator important de telefonie mobil, de a dezvolta cele mai bune aplicaii de muzic din pia, de a lansa o ofert incombatabil i de a comunica ct mai intit. n 2013 Zonga a ctigat 5 premii pentru aplicaiile de muzic pe mobil, iar n acest moment se fac peste de 1milion de ascultri pe lun din aplicaiile Zonga. Toate acestea au fost realizate de ctre echipa Trilulilu din Cluj, care arat n continuare c aici avem un centru IT important de unde se pot dezvolta servicii de nivel naional sau internaional.

Clin Biri

calin.biris@trilulilu.ro Marketing manager @ Zonga

nr. 15/Septembrie, 2013 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE

startups

Favorites: de la CRM la FRM

Favorites te ajut s ii legtura cu persoanele importante din viaa ta. Acele persoane a cror contact l marchezi la Favorii n agenda telefonului. E vorba de patru categorii de persoane importante pentru un om: familie, prieteni, jumtate (so, soie, iubit, iubit) i business (clieni, furnizori, parteneri). Prin intermediul aplicaiei poi s i setezi ct de des vrei s interacionezi cu favoriii ti: zilnic, sptmnal sau lunar. Aplicaia urmrete ct suni, trimii mesaj sau te ntlneti cu un favorit. Dac trece perioada cu a crei frecven vrei s interacionezi cu un favorit aplicaia i trimite o notificare prin care i amintete s nu uii s i contactezi. Tot n aplicaie poi s vezi un istoric grafic al interaciunilor cu acel favorit i cte un istoric al apelurilor telefonice, mesajelor i ntlnirilor. ntlnirile au integrat i harta pentru a face lucrurile ct mai uoare. Dup primele folosiri ale aplicaiei utilizatorii au fost foarte ncntai de faptul c mamele lor de exemplu i laud c le sun mai des i sunt i mai ateni cu ele. Ali utilizatori au fost extrem de entuziasmai de folosirea aplicaiei ca tool de networking. i-au trecut n Favorites acele contacte din zona de business alturi de care vor s dezvolte parteneriate durabile.

nul acesta am pitch-uit la Startup Weekend Cluj ideea unei aplicaii de mobil pe nume Favorites. La cinci luni de la eveniment am reuit s lansm o prim versiune de Android a aplicaiei. Din zona de business a i pornit idee punem n buzunarul oamenilor prin interaplicaiei. Tot mai multe companii i mediul smatphonului lor. Favorites poate fi downloadat gratuit din Google Play de la acest link https:// play.google.com/store/apps/details?id=ro. customsoft.favorit.es. La cutare poate fi gsit cel mai uor dup favorit.es. Urmtorii pai pentru Favorites sunt s implementm feedback-ul de la utilizatori, s realizm o versiune premium tot pe Android, dup care s lansm i versiunea de iPhone. Vom avea, de exemplu, n viitorul apropiat opiunea s poi fi notificat dac trece o anumit perioad fr s suni tu o anumit perioad. Astfel se vor putea evita foarte uor situaiile n care mama (sau orice favorit) i reproeaz c doar ea te sun. Favorites este o aplicaie compatibil cu Android versiunea 2.2 i mai noi. Este compatibil att cu telefoanele cu Android, ct i cu tabletele cu acest sistem de operare. Aplicaia este dezvoltat nativ pe platforma Google i folosete o baz de date pentru a pastr informaiile despre favorii.
Victor Miron

dau seama de importana folosirii unui soft de CRM (Customer Relationship Management). Prin Favorites vrem s adaptm softurile de CRM la viaa de zi cu zi i s l scoatem din companii i s l

miron.victor@gmail.com Co-fondator @ Favorites

www.todaysoftmag.ro | nr. 15/Septembrie, 2013

startups

Lansarea Gemini Foundry

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

Ovidiu Man, PMP

tartup-urile ncep s fie un subiect la mod n 2013. Apar din ce n ce mai multe organizaii ce doresc s sprijine aceste eforturi, iar recent chiar am publicat, n numrul 12, un articol despre Gemini Foundry. Revenim cu acest subiect deoarece diferite startup-uri au fost interesate de aceast iniiativ i exist nevoia unei clarificri. erban r, directorul tehnic al grupului de firme Gemini Solutions mpreun cu Radu Popovici ne-au rspuns la cteva ntrebri. Ce nseamn startup-urile pentru Gemini Solutions din perspectiva colaborrii cu acestea? Gemini Solutions are o lung istorie lucrnd cu startup-uri pn acum din Silicon Valley. Din acest punct de vedere noi credem c nelegem foarte bine cultura de startup. Chiar dac startup-urile din Romnia sunt un pic diferite de cele din US, n esen cultura i modul lor de lucru i de a pune problema este acelai. Din acest punct de vedere Gemini Solutions pune mare pre pe oamenii cu iniiativ, antreprenorii, pe cultura de startup, simindu-se ntotdeauna atras de astfel de iniiative i dorete s ncheie parteneriate, de diverse feluri cu ele. Cum vedei evoluia corect a unui startup pentru a deveni un succes? Nu credem c are cineva o reet general valabil pentru succesul unui startup. Sunt muli factori care pot contribui la succes: evident conteaz i ideea - dar nu att de mult pe ct nclinm la prima vedere s credem, conteaz fine tunning-ul idei - un proces complex care trebuie s considere muli factori precum publicul target, modalitile de promovare, viralitate, evaluarea corect a niei de pia adresate. Evident nu n ultimul rnd conteaz realizarea n sine a produsului, nelegerea feedback-ului de la utilizatori i nglobarea lui n produs, precum i direciile viitoare de dezvoltare spre care se merge. Este important s nelegem c o dat un produs out in the wild nelegerea feedback-ului de la utilizatori i acionarea n consecin sunt un factor cheie n meninerea produsului n vederea publicului int. Un alt factor care de obicei tinde s fie elaborat mai puin dect este cazul este evaluarea corect a potenialelor metode de monetizare. La ora actual metodele clasice de monetizare (vnzarea aplicaiei contra cost, revenue din adds, etc.) tind s nu mai fie de actualitate ca surs principal de revenue ci mai degrab ca surse suplimentare de venit. Ce prere avei despre piaa de startupuri din Romnia pn acum i dac putei s ne oferii o previziune pentru urmtorii doi ani? Credem i sp erm c piaa de startup-uri din Romnia va crete considerabil n urmtorii ani. Economic vorbind, Romnia nu va mai putea mult timp s se vnd ca o ar cu fora de munc ieftin - fie ea i n cazul sectoarelor unde este necesar nalt calificare. n aceste condiii urmtorul pas logic este s apar activiti economice cu valoare adugat mai mare. Aceasta evident se poate doar prin inovare, iar

10

nr. 15/Septembrie | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE


startup-urile sunt esena inovrii. Legat de piaa actual a startup-urilor din Romnia, evident suntem la nceput, asta nsemnnd c plaja, modalitatea de abordare a iniiativei de ctre antreprenorii locali este destul de eterogen, neexistnd o cultur i o tradiie local n aceast direcie. Asta nseamn c am ntlnit startup-uri care pun problema foarte corect, i au o linie clar de dezvoltare - cu nimic mai prejos dect cele de peste ocean, dar i startup-uri cu o abordare destul de empiric ba chiar naiv. Evident legat de numrul startup-urilor, sperm ca acestea s creasc n viitor. Ce nseamn Gemini Foundry pentru startup-urile romneti ? Gemini Foundry se vrea o cale pe care startup-urile romneti o pot lua n cazul n care inta acestora este piaa american. Noi credem c dup aprope paisprezece ani de lucru cu companii din Silicon Valley - multe dintre ele startup-uri - avem o nelegere a ecosistemului i mecanismelor de acolo - i putem ajuta startup-urile romneti s ajung pe acea pia i s fie de succes acolo. Am neles c se va organiza o lansare oficial Gemini Foundry n 24 Septembrie n Bucuresti. Ne putei spune cteva cuvinte despre cine vor fi invitai la acest eveniment ? Pe data de 24 septembrie la ora 17:00 va avea loc la Hotel Marshall Garden lansarea oficial a Gemini Foundry, eveniment organizat mpreun cu Secia Comercial a Ambasadei Statelor Unite la Bucureti. Printre alii la acest eveniment vor participa domnul Theo Nissim - CEO al grupului de firme Gemini Solutions, Jim Cunningham - Regional Senior Commercial Officer, Europa de Sud-Est precum i Nicolas El Baze - General Partner, Partech International. De asemenea, ne vom bucura de prezena doamnei Adina Magda Florea decanul Facultii de Automatic i Calculatoare al Politehnicii din Bucureti. Evident v invitm i pe voi toi tinerii antreprenori din domeniul IT, cu idei i iniiative s participai. Pentru cititorii TSM ce doresc s participe la lansarea Gemini Foundry, care este modalitatea de nregistrare? Participarea la eveniment se va face pe baza formularului de nregistrare de pe site-ul nostru www.gemsfoundry.com i confirmare ulterioar. Care este diferena dintre un Incubator i un Foundry ? n timp ce un incubator este o iniiativ care ajut startup-urile cu o list predefinit i clar de servicii i faciliti, Foundr y-ul este o iniiativ caracterizat de flexibilitate, care i construiete oferta pe care o are ctre fiecare startup n parte n funcie de necesitile i specificul acestuia. C are e s t e s p e c i f i c u l G e m i n i Fo u n d r y n comparaie cu alte iniiative similare ? Sp e cif ic u l G emini Foundr y este c i propune s creasc startup-uri care au ca int final piaa din Statele Unite i ofer conexiuni directe i concrete ctre instituiile, entitile i mediul de afaceri de acolo, astfel se maximizeaz ansele startup-urilor de a primi investiii i de a avea success real pe piaa de acolo. Ce ofer i ce primete Gemini Foundry de la un start-up partener ? A ncerca s grupez ceea ce ofer Gemini Foundry n mai multe categorii de servicii. ntre aceste categorii cred c se disting: servicii menite s uureze viaa

antreprenorilor n sensul c i degreveaz de sarcinile de rutin dar importante de zi cu zi, i i las s se concentreze pe ideea lor de business (servicii de legal, servicii contabile, birou); servicii menite s duc la dezvoltarea sntoas i rapid a business-ul precum mentorat i suport tehnic, ndrumare calificat legat de dezvoltarea businessului, dar poate cel mai important, ofer conexiuni directe i concrete ctre investitorii i environment-ul din Silicon Valley. Ce primim n schimb ? Aici este simplu, primim un procent din compania incubat, care oricum va rmne minoritar. Evident c acest procent difer n funcie de serviciile oferite.

www.todaysoftmag.ro | nr. 15/Septembrie, 2013

11

evenimente

SmartWeb Conference, locul de ntlnire al web designerilor locali i internaionali


martWeb Conference este primul eveniment din Romnia adresat n mod special web designerilor i web developerilor locali, dar i celor din Estul Europei. Conferina ofer oportunitatea participanilor de a-i ntlni pe unii dintre cei mai renumii oameni din industrie la nivel global dar i pe ali speakeri foarte populari i nelipsii de la cele mai mari conferine de acest gen din Europa de Vest i SUA. Doi dintre speakeri foarte ateptai la eveniment sunt Vitaly Friedman i Jonathan Snook. Vitaly este co-fondator Smashing Magazine, revist online dedicat design-ului i dezvoltatorilor web. Acesta va susine o prezentare despre Responsive Web Design i va oferi sfaturi despre tehnicile eficiente de care dezvoltatorii web trebuie s in cont. Jonathan Snook este deintor al blogului Snook.ca i co-autor a dou cri despre CSS i DOM Scripting. Printre invitaii internaionali se mai regsesc: Carl Smith, fondator i deintor al companiei nGen Works; Dan Rubin , designer, fondator, Webgraph; Bruce Lawson, posesor al blogului brucelawson.co.uk i co-autor al crii Introducing HTML5; Peter Gasston autor a dou cri despre CSS3 i Modern Web; Vasilis Dimos Head of UX/U n cadrul companiei Skroutz S.A; Radu Chelariu , Art Director n cadrul companiei Busteco Global Brain; Evenimentul se va desfura pe parcursul zilei de 24 septembrie, la JW Marriott Grand Hotel, iar specialitii promit un program intensiv despre tendinele, oportunitile i provocrile industriei de web-design. Conferina este structurat n patru sesiuni extinse i intensive iar printre temele ce vor fi abordate se regsesc: Responsive Web Design, HTML5 & CSS3, CSS, Javascript, User Experience. Conferina este organizat de Evensys, o companie cu peste apte ani de experien n dezvoltarea de conferine i seminarii n colaborare cu Gabi chiopu, Senior Web Magazine, InspiredMag, Romanian Startups, BestJobs, Refresh.ro, Joobs. Mai multe informaii despre eveniment i program sunt disponibile pe site-ul http://www.smartwebconf.com/

Jonathan Snook e

Designer / Developer, World Wide Web Hosting LLC. Conferina Smartweb este susinut de parteneri cum ar fi Site5, UPC, Sourcebits, Designmodo, Iconfinder, Smashing Magazine, Opera Software, NETOPIA, mobilePay, Qcat, Webdigital precum i de parteneri media cum ar fi Today Software

Iunieta Sandu iunieta.sandu@evensys.ro PR & Marketing Coordinator @ Evensys

12

nr. 15/Septembrie, 2013 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE

evenimente

AGILE LEAN EUROPE 2013


oi am vrea s numim ALE 2013 conferina magic pentru c doar ce s-au ncheiat trei zile minunate, pline cu ultimele nouti despre Agile i Lean, pline de lucru n echip (aka co-creation), discuii, networking i o groaz de lucruri faine organizate pentru a aduce un plus de distracie participanilor i familiilor acestora. Oamenii au vorbit despre respect, ncredere, nvare, experiene i creativitate, i nu doar c au vorbit, dar aveam impresia c nsi conferina era organizat de ctre fiecare participant n parte. Prima zi a debutat cu o introducere fcut de ctre organizatori. Keynote-ul de deschidere i-a aparinut lui Jurgen Appelo care a discutat despre noua structur organizaional a secolului XXI subliniind faptul c se bazeaz pe reea i nu pe ierarhie! n nchidere a vorbit despre o reea de business-uri i idei detepte pe care a creato numit Happy Melly1 i odat ce intri acolo vei avea multe de nvat! Dup ce fiecare speaker i-a prezentat discursul, a fost o mare provocare pentru participani s aleag la care dintre cele trei prezentri s mearg ntruct aveau loc n acelasi timp. Dup talk-uri a urmat partea de Lightining Talks i Open Space. Partea mai dificil a fost cnd Marketplace-ul s-a umplut de topicuri interesante dintre care participani urmau din nou s aleag la care s participe. Noi am mers mai nti la talk-ul lui Toni Tassani (Twitter @atassani), software developer din Barcelona, Agile entuziast i comics fan. Prezentarea sa, The Cognitive Power of Comics2 ncepe printr-o recomandare de carte i anume: Commitment Novel about Managing Project Risk , de Olav Massen, Chris Matts, Chris Gearryn un roman grafic care demonstreaz cum Comics-urile pot fi utilizate pentru a exprima idei complexe. Comics-urile au aprut pentru prima
1 www.happymelly.com 2 w w w . s l i d e s h a r e . n e t / t o n i t a s s a n i / the-cognitive-power-of-comics

dat pentru divertisment, dar ulterior au nceput s apar comics-uri despre jurnalism, probleme sociale, economie, logica etc. Comics-urile sunt de fapt primul contact pe care noi l avem nc de mici cu textul, cu cuvintele. Comics-urile fac omul s gndesc ntr-un mod diferit. n momentul n care cititorul consum comics-uri el este deja un agent activ, iar comics-urile sunt eseniale pentru cunoatere i nelegere. Comics-urile sunt cea mai eficient unealt. Un creier antrenat cu comics-uri este deja un creier pregtit s decodeze. Mixnd imagini i text determin creierul s lucreze n dou forme diferite n acelai timp ceea ce nlesnete generarea de sentimente i conexiunea cu cititorul. A urmat Oanei Juncu (Twitter @ojuncu), care a vorbit despre A journey to our cognitive biases. Cu toii avem o tendina natural de a face lucrurile bine dar de multe ori le facem greit. Greeala este omeneasc i cu toii facem greeli tot timpul. Chiar i cnd credem c am nvat din erori tot mai greim. i asta a motivato pe Oana Juncu s ntreprind un studiu mai amnunit al erorilor cognitive. Oana a vorbit despre un set de mai multe erori cognitive care ne duc la greeli n viaa de zi cu zi i ne-a vndut cteva ponturi despre cum s nelegem cum funcioneaz mecanismul cognitiv ce ne conduce uneori s lum decizii greite. Totodat, cunoscndune erorile cognitive nu ne ajut s nu mai facem greeli deloc, ci doar s facem mai puine.

Dup Oana Juncu noi am urmrit-o pe Anna Obukhova care a inut o prezentare despre SCRUM i voina, i despre cum neurotiina poate spori productivitatea. Anna spune c voina este ca un muchi i ca urmare acesta trebuie exersat greu i ct mai des. Combustibilii voinei sunt zahrul i Lysine-ul i acetia nu trebuie risipii. Pasul 1. n SCRUM este sa nu i iroseti voina (1. Standup 2. Sprint Pulse 3. Pick the task).Pasul 2, este s nu i lai pe alii s i iroseasc cantitatea de Lysine din organism i pentru aceasta trebuie s reduci incertitudinea ( 4. PBR meetings 5. Story tests and DOD 6. Change Requests 7. UT and Test Automation). Pasul 3, spune s obii rezultate i s fii fericit ( Obine rezultatele, Autorizeaz rezultatele i Vinde rezultatele! Iar continuarea sub-pasilor pentru succes ar fi urmtorii 8. Story done, 9. Tasks<= 1 day 10. Fixed Price Agile. Pe Anna Obukhova o putei gsi pe Linkedin sau la email: Anna.Obukhova@luxoft.com. Cam att ntr-o prim parte despre cum a fost anul acesta la Agile Lean Europe i revenim ntr-un nou articol cu mult mai multe interviuri cu oamenii minunai care au luat parte i au fcut conferina att de minunat!

Ana Maria Constantinescu


anamaria@akcees.com Community Manager @ Akcees

www.todaysoftmag.ro | nr. 15/Septembrie, 2013

13

comuniti

Comuniti IT
m ncheiat luna august prin participarea la Agile Lean Europe 2013, un important eveniment european ce s-a desfurat la noi n ar anul acesta. Putei citi n acest numr un prim articol cu impresii calde de la acesta. Luna septembrie se anun plin de evenimente dintre care v sugerm: Lansarea Gemini Foundry ce va avea loc mpreun cu prima lansare a numrului 15 TSM n Bucureti. n aceeai zi va avea loc i SmartWeb Conference, o conferin dedicat web developer-ilor. Pe cei din Cluj i invit s participe la ediia 2013 a Business Days n 25-26 Septembrie.

Calendar

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: 790 / Nr. Evenimente: 11 Romanian Testing Community Comunitate dedicata testerilor. Website: www.romaniatesting.ro Data nfiinrii: 10.05.2011 / Nr. Membri: 640 / Nr. Evenimente: 2 GeekMeet Romnia Comunitate dedicat tehnologiilor web. Website: geekmeet.ro Data nfiinrii: 10.06.2006 / Nr. Membri: 560 / Nr. Evenimente: 17 Cluj.rb Comunitate dedicat tehnologiilor Ruby. Website: www.meetup.com/cluj-rb Data nfiinrii: 25.08.2010 / Nr. Membri: 142 / Nr. Evenimente: 34 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: 325/ Nr. Evenimente: 34 Cluj Semantic WEB Meetup Comunitate dedicat tehnologiilor semantice. Website: www.meetup.com/Cluj-Semantic-WEB Data nfiinrii: 08.05.2010 / Nr. Membri: 146/ Nr. Evenimente: 22 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: 226/ Nr. Evenimente: 13 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: 320/ Nr. Evenimente: 19

Septembrie 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/ Septembrie 9 Lansarea numrului 15 TSM (Cluj) www.todaysoftmag.ro Septembrie 10 Entrepreneur X Factor (Bucureti) it-events.ro/events/entrepreneur-x-factor-season-2 Septembrie 11 How To Build A Winning Startup (Trgu Mure) www.meetup.com/The-Startup-Lab/events/137928892/ Septembrie 18 SAP Conference (Cluj) www.msg-systems.ro/events.0.html Septembrie 19 Linked Data Technology Stack (Cluj) www.meetup.com/Cluj-Semantic-WEB/events/115920132/ Septembrie 24 Lansarea numrului 15 TSM (Bucureti) www.todaysoftmag.ro Septembrie 24 Lansarea Gemini Foundry (Bucureti)- recomandarea TSM gemsfoundry.com Septembrie 24 SmartWeb Conference (Bucureti) www.smartwebconf.com Septembrie 25-26 Cluj Business Days cluj-napoca.businessdays.ro Octombrie 4-5 ...even mammoths can be Agile n Iai! colorsinprojects.ro/eveniment-iai-4-5-octombrie-2013 Octombrie 12 Codecamp (Iai) iasi.codecamp.ro

14

nr. 15/Septembrie, 2013 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE

programare

Clientul iOS Today Software Magazine

ererea de aplicaii pentru dispozitivele mobile este n cretere i, din acest motiv, preocuparea publicitilor din new media a vizat nu doar prezena exclusiv, ci i orientarea spre mai noua paradigm a disponibilitii pe mobil i web sau spre partajarea coninutului folosind dispozitive moderne ca tabletele i cu telefoanele mobile. n acest peisaj schimbtor al accesibilitii mobile, Today Software Magazine a realizat un parteneriat cu 3Pillar Global pentru a implementa nu doar o simpl aplicaie de partajare a coninutului (ceea ce nu ar fi nsemnat altceva dect nc o aplicaie n marea de aplicaii new media deja disponibile) ci pentru a oferi o soluie bazat pe coninut disponibil utilizatorilor terminalelor Apple iOS. Aceast soluie faciliteaz utilizatorilor mobili accesul la articolele din sfera IT sau conexe dar i socializarea n jurul acestora prin mijlocirea partajrii articolelor, n felul acesta amplificnd puterea creativ comun a tuturor pentru beneficiul mutual. Lund n considerare acest principiu al comunitii ce evolueaz n jurul tehnologiei i - mai larg - al comunitii ce evolueaz n jurul tehnologiilor evolutive - am gsit potrivit s mprtim o parte din expertiza nou creat pe care am acumulat-o n procesul de dezvoltare a aplicaiei TodaySoftMag pentru iOS (deja disponibil n Apple Store), ntruct acesta a fost un exerciiu plcut i, de asemenea, o experien de rafinare a expertizei precedente. Pe lng dezvoltarea echipei, un alt efect pozitiv a fost faptul c ne-a oferit o viziune mai clar asupra aspectelor congruente n dezvoltarea unei aplicaii de tip client-server pentru iOS. n paragrafele care urmeaz am ncercat s mprtim o parte din aceast expertiz.

3Pillar Global Team


@ 3Pillar Global

Introducerea caracteristicilor importante ale aplicaiei

nc de la prima rulare, aplicaia ncearc s satisfac nevoile utilizatorului, prin a-i oferi posibilitatea de a alege limba n care prefer s citeasc articolele, ntruct revista este disponibil att n limba englez, ct i n limba romn. Odat aleas limba, aceasta este salvata n baza de date implicita a utilizatorului. Interaciunea cu aceasta se face cu ajutorul interfaei programatice NSUserDefaults. Dup alegerea limbii, aplicaia va afia ultimul numr al revistei. Pentru a nu perturba lectura utilizatorului articolele celorlalte numere sunt aduse ulterior (mai multe detalii privind descarcarea articolelor se gsesc n seciunea Considerente tehnice). Dintre toate caracteristicile aplicaiei, putem meniona urmtoarele: 1. Parcurgerea / citirea revistelor / articolelor - Caracteristica principal a aplicaiei este navigarea printre numerele publicate i articolele lor, caracteristic oferit si proiectat ntr-un mod prietenos. Utilizatorul poate naviga prin numerele revistei prin selectarea acesteia din lista de numere prezentate n meniu. Numrul afiat va fi selectat n list, n acest fel

www.todaysoftmag.ro | nr. 15/Septembrie, 2013

15

programare
Clientul iOS Today Software Magazine
aplicaia va memora mereu starea utilizatorului n aplicaie. Versiuni ale aplicaiei Fiecare numr are o list de articole aranjate n ordinea apariiei. Implementarea a dou versiuni n paralel a aceleai aplicaii Odat selectat articolul, acesta va rmne aa, pn cnd este aduce cu sine mai multe provocri. selectat unul nou din lista de articole a acelui numr. 2. Aducerea / readucerea numerelor revistei - Deoarece revista este scris att n limba romn ct i n englez, utilizatorul poate comuta ntre ele alegnd o alt limb din meniul Setri, comportament care va declana aducerea/ readucerea numerelor n limba dorit. Aplicaia va intra n starea de descrcare, i va afia o nou fereastr cu un mesaj sugestiv pn cnd articolele din ultimul numr sunt aduse de pe server. 3. Trimiterea articolelor - Prin integrarea reelelor de socializare, aplicaia ofer utilizatorului posibilitatea de a le comunica altor persoane aspecte despre articolul citit prin: a. Facebook Figura 1. Ecranul introductiv b. Twitter c. Email. S-a dorit ca aplicaia TSM s fie disponibil att pentru iPhone, ct i una pentru iPad i, n ceea ce privete interfaa grafic, lucruPentru selectarea metodei de distribuire a articolului s-a rile nu puteau fi mai diferite de att. Intenia era ca aceleai date utilizat componenta UIActivityViewController. Fiind o compo- sa fie afiate i n acelai timp s fie corespunztor adaptate pentru nenta introdus numai din versiunea 6-a a iOS, am ntmpinat fiecare tip de dispozitiv mobil. iPad-ul are un display mare pe care cteva impedimente neateptate. Pentru afiarea activitailor dis- un utilizator poate vedea cu uurin orice tip de informaie, de la ponibile, aceast component folosete credenialele stocate n icoane mici pn la grafice mari i detaliate, n timp ce iPhone-ul setarile telefonului. n cazul n care credenialele nu sunt stocate, - pe de alt parte - are un ecran mai mic, dar dispozitivul este mai componenta nu afieaz activitai pentru reelele de socializare des ntlnit printre utilizatorii de iOS. Facebook si Twitter. Pentru a oferi acces spre aceste activitai, Datorit diferenei mari de rezoluie dintre iPhone i iPad, s-a am introdus activiati custom ce asigur logarea utilizatorului n decis ca aplicaia s afieze n permanen informaia relevant contul reelei de socializare, naintea trimiterii articolelor. La acce- existent n locul afirii tuturor informaiilor n acelai timp. n sarea activitilor custom, se declaneaz aciunea de compunere aceast idee au fost gndite toate ecranele aplicaiei. a unei postari pe reeaua de socializare aleas, cu ajutorul clasei SLComposeViewController.
SLComposeViewController *facebookController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook]; SLComposeViewControllerCompletionHandler __block completionHandler=^(SLC omposeViewControllerResult result) { [facebookController dismissViewControllerAnimated:YES completion:nil]; switch(result){ case SLComposeViewControllerResultCancelled: default: { } break; case SLComposeViewControllerResultDone: { UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:kPOST_SUCCEDED message:nil delegate:self cancelButtonTitle:nil otherButtonTitles:nil]; [alertView show]; [alertView performSelector:@selector(dismissAnimated:) withObject:nil afterDelay:1.0f]; } break; }}; [facebookController setInitialText:kPOST_MESSAGE]; [facebookController setCompletionHandler:completionHandler];

Figura 2. Lista articolelor corespunztoare unei reviste

Dup afiarea instanei (SLComposeViewController*) composeSheet


[self presentViewController:composeSheet animated:YES completion:nil];

aplicaia va observa lipsa credenialelor i va prompta utilizatorul spre Setri, unde acesta i va introduce informaiile contului. Astfel activitatea prestabilit din UIActivityViewController devine disponibil. Dup selectarea metodei de distribuire, aplicaia va afia un dialog specific fiecrei reele de socializare i va completa mesajul aciunii cu un text standard ce include un link care va conduce la articolul respectiv.

Dup selectarea limbii, principalul ecran al aplicaiei apare afind cea mai important informaie: lista articolelor pentru cel mai recent numr al revistei. Pentru versiunea de iPad s-a ales ca lista cu numrul revistelor sa fie afiat simultan cu lista de articole, versiunea pentru iPhone ns arat doar lista articolelor, iar o alt revist putnd fi selectat accesnd meniul din partea stng. S-a dorit ca amndou versiunile s pstreze acelai comportament. Lista articolelor va fi afiat ntr-o pozitie centrat, iar n partea stng va fi afiat lista revistelor, mai ascuns, astfel nct s nu deranjeze vizual utilizatorul. De aceea, pe iPad a fost introdus componenta Split View, ce conine o coloan mai ngust n stnga i una mai lat n dreapta, iar pe versiunea pentru iPhone meniul din stnga este din nou prezentat ntr-o form ngust, prin adugarea unei componente denumit IIViewDeckController, o clas open source ce este din ce n ce mai des folosit n aplicaiile iPhone.

16

nr. 15/Septembrie, 2013 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE

Figura 3. Vizualizarea ntregului coninut al unui articol Figura 5. Diagrama de componente

Urmtoarea fereastr a aplicaiei afieaz articolul selectat. n partea de sus a ecranului sunt afiate informaiile despre autor, astfel nct - la derularea articolului - acestea s rmn vizibile. Pe iPad, n partea stng, apare din nou lista cu articole pentru a ajuta utilizatorul s schimbe mai uor articolele ntre ele. Versiunea pentru iPhone este meninut, ns, simpl, aa cum se ateapt orice utilizator de telefon mobil.

Articolele care pot fi vizualizate n aplicaie, precum i detaliile autorilor, sunt preluate de pe server prin intermediul interfeei programatice puse la dispoziia clientului de iOS. Partea de comunicare i transfer a datelor dintre client i server este realizat folosind framework-ul AFNetworking, astfel nct se va menine controlul asupra cererilor fcute la server i se va avea un control mult mai mare asupra gestiunii rspunsurilor lund n considerare i faptul ca unele cereri ctre server ale cror rspuns au o dimensiune mai mare vor fi fcute separat i rspunsul va fi tratat astfel nct experiena utilizatorului nu va fi afectat. n secvena de cod ce urmeaza este luat ca exemplu obiectul JSON primit de la server aferent cererii datelor despre un anumit autor:
{ description = Product Mindset \n; name = Dan Suciu\U0103; picturePath = http://www.todaysoftmag.com/tsm/images/ppl/photosmall.jpg; }

Figura 4. Fereastra Despre

Aplicaia folosete n acelai timp multe componente noi introduse in limbaj ct i unele personalizate pentru a spori interesul utilizatorului. Aici vorbim despre micile atenii din listele cu articole, animaia de la nceputul aplicaiei pentru alegerea limbii, aranjarea si ordonarea ferestrelor ntr-un mod firesc pentru un cititor. Este foarte important ca o dat cu maturizarea limbajului i avansul lui tehnic, s existe o maturizare i pentru developer n ceea ce privete tehnicile i componentele folosite. Aspectul final al fiecrei versiuni a fost proiectat astfel nct informaiile s fie afiate ntr-un mod eficient. Fiecare utilizator poate spune c aplicaia i ndeplinete nevoile i cerinele, lund n considerare constrngerile impuse de fiecare dispozitiv n parte i pstrnd, n acelai timp, concentrarea pe ceea ce este important i modul n care acesta este afiat.

Considerente tehnice

Aplicaia pentru iOS suport versiunile 6.0 i 6.1 ale sistemului de operare pe dispozitive de tip iPhone i iPad, astfel inct utilizatorii vor putea beneficia de toate avantajele sistemului de operare i datorit faptului c aplicaia TodaySoftMag va putea fi instalat pe ambele tipuri de dispozitive mobile.

Cmpul picturePath va fi folosit ulterior pentru descrcarea imaginii autorului. Aceasta nu este primit n rspunsul iniial, deoarece descrcarea unei imagini poate lua mai mult timp, acest lucru se va face printr-un mecanism creat astfel nct partea de interfa grafic s nu fie afectat i imaginea va fi ncarcat direct dup ce descrcarea ei de pe server va fi finalizat. Pentru mbuntirea experienei utilizatorului, toate cererile trimise ctre server sunt mprite n cereri mai mici din punct de vedere al dimensiunii rspunsului, iar cele ale cror rspuns presupune un transfer mai mare de date se vor realiza ntr-o asemenea manier nct componentele interfeei grafice nu vor fi afectate, astfel nct - chiar de la prima utilizare a aplicaiei - utilizatorul va putea vedea articolele aferente ultimului numr, articolele celorlalte numere fiind descarcate i afiate ulterior. Acest lucru este realizat prin implementarea cererii fa de server a articolelor de la celelalte numere n background fiind executat ntr-un thread separat. Pentru gestionarea tuturor cererilor i rspunsurilor de la server s-au creat anumite clase dedicate comunicrii cu server-ul. La prima rulare, pe timpul descrcrii datelor, pe fereastra principal a aplicaiei se afieaz o animaie sugestiv. Atunci cnd transferul de date este finalizat, utilizatorului i va fi prezentat pagina principal a aplicaiei, n timp ce articolele celorlalte numere vor fi descrcate n fundal, astfel nct utilizatorul nu va sesiza nici o alt activitate a aplicaiei, putndu-se concentra pe ceea ce este relevant pentru el. Imaginile de dimensiuni mari vor fi descrcate ntr-un mod n care componentele interfeei grafice nu vor fi afectate, la fel fiind procesate i informaiile referitoare la datele despre autorii articolelor, astfel nct dei datele aferente autorilor nu sunt descrcate
www.todaysoftmag.ro | nr. 15/Septembrie, 2013

17

programare
Clientul iOS Today Software Magazine
de pe server, ele vor fi ncrcate n momentul n care descrcarea lor s-a finalizat. Deoarece aceste informaii nu sunt necesare exact n momentul n care utilizatorul va intra n aplicaie, ele vor putea fi aduse de pe server ulterior, fr nici un impact major, iar dac o imagine este utilizat, dar nu a fost adus de pe server pn la momentul respectiv, sau nu exist pe server, o imagine nlocuitoare va fi folosit. Toate datele descrcate de pe server vor fi salvate pe dispozitivul mobil, astfel nct acestea nu vor fi descrcate de fiecare dat cnd sunt accesate. De asemenea, n ceea ce privete informaia despre autori, dac aceasta nu este salvat local pentru a fi accesat, atunci o cerere ctre server va fi trimis, pentru a fi descarcat i salvat local. Evident, n cazul n care informaia despre un anumit autor a fost descrcat de pe server, mai puin imaginea ataat acestuia, detaliile autorului vor fi afiate, iar cnd descrcarea imaginii s-a finalizat, se va afia i fotografia acestuia, fr a afecta celelalte informaii despre autor. Pentru o mai bun gestionare a librriilor i framework-urilor utilizate n proiect, s-a folosit librria CocoaPods. n acest fel, toate librriile prezente pot fi actualizate la ultima versiune ntr-un mod facil, iar faptul c librria CocoaPods a fost adaugat n proiect nu afecteaz produsul final, acest lucru fiind invizibil n ceea ce privete setrile pentru AppStore, aceasta afectnd doar partea de dezvoltare a proiectului. Aplicaia folosete GoogleAnalytics framework pentru trimiterea evenimentelor precum citirea unui articol sau distribuirea unui anumit articol. Pentru a simplifica acest mecanism s-a creat o clasa dedicat care acioneaz ca un wrapper peste framework-ul iniial Google Analytics, toate metodele din acest wrapper fiind orientate spre optimizarea procesului de trimitere a evenimentelor si adaptarea lui pentru cazurile folosite n aplicaie Suport pentru iOS 7 - Sunt luate n considerare anumite schimbri pe partea de interfa grafic, n ceea ce privete anumite standarde i repoziionri ale componentelor de interfa i nu numai, toate acestea fiind implementate folosind facilitile puse la dispoziie de iOS 7. Opiunea de reactualizare a coninutului - n versiunile urmtoare utilizatorii vor avea posibilitatea de a reactualiza automat coninutul, oricnd vor considera c acest lucru este necesar. Aciunea de reactualizare va fi activat prin folosirea unei componente de interfat grafic ce va permite tragerea n jos a listei principale de articole, folosindu-se o animaie specific. Adugarea articolelor noi n list se va face ntr-un mod optim, care nu va afecta experiena utilizatorului. Adugarea noilor opiuni de setare - Se ia n considerare adugarea mai multor setri de personalizare a aplicaiei i a comportamentului acesteia, de exemplu un utilizator va putea alege numrul de articole ce vor putea fi salvate local pe dispozitivul mobil.

Dezvoltri Ulterioare
nc de la lansarea primei versiuni pe AppStore ncep s prind contur planurile i noile idei pentru versiunile ce vor urma i vor include urmtoarele faciliti: Notificri Apple - Vor fi utilizate pentru notificarea utilizatorului cu privire la apariia de noi articole, n cazul n care aplicaia este nchis sau dispozitivul mobil este pus n modul sleep.
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

18

nr. 15/Septembrie, 2013 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE

programare

MVVM n Windows Phone 8

Cosmin Stirbu
cosmin.stirbu@fortech.ro iOS Software Developer @ Fortech

ablonul de proiectare Model-View-ViewModel (MVVM) definete trei componente principale: Model, View i ViewModel: Model: Business domain (logica ce ine de domeniul aplicaiei, accesul la date, entiti), View: Interfaa cu utilizatorul (n Windows Phone PhoneApplicationPage), ViewModel: Modelul View-ului abstractizare a View-ului ce intermediaz comunicarea dintre View i Model.

Una dintre diferenele majore ntre Model-View-Controller i MVVM este c un obiect de tipul ViewModel nu pstreaz o referin la obiectul de tip View. Obiectul View se leag (binding) la proprietile obiectului ViewModel care n schimb expune datele coninute n model i alte stri specifice View-ului. Mecanismul de binding asigur c, atunci cnd proprietile din ViewModel se modific, cele din View se actualizeaz automat i vice-versa. Cnd utilizatorul apas un buton, o comand se execut n ViewModel, View-ul nu modific niciodat n mod direct entitile din model. Clasele View nu tiu de existena claselor din model n timp ce clasele ViewModel i modelul nu tiu de existena claselor View. n acest fel View-ul este pur i simplu un client (consumer) al obiectelor ViewModel, ele putnd fi foarte uor nlocuite cu clase de test pentru ViewModel.

popular dezvoltat i ntreinut de Laurent Bugnion, fiind folosit pentru a dezvolta cu rapiditate aplicaii MVVM n WPF, Silverlight i Windows Phone. Acest toolkit ne ajut s seprm View-ul de Model pentru a crea aplicaii mai curate i mai uor de ntreinut i de extins, stratul dedicat interfeei cu utilizatorul este ct se poate de subire iar astfel aplicaiile dezvoltate fiind uor de testat automat. Una dintre componentele oferite este clasa ViewModelBase pe care fiecare clas ViewModel a aplicaiei noastre o poate extinde fr a fi nevoit s implementeze interfaa INotifyPropertyChanged (pentru a notifica View-ul la schimbarea valorii unei proprieti). n general, ntr-o aplicaie Windows Phone 8, fiecrei Pagini i va corespunde un obiect ViewModel ce va extinde clasa ViewModelBase. Un alt mare avantaj al clasei ViewModelBase este expunerea proprietii IsInDesignMode, proprietate Cum aplicm MVVM n Windows Phone 8? ce ne permite s verificm dac suntem n MVVM Light este un instrument foarte Expression Blend sau n Visual Studio

Sursa:

blogs.msdn.com/b/tims/archive/2010/11/02/kung-fu-silverlight-architectural-patterns-and-practices-with-mvvm-and-ria-services.aspx

www.todaysoftmag.ro | nr. 15/Septembrie, 2013

19

programare
MVVM n Windows Phone 8
Designer i s oferim design data cu care designerul poate lucra. Suntem nevoii s facem acest lucru, deoarece att Blend ct i Visual Studio Designer nu permit operaii n reea sau conexiuni la baze de date. n general, o abordare posibil i des ntlnit este de a expune toate obiectele noastre ViewModel ca proprieti folosind clasa oferit de MVVM Light numit ViewModelLocator. n aceast clas putem folosi un IoC Container preferat (sau SimpleIoc inclus n MVVM Light) pentru a crea obiectele ViewModel i pentru a injecta dependene n acestea (de exemplu o interfa care expune metode pentru a manipula diferite entiti din model). Obiectul de tip ViewModelLocator poate fi adugat n resursele aplicaiei n App.xaml i folosit apoi n fiecare pagin pentru a seta DataContext-ul acesteia la ViewModel-ul corespunztor expus n ViewModelLocator. ViewModelLocator adugat n mod automat la crearea unui proiect ca resurs n App.xaml:
<Application ... xmlns:vm=clr-namespace:{Default Namespace}. ViewModel ...> <Application.Resources> <ResourceDictionary> <!-- Global View Model Locator --> <vm:ViewModelLocator x:Key=Locator d:IsDataSource=True /> ... </ResourceDictionary> </Application.Resources> </Application>

obiectul ViewModel nefiind nevoii s scriem cod de UI (cunoscut drept code-behind) pentru a actualiza textul din TextBlock-ul respectiv. Legarea o putem face att n codul XAML ct i n Blend.
string _textProperty public string TextProperty { get { return _textProperty; } set { if (_textProperty != value) { _textProperty = value; RaisePropertyChanged(TextProperty); } } }

Ap e l u l m e t o d e i m o t e n i t e d i n Vi e w Mo d e l B a s e RaisePropertyChanged asigur actualizarea UI-ului de fiecare dat cnd valoarea proprietii se schimb. Codul de legare arat astfel:
<TextBlock Text={Binding TextProperty} Style={StaticResource PhoneTextNormalStyle} HorizontalAlignment=Center VerticalAlignment=Center TextAlignment=Center TextWrapping=Wrap FontSize=40 />

Putem seta ca DataContext pentru Pagina (View) un obiect ViewModel expus ca proprietate n ViewModelLocator pentru a realiza apoi binding ntre proprietile obiectului ViewModel i Pagin (View). Acest lucru l putem face fie direct n .xaml sau folosind Blend. Dac vrem de exemplu s afim Cum comunic View-ul cu ViewModel-ul? coninut ntr-un obiect TextBlock, tot ce MVVM Light ofer clasa trebuie s facem este s legm proprieta- EventToCommand ce extinde clasa tea Text de o proprietate de tip string n Behavior i ce permite legarea unei

Practic orice proprietate a unui element de UI poate fi legat de o proprietate din obiectul ViewModel fr a fi nevoii s scriem cod de UI. De exemplu putem lega proprietatea ItemSource a unui obiect ListBox de o propritetate de tip List<T> din ViewModel i apoi putem configura un ItemTemplate pentru ListBox care va avea ca DataContext obiectul de tip T care conceptual vorbind este i el la rndul su un ViewModel (sau ItemViewModel).

comenzi de un eveniment de pe interfaa cu utilizatorul. Astfel la apariia unui eveniment putem executa direct codul din ViewModel fr a scrie deloc cod de UI. n ViewModel expunem o proprietate de tipul RelayCommand pe care cu ajutorul clasei EventToCommand o putem lega de orice eveniment. Evenimentul Click al unui buton este legat de comanda ButtonPressed:
// Button Pressed public RelayCommand ButtonPressed { get { return new RelayCommand(() => { Console.WriteLine(Button Pressed); }); } }

Merit menionat c putem

20

nr. 15/Septembrie, 2013 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE


transmite i parametri atunci cnd folosim EventToCommand: de exemplu, putem transmite textul dintr-un TextBox, iar pentru aceasta am expune o proprietate de tipul RelayCommand<String> . EventToCommand poate fi ataat oricrui element de UI, chiar i Paginii, apelnd o comand atunci cnd pagina s-a ncrcat (evenimentul Loaded) pentru a face un request HTTP la un serviciu Web. interfee ce vor fi implementate de View. De exemplu dac n View trebuie s artm un mesaj (un dialog) putem crea o interfa ce expune acele metode dup care o implementm n View i o injectm n ViewModel (putem obine o referin la ViewModel-ul corespunztor folosind proprietatea DataContext). Merit menionat c abordarea preferat este extinderea clasei Behavior, dei MVVM nu specific n mod direct, este de neles c att timp ct codul din Pagini este redus, aplicaia este cu att mai uor de testat. Un dezavantaj al Behavior urilor este c acestea nu sunt disponibile pentru Windows 8, fcnd astfel portabilitatea aplicaiilor puin mai dificil dar sunt librrii care ofer clase similare claselor Behavior1. n containerul IoC clasa corespunztoare ce va fi mai apoi injectat n ViewModel. Aceast funcionalitate mpreun cu Blend ofer posibilitatea formrii echipelor de designeri i developeri care s lucreze relativ independent. Din nou clasele Behavior permit crearea i tranziia ntre diferite stri ale unei Pagini sau declanarea unor animaii, acest lucru fiind posibil fr a fi nevoii s scriem cod de UI. Clase Behavior precum DataStateBehavior sau GoToStateAction permit acest lucru. Din pcate, n Windows Phone 8, nu putem face n mod direct binding ntre Application Bar i comenzi din ViewModel. Spre deosebire de Windows 8, unde acest lucru este posibil. Astfel n aceste situatii suntem nevoii s scriem cod de UI, s ascultm evenimentele butoanelor de pe Application Bar i apoi s exectum manual comenzile din ViewModel. Dac nu dorim s facem aceasta, i de obicei nu dorim, putem folosi librria AppBarUtils2 care ofer clase Behavior, Trigger i Action ce permit legarea cu comenzi i diferite proprieti.

Cum comunic ViewModel-ul cu View-ul?


n afara mecanismului de binding ViewModel-ul poate comunica cu View-ul prin mecanisme precum B ehavior, Messenger sau prin folosirea unor interfee pe care View-ul le va implementa, dup care va fi injectat n ViewModel. Extinznd clasa Behavior putem declara proprieti DependencyProperty mpreun cu proprieti normale pe care le putem lega de proprieti din ViewModel i care atunci cnd i schimb valoarea pot executa cod de UI. Avantajele obiectelor Behavior sunt: reutilizarea cu uurin, folosirea n Blend i posibilitatea de a muta codul din View. MVVM Light ofer o clas Messenger folosit de diferite obiecte pentru a comunica n cadrul aplicaiei fr ca acestea s tie cu cine comunic, astfel folosind aceast clas cuplajul ntre obiectele care comunic este redus. Mesajele pot conine date simple sau obiecte complexe. Aceast clas poate fi des folosit pentru a permite obiectelor ViewModel s comunice ntre ele sau pentru a permite obiectelor ViewModel s comunice cu obiectele View. O alt abordare este crearea unor

Probleme des ntlnite i soluiile lor


Una dintre problemele des ntlnite este navigarea: de unde se face navigarea ctre o alt pagin i cum? Soluia este relativ simpl crem o interfa care s expun metodele necesare navigrii, o implementm ntr-o clas dedicat apoi o injectm n obiectele ViewModel din care dorim s realizm navigarea. O alt problem este disponibilitatea datelor la momentul designului abordarea recomandat este crearea unor interfee pentru managerii de date (clasele n care avem logic de acces la date, persisten, etc) i implementarea acestora n dou clase diferite: una pentru momentul designului, i una ce va fi folosit la momentul rulrii aplicaiei. Folosind proprietatea IsInDesignMode putem nregistra

Concluzii
ablonul MVVM este foarte popular n rndul dezvoltatorilor de aplicaii Windows Phone, acesta permite dezvoltarea unor aplicaii uor de meninut, mbuntit, testat i de ce nu, cu o interfa grafic uor de creat (Blend). Componentele definite de ablon au responsbiliti bine definite iar cuplajul este redus pe ct de mult posibil. Dac atunci cnd ablonul a fost introdus, implementarea acestuia prea destul de greoaie, necesitnd multe linii de cod, n perioada recent librriile i instrumentele disponibile fac implementarea acestui ablon uoar i interesant.

Referine
MVVM Light http://www.galasoft.ch/mvvm/ http://msdn.microsoft.com/en-us/magazine/ jj651572.aspx http://appbarutils.codeplex.com/ http://winrtbehaviors.codeplex.com/ http://vimeo.com/53068482 http://channel9.msdn.com/Events/TechDays/ Techdays-2012-the-Netherlands/2264 http://outcoldman.com/en/blog/show/308 http://blogs.msdn.com/b/tims/archive/2010/11/02/ kung-fu-silverlight-architectural-patterns-andpractices-with-mvvm-and-ria-services.aspx

Folosirea EventToCommand din Blend. n exemplu a fost adugat Paginii i a fost legat evenimentul Loaded.
1 winrtbehaviors.codeplex.com

2 appbarutils.codeplex.com

www.todaysoftmag.ro | nr. 15/Septembrie, 2013

21

programare

programare

Cum am facut primul meu Azure Mobile Service


ovestea aceasta este despre simplitate si robustee, o alturare aparent neobinuit sau cu siguran greu de realizat n dezvoltarea de aplicaii software. i de fapt aceasta era realitatea cu ani n urm cnd fiecare i dezvolta propria soluie de backend, propriile mecanisme de comunicaie, propriul limbaj de programare, propriul ce-o mai fi. Platformele Cloud au transformat lumea aceasta complicat ntr-una unde provocarea cea mai mare este buna nelegere a lumii n care trim i a oportunitilor de afaceri.
Florin Cardasim
orin.cardasim@endava.com Head of Architecture &Analysis @ Endava Iai

V voi povesti cum am redescoperit recent frumuseea cloud-urilor publice: eram n toiul pregtirilor pentru ediia urmtoare a conferinei IT din Iai CodeCamp1. Site-ul evenimentului (versiunea browser) era pregtit ns nu aveam vesiune pentru mobile, i aceasta e o greeal ntr-o lume n care fr prezen pe mobile eti aproape inexistent. Din fericire, comunitile sunt alctuite din oameni inteligeni i sritori, aa c fr ca mcar noi (organizatorii evenimentului) s tim, versiunile mobile native erau deja n marketplace (Apple, Google, Microsoft) i sunt nca acolo, donwloadeaz-le si altur-te comunitii! Super!, am zis; dar de unde i iau aplicaiile acestea datele despre eveniment (speakers, sesiuni, agenda etc)? Am aflat imediat c prietenii notri trebuie s ii laud un pic, exceleni programatori iPhone, Android, Windows Phone foloseau un fiier static n format JSON n care copiaser datele de pe site si le menineau manual dupa fiecare modificare a noastr (i desigur ca apreau desincronizri). Probabil c agilitii denumesc aceasta arhitectur emergent i desigur c am decis s emergem n continuare i s construim un backend comun aa cum se cuvine pentru aplicaii i site-ul web. Aa c am nceput s cutm o soluie tehnic, avnd vedere urmtoarele constrngeri: Timp de dezvoltare pentru backend foarte puin; nu voiam s investim mai
1 iasi.codecamp.ro

mult de vreo dou zile, incluznd testare i integrare; Modificri ct mai puine n aplicaiile mobile aici aveam deja interfaa JSON, deci prea c suntem asigurai; Simplitate la hosting, deployment i configurare; Intenia de a avea suport de push notificaion pentru mai multe platform mobile (iOS, Android, Windows); aici ne ateptam sa fie complicat, dar s-a dovedit a fi de fapt a fi extrem de simplu. Desigur c primul lucru pe care l-am fcut a fost s aruncm o privire n nori (n Cloud, vroiam s spun). i am descoerit acolo o ofert destul de promitoare, care includea Parse si Windows Azure Mobile Services. Ne-am oprit la a doua, n principal pentru c aveam deja un pic de experien i o subscripie MSDN cu credit inclus pentru Windows Azure. Haidei s vedem cum a fost mai departe. Am intrat in portal https://manage. windowsazure.com i dup 5 click-uri i sub un minut de ateptare aveam deja serviciul creat, cu toat infrastructura aferent. Foarte simplu spus (imaginea de mai sus ajut la nelegerea conceptelor), serviciul mobil este un set de tabele relaionale ntr-o baz de date SQL Server, pus la dispoziie n timpul crerii serviciului, accesibile prin servicii HTTP REST care ofer acces CRUD la date formatate JSON, prin intermediul verbelor HTTP - POST (create), GET (read), PATCH (update),

22

nr. 15/Septembrie | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE


DELETE (delete). Pe baza formatului JSON pe care aplicaiile mobile l foloseau deja, a fost foarte simplu sa creez n portal tabele precum Events, Locations, Sessions, Speakers, Tracks locul n care aveau s stea datele. Imediat dup popularea cu date (care desigur c se poate face manual, lucru nerecomandat, aa c am fcut o aplicaie care mpinge datele n tabele din Azure), acestea erau deja disponibile n formatul JSON deja cunoscut de aplicaiile mobile (unde nu a fost nevoie de moficri, exact aa cum ne doream) printr-un call de tipul https:// codecampevents.azure-mobile.net/tables/ Events. HTTP. Mai nti acioneaz nivelul 1, la care nu am acces programatic, e parte din platform, e locul n care cererea HTTP i coninutul acesteia, inclusiv identiti, sunt interpretate, transformate n obiecte Java Script i apoi trimise ca parametri la nivelul Scripting Layer, locul unde pot interveni cu propriul cod. Stai puin, Java Script?! Ei bine, da aceste scripturi ruleaz peste Node JS care e gzduit pe plaform. De ce Java Script? Probabil pentru c toat lumea l tie i pentru c avem deja Node JS. Oricum modelul e generos, exist API pentru acces la baze de date, apeluri de resurse/ servicii HTTP, push notifications ctre aplicaiile mobile (iOS, Android, Windows Phone i Windows 8), acces la Azure Blob Storage i Service Bus, i m atept la lista sa creasc. Revenind la Scripting Layer, dup procesarea codului scris de mine ca programator, execuia continu cu nivelul 2, unde obictele Java Script validate, mbogite, procesate conform nevoilor aplicaiei, sunt mapate pe cmpuri din baza de date. Imaginea de mai jos prezint interaciunea dintre aplicaiile mobile, Desigur c deasupra acestui model backend i mine nsumi care m-am asigude acces la date exist un nivel de securi- rat ca participanii la conferin tiu locaia, tate, aplicabil din portal la nivel de tabel i ora de ncepere i alte informaii utile, operaie de tip Read, Insert, Update, Delete, nivel care const n validri pe baz de chei secrete (meninute tot in portal) sau n autentificare folosind sisteme de identitate precum Google, Microsoft, Facebook si Twitter. Pn acum am vorbit doar de creare de tabele i diverse configurri. Dar cum scriu cod n serviciu, care e modelul programatic, cum intervin atunci cnd vreau s tratez apelurile ctre serviciu? Rspunsul trimindu-le notificri direct pe smart e evident n imaginea de mai jos unde e phone prin intermediul serviciului mobil. descris secvena de procesare a cererilor Fiecare operaie are n spate un script

relativ simplu scris n JavaScript, care fie interaciona cu baza date, fie genera notificri de tip push prin intemediul unui API foarte simplu. Restul muncii investite e legat de cteva configurri banale pentru securitate, notificri, integrare cu Facebook, managementul bazei de date din spatele seriviciului. Ai putea crede cam facut toate astea n mai puin de dou zile? Ei bine, n primul rnd au fost nopi, iar in al doilea rnd au mai fost cteva ore n plus pentru rezolvarea unor bug-uri mind twisting de Java Script. Dar totul a mers att de repede nu pentru c a fi eu un geniu al progamrii, ci pentru c plaftorma e foarte clar i simplu de folosit. Voi incheia prin a v ntreba: ce-am vzut pn acum e suficient pentru a spune c avem un serviciu robust, gata pentru medii de producie? N-am spus nimic despre monitorizare, logging, scalabilitate, scheduled tasks i alte funcii obligatorii pentru o aplicaie serioas. Ei bine, toate astea sunt deja acolo, i v recomand s le ncercai2!
2 www.windowsazure.com/en-us/develop/mobile/

www.todaysoftmag.ro | nr. 15/Septembrie, 2013

23

programare

Test Driven Development i design incremental

up cum afirmam n articolele anterioare despre software craftsmanship, Test Driven Development este una dintre practicile considerate de baz pentru artizanii software. n ciuda numrului tot mai mare de articole, blog-uri, filmulee sau cri despre acest subiect, Test Driven Development (TDD) continu s fie un subiect de confuzie n comunitile de programatori. Acest articol va ncerca s structureze i s clarifice subiectul i s ofere suport celor care vor s nvee mai multe despre el.
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

Descrierea clasic a TDD este c avansul design-ului (soluiei) programatorul: verificarea faptului c modificrile Scrie un singur test automat care pic din cod nu au afectat rezolvarea proble(adesea numit pasul Red); mei de pn la momentul rulrii lor. Realizeaz cea mai mic modificare n cod pentru a face testul s treac ( Deoarece noiunea de software design pasul Green); este ambigu, merit explicat ce nseamn R e f a c t o r i z e a z c o d u l ( p a s u l design n acest context. Design-ul nu este Refactor). altceva dect crearea de artefacte care rezolv probleme1. n cazul programAcest ciclu se repet cu o frecven rii, artefactul creat este codul. Mai exact, mare, ajungnd la maxim 5 minute pentru la nivelul cel mai de jos, artefactele create practicienii experimentai. Pentru ncep- sunt variabile, metode, clase i modurile tori, 15-30 min este o durat normal care de colaborare dintre obiecte (numite i scade odat cu acumularea experienei. Nu contracte). discutm aici despre scris teste pe cod existent; n acest caz timpul necesar pentru a Dou lucruri sunt aadar importante scrie teste este proporional cu complexi- pentru design-ul unei aplicaii software: tatea codului. rezolv o problem... Aceast descriere este foarte uor de ct mai simplu i elegant posibil transmis, dar din pcate nu conine detalii importante pentru cei care vor s nceap Dac programatorii scriu cod elegant s aplice TDD, lucru care creeaz confuzie. care nu rezolv o problem, atunci prin Primul lucru pe care trebuie s-l definiie nu au obinut design. Cel mai nelegem despre TDD este c, n ciuda rapid i elegant mod de a demonstra c numelui (dezvoltare condus de teste), nu problema este rezolvat este prin rularea este o metod de testare. TDD este o metod unor teste automate care pot fi revizuite c de a obine un design potrivit pentru pro- acoper toate aspectele problemei. blema rezolvat. Testele sunt folosite cu Gsirea unor rezolvri simple i dou scopuri: 1 Karl Ulrich, Design Creation of Artifacts in
Society http://opim.wharton.upenn.edu/~ulrich/designbook.html

24

nr. 15/Septembrie | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE


elegante se izbete de cteva obstacole: Nenelegerea complet a problePentru a face design incremental, e mei. Creierul uman are o capacitate nevoie de urmtorii pai: limitat, iar problemele pe care pro Analiza problemei i mprirea ei gramatorii trebuie s le rezolve cresc n probleme mai mici. De exemplu, n n complexitate. Nu ar trebui aadar s cazul crerii unui joc de Tetris, se poate mire pe nimeni c uneori nici cel mai porni de la cel mai simplu joc cu putin: bun programator nu reuete s neleag o pies ct un singur ptrat care cade toate aspectele unei probleme. ntr-o fntn cu nlimea 1 i jocul se Generalizarea pripit (precum i termin (alternativ, se poate considera c alte cognitive biases ). Adesea proa umplut o linie care trebuie eliminat, gramatorii doresc s obin o soluie doar c introduce regula eliminrii liniei mai general, nainte de a avea destule care poate fi uor adugat mai trziu). cazuri particulare care o justific. Dus Identificarea unor exemple conla extrem, aceast tendin poate crea un crete (valori de intrare i ieire ateptate). cod aparent bine conceput care ns este De exemplu, dup ce jocul ncepe, piesa foarte greu de inut la zi. apare pe tabl ntr-o anumit poziie. Tendina de a folosi soluiile cunos Implementarea cte unui exemplu cute. Cnd ai un ciocan, vezi n jurul n cel mai simplu mod posibil. tu doar cuie, spune o vorb veche. Problemele pe care le rezolv prograDesign-ul incremental combate problematorii n fiecare zi pot prea la un mele enunate anterior astfel: nivel superficial foarte asemntoare. Prin definirea de exemple, problema Realitatea este c soluiile n programare devine mai clar. Mai mult, exemplele depind foarte mult de mici detalii. pot fi discutate mult mai uor cu per Schimbarea rapid a cerinelor. soane non-tehnice (clienii) dect codul. Este deja un fapt cunoscut c cerinele Lista de exemple este completat pe se schimb de la o zi la alta. O soluie msur ce noi comportamente sunt idencare era bun ieri s-ar putea s nu se mai tificate n timpul dezvoltrii. Prin iterare, potriveasc azi. ansele de a rata pri din problem scad. Simplificarea problemei permite Realitile de zi cu zi din viaa unui prodiminuarea complexitii astfel nct gramator duc la nevoia de a avea un design creierul s o poat gestiona. uor de modificat. Cerinele se modific, Implementarea celei mai simple echipele se modific, programatorii nva soluii pentru fiecare exemplu permite mai multe n fiecare zi despre produs i tehevitarea generalizrii pripite. nologii. n zilele noastre, design bun este Soluia este tot timpul simpl (att cvasi-sinonim cu design uor de modict permite problema), ceea ce uureaz ficat. De aceea, calitile unui design bun modificarea ei n cazul schimbrii sunt: cerinelor. Att structura ct i codul sunt uor de neles pentru toi programatorii Test Driven Development este cea mai implicai. bun metod cunoscut de a face design Majoritatea funcionalitilor incremental. Testele codeaz exemplele de cerute pot fi implementate cu modifi- utilizare a soluiei i pot fi folosite pentru cri minimale n cod. Acest lucru este verificarea continu a ei. Implementarea posibil cnd clase mici i foarte specia- celei mai simple soluii la fiecare moment lizate lucreaz mpreun conform unor ajut la evitarea generalizrilor pripite. contracte bine definite ntre interfeele Refactorizarea duce la simplificarea lor. soluiei. Este uor de verificat dac modificDeoarece dezvoltarea folosind TDD rile din cod nu au afectat implementarea pornete de la exemple iar codul scris la existent. fiecare pas este ct mai simplu i fr generalizri, pasul de refactorizare implic mai O soluie pentru aceste probleme este ales identificarea i reducerea similaritilor design-ul incremental. Design-ul incre- din cod (numite uneori duplicare, deoamental nseamn crearea design-ului n rece dou buci de cod fac acelai lucru n timpul scrierii codului. Design-ul incre- moduri diferite). Similaritile pot fi elimimental este o alternativ la metoda clasic nate doar prin generalizare, care se traduce de a face design: nainte de a ncepe scrierea n cod prin abstracii. (Nu este vorba doar codului, pe hrtie sau n unelte specializate. de clase abstracte, ci i de clase care servesc pentru un scop mai larg dect au fost iniial concepute). Prin introducerea abstraciilor, programatorul obine un design flexibil, perfect adaptat la problema curent. Datorit folosirii testelor automate, programatorul poate oricnd demonstra c soluia sa este perfect valid pentru lista de comportamente definit prin teste. Sun excelent, nu-i aa? Adopia TDD nu este ns simpl. La nivel personal, cteva obstacole trebuie depite: nvarea tehnicilor necesare pentru scrierea de teste unitare simple. Foarte importante sunt aici dublele de testare (n principal stubs i mocks). Simplificarea. Aceasta este o abilitate care se dezvolt n timp, prin exerciiu i cu feedback de la alte persoane. Identificarea similaritilor din cod. Anumite similariti sunt evidente, pe cnd altele sunt mai subtile i pot fi percepute cu antrenament. Design. Similaritile pot fi diminuate prin diverse moduri, iar unele conduc la rezultate mai bune dect altele. Cunotinele de software design (design patterns, design principles dintre care menionm SOLID principles i cele patru principii ale designului simplu) sunt eseniale pentru obinerea celor mai simple soluii. Concentrarea mai mare pe problem i mai redus pe soluie. coala i nva pe programatori s se gndeasc la soluii. Designul incremental cere identificarea de exemple i simplificarea problemei nainte de a scrie prima linie de cod. Programatorul care ncearc TDD trebuie s i elimine tendina de a se gndi la design sau la cod n aceast prim faz. Refactorizarea rapid i eficient. Refactorizarea poate lua mult timp dac nu este pe deplin stpnit de programatori. Exersarea tehnicilor de refactorizare cu scopul de a crete viteza este foarte important pentru mediile de producie. La nivelul unei echipe, e nevoie n plus de o perioad de armonizare a stilului de design i de scris teste. n cazul unor medii mai complexe (mult cod existent netestat, mai multe echipe care lucreaz la acelai produs, lucrul la distan etc.), adopia trebuie tratat cu mare grij pentru a evita problemele legate de productivitate. Recomandarea este n situaiile complexe s se recurg la coaching tehnic pentru gestiunea schimbrilor.

www.todaysoftmag.ro | nr. 15/Septembrie, 2013

25

programare
Test Driven Development i design incremental Concluzie
Designul incremental nseamn crearea designului pe msur ce codul e scris. Designul incremental este o alternativ la designul fcut pe hrtie sau n unelte specializate nainte de a scrie cod. Design-ul incremental pornete de la exemple i generalizeaz soluia pe msur ce apar dovezi (similariti n cod). Acesta este i avantajul design-ului incremental: se bazeaz pe dovezi i nu pe intuiie (ceea ce ar putea s ni se cear n viitor). Soluiile generate n urma acestui proces sunt cele mai simple pentru problema data, att ct e ea cunoscut la momentul respectiv. TDD este cea mai bun metod cunoscut de a face design incremental. Practicienii TDD codific exemplele folosind teste care sunt apoi pstrate pentru a valida soluia complet. Prin identificarea i diminuarea similaritilor din cod n pasul de refactorizare, design-ul este simplificat i mbuntit n continuu. Scopul primar al designului incremental este de a obine design simplu i uor de modificat ct mai rapid posibil. TDD i design incremental dau un plus de eficien mai ales pentru rezolvarea unor probleme complet noi i care nu sunt bine stpnite de ctre programatori. Pentru adopia TDD este nevoie de exersare, singur sau ntr-o comunitate, folosind una din metodele descrise n articolele anterioare despre software craftsmanship: etc. ntrebrile pe acest subiect sunt binevenite pe programez.ro sau direct ctre autori.

26

nr. 15/Septembrie, 2013 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE

programare

Clustering for High-Dimensional Data Sets

lustering (gruparea) este o metod de a analiza date obinute prin msurtori. Aceasta ne permite s grupm datele n clase i s utilizm aa-numitele clase obinute drept baz n nvarea automat. De asemenea, aceasta ofer analizarea mai rapid a msurtorilor sau valori aproximative ale unor msurtori viitoare, prin extrapolare. n seciunile care urmeaz vom ncerca s acoperim subiectul referitor la gruparea datelor. Aceast tehnic este util n special atunci cnd avem de-a face cu cantiti mari de date, un scenariu care nu este neobinuit avnd n vedere explozia de date i informaii din zilele noastre.
Lucian Brescu
lucian.braescu@accesa.eu Software Developer @ Accesa

Introducere
Clustering este un proces care examineaz o colecie de puncte i grupeaz aa-numitele puncte n clusters (grupe) potrivit unor msurtori ale distanei. Scopul principal al procesului de clustering (al gruprii) este s se obin o stare n care punctele din acelai cluster (aceeai grupare) s aib o distan mic unul fa de altul, iar punctele din grupe diferite s fie la o distan mare unele de altele. Definirea termenilor de distan mare i mic depinde de domeniul n care se aplic clustering (gruparea). Un exemplu de clustering ntr-un spaiu bi-dimensional poate fi vzut n urmtoarea imagine:

Totui, probleme moderne de clustering implic spaii euclidiene de dimensiuni foarte mari sau i mai amuzant este cazul n care sunt implicate spaii care nu sunt euclidiene, fcnd astfel ca msurarea distanei s nu fie deloc intuitiv. Un scenariu de clustering posibil n lumea real poate fi nevoia de a grupa documente dup subiectul lor, n baza existenei unor cuvinte neobinuite, comune n documente sau cerina de a grupa persoanele care merg la film dup tipul filmelor care le plac, n contextul diverselor proceduri de afaceri. Conceptul de distan este o msur descris prin cteva proprieti principale. O msur de distan este ntotdeauna nonnegativ (numai distana dintre un punct i sine nsui este zero), este simetric (nu conteaz ordinea n care sunt luate n considerare punctele atunci cnd msurm distana dintre ele) i trebuie s respecte inegalitatea triunghiului (distana de la X la Y la Z nu este niciodat mai mic dect distana care merge direct de la X la Z).

www.todaysoftmag.ro | nr. 15/Septembrie, 2013

27

programare
Clustering for High-Dimensional Data Sets
Strategii de clustering (grupare)
Exist dou tipuri de strategii de clustering : algoritmi ierarhici i algoritmi point-assignment. Algoritmii ierarhici ncep cu fiecare punct n propriul su cluster , combin clusteri-i n funcie de diferitele definiii de apropiere i se oprete atunci cnd combinaii suplimentare ar duce la formarea unor clustere indezirabile (de exemplu atunci cnd am ajuns la un numr predeterminat de cluster-e pentru domeniul nostru sau cnd un cluster rezultat are puncte care sunt mprtiate pe o regiune mult prea mare). n algoritmii de atribuire a punctelor, punctele sunt luate n considerare ntr-o anumit ordine i fiecare dintre ele este atribuit cluster-ului n care se potrivete cel mai bine. Aceasta este de obicei precedat de o faz scurt n care se estimeaz clusterele iniiale. Ocazional, variaii ale acestor algoritmi combin sau separ cluster-ele sau permit punctelor s fie dezatribuite, dac acestea se afl prea departe de oricare dintre cluster-ele actuale, pentru a reduce zgomotul. Aceast raritate este problematic pentru orice metod care necesit relevan statistic. Pentru a obine un rezultat corect i de ncredere din punct de vedere statistic, cantitatea de date necesar pentru a susine rezultatul crete deseori exponenial cu dimensionalitatea. De exemplu, spaiile euclidiene supra-dimensionale i de asemenea spaiile non-euclidiene au un numr de proprieti non-intuitive, cum ar fi faptul c aproape toate perechile de puncte sunt distanate n mod egal unele de altele sau aproape oricare doi vectori sunt ortogonali. trebuie s alegem unul dintre punctele cluster-ului drept reprezentant echivalent i n mod ideal, acesta ar trebui s fie un punct apropiat de toate celelalte puncte ale cluster-ului, astfel nct ntr-un fel s se gseasc n centru. Un asemenea punct este numit un clustroid i poate fi obinut prin urmtoarele tehnici: Minimizarea sumei distanelor la celelalte puncte din cluster, Minimizarea distanei maxime la un alt punct din cluster, Minimizarea sumei ptratelor distanelor la celelalte puncte din cluster.

Clustering ierarhic
Pentru spaiile euclidiene, cluster-ing (gruparea) ncepe cu fiecare punct n propriul su cluster i apoi cluster-e mai mari vor fi construite prin combinarea a dou cluster-e mai mici. n acest scenariu trebuie s decidem dinainte cum vor fi reprezentate cluster-ele, cum vom alege pe care dou clustere s le unim i cnd vom nceta s mai combinm cluster-ele. Algoritmul de baz este ilustrat n figura de mai jos:

Point-assignment Clustering (Clustering prin atribuirea punctelor)


Vom prezenta doar doi algoritmi de point-assignment clustering n seciunea urmtoare, dar pot exista variaii n funcie de cerinele diferitelor domenii. Algoritmul K-means - presupune un spaiu euclidian i de asemenea numrul clusterelor, k, este cunoscut dinainte. Se poate deduce valoarea lui k prin ncercare i eroare sau alte metode. Algoritmul de baz este ilustrat n figura de mai jos: O variaie a acestui algoritm este BFR (Bradley, Fayyad i Reina), algoritm ce ne permite s executm k-means pe datele care sunt prea mari pentru a ncpea n memoria principal. Aceasta presupune c forma cluster-ului trebuie s fie distribuit normal n jurul centroidului, de exemplu, axele cluster-ului trebuie s se alinieze cu axele spaiului, presupunere ilustrat n figura urmtoare.

Blestemul dimensionalitii
Acest blestem s refer la fenomenele diverse care apar n contextul unor cantiti mari de informaie atunci cnd analizm i organizm datele n spaii supra-dimensionale. Tema comun a acestor probleme este c atunci cnd dimensionalitatea crete, volumul spaiului se mrete att de repede nct datele disponibile devin mprtiate. Pentru spaii non-euclidiene trebuie s utilizm o msurare a distanei care este calculat din puncte cum ar fi Jaccard, cosinus sau edit distance. O restricie n acest scenariu este aceea c nu putem s bazm distanele pe locaia punctelor. O alt restricie este c nu putem s reprezentm un cluster prin centroidul su i astfel

28

nr. 15/Septembrie, 2013 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE


Algoritmul ncepe prin selectarea k prin algoritmii anteriori: puncte. Punctele din fiierul de date sunt definirea a ceea ce constituie un cluster i care este modul optim de a-i gsi.

Concluzii

citite pe buci i fiecare bucat trebuie s conin suficient de puine puncte astfel nct acestea s poat fi procesate n memoria principal. Algoritmul depoziteaz n memoria principal rezumate ale clusterelor k i alte date de ajutor, dar nu datele principale care sunt procesate. Algoritmul CURE (Clustering Using REpresentatives) Grupare utiliznd reprezentani este utilizat pentru clustering la scar larg i nu presupune nimic n legtur cu forma cluster-elor. n loc s reprezinte cluster-ele prin centroidul lor, acesta folosete o colecie de puncte reprezentative care se afl la o distan ct mai mare posibil unele de altele i care definesc graniele cluster-ului. Algoritmul trece apoi la atribuirea unor puncte noi clusterelor, n funcie de cel mai apropiat punct reprezentativ. O ilustrare a Analiza cluster nu este definit printrrezultatului clustering-ului se poate vedea un algoritm specific, dar sarcina general n figura de mai jos i este o form clar dife- care trebuie rezolvat poate fi ndeplinit rit de rezultatele procesului de cluster-ing prin diveri algoritmi care difer prin

Analiza prin cluster sau clustering-ul este sarcina de a grupa un set de obiecte astfel nct obiectele din acelai grup numit cluster se aseamn ntre ele ntr-un fel sau altul mai mult dect cu cele din alte clustere. Aceasta se folosete de obicei n extragerea datelor n scop de explorare i analize de date statistice, utilizate n multe domenii precum nvarea automat, recunoaterea tiparelor, analiza imaginii, recuperarea de informaii i bioinformatica.

Referine
Mining of Massive Datasets, Anand Rajaraman, Jure Leskovec, Jeffrey D. Ullman Stanford University S. Guha, R. Rastogi, and K. Shim, CURE: An efficient clustering algorithm for large databases, Proc. ACM SIGMOD Intl. Conf. on Management of Data

www.todaysoftmag.ro | nr. 15/Septembrie, 2013

29

eveniment

programare

SAP Conference
genda departamentelor de business IT din ntreaga lume cuprinde teme strns legate de extinderea n materie de rapiditate, uurin i agilitate n utilizarea i realizarea componentelor software. De aceea soluiile oferite de SAP se afl ntr-un proces continuu de adaptare la noile tendine de pe piata IT mondial, iar msg systems preia i dezvolt aplicaii alturi de SAP folosind ultimele tehnologii n domeniu. Cunotinele i vasta experien msg systems n domeniul de dezvoltare i implementare a soluiilor SAP vor fi mprtite participanilor n cadrul acestei conferine. Temele ce vor fi abordate sunt mprite pe trei capitole distincte : Design i user experience folosind soluiile SAP o descriere a pailor parcuri pentru a susine nevoile i schimbrile ultimilor ani ce au avut loc n modul n care oamenii lucreaz cu aplicaii software. n trecut focusul soluiilor SAP nu era neaprat bazat pe user experience ci pe integritatea soluiilor i pe capacitatea lor de a acoperi uor fiecare necesitate nou de business. Astfel n cadrul acestei sesiuni vom parcurge modul n care soluiile SAP au trecut de la simplitate la folosirea noilor tehnologii IT cu scopul de a oferi aceleai soluii functionaliti de business, dar cu un front-end ce aduce mbuntiri substaniale n ceea ce privete user experience. Datorit faptului c volumul de date crete simitor n ultima perioad, sistemele de baze date relaionale nu mai sunt capabile s reacioneze la provocrile ce apar tot mai des dinspre scenariile cu volumuri de date foarte mari, aa numitele Big Data. O sesiune dedicat soluiei SAP n acest domeniu sub numele de SAP HANA bazat pe In-Memory Database, va fi punctul central al conferinei. Spre deosebire de alte soluii de tip In-Memory Database, SAP HANA nu este doar un alt tip de baze de date, ci este ntr-adevr o implementare complet pentru In-Memory Computing. Datorita arhitecturii sale ofer funcii adiionale, pe lnga database i application server, cum ar fi Code2Data i UI5 folosind un mediu de dezvoltare de ultim generaie. Showcase-ul SAP HANA dezvoltat de ctre msg systems va demonstra participanilor acest lucru. Proiectele msg systems din domeniul soluiilor SAP se desfoar n echipe mixte alctuite din angajai din Cluj i Germania, astfel managementul acestor proiecte a reprezentat o mare provocare pentru a obine succesul in fiecare dintre aceste colaborari. Pe baza experientei acumulate din activitatea celor cinci ani de cnd msg systems Romnia activeaz pe piaa din Romnia, vom prezenta aspectele principale (orientate pe agilitate i flexibilitate) care ne asigur succesul n proiectele bazate pe soluii SAP. Fiecare sesiune va fi susinut de un speaker cu experien relevant n tematica prezentat. Temele abordate vor provoca desigur discuii sau reflecii pe care dorim s le parcurgem la finalul fiecrei sesiuni. Sunt invitai s participe toi cei interesai i preocupai de temele abordate n cadrul conferinei i doritori s afle care sunt planurile de viitor n materie de business software. nregistrarea la Conferina IT bazat pe tehnologia SAP este deja deschis. Toi cei care doresc s ia parte la acest eveniment sunt rugai s trimit un email cu confirmarea de participare la adresa: info-events@msg-systems.com. V ateptm cu plcere i mare interes!

Horea Raiu

Horea.Ratiu@msg-systems.com Director Departament SAP @ msg systems Romania

30

nr. 15/Septembrie, 2013 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE

programare

Dezvoltarea aplicaiilor mobile: ntre nativ i hibrid


n ziua de astzi utilizarea dispozitivelor mobile inteligente din categoria tabletelor i telefoanelor este ntr-o cretere permanent. Din aceast cauz productorii de dispozitive mobile sunt forai s i mbunteasc produsele hardware i s vin cu tehnologii mbuntite sau parc rupte din filmele SF. Nu este o noutate nici faptul c volumul vnzrilor de produse hardware de la companii gigant precum Apple, Samsung, BlackBerry sau Nokia este dat n bun parte, de numrul i calitatea aplicaiilor software pe care fiecare platform l pune la dispoziie utilizatorilor ei.
Ctlin Prata
catalinp@fortech.ro Mobile Software Developer @ Fortech

Platforme mobile precum iOS, Android, BlackBerry i Windows Phone lupt acum i pentru ctigarea ateniei din partea dezvoltatorilor software care pn la urm au potenialul de a atrage sau chiar respinge utilizatori. Dezvoltatorii de aplicaii software la rndul lor caut s i fac loc n pieele de aplicaii software mobile, un loc care s le asigure stabilitate pe termen lung. Pentru aceasta, dezvoltatorii sun pui la ncercarea de a alege ntre dezvoltarea aplicaiilor mobile utiliznd cod nativ sau opiunea de a dezvolta aplicaii hibride.

Aplicaii native

Aplicaiile native sunt aplicaii scrise n limbajul de programare specific platformei pentru care se dezvolt. n tabelul 1.0 putei observa cteva din sistemele de operare mobile mpreun cu limbajul de programare specific, platformele pentru dezvoltare precum i cu medii de dezvoltare folosite de ctre programatorii de aplicaii mobile.
Sistem de operare Android iOS Windows Phone Limbaj de programare Java, C++ Objective-C C#, Visual Basic .NET (Windows Phone 8), C++ Platform IDE

Android SDK/ Android Studio NDK Cocoa Touch .NET, Windows Phone Runtime API Xcode Windows Phone Software Development Kit

BlackBerry OS

Java

BlackBerry Java SDK WebAPI Qt


Tabelul 1

BlackBerry JDE / Eclipse folosind BlackBerry Plugin Orice IDE HTML, JavaScript i CSS (NetBeans, Eclipse, etc.) Qt Creator

Firefox OS

JavaScript C++

Symbian

www.todaysoftmag.ro | nr. 15/Septembrie, 2013

31

programare
Dezvoltarea aplicaiilor mobile: ntre nativ i hibrid
Caracteristici
Un utilizator de dispozitive mobile fidel poate face diferena foarte uor ntre aplicaiile mobile native sau cele hibrid. Datorit timpului de rspuns superior i faptului c acesta are acces la diferite componente hardware ale dispozitivului (bluetooth, camera foto sau cea frontal, ledurile de notificare (Android) i altele), aplicaiile native pot fi destul de atractive pentru oricine . Giganii pieelor de aplicaii mobile sunt tot mai pui pe mbuntirea mediilor de dezvoltare i a abloanelor de lucru, totul pentru a atrage de partea lor ct mai muli dezvoltatori de aplicaii mobile. Acesta este un lucru ct se poate de bun pentru un dezvoltator care poate profita de unelte gratuite menite s fac implementarea aplicaiei ct mai rapid, ctignd mai mult timp pentru investirea n idei noi sau finisarea produsului. O aplicaie nativ care respect regulile de dezvoltare specifice platformei pentru care este destinat, nu va folosi niciodat aceleai resurse grafice: butoane, icoane, fundaluri pentru liste, etc. pentru mai mult de o platform. Aceasta din cauz c aplicaiile native trebuie s pstreze din comportamentul i designul sistemului de operare pe care ruleaz. Acestea trebuie s se integreze n platforma aleas de utilizatorul final. Aplicaiile native sunt foarte pretenioase cnd vine vorba de cunotiinele de dezvoltare a programatorului. Aceasta deoarece fiecare platform cere cunoaterea a cel puin unui limbaj de programare diferit fa de alta platform iar la rndul lui i limbajul de programare vine cu un ablon de lucru care de obicei este destul de stufos. Pentru ca un produs nativ s poat fi rulat pe mai multe sisteme de operare, de obicei este nevoie de cte un programator pentru fiecare platform n funcie de volumul de munc, termene limit i ali factori. Din punct de vedere al creativitii, dezvoltatorul are fru liber fiind limitat doar de resursele dispozitivului pe care aplicaia va ruleze. Mai jos putei observa cteva elemente ale aplicaiilor native gsite pe cele mai folosite sisteme de operare mobile.

Pri pozitive
Dezvoltarea aplicaiilor native poate aduce urmtoarele beneficii celor care le dezvolt: Posibilitatea de a accesa diferite componente hardware (bluetooth, senzori de micare, leduri de notificare, camera i altele); Timp mai scurt de rspuns pentru unele operaii; Programatorul are acces la ultimile API-uri aprute pe platform nc de la versiunile beta; Aplicaia are o vizibilitate mai mare pe platforma unde este lansat datorit faptului c este distribuit prin pieele de aplicaii folosite de majoritatea utilizatoriilor de dispozitive mobile; Ofer utilizatorului o experien de utilizare superioar fapt ce poate duce la creterea utilizrii aplicaiei; Unelte de dezvoltare gratuite; Mediile de dezvoltare vin de obicei cu unelte bune de testare a codului dar si de analiz a aplicaiei din punct de vedere a consumului de memorie si timpilor de rspuns. Aplicaiile native pot aduce utilizatori noi n timp ce-i pstreaz pe cei care deja le folosesc. Majoritatea brand-urilor mari din lumea aplicaiilor sociale (facebook, twitter, linkedin, etc.) i-au dat seama de puterea aplicaiilor native de a atrage utilizatori i au ales s mearg pe aceast ni.

Pri negative
Ca orice lucru, aplicaiile native au i pri negative care pot pune pe gnduri un starter. Prile negative sunt urmtoarele: Spre deosebire de aplicaiile web, distribuia aplicaiilor native este adesea limitat de forarea acestora de a putea fi distribuite doar prin pieele de aplicaii care pot impune diferite bariere (ex. Prin unele piee de aplicaii nu se pot vinde aplicaii din anumite ri), Dac se urmrete lansarea produsului pe mai multe platforme, costurile cresc semnificativ, fiind nevoie de rescrierea codului pentru fiecare platform n parte, De regul, specializarea programatorului pe o platform poate dura ani de zile fapt ce duce i la o limitare a resurselor umane.

Aplicaii hibride

Figur 1.0 Android Action Bar cu list de selecie activ

Aplicaiile mobile hibride sunt aplicaii care de regul sunt dezvoltate folosind tehnologii WEB (JavaScript, HTML, CSS). La ora actual aplicaiile hibride ncep s prind rdcini tot mai puternice datorit faptului c multe medii de dezvoltare devin tot mai stabile i ofer acces la tot mai multe funcionaliti hardware ale dispozitivelor. n Tabelul 2 putei urmri cteva dintre cele mai folosite medii de dezvoltare ale aplicaiilor hibrid:

Caracteristici
Aplicaiile hibrid de regul sunt formate dintr-o component nativ de tip webbrowser care poate accesa diferite funcionaliti ale platformei pe care ruleaz (ex. camera video, lista de contacte, etc.). De regul aplicaiile hibrid au acelai design grafic pe toate platformele pe care au fost publicate fr s in cont de ghidul de implementare a interfeei cu utilizatorul a fiecrei platforme pe care ruleaz aplicaia. Este de ajuns s scri codul de baz pentru o aplicaie, pentru ca ulterior, ca prin magie aplicaia s funcioneze pe mai multe

Figur 1.1 iOS 7 Selector pentru dat

32

nr. 15/Septembrie, 2013 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE

Denumire PhoneGap

Tehnologii de Platforme lucru suportate HTML, JavaScript i CSS iOS Android BlackBerry Windows Phone Symbian WebOS

Suport pentru limbaj nativ Nu

Categorie Cunotine necesare dezvoltrii aplicaiilor

Nativ Objective-C Cocoa Touch Java Android SDK C C++ Android NDK

Hibrid HTML CSS Javascript Mediul i ablonul de dezvoltare (Phonegap, Titanium, etc.)

Appcelerator Titanium

HTML, JavaScript

iOS Android BlackBerry Windows Phone

Da

WindowsPhone Runtime C# / VB.NET .NET Stocare date Da Da Da Da Da prin intermediul ablonului de dezvoltare Da prin intermediul ablonului de dezvoltare

Adobe AIR

ActionScript, HTML, JavaScript HTML, JavaScript i CSS

iOS Android BlackBerry iOS Android BlackBerry Windows Phone


Tabelul 2

Nu

Acces API platform Acces componente hardware Timp de rspuns la animaii Potrivit pentru dezvoltarea jocurilor Timp de dezvoltare Exemplu n imagini

Sencha Touch

Nu

Foarte bun n Bun spre slab n funcie de funcie de platform platform Da Nu

Foarte mult

Mediu Figur 4 Linkedin Android

platforme. Din aceast cauz dezvoltatorii de aplicaii hibrid au mai mult timp pentru idei noi sau dezvoltarea unei noi aplicaii. Datorit faptului c majoritatea uneltelor de dezvoltare folosesc tehnologiile WEB pentru implementarea aplicaiei, gsirea unui programator pentru a duce la bun sfrit o aplicaie hibrid pentru dispozitive mobile, este un lucru mai puin stresant. Volumul de lucru pe WEB a fcut ca tot mai muli programatori s nvee tehnologii precum JavaScript, HTML i CSS. Acest lucru duce la o tranziie relativ uoar ctre lumea programrii de aplicaii hibrid pentru dispozitive mobile.

Pri pozitive
Timp de dezvoltare mic pentru o acoperire larg de sisteme de operare; nvarea mai rapid a tehnologiilor de dezvoltare, fiind vorba n principiu de tehnologi WEB; Aplicaia are o vizibilitate mai mare pe platforma unde este lansat datorit faptului c este distribuit prin pieele de aplicaii folosite de majoritatea utilizatoriilor de dispozitive mobile; Unelte de dezvoltare gratuite.

Tabelul 3

Pri negative
Dependen fa de dezvoltatorii uneltelor de lucru, fapt ce poate ntrzia lansarea aplicaiei care s funcioneze pe o versiune nou a unui sistem de operare sau ntrzieri n repararea

problemelor tehnice ce pot aprea mai ales la versiuni noi ale sistemelor de operare pentru mediile mobile; Performan mai sczut n unele locuri Reputaie sczut n rndul utilizatorilor fideli a unei anumite platforme mobile; Pierdere de timp pe repararea problemelor gsite n urma faptului c nu pe toate platformele aplicaia o s ruleze la fel de bine.

www.todaysoftmag.ro | nr. 15/Septembrie, 2013

33

programare
n primul rnd a dori s evideniez faptul c ambele modaliti de dezvoltare a aplicaiilor mobile se distribuie prin pieele de aplicaii existente pe platformele mobile (AppStore, GooglePlay, Windows Phone Store, etc.). Din aceast cauz, ambele vor participa i la verificarea de dinaintea lansrii propriu zise n magazinul virtual. Dup cum am menionat la prile pozitive a metodei de dezvoltare nativ, branduri puternice care au publicat aplicaii mobile, au trecut la dezvoltarea aplicaiilor native n pai grbii i aceasta se ntmpl i n ziua de astzi (vezi aplicaia YouTube de pe Windows Phone Store). Aceast trecere se datoreaz faptului c prin dezvoltarea nativ pot scoate tot ce se poate din platforma pe care ruleaz aplicaia i totul la performane ridicate. Pe de alt parte trebuie s nu uitm c tot aceti gigani au fcut primii pai ctre lumea mobil cu aplicaii web, urmate de aplicaii hibride i abia mai la urm au trecut la metoda nativ. n Tabelul 3 putei observa comparaia ntre cele dou metode de dezvoltare pe mai multe categorii, am luat n considerare dezvoltarea pentru iOS, Android i Windows Phone doar.

Dezvoltarea aplicaiilor mobile: ntre nativ i hibrid Concluzie


Ambele modaliti de dezvoltare sunt importante i trebuie luate n calcul n momentul n care se vrea s se dezvolte o aplicaie pentru dispozitivele mobile. Important este s se decid dac aplicaia trebuie s fie bogat din punct de vedere al animaiilor, dac se dorete publicarea aplicaiei pe mai multe platforme sau ct de mare este bugetul alocat dezvoltrii aplicaiei respective. Alegei dezvoltarea nativ a aplicaiei dac timpul de dezvoltare i implicit bugetul nu este mic. Aceast opiune poate aduce utilizatori fideli pe termen lung i review-uri pozitive. n acelai timp v ajut s distribuii clienilor versiuni ale aplicaiei care poate rula pe cele mai noi versiuni ale sistemelor de operare pe care ruleaz nc de la lansarea acestora. Alegei dezvoltarea hibrid a aplicaiei dac timpul de dezvoltare a aplicaiei si bugetul sunt mici. Aceast opiune de dezvoltare se potrivete foarte bine i dac dorii s experimentai o idee nou de aplicaie. Aplicaiile hibrid sunt foarte bune pentru un startup, acestea v ajut s acaparai atenie pe mai multe platforme cu un minim de efort i la o calitate corect.

Comparaie

34

nr. 15/Septembrie, 2013 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE

programare

Debugging n producie

e cte ori nu vi s-a ntmplat s avei un o problem n producie sau n mediul de testare pe care s nu o putei reproduce pe maina de dezvoltare? Cnd acest lucru se ntmpl, lucrurile ajung s o ia razna, iar noi ncercm diferite modaliti de remote debug. Fr s tim, aceste tool-uri pot s fie chiar lng noi, ns noi le ignorm sau nu tim cum s le folosim.
Radu Vunvulea
Radu.Vunvulea@iquestgroup.com Senior Software Engineer @iQuest

n cadrul acestui articolul voi prezinta totul alte zone din cod. diferite modaliti prin care putem s facem debug fr s fie nevoie s folosim Visual Ce soluii avem? Studio. n general avem la ndemn dou variante. Prima variant se bazeaz n totalitate De ce fr Visual Studio? pe log-uri. Prin intermediul log-urilor putem Dei Visual Studio este un produs extrem s identificm zonele din aplicaie care nu de bun, care ne ajut cnd avem nevoie funcioneaz corespunztor. Dar folosirea s descoperim bug-uri i s facem debug, log-urilor poate s fie cu dou tiuri. Este acesta nu o s ne fie de foarte mare folos n nevoie s tii ce este necasar s apar n logproducie. n momentul n care avem un bug uri i ct de des. n caz contrar te poi trezi n producie, regulile jocului se schimb. n cu mii de pagini de log-uri nefolositoare i producie aplicaia este compilat pentru aproape imposibil de analizat. Dac ajungem release, iar debug-ul nu mai este posibil. s avem prea multe log-uri putem s fim surprini de schimbarea comportamentului Cnd este nevoie de aceste tool-uri ? aplicaiei. n momentul n care nu putem s repron cazul n care este posibil putem s triducem problema pe mainile de dezvoltare. mitem PDB-urile pe maina de producie. Orice am face nu putem s reproducem pro- Prin acest mod vom avea acces la tot stack blema pe care o avem. Neputnd reproduce trace-ul pe care o excepie l genereaz. problema este ca i cum am cuta acul n Log-urile ne pot fi de mare ajutor pencarul cu fn. tru a rezolva diferite probleme care apar n Dac ntmpltor apare problema, dar producie. Chiar dac log-urile sunt foarte fr s avem un scenariu de reproducere, folositoare, nu ne vor ajuta de fiecare dat. ajungem n acelai caz amintit mai sus. Exist diferite probleme care pot s apar i Un alt caz ar fi atunci cnd memoria care s fie extrem de greu de identificat foloocupat de aplicaia noastr crete n timp, sind log-urile. De exemplu un dead-lock ar fenomenul manifestnd-se doar la mainile fi aproape imposibil de identificat prin interde producie. Putem doar s bnuim pro- mediul log-urilor. blema, dar nu tim cauza exact. Din aceast O alt variant pe care o avem la cauz, putem s ajungem s reparm cu dispoziie este crearea de memory dump-uri
www.todaysoftmag.ro | nr. 15/Septembrie, 2013

35

programare
Debugging n producie
i analizarea acestora.

Cum analizm un dump?

Un memory dump este un snapshot a procesului ntr-un anumit moment. Pe lng informaiile despre alocarea memoriei, un snapshot conine informaii despre starea diferitelor thread-uri, obiecte i cod. Folosind aceast informaie putem s obinem informaii foarte valoroase despre procesul care ruleaz. Acest snapshot reprezint imaginea memoriei n format 32 sau 64 de biti, n funcie de sistem. n general exist dou tipuri de memory dump. Primul este minidump . Acesta este cel mai simplu memory dump care se poate face i c o n i n e d o a r Windbg informaii despre stack starea procesului sau despre ce apeluri se fac i aa mai departe. A l d oi l e a t ip de memory dump este full dump. Acesta conine toate informaiile care se pot obine, incluznd un snapshot la memorie. Timpul necesar pentru obinerea unui full dump este mult mai mare n comparaie cu un minidump, iar fiierul de dump n sine este mult mai mare.

Ce este un memory dump

Debugger-ul nativ pentru un dump este reprezentat de Windbg. Acesta este un tool de puternic, cu care se pot obine informaii foarte preioase. Singura problem a acestui tool este c nu este prietenos. Vom vedea puin mai trziu care sunt alternativele la Windbg. Trebuie s inem cont c n aproape toate cazurile alternativele la Windbg folosesc n spate acest debugger doar c expun o interfa mai prietenoas i mai util. O alternativ la Windbg este orice Visual Studio mai recent dect Visual Studio 2010. ncepnd cu Visual Studio 2010, acesta ne ofer posibilitatea s analizm dump-urile pentru .NET 4.0+. Ceea ce putem s facem n Visual Studio nu este la fel de avansat n comparaie cu ceea ce ne permite Windbg, dar n general poate s ne fie de ajuns.

Cum putem genera un memory dump?

Exist diferite aplicaii care ne ajut s facem acest lucru. Unele din acestea ne permit s facem un dump n mod automat n funcie de diferii parametri. n cazul n care este nevoie s facem un memory dump cea mai simpl soluie este din Task Manager. Tot ce este nevoie s facem este s dm click dreapta pe un proces i s selectm Create dump file. Acelai lucru l putem face folosind Visual Studio sau adplus. exe. Ultima variant este un tool de debug pentru Windows care se regsete pe aproape toate mainile care ruleaz Windows. n urmtorul exemplu specificm la adplus s ne creeze un memory dump n acest moment:
adplus hang o C:\myDump pn MyApp.exe

Primul pas pe care trebuie s l facem dup ce deschidem Windbg este s ncrcm un dump (CTRL+D). Odat ncrcat, un dump poate s fie vizualizat din diferite moduri. De exemplu putem s analizm thread-urile, memoria, resursele alocate i aa mai departe. Pentru a putea face mai mult, de exemplu s vizualizm i s analizm codul managed avem nevoie s ncrcm librrii ajuttoare precum Son of Strike (SOS) sau Son of Strike Extension (SOSEX). Aceste dou librri ne deschid noi ui, putnd s analizeze datele din dump ntr-un mod extrem de folositor.

SOS ne permite s vizualizm procesul n sine. Ne permite s Prin intermediul opiunii pn specificm numele procesu- accesm obiectele thread-urile i informaiile din garbage coleclui pentru care dorim s crem un dump. n cazul n care dorim tor. Putem s vizualizm inclusiv nume de variabile i valoarea s crem un dump n mod automat putem s folosim opiunea acestora. crash. Trebuie tiut c toate informaiile care se pot accesa fac parte adplus crash o C:\myDump pn MyApp.exe din managed memory. Din aceast cauz, SOS este strns legat adplus crash o C:\myDump sc MyApp.exe de CLR i de versiunea acestuia. n momentul n care ncrcm Dac este nevoie s crem un dump n mod automat pe lng modulul SOS, trebuie s avem grij s l ncrcm pe cel corespunadplus.exe putem s folosim DebugDiag i clrdmp.dll. Cele trei ztor pentru versiunea de .NET a aplicaiei noastre. opiuni pe care le avem pentru crearea unui dump n mod automat .loadby sos mscorks .loadby sos clr sunt destul de similare. DebugDump ne permite s configurm sistemul ca s creeze automat un memory dump n momentul n n exemplele de mai sus am ncrcat modulul de SOS pentru care nivelul CPU-ului este mai mare de X% ntr-un anumit inter- .NET 3.5-, iar n al doilea exemplu am ncrcat SOS pentru .NET val de timp. 4.0+. Pe lng aceste tool-uri exist multe altele pe pia. n funcie Toate comenzile SOS ncep cu !. Comanda de baz este de necesiti putei s folosii orice tool de acest tip. !help. n cazul n care dorim s vizualizm lista de thread-uri putem s ne folosim de comanda !threads care are un output asemntor cu urmtorul:

Son of Strike (SOS)

36

nr. 15/Septembrie, 2013 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE


0:000> !threads ThreadCount: 5 UnstartedThread: 0 BackgroundThread: 2 PendingThread: 0 DeadThread: 0 Hosted Runtime: no Lock ID OSID ThreadOBJ Count Apt Exception

Cum identicm un deadlock?

Debug la un crash

Pn acuma am vzut c avem la dispoziie multe tool-uri pentru a crea i a analiza un dump. Acuma a venit momentul s vedem ce trebuie s facem pentru a putea analiza un crash. 1. Lansm procesul 2. nainte s crape, comandm adplus-ului s creeze un dump n momentul n care procesul crap
adplus crash pn [numeProcesor]

Un deadlock apare n momentul n care dou sau mai multe thread-uri ateapt dupa aceeai resurs. n aceste cazuri o parte din aplicaie dac nu chiar toat aplicaia se blocheaz. Pentru acest caz primul pas este s crem un dump folosind comanda:

3. Lansm Windbg (dupa crash), 3.1. ncrcm dump-ul, 3.2. ncrcm SOS, 3.3. !threads (pentru a vedea ce thread a crpat), 3.4. !PrintException (pe thread-ul care a crpat pentru a vedea excepia), 3.5. !clrstack (pentru a vedea stack-ul de apeluri), 3.6. !clrstack a (pentru a vedea stack-ul mpreun cu parametri), 3.7. !DumpHeap type Expcetion (listez toate excepiile care nu sunt legate de GC).

Apoi va fi nevoie s analizm stack trace-ul pentru fiecare thread i s vedem dac este blocat (Monitor.Enter, ReadWriteLock. Enter). Odat ce am identificat aceste thread-uri putem s gsim resursele folosite de fiecare thread, mpreun cu thread-ul care ine blocate aceste resurse. Pentru aceti ultimi pai comanda !syncblk ne vine n ajutor. Aceasta ne listeaz blocurile de memorie pentru un anumit thread.

Addplus hang o c:\myDump pn [NumeProces]

n cadrul acestui articol am descoperit cum putem s crem un dump i care sunt tool-urile de baz pentru a-l analiza. Prin intermediul fiierelor dump putem s accesm informaia pe care nu am putea-o accesa n mod normal. Unele date pot s fie accesate doar prin aceste dump-uri i nu prin alte moduri (debug din Visual Studio). Am putea afirma c aceste tool-uri sunt puternice, dar sunt destul de greu de folosit, necesitnd o curb de nvare destul de Trebuie tiut c rezultatele sunt n funcie de modul n care mare. aplicaia este compilat. De exemplu, dac s-a fcut optimizare de cod n momentul compilrii. Totodat lista de excepii pe care o putem obine poate s fie destul de lung din cauza unor comenzi precum !DumpHeap ne returneaz toate excepiile produse chiar i cele pre-create precum ThreadAbord.

Sumar

www.todaysoftmag.ro | nr. 15/Septembrie, 2013

37

testare

Model Based Testing fr presupuneri

odel Based Testing (MBT) este un mod nou de testare eficient pentru metodele moderne de dezvoltare software. Comparat cu alte metode de testare acest mod de testare are mai multe avantaje. Rezultatele sunt dependente de modul cum este organizat procesul de testare i care este rolul testerului n proiect. Este nevoie ca testerul s presupun orbete un model prestabilit sau ar trebui ca testerul s fie responsabil de pregatirea modelului de testare. n acest articol, aducem un rspuns acestei ntrebri.
Tudor Cobla
tudor@xlteam.ro Business Developer @ XL Team

Din ce n ce mai mult se vede c Model Based Testing 1 (MBT) este folosit ca metodologie pentru testare software. Ca tester nu mai este posibil s testezi folosind modelele tradiionale, impuse de metodele tradiionale de dezvoltare software. Lund n considerare procesele contemporane de dezvoltare agile , testerul trebuie s anticipeze noi moduri de a lucra i testa. Proprietile proiectelor, care de multe ori se rezum la interactivitate, iterativitate, dezvoltare incremental i multidisciplinaritate, trebuie s fie n consisten cu modul de testare curent. MBT se descurc bine n astfel de situaii, dar este condiionat de o aplicare corect. Beneficiile aplicrii MBT sunt cunoscute, de aceea printr-o utilizare riguroas i adecvat, MBT se adreseaz oricror ambiguiti, inconsistene i erori n cerinele de funcionalitate semnalate

1 http://en.wikipedia.org/wiki/Model-based_testing

ntr-un stadiu incipient al proiectului. Acest lucru va scurta durata proiectului i va imbunti calitatea software-ului. Un alt avantaj al MBT-ului este flexibilitatea i adaptabilitatea la orice set de testare. Dac apar schimbri n funcionaliti, modelul poate fi uor ajustat i se poate genera un nou set de testare ntr-un mod automat. Generarea automat a setului de testare este un alt beneficiu pe care MBT l are. MBT este un nou mod de testare a proiectelor software care devine avantajos fa de alte metode de testare, prin modul n care se organizeaz procesul de testare i prin instrumentul folosit. Dac s e iau n considerare metodele tradiionale de dezvoltare software, se poate vedea c testerul este independent fa de

38

nr. 15/Septembrie | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE


testerul. Cine poate garanta c autorul acestor modele nu a gresit interpretarea? Cine are grij de actualizarea modelelor dup o actualizare a cerinelor? Oare toi cei implicai, spre exemplu testerul, managerul de proiect etc. neleg aceste modele? Sunt toate situaiile de testare capturate n aceste modele? i poate mai important, sunt aceste modele aranjate n scopul generarii setului de testare, sau ce algoritm de testare se folosete, bazat pe aria de testare ce se dorete acoperit? Soluia pentru problema descris mai sus este simpl. n MBT, testerul funcional trebuie s creeze i s deseneze modelele de testare. Testerul ar trebui s se implice n evaluarea acestor modele i restul echipei de dezvoltare, precum i echipa de business pentru a detecta unde este nevoie s adapteze modelul. Exact ca i testerul funcional care compune setul de testare n procesul de dezvoltare tradiional. Astfel, testerul funcional protejeaz o perspectiv independent, aceste modele fiind uor de citit i interpretat, de ajustat de ctre tester, bazndu-se pe modele reale de testare. Dintre aceste modele, setul de testare poate fi generat automat avnd la baza algoritmul de testare, i lund n considerare acoperirea de testare dorit. Instrumentul, care este folosit, trebuie s fie adaptat la aceasta. Testerul trebuie s fie capabil s deseneze modelele de testare cu instrumentul respectiv, iar aceast unealt trebuie s genereze automat setul de testare pe baza diferiilor algoritmi (acoperire de testare). Concluzia este c pentru testarea funcional, MBT se muleaz perfect in procesele de dezvoltare moderne, unde testerul funcional are o responsabilitate i valoare mare. Pornind de la aceast metodologie am dezvoltat un instrument de testare numit DTM Tool2, care ajut testerii funcionali s-i genereze automat scenariile de testare.

procesul de dezvoltare. Testarea tehnic i dezvoltarea sunt considerate designul tehnic, i testerul va folosi designul funcional n aranjarea setului de teste pentru testarea funcional. Mai precis acest lucru va rezulta ntr-o viziune independent a testerului fa de interpretarea erorilor n cerinele pe proiect. Testerul nu poate face presupuneri i toat informaia cerut pentru stabilirea a unui set de testare complet este colectat de tester n persoan. Dar cum funcioneaz MBT? Poate un tester s o viziune independent? i oare are testerul o viziune clar s completeze baza de teste, fr s fac presupuneri? Rspunsul este da, att timp ct testerul poate s dezvolte modelele de testare de el nsui. De prea multe ori se poate vedea c n MBT modelele care sunt folosite pentru generarea seturilor de testare, sunt foarte tehnice, statice i greu de interpretat i aceste modele nu sunt produse de nsui

2 www.dtmtool.com

www.todaysoftmag.ro | nr. 15/Septembrie, 2013

39

business

programare

TheOpen.com susinerea digital a unui turneu de success

he Open Golf Championship este organizat de R&A ncepnd cu secolul XIX, iar barierele acestui sport au fost de mult depite. n prezent The Open reprezint unul din icon-urile turistice ale Scoiei i atrage anual sute de mii de pasionai ai golfului. Este golful un sport potrivit doar pentru anumite categorii de vrst? Jucm golf doar pentru a petrece timp n natur, plimbndu-ne pe un cmp bine ntreinut? Multe persoane care nu cunosc deloc acest sport vor rspunde afirmativ, dar cei ce au petrecut mcar o ora pe un teren de golf vor ncepe s i reconsidere opinia. Endava a nvat s aprecieze golful prin organizarea digital a celui mai mare campionat din lume The Open, susinut de forul ce coordoneaz acest sport. Platforma TheOpen.com nseamn un efort susinut timp de 6-7 luni n fiecare an pentru a dezvolta seciuni i features noi ce vor fi expuse utilizatorilor n cele patru zile de turneu. Numrul de utilizatori unici crete exponenial de la un minut la altul n timpul turneului. Dac n cele trei zile de practice rounds sunt 200-300 de useri concureni pe secund, n prima i a 2-a zi a turneului ajung la 40.000, iar n ultima zi ating pragul de 80.000 de utilizatori concureni. Asigurarea unei experiene unice pentru aproape 7 milioane de utilizatori pe parcursul turneului aduce un sentiment de mplinire dar i certificare pentru o companie cu experien digital precum Endava. Alturi de platforma TheOpen.com utilizatorul este expus unei plaje largi de opiuni digitale, totul pentru a avea acces oriunde i prin orice mijloc la evenimentele din timpul turneului: Jumtate din utilizatori acceseaz versiunea mobile a site-ului care reproduce fidel fiecare seciune i feature a platformei web; Aplicaia pentru iOS a fost plasat pe primul loc n Top Free UK AppStore i pe locul 3 n Top Free US AppStore n timpul turneului.

Bogdan Moscaliuc
Project Manager @ Endava

bogdan.moscaliuc@endava.com

40

nr. 15/Septembrie | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE


Spectatorii i turitii prezeni n jurul terenului de golf unde are loc evenimentul pot accesa un website dedicat prin care organizatorii trimit informaii updatate regulat; n materie de Live Coverage, website-ul ofer streaming din partea unor gigani media cum sunt BBC i ESPN dar are i propriul canal Live video - @ TheOpenLive dar i un canal Radio dedicat @TheOpenRadio, accesat n mare msur de utilizatorii mobile. Inovaia absolut a site-ului este de departe Leaderboard-ul, un agregator de informaie statistic ce prezint diferite view-uri ale ranking-ului dar i simularea live a terenului practic fiecare juctor deine un GPS tracker care transmite coordonatele poziiei de pe teren. Aceste coordonate sunt apoi reprezentate pe un teren digital n miniatur, astfel utilizatorii pot s vad n orice moment unde sunt juctorii preferai. Proiectele de dimensiunea aceasta prezint i diferite provocri iar n cazul acesta, de departe cea mai mare provocare este asigurarea unei arhitecturi complet scalabile, ce s poat face fa unui rampup att de abrupt n cele 4 zile de turneu. Diferite nivele de caching pentru Sitecore CMS respectiv Akamai CDN dar i optimizrile timpilor de rspuns n latura riscurile unui timeout sau ale unui crash. Pentru a simula un load real s-au utilizat resurse cloud folosind Amazon Web Services. Pe lng acestea, sistemul de content geo-targeted trebuie perfect calibrat pentru a servi coninutul potrivit fiecrei regiuni a lumii. Se aplic geo-targeting pe seciuni importante ale site-ului, bannere sau canalele Live streaming. Totul pentru a oferi o experien ct mai placut i a reine utilizatorul pe site. Echipa de proiect din Endava a monitorizat n rotaii de 8 ore turneul i evoluia

constant a site-urilor dintr-un WAR room Blackberry, WinPhone, on-site mobile asamblat special pentru acest eveniment. site, live video streaming, live audio Suportul 24/7 a fost asigurat pentru 2 spstreaming, Video on Demand. tmni prin expertiza backend coninut 6 x live Streams 2 canale BBC, i baza de date, front-end JS, CSS dar i ESPN, @TheOpenLIVE on-site live integrarea cu diferii 3rd party service broadcast, @TheOpenRadio si Radio 5 suppliers. Live. Integrarea cu mediile sociale prezint 4 milioane de clipuri video on un interes ridicat, Twitter i Facebook sunt demand iniiate n 4 zile. principalele platforme de promovare, iar Peste 50% din utilizatori provin de pe Widgeturi specifice sunt plasate direct pe un dispozitiv mobile. homepage pentru a angrena utilizatorii n dezbateri. Planul pentru The Open 2014 conIat cteva cifre ale succesului din 2013: ine deja surprize pentru fanii golfului, iar Aproape 7 milioane de utilizatori Endava va demonstra nc odat c inovaunici n cele 4 zile ale campionatului. ia digital nu are limite. Un vrf de 78,000 utilizatori unici concureni pe site pe secund n momentul n care Phil Mickelson a nceput s joace 18th green. 31 milioane page impressions n sptmna campionatului. Pe Twitter #TheOpen a fost plasat pe primul loc trending channels in UK si USA. Cea mai variat gama de opiuni digitale pentru un turneu de golf : desktop, mobile, iPhone, iPad, Android,

www.todaysoftmag.ro | nr. 15/Septembrie, 2013

41

evenimente

Business Networking de la ofine la online pe platforma Business Days

usiness Days este un eveniment consacrat deja pe piaa naional iar luna aceasta vom avea ocazia s participm la ediia din Cluj a acestuia. Laszlo Pacso, organizatorul Business Days a avut amabilitatea s rspund ntrebrilor Today Software Magazine.
Ovidiu Man, PMP
ovidiu.matan@todaysoftmag.com Editor-in-chief Today Software Magazine

Spunei-ne cteva cuvinte despre dvs. Foarte pe scurt despre mine: sunt antreprenor de peste 13 ani, un pasionat de management de proiect, un specialist n business networking, organizator de evenimente, productor de materiale video i de emisiuni educative, coordonatorul unor proiecte online i social media i mai nou antreprenor social. n viaa de zi cu zi mi plac mult natura, muntele, filmele, crile, muzica clasic i fotografia. De 3 ani i jumtate coordonm programul Business Days, un program care i dorete s ajute la dinamizarea mediului de afaceri din Romnia i la crearea temeliei unei culturi antreprenoriale sntoase n ara noastr. Este o misiune dificil, cu multe provocri, dar o facem din pasiune i cu mult ncredere n viitorul acestei ri. Aceste lucruri i mai ales tenacitatea de a face fa la numeroasele ncercri sunt cele care ne difereniaz n primul rnd de alii care mai activeaz n acest domeniu. Indiferent ct de greu ne-a fost, nu am abandonat calea. Atunci cnd doreti s ajui i s creezi impact social n mediul n care activezi, trebuie uneori s renuni la confortul tu i s pui pe primul plan interesele celor pe care i serveti prin proiectul tu. Din punctul meu de vedere acest lucru este cel care difereniaz un antreprenor social de un antreprenor. Multi nc nu neleg asta.

Ce nseamn Business Days i ce aduce nou comparativ cu celelalte evenimente de business ? Business Days este mai mult dect o serie de evenimente. Este n primul rnd o platform de oportuniti care are rolul de a genera numeroase posibiliti de business celor care o folosesc, fie c ne referim la evenimentele Business Days, fie c ne referim la sesiunile de business networking, fie c ne referim la aplicaiile mobile i online, fie c ne referim la platformele de socializare, fie c ne referim la platformele video educaionale. Dac ne referim strict la zona de evenimente Business Days, ceea ce aducem nou pe piaa de evenimente business este n primul rnd caracterul itinerant i faptul c Business Days acoper prin impactul pe care l genereaz majoritatea rii. Un alt atu al nostru este faptul c evenimentele noastre sunt riguros pregtite. nainte de a desena programul unui eveniment, au loc numeroase ntlniri cu oameni de afaceri din regiunea respectiv (manageri, antreprenori, specialiti din diverse domenii) cu care avem discuii de analiz a problemelor i provocrilor cu care se confrunt acetia. Aceste discuii exploratorii ne ajut s identificm noi oportuniti i mai ales s cartografiem nevoile i problemele concrete la care ncercm s gasim modaliti de a

42

nr. 15/Septembrie | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE


aduce soluii, rspunsuri i idei n special prin cele 16 workshopuri ale evenimentului. Un alt fapt prin care ne difereniem de orice alt organizator de evenimente de business din Romnia este structura evenimentului, care se desfoar pe trei paliere: conferine - care au rolul de a-i ncrca cu energie pozitiv pe cei prezeni, prin care inspirm, motivm i oferim idei, prin care oferim o analiz a tendinelor, relevm oportuniti n dezvoltarea i progresul tehnologic workshopuri - care au rolul de a dezvolta abiliti n special prin schimb de experiena i interactivitate, unde focusul se pune pe componena practic, pragmatic, pe studii de caz, exemple de bun practic i foarte multe sesiuni de ntrebri i rspunsuri prin care s i ncurajm pe cei prezeni s-i ridice problemele pentru a gsi sfaturi, idei, soluii i chiar resurse pentru a le rezolva. sesiunile formale de business networking - care au rolul de a genera oportuniti reale de business. Astfel, dup ce participanii au fost ncrcai cu energie pozitiv i au fost expui la un bombardament de idei i inspiraie i sunt dornici s genereze afaceri sau s le pun n practic, le crem posibilitatea, fie sub forma unor microntlniri, fie sub forma unor sesiuni open, fie sub forma unor ntlniri generate prin aplicaia de matchmaking s treac la aciune i s fructifice resursele existente de contacte i oportuniti la un astfel de eveniment. Pe lng acestea a aduga existena unei aplicaii online i mobile prin care cei prezeni au acces la toat baza de date cu participani, speakeri i parteneri i pot seta ntlniri sau genera schimburi de cri de vizit virtuale. Un alt atu al nostru este i transmiterea live a evenimentului i implicarea unor televiziuni locale sau naionale ntr-un maraton de emisiuni conexe sau de transmisiuni directe de la locul evenimentului, prin care facem ca informaiile valoroase transmise de speakeri s ajung i la cei care nu au putut fi la locul evenimentului, dar sunt interesai de cele discutate la conferine i mese rotunde. BD este unul dintre puinele evenimente ce promoveaz iniiativele i afacerile locale, felicitri ! Cum vedei evoluia acestora de-a lungul timpului? Se pstreaz aceleai domenii de activitate n evoluia pieei romneti? mult de att, pentru c suntem absolut convini c dezvoltarea abilitilor de public speaking la cei care vorbesc la evenimentele Business Days va genera o mai mare reuit i un succes mai mare n transferarea de idei i inspiraie ctre cei prezeni n slile de conferin, am creat speaker support group, o echip de profesioniti n arta vorbitului n public, care lucreaz cu acei speakeri care doresc mbuntirea abilitilor pe trei planuri: nainte de eveniment - la pregtirea prezentrii i la dezvoltarea abilitilor de a crea impact n faa celor din sal n timpul evenimentului - evalueaz mpreun cu cei din echipa TOAST MASTER Romnia fiecare prezentare dup mai multe criterii, cu scopul de a ajuta pe fiecare s-i neleag lipsurile i s gseasc modaliti de cretere a calitii n prezentrile publice post eveniment - cu sesiuni de coaching i training pentru dezvoltarea abilitilor pe baza celor relevate din evaluri Aa toi avem de ctigat, pentru c de la ediie la ediie crete calitatea prezentrilor i dezvoltm i n Romnia o clas de vorbitori publici de elit, care s poat merge i la evenimente de business din afara rii, unde s poat promova, n calitate de ambasadori, oportunitile de investiie i parteneriat din ara noastr. Legat de domenii, pot spune c fiecare regiune are specificul ei, sunt zone mai puternic antreprenoriale, sunt zone mai puternic corporatiste i sunt zone unde dezvoltarea economic intr n regres. Una peste alta, suntem optimiti pentru c peste tot pe unde am fost am ntlnit companii i firme care cresc n perioada crizei de la an la an, artnd c se poate i c atunci cnd vrei ceva cu adevrat i eti dispus s investeti mult munc i rbdare, succesul nu ntrzie s apar. De la astfel de oameni se pot inspira i pot afla soluii cei care particip la evenimentele Business

Laszlo Pacso - organizatorul Business Days

Da, aa este. Este esena evenimentelor Business Days s promoveze afacerile romneti i antreprenori sau manageri valoroi din mediul de afaceri autohton. Nu este uor, pentru c, din pcate consumatorii de astfel de evenimente prefer nc s plteasc pentru modele aduse din afara rii i mai puin pentru acei antreprenori care au ncercat i au reuit s obin succesul la noi n ar. Poate c nu toi sunt nc speakeri excepionali, dar informaiile transmise i mai ales dorina lor de a ajuta este mai sincer i mai de folos dect a oricrui strin care vine pentru o zi sau jumtate de zi s-i nvee pe cei prezeni metode i modaliti de a obine succesul bazat pe reete care funcioneaz n alt ar, fr s cunoasc n mod real care sunt nevoile, provocrile i problemele specifice ale mediului de afaceri din Romnia. Mai

www.todaysoftmag.ro | nr. 15/Septembrie, 2013

43

evenimente
Interviu: Business Days
Days. Business Days nu este despre cum poi deveni milionar peste noapte, ci este despre cum poi avea ansa la succes prin munca cinstit, susinut i prin cooperare, pentru c, da, credem n spiritul asociativ i credem c pentru succes pe termen lung este nevoie s ne gsim parteneri, asociai, investitori i finanatori care s neleag i s cread n afacarea noastr, iar pentru asta trebuie s nvm s fim transpareni n comunicare i n relaii. Cu ce ar trebui s rmn un participant BD dup participarea la cele dou zile ale evenimentului? Cel puin cu trei lucruri: inspiraie, experien i contacte de afaceri. Acesta este i motto-ul nostru: Inspiraie, experien i oportuniti pentru cei care vor s genereze valoare n Romnia. Dac primele dou sunt greu cuantificabile ca valoare i doar timpul i practicarea celor nvate poate genera ntr-o oarecare msur o apreciere a lor, ultima este clar i evident. Am s dau un exemplu: un CEO la o companie care particip la o sesiune de microntlniri, n prima zi, la o sesiune de tipul open n a doua zi i folosete aplicaia matchmaking nainte, n timpul i dup eveniment, poate genera undeva n jur de 25 + 99 + 100 = 224 de lead-uri la un eveniment, cu persoane despre care tie cel puin 4 informaii: cine este, din ce domeniu, ce funcie are, unde l poate ajuta i n ce domenii, unde are nevoie de ajutor sau unde caut referine. Mai mult de att, peste 70% dintre cei care au completat chestionarele i au participat la sesiunile de business networking la evenimentele Business Days apreciaz c n urma acestor ntlniri se ateapt la venituri de peste 10.000 de lei, dar jumtate dintre ei estimeaz la peste 100.000 de lei valoarea acestor afaceri viitoare. Cred c aceste cifre vorbesc de la sine. Cu o investiie de maxim 100 de euro, ai 70% anse s generezi peste 2.500 euro afaceri i 100% anse s i creti baza de date cu peste 200 de contacte cu care ai interacionat i ai avut fie o scurt discuie, fie ai corespondat prin aplicaie, fie te-ai intersectat la workshopuri i mese rotunde. bine mediul de afaceri i nevoile lui. Vom avea aplicaia de matchmaking, ce este oferit gratuit tuturor celor prezeni. Vom avea n premier naional un demers comun ntre mediul academic, administraia local, societatea civil i mediul de afaceri de a crea o dezbatere legat de strategia pe termen lung a oraului, cu focus pe atragerea de investitori strini, inclusiv prin implicarea comunitii de expai la acest eveniment. Fa de acestea, vom avea diverse manifestri suplimentare i vom extinde aria de impact prin suportul pe care l vom oferi unor start-up-uri prin posibilitatea de a-i testa ideea de afaceri n faa celor prezeni la eveniment i prin facilitarea ntlnirilor cu civa business angels i investitori. evenimentele noastre i este una dintre cele mai dinamice din ara noastr, mai ales cea software. Motiv pentru care la evenimentul de la Cluj din 25-26 septembrie chiar vom organiza o sear de ntlnire ntre membrii comunitii de IT din zon. BD este un eveniment mare pentru piaa din Romnia. Ne putei spune ce nseamn organizarea unui astfel de eveniment? Este o munc foarte grea, cauzele sunt multiple, dar cea mai pregnant este mentalitatea nc n formare a consumatorilor de a plti pentru participarea la astfel de evenimente. De asemenea, exist o inflaie de evenimente pe pia, care nu ofer ntotdeauna experiena ateptat participanilor i sponsorilor. De aceea, pentru a ctiga ncrederea partenerilor, e nevoie de mult munc, pasiune i o preocupare constant pentru calitate. n plus, pentru a ne diferenia pe piaa evenimentelor, am ales s comunicm total transparent. Facem publice de fiecare dat nregistrrile video, fotografiile i mai ales infograficele cu prelucrarea datelor din chestionarele de feedback de la evenimentele anterioare, cu bune i cu rele. Prin aceast atitudine deschis i mai ales prin faptul c nu abandonm aceast cale orict ne este de greu, am reuit s strngem n jurul nostru parteneri, susintori, ambasadori, prieteni, fani i speakeri care ne susin aproape necondiionat. Este un sentiment frumos i care ne d acel imbold de care ai att de mare nevoie atunci cnd dai de greu. Business Days este n sine o poveste inspiraional, pentru c este un proiect pornit de o mn de oameni, n plin criz financiar, cu un buget 0, fr experien n organizare de evenimente, dar cu mult pasiune, capacitate de munc i rbdare.

Deoarece suntem o publicaie de IT, putei s ne spunei cteva cuvinte despre aplicaiile mobile devoltate de BD? Avem mai exact dou aplicaii, una este inclus n alta, dar ca funcionalitate sunt dou. Prima este o aplicaie pentru smartphone-uri i care are rolul de a facilita accesul de pe aceste terminale mobile ctre programul evenimentului, speakerii, canalul video, streaming-ul live, pagina de facebook, blogul i diverse componente interactive de comunicare prin platform. A doua aplicaie este cea de matchmaking meet-me, ce este oferit n mod gratuit fiecrui participant la un astfel de eveniment. Aplicaia permite cutarea, filtrarea i sortarea bazei de date cu participanii, dup patru criterii: domeniu de activitate, funcie, compania i numele permind astfel o uurare a procesului de identificare a potenialilor parteneri. Cu fiecare dintre cei identificai ca interesani se pot iniia dou aciuni: fie se solicit un schimb virtual de cri de vizit, fie se solicit o ntlnire undeva ntr-o zon special amenajat pentru astfel de ntlniri din cadrul evenimentului. Ambele aciuni se fac printr-un email de permisiune, astfel cel care primete solicitarea o poate accepta sau refuza i n cazul ntlnirii o poate reprograma n funcie de agenda sa. Accesul n aplicaie se face pe baza unui username i parole care se regsesc pe invitaia primit la finalizarea procesului de Am vzut c BD va reveni la Cluj n nregistrare. luna septembrie. Ce aducei nou n aceast ediie? Cum vedei evoluia pieei de IT n Fa de anul trecut, avem un program Romnia prin prisma participrii companimai interesant i mult mai bine adaptat. ilor de profil la eveniment? Venim a doua oar i cunoatem mult mai Piaa de IT este foarte prezent la

44

nr. 15/Septembrie, 2013 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE

management

Lean Six Sigma i managementul inovaiei

deea de inovaie este abordat de un numr ridicat de companii ce au n prim plan optimizarea proceselor sale interne i n final creterea valorii de afaceri plus beneficiul de a-i vedea clienii extreme de mulumii de produsele pe care acestea le ofer. Lean Six Sigma, o abordare relativ binecunsocut pentru obinerea unor rezultate excelente, performante poate s-i ajute pe directorii multinaionalelor s descopere noi oportuniti de inovare dincolo de prestarea simplelor operatiuni, s ating un grad ridicat de productivitate, o performant financiar solid precum i o nclinaie inerent ctre inovaie.
Monica Petraru
monica.petraru@urss.ro Senior Business Analyst @ UNIQA Raiffeisen Software Service

n piaa global de astzi tim cu toii c exist un mediu extrem de competitiv, toate companiile fiind n cutarea unor mbuntiri permanente Astfel, pentru a i atinge scopurile propuse, ele vor apela la consultani experi, acetia avnd ca scop aplicarea acestor metodologii. Multe dintre aceste organizaii sunt deschise la aplicarea modalitii de optimizare a performanei oferite de Six Sigma. n timp ce acest lucru constituie un punct de plecare excelent, prima ntrebare ar putea fi: Ce este mai exact Lean Six Sigma i cum difer ea fa de Six Sigma sau Lean? Dumneavoastr, dragi colegi din lumea IT i nu numai ar trebui s v punei urmtoarea ntrebare, Dac firma mea nu este n producie, atunci Lean Six Sigma s-ar putea aplica chiar i pentru organizaia mea? n acest articol, vom rspunde la aceste ntrebri mai pe larg, oferind o imagine de ansamblu a cadrului fundamental al acestei metodologii. nainte de a folosi o metodologie de mbuntire a proceselor din interiorul companiilor n care ne desfurm activitatea zilnic, e bine s tim cu ce anume avem

de a face. Astfel, este esenial s nelegem faptul c Lean, Six Sigma i Lean Six Sigma sunt trei metodologii total diferite. Evident, toate au ca epicentru al existenei lor obiectivul definirii valorii pentru client, iar prin valoare fiecare trebuie s neleag potenialul financiar al clientului de care acesta dispune i totodat suma pe care acesta ar dori s o investeasc. n acest sens, toate cele trei metodologii menionate n rndurile de mai sus presupun optimizarea proceselor prin reducerea pierderilor i simplificarea activitilor ce conduc la livrarea unui produs de valoare n final. n prezent, toat lumea a auzit de metodologia Lean Six Sigma i evident se ntreab ce este ea, de unde a pornit i cum trebuie aplicat pentru a se obine rezultatele dorite n final. Rspunsurile cutate i dorite nu sunt deloc complicate. E bine de remarcat faptul c la o prim vedere ne dm seama dup jocul de cuvinte Lean Six Sigma c aceast metodologie este o combinare a lucrurilor bune luate din Lean cu avantajele Six Sigma,putnd fi definit ca o abordare integrat, de management. Ea are n vedere

www.todaysoftmag.ro | nr. 15/Septembrie, 2013

45

management
Lean Six Sigma i managementul inovaiei
obinerea unei mbuntiri constante a proceselor. Pentru acestea se vor prelua att elemente ale metodologiei Lean cu scopul de a reduce timpul de desfurare a acestora apelnd la eliminarea factorilor de pierdere, ct i elemente din metodologia Six Sigma reprezentate de o diminuare a gradului de variabilitate a procesului. Aceast metod poate fi utilizat n orice companie sau firm unde se nregistreaz pierderi pe fluxul proceselor cu parametri de intrare sau de ieire care sunt variabile n timp. Lean Six Sigma este o evoluie natural a disciplinelor de mbuntire a calitii i proceselor care i au originea n anii 1950 n vederea eficientizrii mecanismului de fabricaie. Totul a debutat cu definirea unui accent pe mbuntirea calitii, n scopul de a reduce costul producerii materialului defect. Aceasta a evoluat n aplicarea principiilor similare pentru a mbunti eficiena procesului la nivelul unei fabrici, prin eliminarea de efort irosit doar pentru manufacturarea cantitii necesare, nu de supraaglomerare a depozitelor. De-a lungul timpului, alte pri ale organizaiei au simtit nevoia de a aborda aceast perspectiv de eficientizare a proceselor , un exemplu relevant n acest sens fiind i departamentele comerciale din cadrul unei ntreprinderi. n timp ce n Lean se utilizeaz evenimentele de tip Kaizen, cartografierea Framework ul DMAIC fluxului de valoare, echilibrarea ncrcrii DMAIC ilustreaz o metodologie de de lucru i analiza deeurilor, metodologia Six Sigma va aborda modelul DMAIC (Definire, Msurare, Analiz, mbuntire, Control) n vederea reducerii variabilitii proceselor printr-o orientare mai adnc spre client. Astfel se va mbunti perspectiva de nelegere a punctelor critice ale fiecrui produs sau ale serviciului oferit i prin luarea unor decizii pe baza valorilor disponibile i a circumstanelor avute n vedere. n tabelul de mai jos se pot observa trsturile celor dou metodologii descrise n Sursa: www.sixsigmadaily.com rndurile de mai sus: proiect extrem de riguroas ce are ca Lean Six Sigma obiectiv esenial creterea gradului de Obiectiv Eliminarea Eliminarea capabilitate i totodat cel de reducere pierderilor variatiei a defectelor identificate ntr-un proces optimizarea serviciilor, produselor Creterea Eliminarea sau proceselor existente din cadrul unei nivelului de defectelor companii / firme. Este necesar parcuroptimizare a procesului gerea urmtoarelor etape: 1. Definire Focusare Vitez i Calitate maxim cost 2. Msurare 3. Analiz 4. mbuntire Instrumente Evenimente Analiz Pareto, 5. Control necesare de tip chart uri de
Kaizen control Value stream mapping Work load balancing 7 wastes Analiz statistic, realizarea experimentelor

Diferena dintre Lean, Six Sigma i Lean Six Sigma

1. Denire
Obiectivul acestei etape este acela de a stabili obiectivul i scopul proiectului. Colectarea informaiilor necesare legate de proces i client. Momentan, obiectivele finale ale proiectului se vor estima n funcie de toate cunotinele legate de obiectivele strategice ale companiei, doleantele clienilor, ct i de procesul care e destinat mbuntirii. Se dorete atingerea unui nivel mai nalt de tip sigma.

Lean i Six Sigma sunt ambele discipline pentru remedierea permanent a proceselor din cadrul unei companii, dar acestea difer n stabilirea obiectivelor primordiale i manierelor de abordare Lean este o disciplin n care obiectivul este acela de a elimina deeurile i eficiena procesului de cretere printr-un accent pe optimizarea vitezei i costurilor. Lean e definit ca o disciplin ce are ca obiectiv asigurarea stabilitii proceselor prin reducerea pierderilor i simplificarea activitilor ce ofer clientului valoare Pentru orice elemente precum reducerea pierderilor, fluxul de valoare, flexibilitatea proceselor reprezint componente arhetipale ale unei structuri sau companii de tip Lean, indiferent de domeniul de activitate sau de sectorul n care se presteaz activitiile: producie, servicii publice, de sntate, financiare etc. . Daca Lean asigur stabilitatea proceselor i desfurarea acestora ntr-un flux continuu, metodologia de management Six Sigma se focuseaz pe mbuntirea calitii prin diminuarea variabilitii apelnd la diverse instrumente statistice i calitative.

Pe baza definiiilor enunate anterior, metodologia Lean Six Sigma e definita ca un hibrid: preia elemente att de tip Lean, ct i Six Sigma. Este nevoie de o abordare pragmatic de mbuntire a proceselor din cadrul unei companii, cu un accent pe ceea ce este necesar i important pentru 2. Msurare client. Caracteristici precum time focu nelegerea procesului . sed strategy din Lean cu instrumentele de Focusare maxim pe efortul de analiz statistic abordate de metodologia mbuntire a situaiei curente. Six Sigma, care permite o soluie flexibil Stabilirea unui nivel al capabilin contextul abordrii unui set complex de tii optim pentru obinerea unui grad probleme. ridicat de performan a procesului. Axul central al metodologiei Lean Six Sigma este reprezentat de framework ul 3. Analiz DMAIC (Definire, Msurare, Analiz, Odat ce datele iniiale au fost mbuntire, Control). Dup cum se stabilite, ulterior se va putea identifica poate observa a fost preluat i de ctre de unde provin cauzele mult mai facil. acest hibrid, n special pentru proiecte care n aceast faz, prin urmare, se vizeaz mbuntirea proceselor de afaceri pot localiza i identifica cauzele, ct i existente. confirmarea lor prin utilizarea unui set

46

nr. 15/Septembrie, 2013 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE


acestei metodologii. Orice persoan care dorete s devin iniiat n aceast metodologie sau efectiv s se implice n implementarea ei, poate s remarce faptul c Lean Six Sigma msoar performana unui produs sau proces la nivel statistic (sau gradul de satisfacere a doleanelor consumatorilor). Totodat, aceast metodologie furnizeaz organizaiilor toate instrumentele necesare n vederea optimizrii capabilitii proceselor sale, creterii performanei mediului de afaceri Sursa: deakinprime.com i reducerii variaiei rezultatelor proceselor calitate superioar a produselor si de date concrete. Astzi, companiile folosesc principiile serviciilor. de baz ale metodologiei Lean Six Sigma n 4. mbuntire vederea obinerii urmtoarelor target - uri: Definirea si validarea sistemu Focalizarea efectiv asupra doleanlui de monitorizare i control a noului elor clientului creterea satisfaciei proces. consumatorului; Identificarea potenialelor moda Creterea profitului; liti de optimizare. mbuntirea calitii produselor; Elaborarea unor studii pilot. Creterea mulumirii n rndul Corectarea / Reevaluarea soluiei angajailor; poteniale. Reducerea costurilor de operare i recuperri majore ale capitalului investit; 5. Control Mecanism de generare al manage Controlul performanei noului mentului schimbarii; proces. Reducerea defectelor; Definirea unor standarde interne Cultivarea gustului extraordinar de i proceduri de lucru. a excela; Implementarea unui proces de control statistic. Posibile capcane ce pot surveni de-a lun Realizarea unui plan de proces de gul implementrii acestei metodologii control statistic. Lean Six Sigma ofer o metodologie Determinarea capabilitii noului i un set de instrumente pentru a conduce proces. la mbuntirea continu printr-o analiz Elaborarea i transferarea soluiei bazat pe fapte i feedback permanent din ctre beneficiarul proiectului. partea clientului. Deseori, aceast sim R e d u c e r e a c o s t u r i l o r plitate este pierdut n zelul de a obine i creterea profitului. rezultate msurabile ct mai rapide, iar Finalizarea proiectului i a companiile nu reuesc s vad succesul documentaiei. iminent. Aici se pot identifica unele dintre cele mai comune capcane ntlnite: Concentrarea asupra studiului n Implementarea metodologiei Lean Six vederea obinerii certificrii; Sigma n cadrul rmelor sau a marilor Evitarea echilibrrii alocrii de companii resurse; Dac tot am vorbit pn acum din Focusare maxim asupra colectrii punct de vedere teoretic, cu siguran ct mai multor date; aspectele aduse n prim plan trebuie Implementarea unui program rigid transpuse i n practic, n cadrul activitaxat pe modele standardizate; ilor noastre zilnice. Devierea de la respectarea pailor Aadar, v propun s v imaginai n caracteristici metodologiei DMAIC; ipostaza unui manager de multinational, Presupunerea faptului c persoanele a cror procese sunt complexe i dificile. certificate au veleiti de profesare specintrebarea e ce vom face mai departe penfice managementului de proiecte; tru a optimiza aceste procese Tendina de a obine cele mai bune rezultate din primul moment al abordrii
www.todaysoftmag.ro | nr. 15/Septembrie, 2013

Concluzie

47

HR

programare

Empatia noua competen

Antonia Onaca

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

n prezent n psihologie exist trei conceptualizri diferite ale conceptului de empatie: 1. nvarea contientizrii strilor interioare ale unei alte persoane, gndurilor, percepiilor i motivelor. Semnificaia proceselor cognitive este mare i datorit acestora o persoana este capabil s perceap, recunoasc i pn la un anumit nivel s anticipeze strile celor din jur. n acest context se discut i de acurateea empatiei. 2. Empatia este o reacie afectiv fa de o alt persoan, o armonizare a strii emoionale interne la starea unei alte persoane. Focusul n aceast situaie este pe procesul de empatie i nu pe rezultatul acesteia. 3. Empatia este o combinaie de mecanisme cognitive i emoionale unde procesele cognitive mediaz activarea emoional. Interpretarea unei anumite situaii declaneaz o reacie emoional caracterizat prin acceptarea perspectivei celeilalte persoane. Din aceasta perspectiv, empatia este nelegerea non-egocentric a celorlali coordonat de emoii. Empatia este prezentat alturi de altruism i afiliere i este printre principiile de baz ale comportamentului pro-social dar este diferit de mil sau simpatie (care pot aprea ca i sub-concepte) (sursa: Alina Cogiel, PhD., Psychology Department, University of Ostrava) Empatia este definit ca fiind capacitatea de a sta n papucii altcuiva. Aceasta este definiia pe care o folosim cu toii. Specialitii n domeniu definesc empatia cam la fel, poate prezentnd mai multe faete. De ce scriu despre empatie? n primul rnd pentru c este un cuvnt tot mai des ntalnit. Nu este un cuvnt nou dar n prezent are foarte mult acoperire n mediul de pres de business. Acum empatia este considerat acea calitate de care trebuie s se in cont n mediul profesional. Sunt de acord cu aceasta i probabil muli alii sunt de acord, dar nu pentru c e la mod, ci pentru un aspect pur obiectiv i utilitar. Empatia, atunci cnd este prezent, ne ajut sa interacionm cu cei din jurul nostru n feluri mult mai relevante, indiferent c vorbim de colegi, subalterni, clieni, etc. . Voi ncerca s ofer o aplicabilitate foarte specific empatiei n aa fel nct s nu simim c e doar o filozofie dragu i n prezent cool. Voi analiza modul cum se aplic ea n dezvoltarea de produse sau servicii. Empatia ne permite s construim produse sau servicii care s fie mulate pe nevoile beneficiarilor lor. Am auzit de foarte multe ori formulri de genul adaptat la nevoi i probabil tim cu toii ce nseamn aceasta. Empatia reuete s ne conduc spre o perspectiv nuanat i foarte fin a nevoilor beneficiarilor notri. Cum face acest lucru? Haidei sa intrm n nuanele definirii empatiei. Descoperind acele nuane vom nelege cum funcioneaz dar i cum putem s dezvoltm empatia mai departe de trstur. Nu voi intra n detalii, dei dac va trezesc curiozitatea cu acest articol v recomand s v documentai n detaliu despre acest proces1. n primul rnd majoritatea celor specializai n empatie spun c aceasta este un proces i nu o stare. Dac vei intra n documentare vei afla c are o component genetic i una de mediu. Aceasta nseamn c ne natem cu o predispoziie mai mare sau mai mic spre empatie ns aceasta poate fi extins sau restrns n funcie de factori contextuali. De asemenea vei afla c ea apare exprimat de la vrste foarte fragede i c problemele legate de empatie se vd n autism si sociopatie.
1 youtube: the empathic civilization; baza de date: Center for Building a Culture of Empathy

48

nr. 15/Septembrie | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE


Empatia n componentele sale (aceast foarte mult psihologia dar pe scurt: clasificare este regsit n majoritatea defiEmoiile sunt shortcut-uri care ne niiilor, dei cu alte etichete) presupune: semnalizeaz ceva (pozitiv sau negativ). Ele vin ca urmare a unei interpretri/procesri a unui context sau situaii n funcie de sistemul nostru de procesare intern. Putem spune c emoiile sunt consecine ale unei interpretri. Mai putem spune i c emoiile sunt mai nuanate dect m simt bine/ru. Reaciile comportamentale (ceea ce fac) precum i alte reacii sunt i ele consecine ale felului n care interpretez realitatea. Putem concluziona atunci c a practica empatia presupune s identificm ce simte si ce face cineva n relaie cu motivul Pare foarte logic aceasta definire ale pentru care simte i face acel ceva. Mai componentelor conceptului de empatie pe scurt a practica empatia presupune s ns nu ne spune exact ce i cum. Haidei s nelegem ce date au intrat i cum au fost vedem ce nseamn n acest context cuvn- ele procesate/interpretate pentru a duce tul capacitate. la rezultatul emoia x sau comportaAutoempatia se refer la a avea nivelul mentul y. de introspecie necesar n aa fel nct s Cred c este deja evident cum ne ajut putem s identificm foarte clar ce sim- empatia n dezvoltarea de produse sau im i de ce simim acel lucru. Empatia n servicii. oglind este foarte strns legat de compoEmpatia: nente neuropsihologice ns ea presupune ntelegem ce simte i face un utilict de infectabili suntem de strile celor zator ca urmare a interaciunii cu un din jur. Empatia cognitiv presupune s anumit produs sau serviciu. avem suficiente cunotine despre siste ntelegem de ce simte i face (prin mul de operare uman nct s putem sa nelegerea algoritmului de interpretare analizm procesele ntr-un mod detaat a experienei de interaciune cu acel prode propria noastr stare doar lund n dus sau serviciu). considerare algoritmii prezeni n cealalt persoan. Aciunea empatic presupune c Astfel, dac dorim ca utilizatorul nostru dup ce am neles mecanismul, s putem s simt/fac un anumit lucru i construim identifica acea aciune asupra acestuia care acel context care va fi interpretat n aa fel poate produce modificrile dorite n siste- nct s genereze consecinele pe care le mul specific al celorlali. dorim ceea ce presupune ca vom cunoate n concluzie, empatia, fie c este ori- ndeaproape alogoritmul lui de procesare/ entat nspre noi, spre altcineva sau spre interpretare. grupuri de oameni presupune o cunoatere Dac vrem ca el s simt/fac un anumit a strii. Starea este cum ne simim adic lucru ntr-un anumit fel i ntr-un anumit emoii dar presupune si nelegerea felului context, n primul rnd cunoatem algoritn care se formeaz acele emoii i cum se mul i apoi ncercm s l modificm. exprim acele emoii precum i relaia acesn consecin, a folosi procesul empatora cu comportamentele. Voi simplifica tic presupune s cunotem algoritmul de procesare al fiecrui individ pentru c atunci vom avea un insight n ce output genereaz i cum putem s schimbm algoritmul pentru a genera un nou output. Singura meniune pe care doresc s o fac este c fiecare algoritm e personal i de multe ori nu este unul raional. Putem s credem c oamenii ar trebui s gndeasc sau s simt sau s se comporte ntr-un anumit fel pentru ca aa este logic dar aceasta nu nseamn c aa se va ntmpla. Aplicnd empatia nu cutam ca un algoritm s fie logic ci pur i simplu ncercm s identificm care este algoritmul. Fcnd acest lucru putem s construim produse/servicii, s interacionm cu cei din jur, s exersm leadership sau s construim un sales pitch care creeaz acele emoii sau comportamente pe care le ateptm.

www.todaysoftmag.ro | nr. 15/Septembrie, 2013

49

sponsori

Comunicm mai simplu direct prin SMS. Propune un titlu de articol pentru numrul urmtor sau trimite-ne sugestiile tale.

powered by

SMS 0371700018
numr cu tarif normal

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