Sunteți pe pagina 1din 54

No.

36
June
www.todaysoftmag.ro
www.todaysoftmag.com
Nr. 44
www.todaysoftmag.ro
www.todaysoftmag.com
No.
36Februarie
June2015
20152016
www.todaysoftmag.ro
www.todaysoftmag.com

TSM

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

e
Haos, meme i tipare d
design software

r web
Testarea serviciilo
I
folosind SOAP U

Harmony in Cross-Browser Testing


Harta testrii
Provocari n scenarii Dev/Test/DevOps i
cum ne poate ajuta Microsoft Azure
Adoptarea unei culturi DevOps
Using Machine Learning in
Revenue Management
De la business la implementare.
Cum alegem CRMul?

Composer si Packagist
Vedetele PHP-ului
Sigurana psihologic i
coeziunea de echip
Ce pregateste statul roman pentru
domeniul IT&C ?
Cum rspundem n 2030 la ntrebarea
Ce faci astzi?
Gogu i sofismele

Testeaz-i
abilitile

programez.ro

n curnd

7
Metode moderne de
invocare a muzei
Emilia Man

8
Soluii inspirate pentru
orae inteligente
Cristina Juc & Cristina Tare

11
Armonie n
Cross-Browser Testing
Roxana Soporan

13
Testarea serviciilor
web folosind
SOAP UI
Ioana Lua

16
Harta
testrii
Claudiu Draghia

18
Crearea unui Microsoft Band Tile
pentru a direciona notificrile de
stare a construciei
Radu Vunvulea

21
Adoptarea unei
culturi
DevOps
Claudiu Demian

24
Haos, meme i
tipare de design
software
Ariel Pontes

27
Utilizarea Machine Learning
n gestionarea veniturilor
Marius Radu

30
TFS ca platform
de colaborare (II)
Dorin Cazan

33
De la Business la implementare.
Cum alegem CRMul
Georgiana Gligor

35
Composer i Packagist,
vedetele PHP-ului
Radu Murzea i Ctlin Criste

38
Care sunt provocrile n scenarii
Dev/Test/DevOps i cum ne poate ajuta
Microsoft Azure
Mihai Ttran

41
Sigurana psihologic i
coeziunea de echip
tefania Duica

45
Calculul
salarial
n 2016
Delia Mircea

47
Ce pregateste
statul roman
pentru domeniul IT&C?
Ioana Varga

49
Echilibrul via-munc i generaiile pieei
muncii. Cum rspundem n 2030 la ntrebarea
Ce faci astzi?
Florentina ipeean

51
Gogu i sofismele
Simona Bonghez

editorial

cum patru ani, n luna februarie am lansat revista Today Software Magazine
alturi de un grup de prieteni. Astzi ne bucurm s fim o referin n domeniu, cu peste 700 de articole disponibile n romn i englez i aproape 400 de
autori diferii. Mulumim colaboratorilor, cititorilor pentru interesul crescut i companiilor care susin acest proiect: Gemini Solutions, ISDC, 3Pillar Gobal, Endava, Fortech,
Accesa, Betfair, Yardi, Accenture, Telenav, Mozaic Works, VE Interactive, Siemens,
Colors in projects. V promitem s o inem tot aa i s investim la fel de mult pasiune!
Ovidiu Man

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

Pasiunea pe care o ai sau nu trebuie s o ai dac eti programator a reprezentat un


subiect interesant de discuie la evenimentul de lansare din luna ianuarie. Inevitabil
s-a ajuns la tabere pro sau contra unei perspective, dar i la perspective echilibrate. A
fi programator doar pentru a-i asigura venituri rezonabile i nu neaprat din pasiune
este un mod de a te raporta la o profesie pe care muli l consider justificat ntr-o
societate n etern criz ca a noastr. Punctul meu de vedere este n favoarea pasiunii.
Cred c veniturile sunt un factor important, dar nu ar trebui s defineasc o direcie de
dezvoltare personal. Ca argumente care s susin punctul meu de vedere stau i diverse
articole pe teme motivaionale publicate n TSM. Fr pasiunea pentru programare,
fr plcerea de a descoperi soluii la probleme, de a te bucura de aplicarea ultimelor
tehnologii este greu de continuat ntr-un mediu foarte concurenial. Personal, dup
civa ani de activitate care a pus accent mai mult pe management i antreprenoriat, am
avut oportunitatea de a m ntoarce la programare. Este o plcere pe care probabil nu
o poi echivala cu nici o alt activitate iar satisfacia este pe msur. V sftuiesc aadar
s facei la rndul vostru ceea ce v place sau s v ntrebai la finalul zilei dac asta este
ceea ce v place s facei cu adevrat.
Tema principal a acestui numr este testarea, aa cum reiese din seria de articole
subordonate acestei teme: Harmony in Cross Browsing Testing, Testarea serviciilor web
folosind SOAP UI, Harta testrii i Care sunt provocrile n scenarii Dev/Test/DevOps
i cum ne poate ajuta Microsoft Azure. Continum cu Haos, meme i tipare de design
software, un articol interesant despre Memetic, o tiin despre propagarea ideilor
i influena acestora asupra noastr. Utilizarea machine learning n mbuntirea
afacerilor arat posibilul impact pozitiv de folosire a tehnologiilor big data n analiza
businessurilor. Continum cu o analiz i o evaluare a CRM-urilor (Customer
Relationship Management) existente la ora actual: De la business la implementare. Cum
alegem CRM-ul. Crearea unui Microsoft Band Tile pentru a direciona notificrile de
stare a construciei prezint o soluie de notificare a echipei de dezvoltare software despre
faptul c a czut un test de integrare direct pe dispozitivul Microsoft Band 2. Finalizm
acest numr cu dou articole din zona de contabilitate, un domeniu care demonstreaz
un interes crescut din partea cititorilor: Calculul salarial n 2016 i Ce pregtete statul
roman pentru domeniul IT&C ? ncheiem acest numr cu o nou apariie a personajului
comic care vine cu informaii interesante din zona de managementului proiectelor:
Gogu !

V dorim lectur plcut !!!

Ovidiu Man

Founder Today Software Magazine

nr. 44/2016, www.todaysoftmag.ro

Redacia Today Software Magazine


Fondator / Editor in chief: Ovidiu Man
ovidiu.matan@todaysoftmag.com

Lista autorilor
Delia Mircea
delia@contzilla.ro
@Contzilla.ro

System Administrator
@ Yardi Romania

Emilia Man
emilia.matan@todaysoftmag.com

Ariel Pontes
ariel.pontes@3pillarglobal.com

Copyright Corector
@Today Software Magazine

Python Developer
@3 Pillar Global

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
Contabil : Delia Mircea
delia.mircea@todaysoftmag.com
Programator junior: Alexandru Dini
alexandru.dinis@todaysoftmag.com
Marketing i tehnoredactor:
Ana-Maria Bivol
anamaria.bivol@todaysoftmag.com
Tipar realizat de Daisler Print House

Claudiu Demian
claudiu.demian@yardi.com

Cristina Juc
cristinajuc@gmail.com
Organizatoare
@ Startup Weekend Cluj

Marius Radu
marius.radu@fortech.ro
Software Developer
@Fortech

Cristina Tare
cristinatare@gmail.com

Dorin Cazan
dorin.cazan@siemens.com

Organizatoare
@ Startup Weekend Cluj

Service specialist
@Siemens

Roxana Soporan
Roxana.Soporan@isdc.eu

Georgiana Gligor
gb@tekkie.ro

Tester
@ ISDC

Owner
@Tekkie Consulting

Ioana Lua
ioanal@bissoft.ro

Radu Murzea
rmurzea@pentalog.fr

QA Engineer
@ Bissoft

PHP Developer
@Pentalog

Produs de

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

Claudiu Draghia
claudiu.draghia
@capgemini.com

ISSN 2284 6352

Quality Manager
@Capgemini

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

Ctlin Criste
ccriste@pentalog.fr
PHP Developer
@Pentalog

Mihai Ttran
mihai.tataran@avaelgo.ro

Radu Vunvulea
radu.vunvulea@iquestgroup.com

Microsoft MVP,
Co-organizator
@ITCamp Avaelgo

Senior Software Engineer


@iQuest

tefania Duica
Stefania.Duica@endava.com

Florentina ipeean
florentina@happy-employees.com
Consulting Manager
@Azimut Happy Employees

IT Recruiter
@Endava

Ioana Varga
ioana.varga@aiconsulting.ro
Expert contabil Managing Partner
@ A&I Consulting

Simona Bonghez
simona.bonghez
@colorsinprojects.ro
Speaker, trainer i consultant
@Owner of Colors in Projects

www.todaysoftmag.ro | nr. 44/februarie ,2016

startup-uri

Startup-uri

Room planner

beta.programez.ro

O soluie de planificare a spaiului 3D, foarte util din perspectiva


aranjrii obiectelor n cas. Uor de utilizat, aceasta ofer utilizatorului ca n cteva minute s i testeze modul n care va fi decorat
apartamentul sau casa i s se plimbe efectiv prin ea. Toate acestea
fr a se instala aplicaii complexe i de asemenea gratuit. Acest produs a fost construit de ctre Arxia i lansat ca public beta n aceast
lun.

Programez.ro este o soluie care d utilizatorului


posibilitatea de a-i testa cunotinele online fr a aplica
obligatoriu la un job. Prin rezolvarea acestor teste, cel
implicat poate s-i evalueze nivelul competenelor i s-i
construiasc un profil profesional validat. De asemenea,
programez.ro ofer companiilor ocazia de a-i eficientiza
procesul de selectare a candidailor, prin recuperarea unui
timp pe care n mod obinuit l-ar fi consumat n desfurarea
de interviuri. Programez.ro este un proiect Today Software
Magazine.

Link: http://roomplanner3d.planningwiz.com/

Link: beta.programez.ro

DeviceHub.net

Rocketbook Wave

DeviceHub.net este un serviciu cloud care ajut utilizatorii


s obin date de la dispozitivele IoT connectate la internet. Prin
procesarea datelor primite de la senzori se pot realiza notificri,
automatizarea proceselor n domenii precum: agricultura, transport,
smart cities, case inteligente, medical i multe altele. Exist librrii
pentru integrarea cu API-ul REST n Phyton, C++ i PHP.

Rocketbook este o combinaie de carneel i un pix special plus un serviciu cloud de comunicare cu principalele
aplicaii de documente precum Google Drive, Evernote
sau OneNote. Utilizatorul realizeaz schie care sunt automat publicate n aplicaiile specifice ale utilizatorului iar n
funcie de simbolurile adugate desenate se pot lua diferite
aciuni. Odat umplut, carnetul poate fi ters prin introducerea acestuia ntr-un cuptor cu microunde.

Link: devicehub.net

Link: https://www.kickstarter.com/projects/642311833/rocketbook-wavecloud-connected-microwavable-noteb?ref=category_popular

nr. 44/februarie, 2016 | www.todaysoftmag.ro

educaie

TODAY SOFTWARE MAGAZINE

Metode moderne de invocare a muzei

e multe ori, cnd vrem s scriem un text, amnm momentul justificndu-ne prin lipsa inspiraiei. Asemenea poeilor antici, ne
gndim c nu ar strica s invocm solemn vreo muz. O facem, dar muzele cunosc cel mai bine graca veche i latina, aa c nu
mai insistm. Apoi ne amintim de seara petrecut cu amicii la bere, cnd acetia ne-au dat calificativul ,, genial pentru prestaia
avut la ultimul banc pe care l-am spus. Stm la pnd spernd s mai detectm mcar un licr din genialitatea de care te-au asigurat atunci.
suscite curiozitatea. Dup ce am decis asupra subiectului, vrem ca ideile cu privire
la acesta s fie originale. Cum depistm
n toat avalana de idei pe care le avem
pe acelea care sunt inedite i pertinente?
O metod eficient care ne ajut s trecem
peste starea de blocaj sau de pasivitate i
s reactivm tot ceea ce cunoatem despre subiectul ales, este scrierea liber.

Paul Cezanne (1839 1906) Srutul muzei

Degeaba! Ideile tot nu ne vin. Nu ne


mai rmne s avem i noi ca geniile
romantice dect ntunecatul pesimism. Dar
ca tritori n mileniul trei, suntem oameni
practici i dup ce am citit dintr-o suflare
cartea cu un posibil titlu ,, Cum s devii
fericit i eficient n trei pai, ncepem s
gndim pozitiv i cutm soluii. Dac nu
intenionm s realizm un studiu consistent centrat pe o tem general cruia s-i
acordm timp ndelungat de cercetare, ci
avem de redactat un text care s se ncadreze ntr-un numr limitat de pagini sau
caractere, este de preferat s evitm subiectele cu teme mari. Aa reducem riscul unei
abordri superficiale i incomplete, precum
i riscul de a stagna la etapa de introducere
sau la o perspectiv exclusiv descriptiv.

Timp de 10-15 minute, scriem un scurt


text cu toate ideile ce ne vin n minte despre subiect, fr a fi atent la ordinea lor i
fr a ne preocupa neaprat de corectitudinea exprimrii. Inspirat din dicteul
automat al poeilor avangarditi care-l
foloseau ca principiu de creaie, scrierea
liber are avantajul de a scoate la suprafa
din colurile memoriei, asocieri surprinztoare de idei, precum i cunotine pe care
nu bnuiam c le deinem. Reeaua de idei
sau pnza de pianjen este o alt metod
care, prin apelul la scheme, reprezentri
grafice sau dispuneri n reea, evideniaz
mobilitatea conexiunilor ntre idei, modul
cum se grupeaz n jurul unor concepte
cheie sau cum se genereaz una pe alta.

not sau o observaie pe marginea unui


paragraf citit, nvingndu-ne astfel teama
de a scrie i de ane exprima propriul punct
de vedere. Aceste cteva metode expuse au
rolul de a ne nvinge teama n faa paginii albe sau a ecranului i de a ne ajuta s
imprimm o not de autenticitate textului
scris de noi, dar nu ne garanteaz calitatea tiinific a coninutului. Aceasta este
condiionat de seriozitatea i consecvena
cu care autorul se documenteaz , studiaz
bibliografia tiinific anexat subiectului sau de experiena pe care o deine n
domeniul abordat.

Emilia Man
emilia.matan@todaysoftmag.com
Copyright & Corector
@Today Software Magazine

Soluia la pana de idei poate fi i consultarea agendei de idei, adic s ne uitm


n acel carneel pe care l purtm tot timpul
la noi i n care ne notm ideile inspirate.
Se tie c multe dintre mreele idei s-au
nscut nu neaprat n faa unui birou ci te
miri unde: de la mrul lui Newton i cada
lui Arhimede la concertul unde Kandinsky
are revelaia picturii abstracte. Aadar,
cnd suntem n main, vedem un film,
citim o carte, conversm sau ne certm
s-ar putea ca muza s apar neinvitat
Aadar, n loc de ,, Limbajul Java sau i s ne aduc vreo idee interesant.
,, Procesele n programare, un subiect
mai mic de tipul ,, Stand-up meeting sau Dac nu avem o agend de idei, atunci
,, Librriile de treading n Java are mai s ne facem una! De asemenea, este bine
multe anse s devin atrgtor sau s s valorificm orice impuls de a face o
www.todaysoftmag.ro | nr. 44/februarie, 2016

evenimente

Soluii inspirate pentru orae


inteligente

umea n care trim este n continu micare. Totul crete i se dezvolt zilnic, cu
o vitez ameitoare. Este incredibil modul n care reuim s gsim noi modaliti
de utilizare a aplicaiilor mobile pentru a ne face viaa de zi cu zi mai uoar.

Cristina Juc
cristinajuc@gmail.com
Organizatoare
@ Startup Weekend Cluj

Cristina Tare
cristinatare@gmail.com
Organizatoare
@ Startup Weekend Cluj

Oare v amintii de The Jetsons,


familia ce locuiete ntr-un ora utopic,
unde mainile zburtoare sunt la ordinea
zilei, extrateretrii i hologramele sunt o
apariie comun, iar casele i aparatele
electronice sunt controlate prin simpla
apsare a unor butoane? Ceea ce era de
domeniul fantasticului n anii 60 ncepe
s devin realitate. The Internet of Things
a schimbat multe dintre lucrurile cu care
eram obinuii cndva. Avem maini inteligente, care pornesc i pot fi controlate cu
ajutorul unor aplicaii mobile. Cluzele
auditive sunt de mare ajutor pentru cei
cu dificulti de vedere, ajutndu-i s
navigheze mai uor, att n spaiul propriei locuinei, ct i n exterior. Venica
ntrebare legat de Ce vom mnca la
cin? i-a gsit rspunsul tot n aplicaiile
mobile, iar acum ai restaurante ntregi la
distan de un singur click.

nceputul. De vreme ce exist nc att


de multe zone neexplorate n acest domeniu, Startup Weekend Cluj organizeaz
n aceast primvar o ediie special care
are ca subiect oraele inteligente - Smart
Cities.
Dac i doreti s schimbi modul n care
trim i interacionm unul cu cellalt,
acesta este locul n care trebuie s vii.
Contribuie la soluionarea problemelor,
dezvolt soluii inteligente pentru orae
i locuitorii acestora. Indiferent dac
i doreti o cas operabil digital, noi
modaliti de gestionare a domeniului
sntii, un mod accesibil de abordare
a dezvoltrii economice, pentru toate
acestea exist spaiul potrivit pentru dezvoltare i evoluie, la Startup Weekend
Cluj - ediia Smart Cities.

Imagineaz-i c ntr-o zi fiecare ntreConsiderai c acestea sunt soluii bare va avea un rspuns, fiecare problem
inteligente? Noi credem c este doar va fi de domeniul trecutului. Depinde

nr. 44/2016, www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE

doar de noi dac ne dorim aceast realitate. Cerul este limita


pentru ceea ce poate fi fcut. De fapt, cerul nu mai reprezint o
limit i nici imaginaia, pentru c atunci cnd o aduci n interiorul unei echipe, potenialul ei crete exponenial. Spaiul verde
i activitile de recreere, strzile i cldirile, transportul, sportul,
sntatea, cultura, educaia - sunt att de multe domenii n care
i poi contribui cu experien i cunotine.
Ediiile precedente de Startup Weekend Cluj au strns peste
450 oameni curioi i dornici s nvee n timp ce lucreaz la
mplinirea unui vis, 139 de idei care i-au gsit locul pentru a fi
ascultate, 57 de echipe care au lucrat mpreun, ghidai de peste
50 mentori captivani i inspiratory. Mai bine de 70 de comuniti
i parteneri media ne-au ajutat s crem i rspndim o atmosfer frumoas.

soluii inspirate, care vor contribui la dezvoltarea unor orae


inteligente.
Mai multe detalii i nouti poi gsi pe pagina noastr de
Facebook1, sau ne poi urmri pe Twitter: @SWCluj i #SWCluj.
Iar pentru orice ntrebare, sau sugestie, ne poi scrie la cluj@
startupweekend.org.

www.facebook.com/StartupWeekendCluj

Pentru a fi sigur c eti primul care afl cine vor fi mentorii


care vor ajuta echipele anul acesta, dar i pentru a fi la curent cu
toate anunurile ulterioare, asigur-te c eti alturi de noi. Cea
de-a V-a ediie Startup Weekend Cluj - Smart Cities, va avea loc
n perioada 8-10 aprilie 2016, n incinta Spherik Accelerator, str.
Grii nr. 21. Noi venim cu spaiul, resurse, mentori extraordinari i-i oferim oportunitatea de-a cunoate oameni pasionai
i interesai de-a nva i de-a produce o schimbare n bine. Ce
aduci tu? Entuziasm, creativitate, energie i dorina de-a gsi

www.todaysoftmag.ro | nr. 44/februarie 2016

comuniti

Comuniti i Evenimente
Lansarea numrului 44 al Today
Software Magazine
Februarie 23 (Cluj) - Ora 18:00
ISDC Romnia

Today Software Magazine


Comunitate construit n jurul revistei
TSM.
facebook.com/todaysoftmag
facebook.com/groups/todaysoftmag/
meetup.com/todaysoftmag
youtube.com/todaysoftmag
Data nfiinrii: 06.02.2012
Nr. membri: 2977

Fighting Terrorism with Django,


Big Data and NLP

24 februarie (Cluj) - Ora 6:45


meetup.com/RoP y thon-Cluj/e vents
/228917042/
Organizator: RoPython - Cluj
O comunitate Python care dorete s
aduc mpreun pasionaii acestui limbaj.
meetup.com/RoPython-Cluj/

Microarchitectures for Small Android Applications & Post-MWC


Round Table

29 februarie (Timioara) - Ora 6:30


Loc. Startup Hub Timisoara
meetup.com/TiMoDev/events/229023544/
Organizatori: Timisoara Mobile
Development Group
Comunitatea programatorilor mobile din Timioara
meetup.com/TiMoDev/

Agile Mammoths Games

Martie 11 (Cluj) - Ora 9:00


Loc: Grand Hotel Italia
colorsinprojects.ro/evenimente/?tab=1
Organizator: Colors in projects
Este o companie axat pe training-uri de
project management. Simona Bonghez,
cea care conduce Colors in projects, este

10

cunoscut publicului TSM prin seria de


articole Gogu.

Meetup #47 - Making


AllegiantAir.com accessible

2 martie (Cluj) - Ora 6:30


meetup.com/Tabara-de-Testare-Cluj/
events/228972479/
Organizator: Tabra de testare
Tabra de Testare este o comunitate format din testeri i ali
profesioniti din industria IT care,
n cadrul unor ntlniri informale
lunare, mprtesc din cunotinele
proprii i nva din experienele
profesionale ale celorlali membri.
www.meetup.com/Tabara-de-Testare-Cluj/

Agile Talks #X

9 martie (Bucureti) - Ora 6:45


meetup.com/The-BucharestAg ile-S of tware-Meetup-Group/
events/226301564/
Organizator: Agile Works
Comunitatea programatorilor
interesai de metodologii Agile
meetup.com/The-Bucharest-AgileSoftware-Meetup-Group/

Share IT

10 martie (Cluj) - Ora 6:00


http://www.share-it.ro
Organizator: Betfair Romnia
www.betfair.com

Cluj Innovation Days

31 martie - 1 aprilie (Cluj) - Ora 9:00


Universitatea de medicin i
farmacie Iuliu Hatieganu
clujinnovationdays.com
Organizator: Cluj IT Cluster
Organizaie care cuprinde majoritatea
companiilor de IT clujene i nu numai.

nr. 44/februarie, 2016 | www.todaysoftmag.ro

Innovation Labs 2016 Cluj


Hackathon

12 martie - 13 martie (Cluj) - Ora 9:00


Loc. Impact Hub Cluj-Napoca
www.facebook.com/
events/1066711880060381/
Organizatori: Innovation
Labs i Simplon

Startup Weekend Cluj Smart Cities Edition

Aprilie 8-10 (Cluj) - Ora 18:00


Str. Grii nr. 21, 400267 Cluj-Napoca
www.up.co/communities/romania/cluj/
startup-weekend/8696
Startup Europe Week
Comunitatea a fost creat cu scopul de a
reuni toate regiunile europene printr-un
program de startup.

TODAY SOFTWARE MAGAZINE


testare

testare

Armonie n Cross-Browser Testing

nul 2016 ncepe n for. Cred c toi ne gndim la planuri, obiective i viitor, mai ales lucrnd ntr-un domeniu att
de dinamic. n ceea ce privete testarea aplicaiilor software pe ramura web, se poate observa n mod clar o evoluie.

Oamenii au nceput s aib i s


simt nevoia de a accesa o aplicaie web
nu numai de pe desktop, ci i de pe o
tablet, un telefon mobil sau de pe calculatorul mamei de acas, fr a avea parte
de surprize majore n folosirea acesteia.
Dup cum se poate observa, tocmai am
menionat cteva exemple de dispozitive
cu diferite sisteme de operare, browsere
sau chiar versiuni ale acestora. Aadar,
privind din perspectiva utilizatorului
obinuit sau chiar al clientului pentru
care dezvoltm o aplicaie web, ca testeri
sau programatori trebuie s ne ntrebam:
ce putem face s ne asigurm c aplicaia
pe care o testm nu are defecte, iar utilizatorul s poat naviga fericit?
n cele ce urmeaz n acest articol am
ncercat s evideniez importana calitii
testing-ului pe mai multe platforme, precum i rapiditatea plus uurina cu care
putem realiza acest lucru.

ca site-urile responsive s fie clasate mai


sus n cutri, fa de cele destinate doar
pentru desktop.
Azi sunt zeci de modele de smartphones i tablete, sistemele de operare i
browserele venind cu tot mai multe
mbuntiri. S-a produs o cretere a
masei de utilizatori, avnd ateptri tot
mai mari din partea software-ului. Mai
mult dect att, nu toat lumea este la
ultimul update al sistemului de operare
sau al versiunii de browser. Aici intervin
dificultile. n mod natural, de aici vin
i cererile clienilor notri legate de multitudinea de combinaii de sisteme de
operare (Windows, iOS, Android), devices (pentru care nu am suficiente degete
la mini s le enumr) i browsere (de
la Chrome, i pn la IE8 i noul Edge).
Bineneles innd cont de faptul c
pe majoritatea dintre acestea, aplicaia
trebuie s funcioneze aproape perfect.
Cnd ne gndim la testare, trebuie
s ne gndim n primul rnd, la calitate.
Aplicaia ar trebui s fie rapid, intuitiv,
s respecte anumite guidelines, fr c
utilizatorul s simt o diferen major
ntre mijloacele de interaciune, fie c este
vorba despre o tablet sau un calculator.

Fig. 1: Browsers

Dac ai citit articolul lui Ovidiu


Man din TSM#43, Previziuni pentru
2016, tii c Vlad Derdeicea declara
faptul c exist o evoluie rapid a deviceurilor mobile i se ateapt ca n anul
2016 traficul mobil s fie egal cu cel de pe
desktop. Eu am motive s menionez c
deja l-a i depit, dac ne uitm la ultimele rezultate. Aceasta nseamn c vom
avea mai multe site-uri responsive, ntruct companiile caut variante responsive
i chiar aplicaii custom. Putem trage destul de uor concluzia c interactivitatea
multi-dispozitiv (responsive Web design)
este n cretere. Inclusiv Google a decis

Fig. 2: Multitudinea combinaiilor


de OS i browsers

Testarea pe o multitudine de devices,


versiuni diferite de browsere sau sisteme
de operare este o provocare de multe
ori. Este nevoie de o strategie foarte bine
pus la punct, procesul fiind unul mai
ndelungat, pentru ca noi ca testeri sau ca
dezvoltatori s realizm acest lucru ct
mai bine ntr-un timp ct mai scurt. Spre

exemplu, funcionalitile se pot grupa


astfel nct s nu fii nevoit s schimbi att
de mult platformele, n special n re-testing, cnd e nevoie s retestm bug-urile
fixate. Defectele care fac parte dintr-un
anumit cloud de issues, nu neaprat din
acelai User Story, pot fi retestate mpreun pe aceeai platform. Un exemplu
pot fi bug-urile gsite pe Internet
Explorer sau Safari. De multe ori acest
proces poate prea extenuant i poate
uneori, inutil, ns atunci cnd simiti
acest lucru v recomand s v punei
urmtoarea ntrebare: dac aplicaia pentru care facei development sau testing ar
fi a voastr, ct interes ai acorda testrii
cross-browser?
Rspunznd la ntrebarea de mai
sus, am devenit motivat s caut soluii.
Iniial, soluia la aceast problem am
gsit-o n maini virtuale.
Acestea se pot descrca. Se alege o
main virtual (care va rula un anumit
sistem de operare si un browser), apoi o
platform de virtualizare (VirtualBox,
VMWare, etc) i se descarc un zip cu
tot pachetul. Exist intruciuni de instalare, iar procesul este destul de simplu.
Problema este c dureaz extrem de mult,
iar aceste maini virtuale expir dup 90
de zile, sau pur i simplu se pierde conexiunea la main din cauza unor erori,
fiind nevoie ca procesul s fie reluat
ulterior. Aceste maini sunt destinate
att ntrepriderilor ct i utilizrii acas.
Exist diferite tipuri de maini virtuale, fiecare cu funcii diferite. Acestea
asigur un substitut complet pentru o
main real care dispune de funciile
necesare pentru executarea unui testing
complet.
Cu toate c sunt o alegere bun, nu
gsim acel balans, acea armonie ntre
calitatea i rapiditatea tastrii. Aa c am
trecut la o alt variant.
O alt soluie recomandat este testarea prin intermediul unui tool online. Ca
exemple avem BrowserStack, Sauce Labs,
Browser Shots, Browserling, IE tester etc.

www.todaysoftmag.ro | nr. 44/februarie, 2016

11

testare
Armonie n Cross-Browser Testing
Eu personal am folosit BrowserStack (https://www.browserstack.com). Acesta este un cross-browser testing tool pentru
testarea website-urilor publice i servere securizate, care se afl
ntr-o infrastructur de tip cloud.
Se preteaz nu numai pentru testarea manual, dar i pentru
Automation Testing folosind Selenium sau suite automate de test
JavaScript.
Folosind acest tool, vei avea acces instant la mai mult de 700
de combinaii de sisteme de operare i browsere reale, rulnd pe
desktop i mobile. Este sub forma unui subscription, iar acesta
depinde de pachetul pe care dorii s l folosii. Pentru nceput
putei s l folosii gratuit i s vedei dac se preteaz nevoilor
voastre

Debugging: developer tools este pre-instalat (Firebug,


Yslow, Microsoft Script debugger etc.);
Mobile: suport de la cele mai vechi la cele mai noi emulatoare mobile;
Visual: capturarea de screenshots per URL;
Visual: responsive design testing generare de screenshots
la rezoluia actual a device-ului; Pentru mobile devices se
poate folosi att portrait view ct i landscape;
Portabilitate: sugestii cross-browser testing bazate pe statistici globale ale utilizrii;
Local testing: se pot testa servere interne via BrowserStack
utiliznd o conexiune securizat;
Conexiune: atunci cnd sesiunea de testing este creat,
maina virtual pornete cu setrile default (fr cache, cookies,
istoric, descrcri, parole salvate etc.);
Acces: 100% up-time, acces instant.
Marile avantaje ale acestor tipuri de tool-uri pentru o companie
sunt urmtoarele:
Nu exist niciun cost legat de achiziii hardware;
Nu exist niciun cost pentru meninerea i ntreinerea
mainilor virtuale sau timp petrecut n instalarea lor;
Nicun cost legat de infrastructur.

Fig. 3: BrowserStack tool

Avantajele acestui tool ar fi urmtoarele:


nu este nevoie de instalare, BrowserStack se acceseaz
printr-un simplu link n browser;
micorarea timpului de testing, vitez n testare;
rapiditate nu doar n switch-urile dintre browsere, dar i
ntre platforme (sisteme de operare);
accesul se face extrem de rapid, se pot salva n browser
mainile i browserele pe care le accesai cel mai des;
experien nativ;
responsiveness: redimensionare n fereastra de browser;
suport pentru emulatoare de mobile;
ofer suport pentru Automation testing (Selenium,
JavaScript).
Funcionaliti:
Automation: integrarea dintre Selenium WebDriver i
BrowserStack tool;

12

nr. 44/februarie 2016 | www.todaysoftmag.ro

Consider c folosind acest tip de tool am gsit o armonie


ntre calitate- pentru c am reuit s testez pe platformele prioritare, must-haves i rapiditatea de a m mica n switch-ul dintre
ele. La final pot garanta c avem ntr-adevr un produs calitativ
i eficient.
n cele din urm, omul este predispus greelilor i testarea
exhaustiv este foarte puin probabil, excepie fcnd aplicaiile mici. Acesta este principiul numrul doi al testrii. De aceea,
trebuie s inem cont cu att mai mult de celelate cinci principii:
testarea evideniaz prezena defectelor, necesitatea testrii
n fazele incipiente, testarea cluster-elor de defecte, Pesticide
Paradox, faptul c testarea este dependent contextual. n cele
din urm trebuie s ne asigurm c facem tot posibilul s gsim
defectele pe majoritatea platformelor, pentru ca n final, interaciunea cu utilizatorul s fie cu succes, iar sistemul s rspund
cerinelor i nevoilor utilizatorilor pe oricare dintre platforme.
Roxana Soporan
Roxana.Soporan@isdc.eu
Tester
@ ISDC

testare

Testarea serviciilor web folosind


SOAP UI

Ioana Lua
ioanal@bissoft.ro
QA Engineer
@ Bissoft

n acest articol voi prezenta pe scurt cum se poate acoperi testarea funcional a serviciilor web folosind aplicaia SOAP UI i Groovy Script. Testarea serviciilor web este
realizat folosind ori modelul cascad, n care outputul unui pas de test este inputul
pasului urmtor, ori modelul ce presupune o conexiune la DB i prelucrarea datelor stocate
n fiier Excel.
Testele realizate sunt incluse ntr-un
sistem de build automat folosind Maven. n
urm execuiei testelor se trimite pe email
raportul de execuie ce conine statusul pentru fiecare metod din serviciile testate.

Scurt prezentare a SOAP UI


ntr-o aplicaie orientat pe servicii, serviciile web sunt slab cuplate, astfel
nct, odat ce un serviciu este implementat, acesta poate fi testat independent de
celelalte. Dac o aplicaie este expus att
pe web ct pe mobile, testarea serviciilor
se realizeaz o singur dat, validarea UI
fiind realizat ulterior pentru web, respectiv mobile.
Serviciile web comunic ntre ele dar i
cu alte aplicaii prin transmiterea de mesaje.
Simple Object Access Protocol (SOAP) este
un standard frecvent utilizat pentru transmiterea mesajelor. Un mesaj SOAP este un
document XML ce prezint structura de
mai jos:
SOAP envelope este elementul care
conine toate nodurile dintr-un mesaj.
Identific i versiunea de SOAP SOAP
1.1 sau SOAP 1.2
SOAP header este un element opional

care conine meta-informaie (instruciuni de procesare a mesajului, date de


securitate, informaii de adres).
SOAP body este elementul care conine mesajul propriu-zis.
Web Service Description Language
(WSDL) este un format XML care descrie
serviciile web ca un set de puncte de access
care proceseaz mesaje, structura acestuia
fiind mprit in Types, Message, Port Type
si Binding.
SOAP UI este o aplicaie free i open
source, parte din suita de aplicaii dezvolate
de SmartBear Software1, ce poate fi folosit
pentru testarea serviciilor web. Exist i
versiune contra cost a aplicaiei, care ofer
intefa bazat pe formulare ct i opiuni
suplimentare de testare.
SOAP UI poate fi folosit pentru:
Testarea serviciilor SOAP i REST.
Pe baza contractului se genereaz request-uri default cu date prepopulate. Cnd
se adaug un WSDL, SOAP UI scaneaz
toate SOAP bindings care apar n WSDL i
gsete metodele expuse de ctre serviciu.
1

http://smartbear.com

www.todaysoftmag.ro | nr. 44/februarie, 2016

13

testare
Testarea serviciilor web folosind SOAP UI
Genereaz apoi request-urile aferente acestor metode, corespunztor schemei XML a serviciului.
Testare funcional, de integrare, de performan, de securitate folosind acelai mediu de testare.
Simularea serviciilor.
Integrarea de scripting folosind Groovy Script sau
JavaScript.
Refactorizare WSDL modificare automat a testelor existente pentru a fi la zi cu noua versiune a contractului.
Se integreaz cu alte aplicaii, inclusiv cu cele de integrare continu. Exist plugin-uri pentru Maven, Intellij IDEA,
Eclipse, JBoss, NetBeans.
Se pot genera rapoarte de execuie, cu diferite metrici.
Selectnd opiunea de Test Coverage, SOAP UI permite analiza
gradului de acoperire a elementelor contractului, prin testele
funcionale create.
Fiind dezvoltat n Java, ruleaz pe diferite tipuri de sisteme
de operare.
Execuia testelor din interfa sau din linie de comand.

mai nti apelm metoda Create. Rezultatul generat de metoda


Create devine intrare pentru metoda Update. Ultima operaie va
fi cea de tergere a datelor inserate n baza de date. Rspunsul
returnat de ctre metoda Update este validat, prin crearea de
multiple assert-uri pe elementele din rspuns. Se efectueaz
multiple validri coninutul elementului este cel ateptat, data
ntoars este de un anumit tip ( exemplu datetime), dac un anumit element este obligatoriu, dac se ntoarce un anumit cod se
eroare i mesajul aferent codului de eroare, dac se respect lungimea maxim pentru un anumit cmp, dac se permit caractere
speciale.
Pentru a pune n practic abordarea cascad, folosind Groovy
Script, am creat o serie de metode ajuttoare care sunt apelate n
cadrul test case-urilor. Aceste metode ajuttoare genereaz test
case-uri tipizate pentru toate metodele unui serviciu, genereaz
date de un anumit tip, copiaz datele din rspuns ntr-un pas de
tipul Properties (cmp - valoare), copiaz date dintr-un pas n
altul, creeaz validri mai complexe, etc. .

Cnd se creeaz un proiect SOAP UI, acestuia I se ataeaz


unul sau mai multe contracte. Cnd se ncarc contractul, se vor
ncrca toate metodele expuse de pe acel serviciu i se pot crea
request-uri default pentru fiecare metod n parte.

Imaginea 3 Abordarea Cascad

Imaginea 1 ncrcarea contractului

Abordarea cascad pentru testarea funcional a serviciilor web


n cadrul firmei folosim intens SOAP UI, versiunea Ready!
API SOAP UI NG, pentru testarea funcional a servicilor web.
Testele sunt organizate n Proiecte. Un proiect poate avea mai
multe suite de teste (Test suites). O suit poate avea mai multe
Test cases. Fiecare Test case conine Test steps. Prin test steps
organizm logica de validare a unei anumite funcionaliti
dintr-un serviciu web.

SOAP UI execut Test case-urile secvenial. Organiznd testele n ordinea dorit, ne asigurm c la fiecare execuie datele
de test sunt unice i nealterate. Dac primul test, cel de creare
element, eueaz, , toate testele ulterioare vor eua.
Pentru a avea un grad mare de acoperire a elementelor din contract, se trimite request-ul cu toate elementele avnd date valide
i se creaz assert-uri pe fiecare element din rspuns. n funcie
de validarea dorit, se selecteaz unul din assert-urile standard
sau folosind Groovy Script se pot crea assert-uri mai complexe.
Pentru validarea coninutului datelor din rspuns, comparm
datele generate i stocate ntr-un pas de tipul Properties cu cele
ntoarse n rspuns.
Dup fiecare execuie se pot genera rapoarte de execuie,
coninnd toatele metodele executate, cte teste au trecut, cte
au euat, care este cauza pentru care au euat, care este rata de
acoperire a elementelor din contract.

Testarea folosind conexiunea la DB

Imaginea 2 Exemplu de request, response i assert pe response

Pentru a ne asigura c datele de test sunt unice la fiecare


execuie a testelor, una din abordrile folosite este testarea in
cascad. Dac se dorete validarea metodei Update de exemplu,

14

nr. 44/februarie 2016 | www.todaysoftmag.ro

n funcie de specificul proiectului, poate fi necesar inserarea


sau tergerea direct din baza de date. n acest sens, folosim Setup
script i Tear down script existente n fiecare Test case. Datele de
intrare i cele de validare a rspunsului sunt organizate ntr-un
fiier Excel. Funciile Groovy necesare pentru stabilirea conexiunii la DB, pentru manipulare date, pentru tergere conexiune,
sunt grupate ntr-un fiser groovy script. Pentru a putea accesa
baza de date din cadrul SOAP UI este nevoie de driver-ul ojdbc6
.jar. Driver-ul trebuie copiat n locaia directorInstalareSOAPUI \
jre\lib\ext. Pentru ca execuia testelor s fie foarte rapid, fiecare
metod care se testeaz are propriul fiier cu date de test. Pentru
un serviciu vom avea attea fiiere Excel cte metode sunt pe
serviciu.

TODAY SOFTWARE MAGAZINE


n urm execuiei testelor se trimite un email care conine
raportul execuiei testelor. n acest fel avem un feedback rapid i
constant privitor la codul implementat.
Un exemplu de raport primit pe email este prezentat n figura
de mai jos. Emailul conine statusul per fiecare serviciu/per fiecare metod din serviciu, ct i link-uri ctre raport general i de
coverage pentru fiecare serviciu n parte.

Imaginea 4 Testare folosind conexiunea la DB

n partea de setup se iniializeaz conexiunea la DB i se seteaz


conexiunea pe context pentru a putea fi folosit ulterior n cadrul
aceluiai Test case. Se citesc datele din fiierul Excel i se insereaz n DB.
Se execut paii urmtori din test case ncrcarea datelor
necesare validrii rspunsului, efectuarea de request-uri, validarea rspunsului.
n partea de Tear down script, ultimul pas executat din Test
case, se utilizeaz conexiunea existent la DB dac e disponibil,
dac nu este disponibil se creeaz o conexiune nou. Se citesc
din fiierul Excel datele ce trebuie terse din DB i se efectueaz
tergerea din baza de date. Se terge conexiunea creat pentru
accesul la baza de date.

Imaginea 7 Raport de execuie primit pe Email

Imagine 8 - Exemplu raport de acoperire

Imagine 5 Setup script

Integrarea testelor SOAP UI ntr-un sistem de build automat


Testele SOAP UI sunt salvate n format XML. Aceste teste leam integrat ntr-un sistem de build automat, utiliznd Jenkins.
Exist un job configurat s execute testele automat, ori de cte
ori se face build pentru codul comis. Testele sunt executate pe o
main configurat pentru testare. Pentru integrarea n Jenkins
am utilizat Maven.

Imaginea 6 Jenkins job -comnada Maven pentru execuia testelor

www.todaysoftmag.ro | nr. 44/februarie 2016

15

testare

Harta testrii

i-am petrecut ultimii zece ani din via n industria IT. Am nceput ca tester
i chiar dac mi-am petrecut ultimii civa ani drept Manager de Calitate,
m consider ns un tester. n experiena mea de tester am remarcat o anumit percepie asupra condiiei testerului, care tinde s-i minimalizeze rolul acestuia.

Claudiu Draghia
claudiu.draghia
@capgemini.com
Quality Manager
@Capgemini

16

nr. 44/2016, www.todaysoftmag.ro

Acest mod de a-l percepe pe tester


aparine de obicei acelor manageri care
cred adesea c oricine poate testa aplicaii,
cauznd abordri superficiale n ceea ce
privete asigurarea calitii. Dincolo de
faptul c a nu recunoate c profesia de
tester este una solicitant i meritorie i
face pe testeri s se simt neapreciai, n
ciuda muncii lor grele, aceast atitudine se
rsfrnge n mod negativ asupra nivelului
calitii n industria IT.
Care mai e rostul testrii dac
tot sfrim prin a avea bug-uri n
producie?
Simeam nevoia s fac ceva n legtur cu asta, aa c am nceput s desenez.
Trebuia s mi pun pe hrtie gndurile,
experienele, cunotinele mele de testare software, deoarece doream ca ceilali
oameni s vad ceea ce vd eu. Am muncit
oricnd am avut puin timp liber i, dup
cteva luni, am reuit s pun ceva laolalt. Prima ncercare a fost stngace i, ca
s m exprim frumos, urt ca naiba, s
spun adevrul. Imediat ce prima schi a
fost gata, am nceput s m uit la desenul
meu ca la o hart. O hart care dezvluia
semnificaii, o hart care conecta puncte
ce reprezint zonele principale ale testrii
software. A fost nevoie de puin ajustare
i lefuire dar, dup alte cteva sptmni,
aveam n sfrit ceva de artat lumii. Am
cumprat un domeniu i am ncrcat
harta n format digital. O putei vedea la

http://thetestingmap.org/.
Harta crescuse att de mult n aria
de acoperire i coninut, dar nc era o
pictur de ap ntr-un ocean. Drept
urmare, a crescut i ambiia mea.
Am nceput s caut mai multe
informaii pe web. Pe ct de dificil ar putea
suna asta (i a fost), am reuit s gsesc
numeroase articole relevante dedesubtul
grmezii mari de spam i reclame. Mi-am
fcut propriul meu motor de cutare
Google, care efectua cutri numai n website-urile de testare software. Pe msur ce
harta continua s creasc n dimensiune,
am descoperit o comunitate surprinztoare de testeri care mi mprteau
entuziasmul i pasiunea pentru aceast
meserie. Am gsit multe website-uri i
bloguri scrise de ctre testeri care erau
dispui s mprteasc cunoaterea lor
n mod gratuit.
Existau att de multe informaii utile
nct am nceput s le leg prin link de zone
ale hrii. Citeam cu frenezie, aproximativ
50 de articole pe sptmn, timp de mai
multe luni, doar ca s vd dac subiectul
postrii de pe blog putea fi inclus pe hart.
n cele din urm, am fost obligat s
construiesc o nou pagin web unde
puteam citi articolele i apoi s le includ n
Harta testrii. Putei gsi pagina la http://
softwaretestingblogs.thetestingmap.org/.
Acum s parcurgem mpreun principalele zone ale hrii.

TODAY SOFTWARE MAGAZINE


Procese i activiti. Avem nevoie
de reguli i regulamente, dar, pe de alt
parte, dup cum spune Barry Schwartz:
regulile nu vor putea s ghideze oamenii prin situaii complexe sau neclare.
Problemele din lumea real sunt adesea ambigue sau prost definite, iar
contextul se schimb mereu. Gsirea
unei balane este cheia pentru a avea
un proces bun.
Metodologie. Testerii ar trebui s
tie ce teste s ruleze i tehnicile pe
care le au la dispoziie, i cnd s le
adapteze.
Utilizarea metodologiei. Uneori
metodologia nu le acoper pe toate. Ar
putea s existe cazuri particulare i, n
aceast situaie, zona aceasta este nc
n construcie. Dar am nceput s creez
cteva exerciii de testare care, cred eu,
i vor ajuta mult pe testeri.
Principiile testrii. Fr principii, nu am avea ghidare.
Adevrul este c nimeni nu este de acord cu privire la principiile
care au prioritate. Este o discuie deschis, aa c v putei alege
favoritul.
Activiti de sprijin. Testarea este o parte vie i care evolueaz
a ciclului de via al dezvoltrii. Nu este sarea pe care o mprtii
peste omleta ta dup ce ai scos-o din tigaie, ci mai degrab amestecarea i atenia continu pe care i-o acorzi pe durata ntregului
proces de gtire.
Instrumente. Efortul i ctigul fiecrei meserii. Un pictor
bun este unul care tie cum s i adapteze pensulele la dispoziia
sa i la cerinele picturii.
Tehnologia. Considerm c este necesar o fundaie de aptitudini tehnice. Cei mai buni oferi sunt adesea i buni mecanici,
deoarece ei neleg cum funcioneaz o main i de ce este nevoie
pentru ca o main s aib performane.

Resurse de nvare. Nu exist o biblie a testrii sau vreun


manual sau colegiu unde s nvei testarea. Resursele sunt nc
dispersate i, drept urmare, testerii trebuie s fie mereu ateni la
apariia noilor informaii.
Social. Testarea este un nou meteug. Multe cunotine sunt
mprtite prin evenimente sociale (precum ntlnirile). Cea mai
cunoscut ntlnire local este Tabra de Testare.
Istorie. Joris Meerts i contribuiile suplimentare ale lui
Dorothy Graham, au reuit s redacteze o minunat istorie a
testrii.
Deci, la ce folosete harta? n primul rnd, ar putea fi utilizat
drept un ghid n demersul tu de a deveni un tester mai bun. Sau
ai putea avea o discuie rapid n care participanii aleg un subiect
i vorbesc despre el timp de cinci minute. n ultimul rnd, ai putea
ncerca s o ari oamenilor care consider c testarea software
poate fi fcut de ctre oricine i s vezi ce opinie au.
Aadar, tu cum ai utiliza-o?

Aptitudini soft. Testarea are loc adesea ntr-un context care


implic oameni. Astfel, testerii trebuie s tie cum s lucreze cu
oamenii.

www.todaysoftmag.ro | nr. 44/februarie 2016

17

programare

Crearea unui Microsoft Band Tile


pentru a direciona notificrile de stare a construciei

nul trecut, Microsoft a lansat Microsoft Band 2. Este foarte puternic cu muli senzori i o autonomie a bateriei care mi ofer
dou zile de energie.

Privire general

care l afiezi n tile. ncearc s te concentrezi pe coninutul pe


Dar ceea ce m impresioneaz este partea de software i care doreti s l afiezi. Trebuie s identifici coninutul care poate
uurina cu care poi dezvolta un tile (o aplicaie custom) pentru mbunti viaa proprietarului de band.
acesta. Nu trebuie s nvei C# pentru c poi crea uor un tile
Deoarece numrul de tile-uri pe care le poi instala pe band
direct din browser.1
este limitat, ar trebui s ai n vedere faptul c acel client va pstra
numai tile-urile cele mai importante, care i aduc informaiile despre dispozitivul su de care are nevoie cu adevrat. Altfel, tile-ul
tu va fi doar un alt tile, pe care nimeni nu l utilizeaz sau nu l
pstreaz mai mult de 5 minute.
Orice dezvoltator poate crea un tile i poate direciona
coninut spre Microsoft Band, n doar 2 sau 3 minute. Dar numai
ideile bune i coninutul util vor ajunge pe dispozitivele clienilor.

Echipa noastr
Fiecare dezvoltator din echipa din care fac parte a primit
anul trecut un Microsoft Band 2. Am nceput s facem glume pe
tema asta, cum c am multiplicat numrul de Microsoft Bands n
Acesta i va permite s obii coninut din web i s l Cluj-Napoca de aproape zece ori mai mult. Echipa nu este att
direcionezi spre tile-ul tu. n acest fel poi uor integra aplicaia de numeroas, dar la acel moment n Cluj-Napoca tiam doar o
ta n band! Rapid i uor.
singur persoan cu band.

Ideea
Am nceput s m gndesc la ceea ce am putea face cu bandul. n cele din urm am ajuns la o soluie simpl, pe care o voi
descrie de la un capt la altul n partea care urmeaz n articolul
meu.

Direcionarea notificrilor de modificare a statusului dezvoltrii spre


band

Un alt aspect grozav este modul cum pui n folosin i partajezi tile-urile. Nu este nevoie s le direcionezi n magazin, s le
validezi i aa mai departe. Nu. Eti liber s partajezi tile cu oricine. Doar ncarc-l ntr-o locaie specific i partajeaz URL-ul
cu prietenii ti prin mail sau web. Telefonul poate detecta tile n
mod automat i l poate deschide utiliznd aplicaia Microsoft
Band.

Informaia este puterea


Pentru clieni, lucrul cel mai important este coninutul pe
1 https://developer.microsoftband.com/WebTile.

18

nr. 44/februarie, 2016 | www.todaysoftmag.ro

Ideea este simpl. Noi ne


pstrm codul surs pe TFS
Online (Visual Studio Online) i
TFS 2015 la locaie. Avem diferii
ageni de dezvoltare pe Azure i
n reeaua privat a companiei
noastre (la locaie) care construiesc soluia noastr, ruleaz
teste pe uniti, extrag diferii
parametri i pun n folosin
aplicaia n mod automat pe
medii diferite. Scopul principal
este s ntiineze ct mai curnd
posibil echipa de dezvoltare de
faptul c a picat construcia.

TODAY SOFTWARE MAGAZINE


Privire de ansamblu asupra blocajelor i arhitecturii
Scopul principal este acela de a direciona o notificare nspre
band n momentul n care construcia eueaz. Ideea este simpl,
dar avem nevoie s gsim o soluie pentru a putea s trimitem
o notificare ctre band fr a trebui s nmagazinm TFS User
Credentials (Datele de identificare ale utilizatorului).

Nu exist nicio modalitate de a depozita datele de identificare


pe band i a cerceta serverul de control surs. O soluie posibil
este s dezvoltm o aplicaie pentru telefon care s direcioneze
aceste notificri. Dar, ateptai noi nu suntem dezvoltatori de
mobile i fiecare dintre noi avem tipuri diferite de telefoane
iPhone, Windows Phone i Android. S-ar putea s mearg, dar
efortul de dezvoltare este prea costisitor. Am putea s scriem o
aplicaie mobile cross platform, dar pn s o lansm n magazin,
se va pierde interesul i oportunitatea de moment.

rezolvat cu uurin. Deoarece CI este disponibil publicului, noi


trebuie s nregistrm n aplicaia noastr web un nume de utilizator i o parol care s poat fi utilizat pentru a interoga starea
construciei n legtur cu modificrile.
Dar pentru serverul nostru CI de la locaie, s-ar putea s
avem o problem. Serverul CI de la locaie nu este disponibil
publicului. Aceasta nseamn c nu putem interoga serverul nostru pentru a verifica starea construciei de pe internet. Haidei s
ne folosim imaginaia.

Care este aciunea implicit fcut de un server CI atunci


cnd o construcie eueaz, cu excepia schimbrii de culoare?
Aciunea cea mai obinuit este s trimit un email unuia sau
mai multor utilizatori. Aceasta este cheia noastr pentru a putea
accesa o notificare de schimbare de status.

RSS Feed (Intrare RSS)


O soluie mai simpl este s expunem un RSS feed / o intrare
RSS cu notificrile de modificare a statusului construciei. De fiecare dat, cnd se modific starea construciei, un coninut nou
va fi disponibil pe Serverul RSS. Tile-ul care ruleaz pe band va
detecta noul coninut i va ntiina utilizatorul.

n acest moment am rezolvat numai o parte din problem.


Avem un punct terminal web care poate fi utilizat de ctre tile
pentru a accesa o intrare RSS. Canalul de alimentare RSS poate fi
folosit de ctre band pentru a obine notificrile de modificare a
statusului construciei.

Direcionarea notificrilor
Acum, noi trebuie s gsim o cale de a direciona modificarea
strii construciei de la serverul CI ctre aplicaia noastr web.
Acest lucru este puin mai neltor i v rog s ignorai orice
tip de probleme de securitate care vor fi doar menionate, nu i
acoperite.
Pentru Visual Studio Team Services, problema poate fi

Aparatul CI va trimite o notificare ctre serverul nostru de


mail. n mod normal, un Mail server este accesibil publicului de
pe internet. Aplicaia noastr web RSS va trebui s nregistreze
datele de identificare pentru email.
Chiar dac soluia va funciona i ar putea fi utilizat cu succes, noi trebuie s avem n minte c:
Datele de identificare vor fi nregistrate de ctre Web App.
Informaiile confideniale (Build Status) vor fi disponibile
publicului pe un terminal web care poate fi utilizat de oricine.
Orice persoan care are tile-ul vostru va putea s vad notificrile de schimbare de status ale construciei (construciilor).
Toate aceste puncte trebuie s fie discutate cu grupul de securitate al companiei voastre. Nu ar trebui niciodat s implementai
o astfel de soluie fr a avea acordul lor.

Implementarea

Notificarea prin email TFS


Soluia este aplicabil pentru versiunea mai veche a TFS, de
asemenea. Paii i mostrele de mai jos sunt pentru Visual Studio
Online i TFS 2015.
Va trebui s definii o alert care s trimit o notificare prin
www.todaysoftmag.ro | nr. 44/februarie 2016

19

programare

pentru construcii diferite.

Crearea unui Microsoft Band Tile pentru a direciona notificrile de stare a


construciei
email n momentul n care
calitatea construciei se modific. n funcie de nevoile
voastre, putei utiliza acelai
cont pentru a trimite notificri

Gzduirea aplicaiei noastre web


Putem gzdui aplicaia noastr web drept o Web App n
Azure. Nivelul gratuit va fi suficient pentru a ne juca puin.
Url-ul aplicaiei mele web va fi asta2. Statusul construciei va
fi gsit pe hart aici3.

Verificarea emailurilor noi


Exist diferite biblioteci care te pot ajuta s i accesezi serverul email. Tu ar trebui s decizi ce tip de bibliotec vrei s foloseti
n funcie de tipul serverului email. Dac utilizezi Outlook sau
Exchange Server, atunci poate ai vrea s foloseti biblioteca EWS.
Pentru un cont Gmail, s-ar putea s ai nevoie de un client POP3
i un purser MIME precum OpenPOP.NET. n exemplul de mai
jos, putei vedea cum se poate primi un mesaj, folosind biblioteca
OpenPOP.NET.
POPClient client = new POPClient();
client.Connect(pop.gmail.com, 995, true);
client.Authenticate(radu.vunvulea.sample@gmail.com,
Hahaha);
var count = client.GetMessageCount();
Message message = client.GetMessage(count);

Subiectul poate fi accesat n felul urmtor: message.Headers.


Subject.
Expunerea notificrilor drept intrare RSS
Urmtorul pas este s expunem noile notificri drept intrri
RSS. Acest lucru poate fi fcut n 10 minute, dac utilizm
APIController. Nu avem nevoie s implementm o intrare RSS i
s dispunem n serie coninutul.
Acest lucru este sprijinit de ASP.NET MVC. Exist chiar
i un ActionResult special care este creat pentru acest scop
RssActionResult. La RssActionResult, noi trebuie s stabilim
proprietatea Feed care este de tipul SyndicationFeed.
public ActionResult BuildStatusRSS()
{
IEnumerable<BuildStatus> buildStatus = BuildStatusManager.GetAllByDate(8);
SyndicationFeed buildFeed =
new SyndicationFeed(Build Status,
new Uri(http://www.raduvunvulea.com/
buildStatus/RSS),
Guid.NewGuid().ToString(),
DateTime.Now);
List<SyndicationItem> buildStatusList = new
List<SyndicationItem>();
foreach (BuildStatus bs in posts)
{
string postUrl = string.Format(build\\buildentry-{0}, bs.Id);
SyndicationItem buildStatus =
new SyndicationItem(bs.Title,
bs.Description,
new Uri(postUrl),
bs.Id,
bs.Date);
buildStatusList.Add(buildStatus);
}

Publicarea tile
Cea mai simpl soluie pentru a publica tile este s l ncarci
pe un sistem de partajare fiiere, precum OneDrive i s creezi
un link de partajare.
Finalul
i am sfrit. Odat ce accesezi linkul la tile de pe telefonul tu, aplicaia Microsoft Band se va deschide i vei putea
direciona tile-ul.

Concluzie
n acest articol am expus o soluie de la un capt la altul legat
de cum putem direciona notificri pe Microsoft Band-ul nostru,
fr a dezvolta o aplicaie pentru telefon. Din perspectiva tile,
crearea i publicarea unui tile este uoar.
Lucrul cel mai complex este crearea intrrii (feed) cu
informaiile corecte. Nu din cauza problemelor tehnice, ci este
vorba de ce coninut s afim. Ar trebui s ne amintim c
informaia este puterea.
2 http://rvbuilstatus.azurewebsite.com

buildFeed.Items = buildStatusList;

3 http://rvbuilstatus.azurewebsite.com/build/rss

return new RssActionResult {Feed = buildFeed};

4 https://developer.microsoftband.com/WebTile

n exemplul de mai sus, am generat un RSS cu status al


construciei. Clasa BuildStatus este o clas custom n care se
depoziteaz informaiile legate de o construcie specific. Aceast
clas este populat pe baza emailurilor care sunt trimise de TFS
atunci cnd statusul unei construcii se modific.

20

Crearea de Tile
Acesta este ultimul pas pe care trebuie s l facem. Noi trebuie
s crem Microsoft Band Tile. Acest
lucru va fi fcut direct din browser 4.
Urmtorii pai sunt destul de
simpli; trebuie s specificai culori,
icon-uri i alte astfel de lucruri. Odat
ce am fcut asta, putem descrca tile
pe computerul nostru local.

nr. 44/februarie 2016 | www.todaysoftmag.ro

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

management

Adoptarea unei culturi DevOps

evOps-ul este un fenomen tot mai ntlnit astzi n mediul IT i reprezint probabil viitorul modului n care ne organizm munca n comunitile noastre.
Vom vedea n rndurile urmtoare de unde a aprut nevoia pentru el, cum se
prezint astzi i de ce este considerat o cultur, nu o metodologie. La final, un exemplu
concret ne va arta cum este adoptat DevOps-ul ntr-o companie clujean.

Claudiu Demian
claudiu.demian@yardi.com
System Administrator
@ Yardi Romania

Mic istoric
Domeniul IT a trecut de-a lungul
timpului prin mai multe faze att tehnologice ct i organizaionale. Fie c ne dm
seama sau nu, modul n care ne organizm
munca n cadrul echipelor a depins ntr-o
oarecare msur, de nivelul tehnologic de
la momentul respectiv.
Modelul waterfall de dezvoltare
software a aprut (ca faze, nu ca nume), n
1956, fiind probabil, primul mod de standardizare al acestui proces. El cuprinde n
mare urmtoarele etape: analiz i design,
implementare, testare i ntreinere.
Limitrile tehnologice au permis
meninerea acestui proces o perioad
ndelungat de timp. Software-ul era rulat
fie pe mainframe-uri la firma care crea
software-ul, fie era livrat static clientului
(CD, dischete etc).
De asemenea, au aprut roluri bine
definite n organizaii: dezvoltatori (programatori), administratori de sisteme,
administratori baze de date, ingineri reele
etc. .
Dar, cu timpul, a aprut o problem:
clientul.

De multe ori prea s fie cam indecis i


chiar ambiguu. Att de ambiguu nct un
coleg din firma noastr i-a scris lucrarea
de doctorat avnd ca tem Ambiguitatea
n cerinele software. Dar mai grav era
indecizia. Aceasta genera mereu schimbri n cerine, care duceau mai apoi la
schimbri n design, implementare i aa
mai departe.
Pentru c vechiul mecanism waterfall
nu fcea fa, de multe ori, mediului acesta
dinamic, situaia a fost salvat de metodologia Agile.
Agile-ul era un waterfall mai mic i
mai scurt, repetat de mai multe ori, pn
cnd produsul era terminat sau clientul
satisfcut. Desigur, comparaia aceasta e
grosolan i suprasimplific Agile-ul, tema
fiind mult mai complex i interesant.
Ce ne intereseaz pe noi n cazul
de fa este c, n cadrul companiilor,
mprirea atribuiilor a rmas aceeai:
programatorii dezvolt aplicaia (iterativ, de data aceasta), iar ceilali i vd n
continuare de sistemele, bazele de date i
reelele lor.
Presiunea, ns, pe care o pune mediul

www.todaysoftmag.ro | nr. 44/februarie, 2016

21

management
Adoptarea unei culturi DevOps
online asupra echipelor implicate n dezvoltarea i ntreinerea
aplicaiilor contemporane, care sunt fie aplicaii web, fie depend
n mod intrinsic de web), au determinat unele organizaii s fac
un pas important: au drmat zidurile imaginare care s-au nlat
tot mai mult ntre echipe.
Au reuit s aeze un administrator ntre developer-i i, probabil surprinztor, au avut rezultate la care nici ei nu s-au ateptat:
mai puine bug-uri, mai multe deploy-uri, mai puin downtime i
reveniri mai rapide n caz de probleme.
Datorit acestei apropieri ntre cele dou echipe, micarea a
primit numele de DevOps (n unele organizaii partea de System
Administration poart i numele de Operations).

Despre DevOps
Nevoia de a apropia domeniile Development de Operations a
generat mai multe abordri n cadrul organizaiilor IT.
Tot mai multe companii fac recrutri pe poziii de DevOps.
Candidatul ideal, n cele mai multe din cazuri, este reprezentat
de un administrator rockstar avnd competene n administrarea
de sisteme, deployment-uri de aplicaii, baze de date, scripting,
programare i, dac se poate, puin management. n alte situaii
companiile creeaz echipe noi DevOps care s stea ntre echipa
clasic de developer-i i echipa de administratori.
Persoanele de tip rockstar pot ajuta o echip, aducnd un
bagaj mai mare de cunotine i experien de care s beneficieze toi membrii echipei, mai ales dac aceste persoane tiu s
mpart informaia. O denumire mai potrivit pentru acest angajat este full-stack developer.
Unele companii, ca Etsy, prefer totui s-i evite, n favoarea
unor angajai de nivel junior pe care s i pregteasc ei. Motivul
pentru care prefer aceast abordare l reprezint faptul c, din
experiena lor, administratorii rockstar nu lucreaz n echip la
fel de bine ca ceilali angajai. Ei prefer echipe bine nchegate,
care s funcioneze ca un tot unitar i care s nu depind de o
singur persoan.
Dei unii ar putea considera c Etsy face o generalizare prea
simplist, adevrul este c recrutarea unui full-stack developer
este foarte dificil, existnd puine persoane pe pia cu aceste
competene. Pentru un proiect sau o companie, formarea de noi
angajai care s lucreze bine mpreun reprezint o abordare mai
eficient economic i mai sustenabil.
n privina celei de-a doua abordri, putem s presupunem
c, pe termen lung, interpunerea unei echipe noi ntre dou
echipe care trebuie s comunice bine nu poate avea efectul scontat. Pe lng faptul c mediul de comunicare se sparge n dou
(dev - devops - ops), trebuie gsit i o distribuire eficient a
responsabilitilor.
Modelul care va fi prezentat n exemplul de la finalul articolului e un exemplu de apropiere treptat a echipelor, avnd ca
scop crearea unei mentaliti i a unui mod de a face lucrurile in
spiritul DevOps.

Metodologie versus Cultur


Primul impuls al celor care ncearc s defineasc DevOps-ul
este s afirme c este o metodologie.
Metodologia se refer, n general, la analiza teoretic a metodelor aplicate ntr-un domeniu. De exemplu, cnd discutm
despre metodologia Agile, ne referim la un set ntreg de metode
i bune practici pe care aceasta le propune, avnd n spate o argumentare teoretic i chiar practic.
DevOps-ul nu vine s nlocuiasc Agile-ul ci, n cel mai bun

22

nr. 44/februarie 2016 | www.todaysoftmag.ro

caz, doar s-l completeze.


DevOps-ul propune doar ruperea barierelor care s-au format
ntre partea de Dev (programatorii) i partea de Ops (administratorii) din spatele proiectelor software. Acest demers afecteaz
ntreaga dinamic din organizaie, implicnd toate nivelele ierarhice n acest proces. Astfel, n organizaia care practic DevOps,
exist deja o cultur a comunicrii i a rezolvrii de probleme n
echipe mixte.

De ce s facem devops?
Rspunsul la aceast ntrebare l ofer raportul Puppet 2015
State of DevOps. Acest raport este pregtit anual de Puppetlabs
i reprezint rezultatul statistic oferit de rspunsurile a peste 4900
de angajai n IT, de pe toate poziiile i din mai multe regiuni
geografice. Concluziile acestui raport sunt c organizaiile IT cu
performane ridicate:
Fac deploy de 30 de ori mai des.
Au timpi de lead de 200 de ori mai scuri (intervalul de la
scrierea codului pn cnd ajunge n producie).
Au de 60 de ori mai puine eecuri n producie.
i revin de 168 de ori mai rapid dintr-o stare de avarie.
Aceste numere reprezint comparaia ntre companiile cu cele
mai ridicate performane i cele mai slab performante.
Modul n care este definit performana unei organizaii IT i
cum se msoar aceasta sunt detaliate foarte explicit n documentul menionat, mpreun cu factorii care ajut la mbuntirea ei.
Vom enumera doar civa, invitnd cititorul s parcurg ntregul
raport:
Aplicarea principiilor de lean management i continuous
delivery;
Implicarea managementului n procesul de schimbare n
DevOps;
Designul aplicaiilor tinnd cont de testabilitate i
sustenabilitate.

DevOps la Yardi Romania


Povestea Yardi Romnia a nceput n anul 2006 cu
PropertyShark. Acesta este un produs destinat profesionitilor
n imobiliare din New York, oferind informaii detaliate despre
proprieti.
Fiind o firm relativ mic (maxim 40 de angajai), s-a mers
pe un model organizaional n care toi angajaii cunoteau bine
produsul, fiecare trecnd, la un moment dat i pentru o perioad
scurt de timp, pe la toate echipele. Acest lucru a dus la o mai
bun nelegere a nevoilor de business i a problemelor care pot
s apar.
Dei administratorii lucrau separat de developer-i (n ncperi
diferite), ei participau la toate edinele care implicau produsul
i luau parte la tot ce nsemna decizie important. De asemenea,
dac situaia o cerea, intrau chiar i n cod pentru a face modificrile necesare ca totul s mearg bine.
n anul 2010, PropertyShark a fost achiziionat de Yardi. n
timp, compania-mam a asignat mai multe produse biroului din
Romnia. Fiecare produs avea propria echip de dezvoltatori,
ns echipa de administrare de sisteme a rmas una singur (cu
un numr crescut de membri). Fiecare administrator fcea att
munc de local IT ct i task-uri de produs. i, pentru c aproape
toi administratorii fceau parte din echipa on-call, era nevoie ca
fiecare persoan s cunoasc fiecare produs.
Acest sistem a funcionat bine o perioad ndelungat de

TODAY SOFTWARE MAGAZINE


timp, ns, pe msur ce se adugau produse noi biroului din Cluj,
devenea evident faptul c aceast soluie nu va scala.
Pentru rezolvarea problemei, s-a decis n prim faz asignarea
a cte dou persoane pentru fiecare produs i participarea lor la
stand-up-urile zilnice ale developer-ilor. Astfel, pentru managerii
respectivelor echipe era clar cine se ocupa de problemele lor pe
partea de administrare de sisteme, iar administratorii participau
activ la discuiile i deciziile privind produsul.
Dup aceast modificare, feedbackul primit a fost unul
ncurajator: managerii au observat o mbuntire n rezolvarea
task-urilor de la administratori, iar acetia au fost mai concentrai
pe produsele lor, nefiind nevoie s schimbe contextul ntre mai
multe medii i produse.
Urmtoarea faz important a reprezentat-o un proiect nou,
intern, la care managerul a cerut ca cei doi administratori asignai
proiectului su s stea mpreun cu restul echipei. Dup cteva
sptmni s-au i vzut rezultatele: echipa a funcionat ca un tot
unitar cu roluri bine definite, dar interconectate bine.
Nivelul mare de eficien obinut n cadrul acestul proiect a
determinat mutarea i a celorlali administratori lng echipele
pe care le deserveau. Aceast apropiere fizic a ajutat att la ntelegerea de ctre developer-i i manageri a problemelor aprute pe
partea de administrare ct i la nelegerea de ctre administratori a nevoilor developer-ilor. De asemenea, participarea tuturor
prilor la discuii a determinat depistarea unor probleme nainte
s apar i rezolvarea altora la scurt timp dup ce au aprut.
n continuare este nevoie ca echipa de on-call s cunoasc
toate produsele, dar nu la un nivel att de avansat ca nainte.
Problemele specifice produsului le rezolv echipa specializat,
care, mai apoi, notific on-call-ul de schimbri.
Acest mod de lucru s-a dovedit eficient n cadrul companiei
noastre, iar implementarea sa treptat a contribuit major la succesul su.

Concluzii
Probabil cel mai important lucru de reinut este faptul c
DevOps-ul nu trebuie gndit ca un set de skill-uri pe care trebuie
s le aib angajaii ori ca un set de tool-uri pe care trebuie s le
folosim pentru a ne numi DevOps. Important este apropierea
dintre echipe, iar skill-urile i tool-urile apar doar dac apare o
nevoie pentru ele.

Bibliografie
Effective Devops - Jennifer Davis, Katherine Daniels; OReilly Media 2015
We are all DevOps presentation, Velocity Amsterdam 2015, https://speakerdeck.com/kdaniels/we-are-all-devops
State of DevOps report 2015, Puppet Labs, https://puppetlabs.com/sites/
default/files/2015-state-of-devops-report.pdf

www.todaysoftmag.ro | nr. 44/februarie 2016

23

programare

Haos, meme i tipare de design


software

C
Ariel Pontes
ariel.pontes@3pillarglobal.com
Python Developer
@3 Pillar Global

odul tu nu este DRY/ SOLID/ lizibil/uor de ntreinut. API-ul nu este


RESTful. Nu respeci principiul spune, nu ntreba. Codul tu nu este bine
documentat. Comentariile inline miros a probleme. Codul nu este eficient.
Optimizarea prematur este sursa tuturor relelor. Nu ai nevoie de o bibliotec pentru aceast funcionalitate; ar trebui s evii sincronizarea tehnologic. Nu reinventa
roata.
n aceast colecie de enunuri regsim cteva din principiile i filozofiile
care au guvernat n dezvoltarea software.
Unele par s le contrazic uneori pe altele,
iar dezbaterile pe aceste teme sunt adesea
ncinse i dezvluie un anumit nivel de
ncpnare i un fel de primitivism de
toate prile. Putem gsi argumente tehnice pentru a le rezolva?
n acest articol ncerc s ofer o privire
de ansamblu asupra tiparelor de argumentare care apar adesea din astfel de discuii
i s examinm de ce este att de dificil s
gsim rspunsuri decisive.

Apelul la comunitate

Argumente tipice

Negarea subiectivitii

Apelul la autoritate
Ajuni ntr-un impas, este un lucru
comun s facem apel la autoritate
Renumitul dezvoltator John Doe sprijin
acest framework/ principiu/ aceast bibliotec/ etc., deci trebuie s fie bun! Acesta
nu este un argument decisiv, dar are un
anumit grad de legitimitate. Un dezvoltator cu experien este probabil antrenat s
evalueze cel puin calitile mai obiective
ale unei tehnologii sau ale unui demers.

24

nr. 44/2016, www.todaysoftmag.ro

O alt variant a apelului la autoritate


este apelul la comunitate, similar cu apelul la mase, dar cu diferena c aria sa este
restricionat la comunitatea dezvoltatorilor i nu la populaie n general. Aceasta
aduce o mbuntire fa de cellalt argument deoarece, chiar dac noul trend este
imperfect, toat lumea tie c este mult
mai bine s lucrezi utiliznd tehnologii
avnd o comunitate puternic n spate.
Dar a presupune c popularitatea unui
trend indic ntotdeauna superioritatea
sa, este nerealist.
Inginerilor le este team de subiectivitate, iar acest lucru ne face ocazional s
ne expunem la a cdea victime efectului
de fals consens. Adevrul este c ingineria
software este, de fapt, o activitate foarte
social. Programarea n limbaje de nivel
nalt este, la urma urmei, o modalitate de
comunicare nu numai cu computerele,
dar i cu ali programatori. De aceea, nu
ar trebui s fie o surpriz c concepte precum lizibilitatea, care sunt n fond strns
legate de intuiia uman i care pot diferi
de la individ la individ, joac adesea un rol
decisiv n hotrrea dac un tipar este sau

TODAY SOFTWARE MAGAZINE


nu mbriat de industrie, OOP i MVC fiind exemple destul de
ilustrative. Din pcate, dei se dezbate mult pe aceast tem, prea
puin cercetare se face de fapt n legtur cu potrivirea anumitor
tipare de design la aspectele universale ale cunoaterii umane, ca
s nu mai vorbim de publicare.
Dar ne este jen s recunoatem acest lucru. i atunci, ce
facem? Trim n negare. Evitm termeni precum personalitate
i intuiie i preferm termeni pseudo-obiectivi precum lizibilitate i mentenan. ncepem chiar s credem c afirmaii
de genul X este mai lizibil dect Y spun ceva obiectiv despre
natura realitii. Acest lucru nu nseamn c un consens n
u
este niciodat real. Oricine este sntos la cap va fi de acord c
nelegerea unui serviciu web complex, scris ntr-un singur fiier
cu milioane de linii, este cel puin o provocare intelectual serioas chiar i pentru cel mai experimentat dezvoltator. Dar este
important s inem minte c i cele mai intuitive adevruri pentru
o persoan pot uneori s par prostii altcuiva.

tiina incertitudinii

Ceea ce vreau s subliniez este faptul c trendurile n codare


sunt doar un alt exemplu de meme. Atunci cnd vine vorba de
Darwinism, unii se gndesc poate la selecia natural i sunt
tentai s concluzioneze c memetica confirm c trendurile cele
mai populare sunt de fapt cele mai bune. Acest lucru este incorect
din mai multe motive:
A fi sntos nseamn a fi cel mai bun pentru nmulire
i nu a fi cel mai bun pentru a ne ajuta s ne atingem scopurile.
Uneori acestea coincid, alteori nu. Nicio specie nu e superioar
alteia ntr-un sens absolut. A fi cel mai bun nseamn s fi cel mai
adaptat la un anumit mediu, iar mediile sunt n continu schimbare. n ecologia organismelor vii, aceste schimbri au loc pe
parcursul sutelor sau miilor de ani. n ecologia ideilor, acestea se
pot ntmpla n ani sau chiar zile. Evenimente exterioare ntmpltoare pot avea o influen decisiv n privina crei variante a
unei meme devine dominant, indiferent de abilitatea sa de a-i
ajuta gazda s i ating elurile. Ceea ce ne aduce la urmtorul
subiect.

Deci aceste argumente nu sunt decisive, dar cu siguran Teoria haosului


exist altele mai bune. tiina ne poate spune ntotdeauna care
Flfitul de aripi al unui fluture n Rio de Janeiro, amplificat
este cel mai bun lucru de fcut, nu-i aa? Nu ntotdeauna
de curenii atmosferici, ar putea cauza o tornad n Texas, dou
sptmni mai trziu. Edward Lorenz
Memetica
n sistemele foarte complexe, rezultatele sunt foarte sensibile
Nu, nu este vorba despre memele de pe internet. Memetica la condiiile iniiale. Acest lucru este adevrat i pentru vreme i
este un cmp de cunoatere interesat de cum ideile se rspn- pentru biologie. Fiinele umane se mndresc adesea c sunt cele
desc i se adapteaz drept rspuns la forele seleciei naturale. mai evoluate animale de pe pmnt, dar nu am fi existat niciFiinele umane sunt o specie social care a evoluat spre a nva odat dac un meteorit uria nu ar fi lovit pmntul i nu ar fi
prin observaie i a copia comportamentul celorlali. Aceasta omort toi dinozaurii, permind mamiferelor mici s ias din
ne-a permis s acumulm cunotine ntr-o msur la care nicio ascunziurile lor i s prospere ntr-un mediu cu totul nou. Dac
alt specie nu a visat, dar de asemenea ne-a fcut vulnerabili la evenimente mici pot face practic imposibil de prevzut ce specii
parazii culturali: tradiii care nu servesc vreunui scop raional, de animale vor disprea i care vor prospera, acelai lucru trebuie
dar care totui sunt copiate din generaie n generaie, uneori fr s fie adevrat pentru memele de dezvoltare software.
a lua n calcul toate aspectele.
Unul dintre cele mai bune exemple de instrument care devine
Exemple de meme sunt melodii, idei, expresii clieu, mod la dominant din motive greite poate fi gsit n industria de dezmbrcminte, feluri de a face oale sau de a construi arcade. La fel voltare web, prin popularitatea lui PHP. Limbajul este n zilele
cum genele se propag ele nsele n fondul genetic prin saltul de la noastre unul dintre cele mai urte limbaje potrivit acestui sondaj
un corp la altul via spermatozoizi sau ovule, tot aa i memele se Hacker Poll i totui, este nc cel mai adoptat i tehnologia care
propag n fondul memelor prin saltul de la un creier la altul via se dezvolt cel mai rapid pe baza utilizrii n producie (81.7%
un proces care, n sensul larg, poate fi numit imitaie. Richard potrivit w3techs). Acest lucru are sens, totui, dac lum n conDawkins, Gena egoist
siderare bariera de intrare joas pentru noii dezvoltatori, c a

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

www.todaysoftmag.ro | nr. 44/februarie 2016

25

programare
Haos, meme i tipare de design software
fost primul limbaj conceput pentru a servi paginilor web, c este
open-source, c a ajuns s domine dot-com bubble, etc. .
n contextul vremii i ecologiei, tiina haosului ncearc s
mearg mai departe de la a ncerca s stabileasc lanuri de cauzalitate pentru a prezice stri viitoare ale unui sistem i n schimb
s se concentreze pe gsirea tiparelor statistice n seturi mari de
date i s le multiplice prin modele matematice relativ simple. n
dezvoltarea software, totui, este greu de imaginat cum s-ar putea
realiza ceva analog.

Avnd acestea n minte, ar trebui s ne simim ncurajai s fim


critici n legtur cu capriciile de design n timp ce nu suntem
stnjenii s le adoptm n mod experimental sau de dragul
conveniei comunitii. n final, n lipsa celor de mai sus, sper
ca mcar s fi oferit o perspectiv de ansamblu care s provoace
gndirea n privina ctorva subiecte interesante care de obicei nu
sunt acoperite de comunitatea de dezvoltare software.
Cel mai mare duman al cunoaterii nu este ignorana, ci
iluzia cunoaterii. Stephen Hawking

O inginerie experimental

Bibliografie

Ingineria n general nu este chiar o tiin, ci mai degrab


ea se bazeaz pe o cunoatere tiinific bine stabilit pentru a
rezolva probleme specifice. Cunoaterea care susine ingineria
software, totui, este mult mai puin stabil dect cea care susine
ingineria civil, de exemplu. Materialele disponibile, instrumentele i cunoaterea tiinific a mecanicii la scar uman
se modific foarte ncet n comparaie cu ritmul alert al lumii
IT. Acest sol fertil pentru idei noi ajunge s creeze un fond de
meme mult prea complex i imprevizibil. Totui, ca ingineri nu
suntem pregtii pentru a nelege ceva din aceast harababur,
aa c trebuie s nvm cum s gndim ca oameni de tiin
experimentali.Caracterul incontestabil nu este o virtute a unei
teorii, ci un viciu. Orice test autentic al unei teorii este o ncercare
de a o rstlmci. Karl Popper

Dawkins, R. (1976). The Selfish Gene. Oxford University Press, Oxford, UK


Gleick, J. (1987). Chaos: Making a New Science. Viking Press, New York, US

Concluzie
Prin faptul c am pus mai multe ntrebri dect am gsit
rspunsuri, nu am intenionat s ofer o reet pentru ctigarea
oricrei dispute sau pentru luarea ntotdeauna a celei mai bune
decizii tehnice. Dar ceea ce sper este ca, aruncnd lumin asupra
subiectului, s creez condiiile unor dezbateri mai constructive,
n care prile s fie mai contiente de limitrile discursului lor
i de subiectivitatea experienei lor. Dispute care s nu degenereze n btlii ale ego-ului ntr-o lume a dezvoltrii software
dominat de brbai i care au drept rezultat decizii care nu sunt
ntotdeauna asumate n mod arogant drept fiind cele mai bune.

26

nr. 44/februarie 2016 | www.todaysoftmag.ro

Rosenberg, A. (2000). Philosophy of Science: A Contemporary Introduction.


Routledge, London, UK

programare

Utilizarea Machine Learning n


gestionarea veniturilor

existat mult publicitate exagerat n jurul unor concepte precum deep learning,
ensembles (ansambluri) sau bagging (ambalare) n ultima perioad. Aceste subiecte
sunt n prezent unele dintre cele mai n vog n nvarea automatizat - Machine
Learning (ML).

Marius Radu
marius.radu@fortech.ro
Software Developer
@Fortech

Intenia mea iniial a fost de a scrie despre deep learning, nou cuvnt cu rezonan
n cercurile tehnice, dar mai apoi am decis
s mi schimb puin plria de statistician i
mai degrab s m concentrez pe rolul ML
din perspectiva conductorilor de business
i produs.
n acest sens, voi prezenta nevoile unei
afaceri n prezent un scenariu care pot
fi ajustate cu abordri ale nvrii automatizate. Ca i al doilea obiectiv, vreau
ca acest articol s fie un argument sau
punct de sprijin atunci cnd dorim s
rspundem la urmtoarele ntrebri: (1)
Machine Learning presupune multe date?
(2) Machine Learning) presupune o mare
putere a computerului?
Atunci cnd vine vorba de ML, am
luat n considerare ntotdeauna trei pri
implicate principale, cu puncte de vedere
foarte diferite, care pot fi implicate ntr-un
proces de dezvoltare de aplicaii constructiv. Prima parte interesat este reprezentat
de oamenii de tiin ai datelor, care sunt

foarte interesai de puterea i acurateea


instrumentelor. A doua categorie include
dezvoltatorul software, care este concentrat pe performana aplicaiei (vitez,
scalabilitate, etc.). A treia i cea mai important parte implicat dintr-o perspectiv
pragmatic este omul de afaceri care
dorete de fapt o soluie pentru o anumit
problem real.
Marii furnizori de software consider
ML o pia mare de bani i de aceea exist
muli furnizori de instrumente i platforme
de machine learning, precum SAS i IBM
pentru analitic, Oracle sau Amazon pentru soluii cloud, etc. Dintr-o perspectiv
a afacerii, acest instrument poate ajuta la
soluionarea problemelor, dar eu consider mai important domeniul specific de
cunoatere n care este aplicat. Know-how
ul n domeniu este un ingredient fundamental n construirea de soluii pentru
probleme reale.
Punerea ntrebrilor potrivite, adunarea presupunerilor corecte i succesul

www.todaysoftmag.ro | nr. 44/februarie, 2016

27

programare
Utilizarea nvrii automatizate (Machine Learning) n gestionarea veniturilor
msurtorilor este, n cele mai multe cazuri, rolul i centrul
ateniei prilor interesate ML care au o mentalitate business.
Oamenilor de tiin ai datelor i dezvoltatorilor software le pas
uneori de reclama de marketing, referinele sau reputaia instrumentelor sau abordrilor ML. Pe de alt parte, valoarea ML este
ludat de persoanele de afaceri pe baza contribuiilor sale sau a
realizrilor dovedite.

Scenariu Utilizarea ML n gestionarea veniturilor


n continuare, voi prezenta cum R poate fi utilizat ntr-o
problem ML ntr-un scenariu business curent: gestionarea
veniturilor pentru hoteluri i optimizarea beneficiilor. R este un
limbaj de programare i un mediu open source. El sprijin calculul statistic i nvarea automatizat. Pachetul Caret dezvoltat de
Max Kuhn este favoritul meu, dar mai exist multe altele. R este
arma aleas de mine, iar urmtoarele exemple vor face referire
la biblioteci diferite. Unele similare pot fi gsite n Python, Java
sau alte limbaje de programare, dar, rezumnd din nou, punerea
ntrebrilor potrivite i gsirea datelor corecte atunci cnd implementm o metodologie bun, sunt elemente mai importante n
punerea n folosin a unei soluii ML bune.
Machine Learning are cel puin trei aplicaii n managementul
beneficiilor n general i n strategiile de gestionare a veniturilor
pentru hoteluri, n particular:
1. Segmentarea pieii: Clienii diferii sunt dispui s plteasc preuri diferite pentru aceeai camer. Un manager de
hotel tie c 20 de camere cu 400 euro/ zi aduc acelai venit ca
i 40 de camere cu 200 euro pe zi, dar scopul lor principal este
maximizarea profitului, ceea ce implic identificarea segmentelor
de pia i descoperirea segmentelor int potrivite care pot fi
servite: ex. 30 de camere cu 300 euro/zi. Obiectivul principal al
hotelului atunci cnd utilizeaz segmentarea este s descrie i s
anticipeze valoarea creat pentru clieni n diferite segmente i s
i vizeze ntr-un mod eficient.
n acest sens, tehnicile ML precum clasificatorii ajut managerii de hoteluri s gseasc clieni cu adevrat rentabili. Aceti
clieni sunt cei mai potrivii i cei mai aliniai cu propunerea de
valoare a hotelului. Pachetul Caret de la R implementeaz i ofer
documentaie de sprijin pentru cele mai rafinate instrumente de

clasificare Naive Bayes, Bagged AdaBoost, etc. 1


2. Previziunea cererea de camere nu este sigur n viitor i
singura modalitate de a prezice cu o anumit probabilitate este
aplicarea tehnicilor de previziune2. Multe hoteluri ncep s ia n
considerare sisteme computerizate de management al veniturilor.
Previziunile lor nu sunt perfecte, dar sunt mai bune dect nimic.
Aceste sisteme ajut la cunoaterea comportamentului clienilor,
descrierea caracterului sezonal al cererii i prezicerea numrului
de oaspei. Managerii de hotel pot, de asemenea, prezice costurile, identifica provocrile i se pot adapta cererii de pe pia, din
regiune sau sezon.
Cererea nregistrat este afectat de decizia business i nu
reflect cererea real. n vocabularul de management al veniturilor, cererea liber este cantitatea care ar putea fi vndut
dac nu ar exista limitri precum cele de livrare a produciei sau
limitarea impus de capacitate. Hotelurile ar trebui s identifice
cnd cererea liber este peste capacitatea hotelului. Aceasta este o
parte important a strategiei de management al veniturilor unui
hotel. n general, informaiile vin din sistemul de rezervri computerizat, iar aceasta se numete cerere constrns. Pe de alt
parte, o situaie ideal, atunci cnd oferta este nelimitat, este
considerat cerere nelimitat/liber3. Instrumentele i statistica
ML pot ajuta la descrierea cererii libere.
RM2 este un pachet R dezvoltat de Tudor Bodea
(InterContinental Hotels Group), care implementeaz funcii
utilizate n gestionarea veniturilor (ex. funcia EM elibereaz
cererea de constrngeri, folosind algoritmul de Ateptare
Maximizare)4. Pe de alt parte, forecast i zoo sunt doar dou
dintre cele mai populare pachete R care implementeaz previziunea i seriile temporale.
3. Poziionarea preurilor i politica de preuri: Obiectivul
cheie al unei strategii de stabilire a preurilor este s anticipezi
1 Applied Predictive Modeling, ediia 2013. New York: Springer, 2013.
2 Essentials of Marketing Research, ediia a 3-a. New York, NY: McGraw-Hill Education, 2012.
3 What is unconstrained demand? definition and meaning, BusinessDictionary.com. [Online].
Disponibil: http://www.businessdictionary.com/definition/unconstrained-demand.html.

4 T. B. & D. K. & M. Ferguson, RM2: Revenue Management and Pricing Package. 2008.

Young spirit
Mature organization
A shared vision
Join our journey!
www.fortech.ro

28

nr. 44/februarie 2016 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE


valoarea creat pentru clieni i apoi s stabileti preuri specifice
pentru a capta acea valoare. Hotelurile pot adopta diferite politici
de pre pentru a ntri percepia de valoare pentru clieni.
Tactica implic crearea unor instrumente de fixare a preului
care se schimb n mod dinamic pentru a reaciona la modificrile cererii i pentru a aduce ctig n mod continuu. Optimizarea
preului implic reglarea fin a unor variabile multiple precum
elasticitatea preului i preul de inventar pentru a maximiza profitul i nu neaprat veniturile 5. Machine Learning implic gsirea
unor tipare n date i utilizarea acelor tipare pentru a prezice viitorul. nvarea tiparului cererii i stabilirii preurilor nseamn
identificarea i recunoaterea acelor tipare atunci cnd le vedem
din nou. Optimizarea are un rol foarte important n acest proces.
n centrul su, managementul beneficiilor implic un control
strategic al inventarului, pentru a-l vinde clienilor potrivii la
momentul potrivit i pentru preul corect. n limbaj matematic,
gestiunea inventarului poate fi ncadrat ntr-o problem de optimizare. Mecanicul din spatele nvrii automatizate pentru
gestiunea veniturilor implic civa pai fundamentali: n sptmnile cu cerere mare, limitai rata de discount i rezervrile
de grup, pentru a crete beneficiul general (rata medie) i venitul. n sptmnile cu cerere sczut, vindei camerele goale la
orice pre sczut, pentru a crete factorii de randament i ctig.
Maximizarea venitului presupune un echilibru ntre factorii
beneficiu i randament6.
n acest moment nu voi meniona nici un pachet R, chiar
dac R are multe librrii de optimizare. Acum vreau doar s subliniez c nu exist cutii vrjitoreti care s ne poat ajuta s ne
meteugim cel mai eficient instrument de stabilire a preurilor.
Doar practica, rbdarea i munca din greu s-ar putea s ne
ajute

veniturilor nu este un subiect recent. A fost i este o practic business obinuit n ultimii cincisprezece ani. ML este utilizat, pe
lng hoteluri, n multe alte industrii, precum cea a companiilor
aeriene, nchirierilor sau n inventarul reclamelor online.
ntorcndu-ne la ntrebrile de la nceputul articolului, a
rspunde aa:
1. Machine learning (nvarea automatizat) nu necesit
ntotdeauna multe date pentru a funciona. Volumul de date al
hotelului nu este prea mare. Bineneles, sistemele de rezervare
online i motoarele de recomandare pot furniza date suplimentare, dar tehnologiile din prezent pot produce rezultate i singure.
2. Machine learning (nvarea automatizat) necesit o
putere mare a computerului, ceea ce nu este puin n zilele noastre. n prezent, o aplicaie ML poate fi uor pus n folosin
ca un micro-serviciu (ex. un container Docker i servit drept
API). Ceea ce am neles recent este c este nevoie mai des de
metodologii inovative dect de tehnologii revoluionare pentru a
soluiona problemele curente. O ntrebare bun i o metodologie
robust i transparent sunt ingredientele eseniale.

ML este un proces iterativ care este rulat pn cnd se obine


modelul care face previziuni bune. Modelul de venit al hotelului
s-ar putea s implice adesea reglaje fine sau reconstrucie atunci
cnd descrete puterea sa predictiv sau acurateea. Gestionarea
5 How to Price: A Guide to Pricing Techniques and Yield Management. Cambridge; New York:
Cambridge University Press, 2008.
6

Yield Management: Strategies for the Service Industries, ediia a 2-a. Cengage Learning

EMEA, 2001.

www.todaysoftmag.ro | nr. 44/februarie 2016

29

programare

TFS ca platform de colaborare (II)

dori s subliniez n continuare urmtoarele aspecte legate de TFS, de


care att programatorii ct i non-dezvoltatorii pot beneficia: web portal i
Kanban board, management de proiect i version control. Unele dintre aceste

Dorin Cazan
dorin.cazan@siemens.com
Service specialist
@Siemens

caracteristici necesit o licen de tip


Ca dezvoltator s-ar folosi mai mult
Stakeholder, n timp ce altele necesit o Visual Studio n activitatea de dezvoltare,
licen pltit.
dar acesta se poate baza i pe hub-ul Code
din portalul web pentru a vizualiza, desWeb Portal
crca i compara fiierele din source code,
Portalul web este o zon de lucru ver- ct i pentru a vizualiza changeset-urile i
satil, care se adapteaz la fiecare utilizator shelvesets-urile i pentru a lucra cu repon funcie de hub-ul\tab-ul selectat de zitoriile GIT.
acesta (home, code, work, build, test), niveNon-dezvoltatorii ar lucra n prinlul de acces de care dispune (stakeholder, cipal cu hub-ul Work i funcionalitile
basic, advanced) i de opiunile configu- aferente acestuia: crearea de noi elemente
rate pentru proiect.
de lucru, folosirea de TFS queries pentru a
gsi mai usor work item-urile cutate, crearea de backlog-uri, urmrirea progresului
echipei folosind kanban board-ul, crearea de elemente favorite ce pot fi postate
pe hub-ul Home i ce vor fi disponibile
pentru toat echipa (queries, burndown
reports, charts, diagrams etc).

Kanban
Fig2. VisualStudioOnline Kanban board

30

nr. 44/2016, www.todaysoftmag.ro

Cele mai multe dintre lucrrile efectuate n cadrul unui proiect trebuie s fie
organizate ntr-un mod coerent.

TODAY SOFTWARE MAGAZINE


Din experiena mea, planificarea implic de obicei, cel puin
3. Dai click pe Create new team i n cteva secunde vei
cteva sticky notes i whiteboard de dimensiuni decente pe care avea un board funcional.
note-urile sunt de obicei structurate ntr-o manier asemnatoare
Kanbanboard-ului electronic:
II. Structura de permisiuni flexibil permisiunile trebuie
definite de dou ori:
1. Prin adugarea unui utilizator ca membru al echipei tale
acesta poate s vad doar hub-ul Home al board-ului tu. (Acesta
conine de obicei workflow charts, team queries i diagrame.)
2. Dac un utilizator nu primete acces pe area path-ul aferente Kanban-ului, acesta nu va putea accesa workitem-urile
aferente echipei i nu va putea exporta diagramele sau tabelele.

Fig3. Simple-kanban-board-von Jeff.lasovski - Eigenes Werk. Lizenziert


unter CC BY-SA 3.0 ber Wikimedia Commons - https://commons.wikimedia.org/
wiki/File:Simple-kanban-board-.jpg#/media/File:Simple-kanban-board-.jpg

Prin utilizarea Kanban putei vizualiza i gestiona fluxul de


lucru n cadrul echipei, stabili limite clare pentru work in progress
(WIP) n scopul de a menine concentrarea pe sarcinile curente i
de a mbunti colaborarea echipei prin crearea de oportuniti
de feedback, fcnd astfel blocajele i problemele mai uor de
identificat. Plci Kanban sunt disponibile pe scar larg, fie c
vorbim de variantele open source, cum ar fi Trello i Taiga sau
Kanban Tool, Jira i TFS.
Kanban este pe cale de a deveni un proces utilizat de ctre tot
mai multe echipe de dezvoltare, ca de altfel i kanban board-ul.
Microsoft a adugat suport pentru Kanban ncepnd cu TFS 2013
i continu s mbunteasc i consolideze suportul i n TFS
2015, precum i pentru platforma n cloud, Visual Studio online.
Voi expune cele mai importante aspecte ale board-ului de
Kanban din TFS:
I. Crearea uoar de board-uri n doar 3 pai
1. Deschidei portalul n modul administrativ1
2. Selectai New Team i completai cmpurile necesare.

Fig5. Access permissions structure for area path nodes

Persoanele externe echipei sau proiectului vor primi acces


de stakeholder, (acetia netrebuind s acceseze codul surs i
funciile administrative. Permisiunile lor vor permite doar vizualizarea de diagrame i eventual crearea de noi work item-uri.
Membrii echipei vor avea drepturi depline, dar i acestea poti fi
modificate n funcie de necesiti i de drepturile pe care le are
colegul n echip. (De exemplu un team admin va putea s creeze
noi area path-uri i iteraii pentru backlog).
III. Abilitatea de a defini fiecare coloan din board i stadiul
n care trebuie s se afle un work item pentru a putea ajunge
n acea coloan este o reprezentare grafic a stadiului n care a
ajuns un work item i deci un task ce trebuie prelucrat n cadrul
acelui backlog.

Project Management

Fig4. Interface to create a new Kanban team

1 https://tfsserver/DefaultCollection/teamproject/_admin

Folosind work item tracking i pachetul Microsoft Office, alturi de serviciile de colectare i raportare de date, managerul de
proiect i membrii echipei au tool-urile necesare monitorizrii
evoluiei proiectului .
TFS are capacitatea de a acoperi cererile, partea Request
Tracking ct i partea de Problem Report, necesare unui mediu de
dezvoltare. TFS premite utilizatorului s acceseze i s manipuleze obiectele (numite Work Items) cu uurin folosind produse
din familia Ofice: pot fi redirecionate via Outlook, pregtite pentru publicare prin MS Publisher sau pot fi modificate n mas prin
utilizarea MS Excell. n adiie, utilizarea mecanismului de process
template din TFS ne d capacitatea de a adapta procesele specific
proiectului n funcie de mediul de programare sau de necesitatea
proiectului n sine. Un proces template const dintr-un set de
instruciuni necesare pentru a pune bazele noului proiect. Aceste
instruciuni conin obiecte cum ar fi: work item, roluri n cadrul
www.todaysoftmag.ro | nr. 44/februarie 2016

31

programare
TFS ca platforma de colaborare - pentru dezvoltatori ct i non-dezvoltatori (II)
proiectului, permisiuni, etc. .
Proces templates-urile standard vin o dat cu instalarea TFSn concluzie, adoptarea TFS-ului n organizaia dumneavoasului, dar acestea pot fi modificate i extinse sau se poate crea un tr poate aduce beneficii unui numr mare de angajai. Licena
nou template, cu scopul de a permite proiectelor s defineasc de tip Stakeholder cu ajutorul creia oricine din echip poate
procesul de dezvoltare necesar lor.
s urmreasc prioritile proiectului i s ofere ndrumri, s
mprteasc idei, dar i capacitatea nativ de a suporta difeVersion Control.
rite exstensii sau de a dezvolta extensii suplimentare in-house
TFS ofer un mecanism standard de version control pen- se numr printre importantele beneficii . La acestea adugm
tru branching, merging, version management check-in i i faptul c se pot modifica diferite aspecte ale TFS pentru a
check-out. TFS include de altfel opiuni adiionale cum ar optimiza funcionalitile existente n cazul n care exist cereri
fi: shelving (abilitatea de a stoca schimbri pariale fr a speciale n cadrul proiectului.
le valida n totalitate) i check-in policies dinamice care se
adreseaz problemelor specifice development-ului la o scar mare.
Dar cum i ajut toate acestea pe non-developer-i?
Eti un trainer i trebuie s pregteti pe noii colegi s lucreze
cu TFS. De obicei, un astfel de training se face n cadrul unui
workshop sau prin organizarea unui curs care are i o parte de
hands-on. Odat cu apariia versiunilor noi de Visual Studio sau
TFS se adaug, se schimb sau sunt scoase functionaliti. Dar
va trebui s se schimbe i documentaia necesar training-ului.
Dac ai menine copii ale acestei documentaii n TFS, ai putea
s vezi istoria documentaiei i toate schimbrile pe care acesta
le-a suferit de-a lungul anilor.
Poate nu pare important acum, dar asemenea tuturor firmelor
de development, Siemens trebuie s i arhiveze sowftware-urile
cu statusul released pentru a se asigura ca n 5-10 ani sursa
software ului poate fi restaurat i developer-ul poate lucra la un
patch sau la un fix care este cerut de ctre client.
S ne imaginm urmtoarea situaie : o echip de suport trebuie s i rennoiasc constant FAQ-urile. Dac un FAQ entry
este ters, echipa de suport este forat s cerceteze din nou problema i s creeze un FAQ entry nou. Printr-un simplu check-in n
TFS, ai avea toata istoria bazei de date FAQ. Dac consideri c un
anumit fiier nu mai este necesar, poi s-l tergi n orice moment.
De notat este faptul c TFS nu terge cu adevrat nici un obiect
din version control , doar l ascunde; dac se dorete tergerea
complet a unui obiect, este necesar folosirea opiunii destroy.

Corporate Technology Romania

32

nr. 44/februarie 2016 | www.todaysoftmag.ro

programare

TODAY SOFTWARE MAGAZINE

De la Business la implementare.
Cum alegem CRMul

rmrirea interaciunilor cu clienii companiei este la baza pstrrii businessului n stare de funcionare. Interaciunea cu clientul final este prima linie de comunicare cu lumea exterioar i e nevoie s fie ct de bun cu putin. Exist cteva moduri
de a o organiza, n funcie de dimensiunea afacerii. Dar la un anumit moment va trebui implicat i un instrument software
din familia Customer Relationship Management (CRM).
Considerm c CRM-ul este un instrument critic al afacerii,
care trebuie ales cu mult grij i ajustat nevoilor afacerii prin
implicarea propriului departament IT (atunci cnd acesta exist)
ori a consultanilor externi. Pe de alt parte, dezvoltatorii trebuie
s fie la curent cu piaa CRM-urilor, deoarece ei vor fi cei care vor
implementa modificrile dictate de nevoile de business.
Astzi ne vom uita la elementele de care trebuie s inem cont
n alegerea dintre diversele soluii de tip CRM, i vom analiza mai
atent cele mai populare soluii open-source.

Criterii de evaluare
1. Se ncepe de la zero sau se tranziioneaz de la un sistem deja existent? Dac suntei un business la nceput de drum
sau dorii s ncepei de la zero, nu vor exista costuri de tranziie
a datelor. Dac n schimb, suntei o afacere deja n derulare, va
trebui s avei n vedere costurile asociate migrrii datelor din
CRM-ul curent sau din fiiere tip spreadsheet sau orice alt sistem
avei n funciune n acest moment. Asigurai-v c echipa care
implementeaz CRM-ul este la curent cu sistemul actual, n aa
fel nct s poat planifica aceast migrare din timp.
2. Avei un buget fix pe care l vei cheltui de la nceput? Sau
dorii s distribuii costul n timp, folosind metoda leasingului de
software? Sunt dou strategii importante n abordarea bugetrii.
Prima dintre ele este alocarea unei sume de bani de la nceput
pentru implementare i adugarea unui cost lunar sczut pentru mentenana sistemului, gzduire. n timp ce aceast metod
este foarte bun n a prezice costul total i asigur proprietatea
softului i a datelor, unele afaceri nu au aceast sum pe care s
o investeasc de la nceput. Aa c acestea prefer s nceap cu
o soluie SaaS, achitnd sume lunare pentru fiecare utilizator al
sistemului.
3. Care sunt considerentele de securitate asupra
informaiilor stocate n CRM? Cele mai multe din soluiile actuale
CRM sunt bazate pe cloud, iar ofertele lor sunt exprimate n pre/
lun/utilizator. Dac datele afacerii dumneavoastr sunt sensibile, este posibil s nu v simii confortabil cu faptul c acestea
sunt n afara controlului propriu, astfel c este posibil s luai n
calcul doar acele soluii care permit instalarea n interiorul firmei.
4. ntreaga companie va avea nevoie s acceseze datele din
CRM? Sau doar o parte din angajai interacioneaz cu clientul?
n timp, nevoia de a aduga mai muli utilizatori va proveni din
faptul c ntreaga afacere este rezervat servirii clienilor, ntr-un
fel sau altul. Pentru soluiile manageriate intern nu exist costuri

adiionale la adugarea de noi utilizatori. n schimb, n cazul


soluiilor SaaS, cu ct sunt mai multi utilizatori, cu att factura
lunar este mai ridicat.
5. Vei urma procedurile de lucru din CRM aa cum este el
astzi, sau avei nevoie de modificri specifice pentru a-l adapta
la modul de munc pe care l avei deja? Un argument important
pentru soluiile manageriate intern este acela c pot fi modificate pentru ndeplinirea nevoilor clientului prin adugarea de
module noi care nu sunt disponibile pe pia. n cazul soluiilor
SaaS acesta e un mare dezavantaj, deoarece ele oblig businessul
s foloseasc doar un anumit set de funcionaliti, ceea ce poate
conduce la scurtcircuitarea sistemului de ctre angajai pentru
a-i ndeplini sarcinile.
6. [Doar instalrile on-site] Avei resurse IT interne pe
care s le folosii la mentenana CRMului dup instalare sau
externalizai complet aceast activitate? Este important de abordat aceast tem ntr-un stadiu ct mai incipient, deoarece ai
putea dori s avei o persoan care se va ocupa de CRM intern.
Alternativa este cea de a avea un contract de mentenan, deseori
cu aceeai companie care v-a fcut instalarea iniial.
7. Avei nevoie ca CRM-ul s poat fi accesat de pe dispozitivele mobile ale angajailor? Este posibil s permitei accesul
doar de pe terminale din interiorul sediului dumneavoastr, caz
n care aceast cerin nu trebuie luat n calcul. Dac, n schimb,
dorii ca interaciunea cu sistemul CRM s se petreac inclusiv
de la locaia clienilor, angajaii folosind terminale mobile, atunci
ai putea fi mulumii cu o interfa responsive (OroCRM ofer
aceast facilitate, de exemplu), sau ai putea dori o aplicaie
mobile specializat (precum ofer cei de la Insightly, Zoho, MS
Dynamics).

Comparaie ntre CRMurile SaaS


Efectuarea unei comparaii complete de faciliti i preuri
este o ntreprindere serioas, aa c pentru acest articol am redus
analiza doar la comparaia de preuri. V rugm s intrai pe
site-urile fiecrui CRM n parte pentru o detaliere a facilitilor
oferite de acesta.
O comparaie mai detaliat care include i limitrile de resurse
poate fi consultat ntr-un spreadsheet online]saas-comparison1,
deoarece este dificil de integrat ntr-un articol de revist.
1 https://docs.google.com/spreadsheets/d/1pEZj-Di9yiETmTPmn-vl-J8JeGoqrnoPX4f4Y13hmTE/edit#gid=0

www.todaysoftmag.ro | nr. 44/februarie, 2016

33

programare

De la Business la implementare. Cum alegem CRMul

Concluzii
Piaa pentru aplicaiile CRM este foarte larg. Pe de o parte,
sunt clienii noi care au nevoie de un instrument cu care s
porneasc la drum. Pe de alt parte, sunt companiile care deja
folosesc un CRM, dar care vor s i actualizeze procesele curente
i caut o soluie mai bun dect cea pe care o au deja. Fiecare
dintre acetia are un set unic de nevoi. n acest articol am descris
cteva dintre cele mai importante criterii care trebuie avute n
vedere atunci cnd se face o alegere. Am oferit o comparaie ntre
preurile soluiilor Saas, precum i o comparaie mai aplicat
ntre variantele open-source care pot fi manageriate intern.

Comparaie ntre CRM-urile open-source


Ce se ntmpl dac decizia de business este s nu se foloseasc niciuna din multele soluii SaaS, ci s se aleag o variant
mai simpl open-source care s fie modificat pentru ndeplinirea
cerinelor de business? Pentru o perioad lung de timp se folosea ediia Community (CE) a SugarCRM ca punct de pornire,
dar a fost ntrerupt n 2014. Mai jos ne propunem s analizm
cei mai importani juctori din aceast pia din perspectiva
extensibilitii.

34

nr. 44/februarie 2016 | www.todaysoftmag.ro

Georgiana Gligor
gb@tekkie.ro
Owner
@Tekkie Consulting

programare

Composer i Packagist,
vedetele PHP-ului

HP-ul are o istorie destul de zbuciumat n ceea ce privete managementul pachetelor.


Aceasta a urmat s se schimbe la nceputul anului 2012, cnd s-au lansat proiectele
Composer i fratele su, Packagist.

Radu Murzea
rmurzea@pentalog.fr
PHP Developer
@Pentalog

Ctlin Criste
ccriste@pentalog.fr
PHP Developer
@Pentalog

n acest articol, v vom introduce n fru- proiecte existente i modului greoi n care
moasa lume i istorie a managementului puteau fi folosite librriile i extensiile. n
pachetelor n PHP-ul modern.
ciuda acestui fapt, PEAR a crescut n popularitate datorit deinerii unui monopol a
Puin istorie
acestei funcionaliti.
Un sistem de management al pachetelor
nu a existat n lumea PHP pn la ncepuCa urmare a acestui suport precar, cei mai
tul anului 2000, cnd Stig Bakken a nceput muli programatori au decis pur i simplu s
proiectul PEAR ca urmare a discuiilor pur- nu foloseasc acest manager de pachete i au
tate la Tel-Aviv n cadrul conferinei PHP recurs la a se baza doar pe functionalitile
Developers Meeting.
oferite de framework-ul n care lucrau, n
special datorit boom-ului framework-urilor
Principiul de funcionare al PEAR- PHP n perioada 2004 2006. Aceast pracului era ncorporarea unui manager direct tic nu adus dect o cuplare excesiv ntre
n runtime-ul limbajului PHP i instala- framework i aplicaia dezvoltat, migrarea
rea dependinelor dorite folosind linia de ctre un alt framework sau renunarea comcomand. Dependinele erau aduse mpa- plet la unul fiind extrem de dificil.
chetate n arhive i erau folosite n proiecte
prin folosirea instruciunilor de include sau
Toate acestea ne conduc n anul 2009, un
require.
an cu o semnificaie istoric major n lumea
PHP. Atunci au avut loc dou evenimente
Pentru mbuntirea performanei apli- relevante:
caiilor, PECL a fost lansat n octombrie
introducerea unui suport robust i
2003. Acest sistem permitea compilarea
solid pentru namespace-uri n cadrul verlibrriilor PHP n programe C, urmnd a fi
siunii 5.3 a PHP-ului
folosite prin PEAR ca extensii ale PHP-ului.
nfiinarea grupului PHP-FIG n timMotivaia pentru acest sistem a fost faptul c
pul conferinei php|tek 2009 i lansarea
programele C au performan superioar n
standardului PSR-0 de ctre acetia.( Vom
comparaie cu codul interpretat al PHP-ului.
adduce mai multe informaii despre acest
grup i standardele PSR ntr-un articol
Utilizarea de cod prin PEAR i PECL
viitor)
era dificil din cauza lipsei standardelor
Brusc, aceste schimbri au eliminat o
de codare, dificultilor de contribuire la parte din dezavantajele majore ale PEAR-ului
www.todaysoftmag.ro | nr. 44/februarie, 2016

35

programare

Composer i Packagist, vedetele PHP-ului


instalate exact aceleai versiuni ale tuturor
pachetelor.
Fiierul .lock conine hash-ul fiierului
.json din care a fost generat. Prin urmare,
dac fiierul .json, s-a modificat, urmtoarea execuie a comenzii composer install
va afia o atenionare cu privire la desincronizarea celor dou fiiere.
Avnd un astfel de fiier uureaz de
asemenea instalarea pachetelor, deoarece
comanda composer install va sri peste
procesul complex de rezolvare a versiunilor dac detecteaz prezena fiierului
.lock.

i au deschis drumul ctre ecosistemul


PHP modern care-l cunoatem astzi.
Printre altele, a nceput dezvoltarea
proiectelor Composer i Packagist, prima
lansare a unei versiuni funcionale a acestora avnd loc n Martie 2012. Ele au fost
dezvoltate de ctre Nils Adermann i Jordi
Boggiano, cei doi continund mentenana
acestora pn n ziua de astzi.

Mecanisme de funcionare

composer.json
Pentru a folosi composer ntr-un proiect, e nevoie s crem un fiier denumit
composer.json. Acest fiier descrie pachetele de care depinde proiectul, dar poate
conine i alte meta-informaii.
Unul dintre cele mai importante cmpuri din acest fiier este cmpul require.
Prin acesta, specificm pachetele de care
proiectul nostru depinde:
require: {
monolog/monolog: 1.0.*
}

De multe ori, cmpul require este tot ce


avem nevoie pentru a ne configura dependenele proiectului. Pentru lista complet
de cmpuri disponibile n cadrul fiierului
composer.json, putei consulta schema din
documentaia composer-ului1.
Pe lng pachetele externe, se pot
specifica ca dependene i pachete de platform. Acestea sunt nite pachete virtuale
pentru ceea ce este instalat pe system.(Nu
sunt instalate de Composer.)
1 h t t p s : / / g e t c o m p o s e r. o r g / d o c / 0 4 - s c h e m a .
md#the-composer-json-schema

36

Operatori de versionare a unui pachet


Versionarea semantic3 (major.minor.
patch) este acum considerat o practic
ideal n lumea PHP. Prin urmare, pachetele n general respect aceast convenie.

php sau php-64bit


maina virtual HipHop
extensii php
librrii de sistem
Versiunea unui pachet poate fi specifiPentru a vedea pachetele de platform cat prin constrngeri de baz:
disponibile pe sistemul local, putem folosi
sub form exact (e.g. 1.2.3)
comanda composer show --platform.
interval (e.g. >=1.0 <2.0)
sau wildcard (1.2.*).
Instalarea pachetelor
Instalarea pachetelor se face rulnd
Pe lng constngerile de baz, mai
comanda composer install.
pot fi folosii doi operatori (next significant
release operators):
L a prima execuie a comenzii,
~ marcheaz versiunea minor
Composer va ncerca s determine care
minim de care depindem i las ultima
versiune s descarce pentru fiecare pachet
cifr specificat s fie incrementat. (e.g.
specificat astfel nct toate cerinele de ver~1.2.3, care este echivalent cu >=1.2.3
siune i stabilitate s fie satisfacute. Aceasta
<1.3.0 )
poate fi o problem dificil pentru c, n
^ marcheaz versiunea major
practic, multe pachete depind unele de
maxim acceptat care nu introduce
altele, iar legturile dintre ele sunt deseori
incompatibiliti majore (e.g. ^1.2.3,
menionate n moduri diferite (vezi capitocare este echivalent cu >=1.2.3 <2.0.0).
lul despre operatori).
Acest operator se potrivete perfect
pachetelor care implementeaz regulile
Sistemul prin care Composer parversionrii semantice
curge acest pas este printr-un algoritm de
rezolvare a satisfiabilitii booleen-e2. Prin Stabilitatea unui pachet
urmare, aceasta este o problem a crei
Composer permite inclusiv instalarea
complexitate crete exponenial cu num- pachetelor cu o variat stare de stabilitate.
rul de pachete care trebuie instalate.
Valorile posibile, n ordine cresctoare a
stabilitii, sunt: dev, alpha, beta, RC i stacomposer.lock
ble. Aceast valoare poate fi specificat n 2
Dup rularea comenzii de instalare, moduri, care nu se exclud:
vom observa c un nou fiier a fost creat:
ca valoare a opiunii minimum-stacomposer.lock. Rolul acestui fiier este de
bility n composer.json . n acest caz,
a stoca versiunile exacte ale pachetelor
acele versiuni ale pachetelor care sunt
instalate, fcnd o ncuiere a acestora
sub valoarea minim setat vor fi igno(de unde i numele). Astfel, toate persoarate la stabilirea versiunilor pachetelor.
nele care vor folosi acest proiect vor avea
Este de reinut faptul c, dac pachetele
2 h t t p s : / / e n . w i k i p e d i a . o r g / w i k i /
de care depindem au i ele la rndul lor
Boolean_satisfiability_problem

nr. 44/februarie 2016 | www.todaysoftmag.ro

3 http://semver.org/

TODAY SOFTWARE MAGAZINE


specificat o astfel de valoare n composer.json-ul lor, aceasta va fi ignorat.
prin flag-uri de stabilitate pentru fiecare pachet n parte (1.0.*@dev, ~2.2.0@
beta etc.)
Autoloading
n capitolul despre istoria managerelor am menionat ca suportul corect
i complet pentru namespace-uri introdus n versiunea PHP 5.3 a fost ultimul
ingredient necesar pentru naterea unui
manager de pachete robust i cu adevrat
util. Namespace-urile sunt, printre altele,
felul corect de a integra cod 3rd-party n
propria aplicaie, eliminnd folosirea operatorilor include i require.
Composer va construi un autoloader
de namespace-uri pentru proiectul nostru i pentru pachetele de care depindem
pe baza informaiilor trecute n cmpul
autoloading din composer.json. Aceast
informaie poate fi specificat n trei feluri:
prin definiie PSR-0, prin definiie PSR-4 i
prin corelare ntre namespace i fiier; acestea pot fi combinate n orice fel se dorete.

Surse ale pachetelor

Packagist
Packagist este repository-ul central care
conine toate pachetele disponibile pentru instalare, fiind folosit n mod implicit
pentru descrcarea pachetelor. Acestea
sunt de obicei adugate i administrate
de ctre autorii acestora. Packagist necesit ca sursa pachetelor s fie un repository

Git, bineneles public. Se obinuiete ca pentru a vedea lista complet i detaliat


aceast surs s fie pagina de GitHub a a acestora.
respectivului pachet, dar acest lucru nu
este obligatoriu.
Pe final...
Composer mpreun cu Packagist, e un
Satis
manager de pachete modern i robust, care
Satis-ul este o variant simplificat ne pune la dispoziie toate facilitile necea Packagist-ului care poate fi instalat sare fr a sacrifica simplitatea i curba
ntr-un sistem privat. Sunt dou motive foarte uoar de nvare.
principale pentru care folosirea Satis-ului
poate fi benefic:
Acesta a fost scnteia necesar pentru
Satis-ul presupune folosirea conexi- ca PHP-ul s poat adopta multe practici
unilor intranet, care sunt superioare n moderne de dezvoltare software. Este de
ceea ce privete latena i viteza.
departe unul dintre cele mai importante
multe companii dezvolt pachete proiecte din ecosistemul PHP-ului.
care sunt intenionate doar pentru uz
intern. Un sistem Satis este soluia perfect pentru a nu fi obligai s publicm
pachetele pe Packagist.
Comenzi
Pn acum am cunoscut o parte din
funcionalitile oferite de comenzile
install i show, ns Composer ofer o
varietate de comenzi.
Pe scurt, comenzile ne ajut s efectum cu uurint o varietate de operaiuni
uzuale necesare n contextul unui manager de pachete. Aceasta poate s includ
iniializarea unui nou proiect, adugare
i tergere de pachete, verificarea dependenelor ntre pachete, regenerare de
informaii pentru autoloading, modificare
de setari ale Composer-ului i multe altele.
V invitm s consultai documentaia4
4 https://getcomposer.org/doc/03-cli.md

www.todaysoftmag.ro | nr. 44/februarie 2016

37

programare

Care sunt provocrile n scenarii


Dev/Test/DevOps i cum ne poate ajuta
Microsoft Azure

n ziua de azi, majoritatea companiilor de dezvoltare software se confrunt cu


o serie de provocri atunci cnd trebuie s asigure ntr-un mod coerent medii
sau infrastructuri pentru scenarii de test, demo, staging, pre-producie i aa mai
departe.

Mihai Ttran
mihai.tataran@avaelgo.ro
Microsoft MVP,
Co-organizator
@ITCamp Avaelgo

38

nr. 44/2016, www.todaysoftmag.ro

Diviziunea ntre echipele de dezvoltare / testare pe de o parte, i cele de infrastructur


pe de alt parte.

configurate cum trebuie, etc. .


Se reia cererea, cu toi paii, pn
mediul este conform cu ceea ce dorete
echipa de dezvoltare.
Se folosete mediul respectiv: echipa
de QA execut testele, se face un demo
la client, etc. .
Dup utilizare echipa de dezvoltare
uit s notifice echipa de infrastructur
c nu mai are nevoie de acel mediu.
Poate deloc, sau poate doar pn la
urmtoarul moment cnd va relua
testarea / demo-ul conform ciclului de
dezvoltare.
Pe de o parte echipa de dezvoltatori
consider (pe bun dreptate) c dureaz
foarte mult pn li se pune la dispoziie un
mediu de testare- am ntlnit cazuri cnd
dura 3-4 zile- , iar pe de alt parte echipa
de infrastructur este nemulumit pentru c trebuie s asigure mentenana unor
medii care nu mai sunt necesare fr a ti
care sunt acelea.

De obicei, cu ct organizaia este mai


mare cu att observm un grad mai ridicat de specializare, i evident echipe mari
i separate de dezvoltare, de testare pe de
o parte sau de infrastructur i administrare de sistem pe de alt parte. Iat un
scenariu aproximativ (i exagerat n mod
intenionat pentru a sublinia problema)
care este destul de des ntlnit:
Echipa de dezvoltare cere un mediu
/ o infrastructur pentru a testa o versiune nou a unei soluii. Poate fi pentru
test, pentru staging, pre-production, etc.
Echipa de infrastructur primete
cererea, probabil sub forma unui ticket
sau service request prin unealta intern
de gestionat astfel de cereri. Cererea
este direcionat automat sau parial
automat ctre persoana care se ocup
cu rezolvarea ei.
Mediul de test este creat i echipa de
dezvoltare este notificat.
Costul mediilor de testare
Echipa de dezvoltare constat c
A avea zeci de maini virtuale care
mediul nu este conform cu ateptrile nu sunt utilizate presupune un cost inusale. Poate lipsesc maini, poate nu sunt til. Uneori avem tendina de a crede c

TODAY SOFTWARE MAGAZINE


odat realizat investiia iniial n infrastrcutura fizic (servere,
reea, etc.), nu vom avea alte costuri cu mainile virtuale deservite
de aceasta, neglijnd costurile de operare / mentenan, costul
cu energia i costul de oportunitate: faptul c pe un server stau
degeaba nite maini virtuale nseamn c nu pot sta unele de
care chiar e nevoie.
O alt situaie mult mai frecvent este cea a unor medii de
testare utilizate periodic pentru un interval limitat de timp, dar
create i care ruleaz tot timpul. Pe scurt: e nevoie de medii de
testare care s fie disponibile non-stop? Facem testare n weekend? Facem n timpul zilei i n timpul nopii? Cu nite proceduri
foarte simple i puin automatizare (a se citi scripting), e foarte
simplu s ajungem la costuri de 40-50% sau mai mici din cele care
presupun rularea non-stop a acestor medii.

Constrngeri de business
Tot mai multe companii dezvolt soluii n modelul SaaS
(Software as a Service), ori pentru produsele proprii, ori pentru
beneficiarii lor.
Livrarea versiunilor noi de software n modelul SaaS a modificat complet indicatorii de succes care trebuie urmrii, unul
dintre cei care au devenit foarte importani fiind time to market
sau intervalul de timp de livrare ctre client, scurs de la momentul
t0 cnd clientul a cerut o nou cerin. De asemenea, poate n
strns legtur cu time to market, se observ o modificare a
ritmului n care apar versiuni noi. Dac n modelul tradiional
de liceniere software on premises apreau versiuni noi odat la
ase luni sau mai rar, acum este foarte des ntlnit o frecven de
release o dat la dou sptmni sau chiar mai puin.
n aceste condiii devine evident de ce a atepta 3-4 zile pentru crearea unei infrastructuri de test este uneori chiar imposibil.

Pierderi mai puine


Azure i d posibilitatea de a controla foarte bine costurile
asociate unor maini virtuale sau a unor medii. Exist mai multe
mecanisme, printre care Azure Automation i Azure DevTest labs
prin care pur i simplu mainile virtuale se nchid la anumite ore
(ceea ce reduce costul de rulare al mainilor la 0), sau prin politici
care limiteaz crearea de maini virtuale de anumite dimensiuni
(ceea ce limiteaz costul de rulare).
Reutilizarea
Este foarte simplu n Azure s creezi o main virtual sau
un mediu complex i apoi s l recreezi de cte ori ai nevoie ntrun mod garantat identic. Aceasta n special cu ajutorul Azure
Resource Manager i modelul de templates, practic fiiere JSON
care descriu mediul pe care ni-l dorim n final n loc de o serie
de comenzi procedurale care pleac dintr-o stare i prin pai succesivi ne dau n cele din urm un rezultat. Acest mecanism de
template-uri se nscrie foarte bine n paradigma Infrastructure as
Code, alturi de PowerShell DSC (Desired State Configuration),
prin care personalul care creeaz infrastructur lucreaz cu ea aa
cum programatorii lucreaz cu codul surs, sau cu alte cuvinte
prin care nite nespecialiti n infrastructur (programatorii) pot
s creeze infrastructuri complexe.

Cum ne ajut Microsoft Azure

Atunci cnd vorbim despre Dev/Test cu Azure, mai nti


trebuie menionate uneltele i tehnologiile care ne ajut n tot
procesul de dezvoltare, Continuous Delivery i Continuous
Integration. Anume, Microsoft ne pune la dispoziie Team
Foundation Server (TFS) o soluie on premises sau Visual Studio
Team Services (VSTS, fostul Visual Studio Online), care este o
versiune simplificat a TFS livrat pe modelul SaaS.
Soluii folosind Cloud
Utlimele updates ale VSTS ne-au adus cteva mbuntiri
Odat cu apariia serviciilor de tip Cloud i n special a majore n special n relaia cu Azure.
celor publice foarte relevante (Microsoft Azure, Amazon),
rezult posibiliti noi de creare a unor infrastructuri sau medii Build
temporare, n special datorit unor atribute ale Cloud-ului.
Realizarea de build-uri a unei soluii administrate cu VSTS a
devenit din ce n ce mai simpl de-a lungul anilor. Recent, VSTS
Self-service
ne d posibilitatea de a realiza build n Cloud, pe maini (ageni)
Toate serviciile de tip Public Cloud se pot activa ntr-o mani- disponibile pentru acest lucru undeva n Azure. Acest lucru
er de autoservire. Este perfect normal ca echipa de dezvoltatori presupune pur i simplu realizarea unei conexiuni ntre VSTS
s creeze propriile maini virtuale (i tot ce e nevoie n jurul aces- i o subscripie de Azure (de exemplu una inclus n licenele
tora) pentru mediile lor temporare. Eventual cu ajutorul echipei MSDN), iar build-urile comandate se vor realiza pe infrastructura
de infrastructur, care poate s defineasc i apoi s foreze nite din Azure. Practic aceasta ne scutete de necesitatea unor maini
constrngeri i politici care s in costurile sub control. ns nu specializate n propria infrastructur pentru a realiza build-uri.
mai este nevoie de know-how-ul specific administratorilor de sisn figura alturat putem observa definiia unor pai de reatem pentru a crea medii temporare.
lizat la Build. De exemplu: Build efectiv, urmat de copierea unor
Elasticitatea
Cloud-ul prin definiie este elastic. Adic este foarte uor s
scalm, s adaugm sau s scdem maini virtuale care compun
un mediu de test, i care cu siguran sunt identice cu cele existente deja.
Rapiditatea
Crearea (provisioning) de maini virtuale dureaz foarte
puin. De exemplu n Microsoft Azure, crearea unui VM dureaz
mai puin de 10 minute, crearea a 10 VMs dureaz tot 10 minute,
iar crearea a 100 de VMs la fel. E foarte greu s creezi ntr-o infrastructur local zeci de maini virtuale identice n cteva minute
de fiecare dat cnd e nevoie.
www.todaysoftmag.ro | nr. 44/februarie 2016

39

programare

Care sunt provocrile n scenarii Dev/Test/DevOps i cum ne poate ajuta


Microsoft Azure

fiiere (output-ul de la build) undeva n Cloud, i ultimul pas


rularea unor teste automate (care presupune c soluia noastr
conine un proiect de testare care s conin unit tests).
Release
Cu ajutorul VSTS putem realiza release-uri, declanate de
exemplu de apariia unui nou build sau la cerere, utiliznd tot
maini (ageni) din Azure. Practic, eliminm necesitatea unor
maini locale pentru a depune acolo ultimele versiuni de aplicaie
necesare pentru QA / testare sau pentru realizarea unui demo la
client.
n figura alturat sunt prezentai civa pai posibili: deployment efectiv ntr-un Azure Web App, apoi rularea automat a
unor teste (de exemplu load tests), i n fine realizarea unui
deployment cu ajutorul Azure Resource Manager, pe baza unui
template JSON.

TFS i Release Manager


VSTS este totui un serviciu relativ limitat pentru scenarii
complexe de continuous delivery. De aceea, versiunea on premises
cu TFS reprezint o soluie foarte bun.
Alturi de TFS se poate utiliza Release Manager, un produs separat din lista de unelte Microsoft pentru Dev/Test, care
ne ajut n special pentru a defini workflow-uri de Build, Test,
Release, etc.; a defini medii de test complexe, i nu n ultimul
rnd a defini medii de test cu ajutorul Azure. Practic, putem
defini: mediul Dev care presupune realizarea unor build-uri i
rularea unor unit tests, s fie local pe o main din biroul nostru,
iar mediul Staging s fie construit cu ajutorul unor VMs din
Azure.

Azure Automation
Este un serviciu care ne ajut s definim scripturi PowerShell
i intervale regulate de timp sau condiii care trebuie ndeplinite
pentru rularea automat a acestora.
Automation este extrem de util atunci cnd avem nevoie de
maini de test sau de medii orict de complexe (VMs, subnets,
load balancers, etc.) care s porneasc automat atunci cnd este
nevoie de ele i s se opreasc singure dup ce nu mai sunt necesare. Ca exemplu, se poate implementa urmtorul scenariu:
La ora 10:00 se pornete mediul de test.
La ora 18:00, i numai dup ce toat activitatea din acel
mediu a ncetat (de pild dac avem server web, acesta s nu
proceseze request-uri active, sau dac nu se mai ruleaz teste
automate), se nchide mediul de test.
Acest serviciu vine ca o mnu peste modelul de pre al
lui Azure: mainile virtuale se pltesc per minut de rulare. Prin
urmare n exemplul de mai sus, cu VMs rulnd ntre 10 i 18 doar

40

nr. 44/februarie 2016 | www.todaysoftmag.ro

n zilele sptmnii scdem costurile cu infrastructura aceasta


temporar la mai puin de 25% dect dac VMs ar rula non-stop.
Dev Test Labs
Ultimul dar nu cel din urm serviciu Azure care merit
menionat pentru scenariile Dev/Test este, dup cum i i spune
numele, Dev Test Labs.
nc un serviciu aflat n preview i propune:
Crearea rapid de medii temporare (test, staging, etc.) folosind VMs.
Folosind template-uri JSON cu ajutorul Azure Resource
Manager, template-uri utile pentru reutilizare i pentru specificarea ct mai simpl (n special pentru programatori) a unei
infrastructuri complexe.
Pe VM-urile create se pot aduga extrem de simplu
Artefacte. Acestea pot fi: ageni, unelte, programe, etc. sau chiar
i nite comenzi mpachetate sub forma unor scripturi, care
s fie pe VM-ul respectiv dup crearea acestuia. De exemplu,
avem nevoie de o main virtuala Windows Server 2012 R2,
cu Fiddler, Git, Visual Studio Test agent instalate pe ea. Pur i
simplu selectm acele artefacte din list, i VM-ul nostru le va
avea dup instalare.
Minimalizarea de costuri prin diverse politici cum ar fi:
numrul maxim de VMs per utilizator, numrul maxim de
VMs per laborator (o entitate care trebuie definit explicit),
sau tipuri de maini virtuale care pot fi create. De exemplu,
utilizatorii s nu poat crea (din greeal s spunem) VMs cu
mai mult de patru procesoare.

Concluzii
Microsoft Azure n combinaie cu Visual Studio Team
Services sau Team Foundation Server i Release Management,
ne asigur posibilitatea de a crea medii de test / staging / preproduction rapid, la costuri mici si controlate. i, mai ales, fr a
fi nevoie de cunotine avansate de infrastructur, prin urmare
rezolvnd diviziunea ntre echipele de dezvoltare i de infrastructur prin simplul fapt c echipa de dezvoltare poate s devin
responsabil de crearea, rularea i oprirea mediilor acestea temporare, cu ajutorul administratorilor de sistem doar n ceea ce
privete realizarea de template-uri respectiv stabilirea de cote i
politici pentru un control bun al costurilor.
Pentru mai multe informaii, vizitai:
VSTS1
VSTS i integrarea cu Azure2
DevTest Labs3
1

https://www.visualstudio.com/en-us/products/visual-studio-team-services-vs.aspx

2 h t t p s : / / a z u r e . m i c r o s o f t . c o m / e n - u s / d o c u m e n t a t i o n / a r t i c l e s /
cloud-services-continuous-delivery-use-vso/
3 https://azure.microsoft.com/en-us/services/devtest-lab/

management

Sigurana psihologic i
coeziunea de echip

omeniul IT este unul dinamic, iar echipele de dezvoltare ocup un loc important n
livrarea aplicaiilor ctre diferii clieni. Astfel, rolul echipelor n cadrul organizaei
este din ce n ce mai mult n centrul ateniei pentru identificarea diferitelor metode
care pot contribui la creterea eficacitii acestora.

tefania Duica
Stefania.Duica@endava.com
IT Recruiter
@Endava

Componena grupului este una pluridisciplinar i n multe situaii indivizii lucreaz


mpreun pe o perioad de timp limitat (de
cele mai multe ori pe durata unui singur proiect). n acest context, provocarea mare este
dat de faptul c indivizi cu o experien
relativ diferit, trebuie s livreze un produs la
un nivel ridicat fcnd fa de cele mai multe
ori unor termene limit destul de strnse. De
aici ia natere i amploarea rolului pe care l
are grupul, iar dezvoltarea cu succes a unei
aplicaii depinde de modul n care indivizii
colaboreaz. Ciclul de dezvoltare al unui soft
este unul complex att din punct de vedere
al modului n care lucreaz membrii echipei ct i individual pentru fiecare grup n
parte. Una dintre provocrile mari pe care
le ntmpin este aceea de coordonare a
activitilor n perioada n care sunt alocate
pe proiecte ce angreneaz un numr mare
de oameni. Pentru ca livrarea s fie de succes este nevoie de cunotine i abiliti att
tehnice specifice fiecrui rol n parte (programator, tester, PM, BA, DevOps etc) ct i n

zona de creativitate, inventivitate, rezolvare


de probleme (Cusumano, 2004). Aici intervine modul n care fiecare echip opereaz i
cum reuete s creasc performana ntr-un
context complex. Literatura de specialitate
din psihologia organizaional accentueaz
dificultatea ntmpinat n momentul n care
individul este nevoit s lucreze cu persoane
diferite, pentru unii fiind mai uor s colaboreze cu anumite tipologii de personalitate,
iar pentru alii mai dificil. (Hackman, 1990).
De aici deriv o nou provocare la nivel
organizaional i anume ce se poate face pentru ca echipele s funcioneze ct mai bine,
iar membrii grupului s obin performane
ct mai ridicate, care s duc la dezvoltarea
unei aplicaii care s ofere satisfacie clientului. Astfel, atenia este tot mai mult centrat
pe ce nseamn colaborare i cum se pot stabili relaii sntoase n mediul de lucru n
cadrul grupului.
Colaborarea presupune interaciune
ntre membrii echipei, oferirea de sprijin n
ndeplinirea diferitelor sarcini, nelegerea

www.todaysoftmag.ro | nr. 44/februarie, 2016

41

management

Sigurana psihologic i coeziunea de echip

nevoilor celor din jur, acceptarea faptului c sunt anumite lucruri


la care nu se tie rspunsul i altele care nu pot fi realizate individual. Nevoia aceasta de colaborare apare din existena unor
sarcini care l determin pe individ s ias din zona de confort.
Realizarea muncii n mod colaborativ se face n primul rnd prin
mprtirea ideilor i a informaiilor, integrarea perspectivelor
i coordonarea sarcinilor. Accentul este tot mai mult pus asupra
echipei i a modului n care aceasta lucreaz, performeaz i n ce
msur este stimulat nvarea n cadrul grupului. Astfel, echipele ajung s asigure un mecanism structurat prin intermediul
cruia se realizeaz colaborarea. n contextul n care echipa joac
un rol cheie este esenial nelegerea caracteristicilor definitorii
ale acesteia. Hackman (1987) spunea c este vorba despre nevoia
ca indivizi diferii s lucreze mpreun pentru a putea s ajung
la un rezultat pe care s l imprteasc.
ntrebarea care ia natere de aici este legat de ceea ce i
determin pe oameni s mprteasc singuri idei i pe o parte
dintre ei chiar s contribuie la o experien colaborativ?
S-a discutat i continu s se urmreasc impactul pe care
l are coeziunea n creterea performanei, rolul pe care l joac
ncrederea ntre membrii echipei i nu n ultimul rnd cum poate
fi construit un climat care s faciliteze comunicarea, oferirea
feedbackului i ncurajarea membrilor echipei ca fiecare s contribuie cu propriile idei i actiuni la munca colectiv.
Coeziunea de echip este vzut ca un mixt de caracteristici
precum atracie interpersonal, mndria apartenenei la grup
i angajament pentru realizarea sarcinillor (Mullen & Copper,
1994). Pe de alt parte, pentru a crea o echip cu o coeziune
ridicat este esenial ncrederea, adic acceptarea relaiilor solidare. Prin ncredere se nelege ca un individ s se simt att de
confortabil n preajma colegilor nct s nu i fie team s fie
vulnerabil n faa lor. Aceast vulnerabilitate este identificat n
momentul n care membrii echipei ajung n acel punct n care se
simt n totalitate confortabili fiind transpareni, oneti i spun
i cred n afirmaii precum: Am dat-o n bar, Am nevoie de
ajutor sau Ideea ta este mai bun dect a mea. ncrederea duce
la o serie de ateptri comportamentale n rndul indivizilor,
permindu-le acestora s administreze riscul sau incertitudinea
asocitate cu interaciunile lor. Adesea este vzut ca o alegere i
n baza diferitelor modele sociologice se difereniaz ntre tipul
cognitiv, comportamental i emoional al ncrederii.

42

nr. 44/februarie 2016 | www.todaysoftmag.ro

Coeziunea este poate cea mai intlnit i cea mai comun


metod prin care performana unui grup este crescut. n cadrul
multor companii se ncearc nchegarea echipei prin determinarea oamenilor s se apropie unii de ceilali, s se aprecieze
i de asemenea, s creeze acea mndrie a apartenenei la grup.
Probabil atunci cnd coeziunea este puternic, grupul este motivat s performeze bine i are abiliti mai bune de coordonare
a activitilor spre o performan de succes. (Cartwright, 1968;
Davis, 1969)
Cu toate acestea, multe studii au acceptat plauzibilitatea
existenei unei relaii ntre coeziunea de grup i performana grupului. Observaiile empirice ale relaiei au variat destul de mult,
determinndu-i pe unii autori s i pun semne de ntrebare
legate de posibilitatea de a generaliza astfel de rezultate (Stegdill,
1972; Tzimer, 1982). Cea mai puternic relaie cu performana se
pare c o au angajamentele indivizilor pentru finalizarea sarcinilor. Componente ale coeziunii, precum atracia interpersonal i
mndria apartentenei la grup, s-au dovedit a nu fi relaionate n
mod direct cu performana (Beal et al. 2003). Astfel, coeziunea
are nevoie de o putere mai mare pentru a crete performana
echipei.
Studii mai recente fac trimitere la faptul c acest concept de
coeziune poate s reduc dorina de dezaprobare i provocare a
punctelor de vedere exprimate de ceilali, la fel ca n fenomenul
numit groupthinking (Janis, 1982), implicnd i o lips a asumrii riscului (Edmondson, 2003). Acest fenomen este derivat din
comportamentele manifestate de membrii grupului n momentul
n care atracia interpersonal i mndria apartenenei la grup
cresc, oamenii evitnd s i exprime liber ideile din teama de a
nu intra in conflict cu ceilali membri ai grupului.
n baza minusurilor pe care le prezint coeziunea de echip,
n psihologie a aprut un nou concept numit psychological safety
(sigurana psihologic) care dorete s suplineasc neajunsurile celei dinti. Astfel, acest concept a aprut ca necesitate de
a crea un mediu confortabil pentru indivizi astfel nct acetia
s se simt ncreztori i capabili s se schimbe. Marele avantaj
al siguranei psihologice este acela c ofer ncrederea c echipa
nu va respinge sau va pedepsi un membru pentru c i exprim
punctul de vedere. n concluzie, sigurana psihologic n cadrul
grupului este definit ca o credin mprtit c echipa este
mediul sigur n care i poi asuma risc interpersonal. ntr-o

TODAY SOFTWARE MAGAZINE


echip n care sigurana psihologic a indivizilor este ridicat,
libertatea i deschiderea la nivel interpersonal cresc i indivizii se vor angaja mai uor n comportamente riscante care sunt
necesare n procesul lor de nvare. Cu toate acestea, existena
nevoii de a crea un mediu confortabil pentru nvare, nu implic
neaprat formarea unui mediu linitit n care membri grupului
sunt neaprat prieteni apropiai i nu sugereaz lipsa presiunii
sau a diferitelor probleme. Lipsa total a conflictelor n cadrul
echipei fiind un factor de blocaj n dezvoltarea acesteia. Cu ct un
conflict este mai bine gestionat, cu att beneficiile aduse grupului
sunt mai mari.
Comparnd componenta care joac un rol important n
creterea coeziunii grupului, i anume ncrederea, cu sigurana
psihologic se poate observa c ntre cele dou exist o serie de
similariti, dar pot fi identificate i destul de multe diferene.
Sigurana psihologic ncurajeaz comportamentele de nvare,
pe cnd ncrederea reduce gestionarea costurilor i nevoia de a
monitoriza comportamentele. Cele mai recente studii au demonstrat faptul c sigurana psihologic are un impact mult mai mare
asupra grupurilor mici, pe cnd ncrederea este n mod particular relevant pentru relaiile diadice. Ce nu reuete s surprind
ncrederea este o dimensiune particular a experienei interpersonale, mai exact ct de apreciat i confortabil se simte un angajat
n mediul de lucru.
O diferen foarte important ntre cele dou concepte,
sigurana psihologic i ncrederea, este dat de punctul pe care
este centrat atenia: asupra propriei persoane versus asupra
celorlali.
O a doua diferen este ceea ce este conceptualizat ca fiind
nivelul de analiz al grupului. Dup cum reiese din literatura de
specialitate, sigurana psihologic caracterizeaz mai degrab
grupuri i nu diferene individuale sau temperamentale. Este
vzut ca o proprietate emergent a colectivului, care descrie
nivele ale siguranei interpersonale trite de ctre membri unui
grup particular.
Ultima dimensiune este cea cu privire la ngustarea limitelor
temporale. Acest concept pune n eviden faptul c n contextul siguranei psihologice o persoan ia n considerare inclusiv
rezultatele imediate ale aciunilor n care se implic. Pe cnd, n
contextul ncrederii, indivizii tind s anticipeze consecinele pe
o perioad lung de timp, care este relativ departe n viitor fa
de momentul prezent.
O ultim ntrebare la care i propune acest articol s

rspund este legat de ce se poate face pentru a crea un mediu


care s faciliteze creterea siguranei psihologice?
Unul dintre factorii cheie este considerat a fi comportamentul pe care l are liderul n cadrul echipei. Astfel, s-a demonstrat
c modul n care liderul face managementul echipei poate avea
un impact foarte mare asupra procesului de nvare n cadrul
grupului. n facilitarea construirii unui astfel de mediu este foarte
important s se pun accentul pe:
Cutarea ajutorului la colegi pentru a contientiza
importana pe care o pot avea comportamentele cooperative.
C ererea feedbackului n mod constant pentru
mbuntirea procesului de nvare i creterea performanei
att a liderilor ct i a echipei.
Discutarea erorilor i preocuparea n contextul
siguranei psihologice- de a permite membrilor echipei s
spun cu voce tare ce i preocup i care sunt problemele ntmpinate, prin uurarea ngrijorrilor cu privire la repercusiuni.
Comportamente inovatoare i inovaie comportamentele inovatoare pot fi definite ca fiind realizarea de lucruri
diferite n mod inteligent pentru a obine rezultate utile.
Inovaia apare mai frecvent dac oamenii se simt n siguran
n grupul din care fac parte. Prin urmare, sigurana psihologic, prin facilitarea asumrii riscului i a dorinei de a veni cu
idei noi fr a exista teama de ruine, poate susine comportamente inovatoare i inovaia n cadrul echipei.
Extinderea granielor aceste comportamente descriu
comunicarea extern cu alte grupuri. Ele pot implica asumarea riscurilor interpersonale, incluznd cerina de ajutor sau
resurse, cutarea feedbackului i transmiterea vetilor negative
precum ntrzieri, depiri ale termenelor stabilite.
Concluzia nu este legat de faptul c unul dintre concepte
este mai potrivit dect cellalt. Coeziunea are plusurile ei, ajutnd
la nchegarea relaiilor ntre membri unei echipe, ns sigurana
psihologic are i rolul de a crea un climat orientat mai mult spre
crearea contextului favorabil pentru ca indivizii dintr-un anumit
grup s fie deschii s se schimbe i s i exprime liber ideile.
Linia dintre coeziunea de echip i sigurana psihologic este
suficient de bine conturat (vezi fig. 1 i fig. 2).

Fig. 1

www.todaysoftmag.ro | nr. 44/februarie 2016

43

management
Sigurana psihologic i coeziunea de echip

Fig. 2

Este clar unde se difereniaz cele dou i unde intervine


factorul comun. Ce este greu de delimitat este cnd una este
mai bun dect cealalt. Aceasta este o afirmaie greu de fcut,
deoarece n funcie de contex sau echip fiecare poate avea un
impact diferit. Coeziunea de echip creeaz un mediu unde
oamenii se simt confortabil, nu le este team s fie vulnerabili n
faa celorlali, sunt oneti cu membrii echipei i sunt mndri c
aparin acelui grup, iar punctul central l reprezint ncrederea.
Aceste aspecte pozitive pot s dea natere unor comportamente
care nu sunt neaprat corelate cu performana grupului. Pe de
alt parte, sigurana psihologic faciliteaz crearea unui mediu
confortabil pentru nvare, indivizii simindu-se ncreztori
i capabili s se schimbe. Cu privire la modul de intarciune al
membrilor grupului, n acest context, acetia nu sunt neaprat cei
mai buni prieteni, iar conflictele generate ntre ei pot contribui la
dezvoltarea lor, dac acestea sunt bine gestionate.

44

nr. 44/februarie 2016 | www.todaysoftmag.ro

TODAY SOFTWARE MAGAZINE

contabilitate

Calculul salarial n 2016

nul 2016 a fost cu siguran un an important din punct de vedere al noutilor legislative. Iat c i n domeniul salarizrii
au aprut cteva modificri importante pe care le vom prezenta mai jos. Salariul minim brut pe economie valabil de la
01.01.2016 pn la 30.04.2016 este de 1.050 lei.

Salariul minim brut pe ar garantat


n plat va crete ns de la 1 mai 2016 cu
200 lei pn la 1.250 lei, conform HG nr.
1017/2015 publicat n Monitorul Oficial
din 31 decembrie 2015.
Aceasta este noua valoare pentru un
program complet de lucru de 169,333 ore
n medie pe lun n anul 2016, reprezentnd 7,382 lei/or.
Stabilirea salariului de baz sub acest
nivel constituie contravenie i se sancioneaz cu amend de la 1.000 lei la 2.000
lei, pentru fiecare contract individual de
munc n care salariul minim este stabilit sub cel menionat mai sus, n msura
n care, potrivit legii, fapta nu constituie
infraciune.
Constatarea contraveniei i aplicarea sanciunii se fac de ctre personalul
Ministerului Muncii, Familiei, Proteciei
Sociale i Persoanelor Vrstnice, prin
inspectoratele teritoriale de munc
judeene i al municipiului Bucureti,
mputernicit, dup caz, prin ordin al
ministrului muncii, familiei, proteciei
sociale i persoanelor vrstnice.
De asemenea, s-au schimbat deducerile personale de baza ncepnd cu
01.01.2016.

Ce este deducerea personal de baz?


Deducerea este o sum care se scade
din baza de calcul a impozitului pe venitul din salarii, scopul fiind reinerea unui
impozit pe venit diminuat.
Potrivit Codului fiscal, salariaii au
dreptul la deducerea din venitul net lunar
din salarii a unei sume sub form de deducere personal, acordat pentru fiecare
lun a perioadei impozabile numai pentru
veniturile din salarii la locul unde se afl
funcia de baz.
Deducerea personal se acord pentru

persoanele fizice care au un venit lunar


brut de pn la 1.500 lei inclusiv, astfel:
pentru contribuabilii care nu au persoane n ntreinere - 300 lei;
pentru contribuabilii care au o persoan n ntreinere - 400 lei;
pentru contribuabilii care au dou
persoane n ntreinere - 500 lei;
pentru contribuabilii care au trei
persoane n ntreinere - 600 lei;
pentru contribuabilii care au patru
sau mai multe persoane n ntreinere 800 lei.
Pentru contribuabilii care realizeaz
venituri brute lunare din salarii cuprinse
ntre 1.501 lei i 3.000 lei, inclusiv, deducerile personale sunt degresive fa de cele de
mai sus i se determina printr-o formul
publicat n Ordinul nr. 52/2016 privind
aprobarea calculatorului pentru determinarea deducerilor personale lunare pentru
contribuabilii care realizeaz venituri din
salarii la funcia de baz, ncepnd cu
luna ianuarie 2016, potrivit prevederilor
art. 77 alin. (2) i ale art. 66 din Legea nr.
227/2015 privind Codul fiscal, publicat n
Monitorul Oficial in 25.01.2016.
Pentru contribuabilii care realizeaz
venituri brute lunare din salarii de peste
3.000 lei nu se acord deducerea personal.
Aceste prevederi nu se aplic pentru
salariaii care sunt scutiti de impozit ca
urmare a ncadrrii n criteriile de scutire
pentru activitile derulate n sfera crerii
de programe informatice.
Ca o noutate legislativ a anului 2016
este acordarea deducerii personale pentru
ambii prini, pentru copiii minori aflai n
ntreinere.
Pn la 1 ianuarie 2016 doar unul dintre prini putea beneficia de deducerea
personal pentru copilul n ntreinere (n
functie de optiunea acestora).

Din 2016, persoana n ntreinere


poate fi:
soia/soul,
copiii sau
ali membri de familie, rudele contribuabilului sau ale soului/soiei acestuia
pn la gradul al doilea inclusiv, ale crei
venituri, impozabile i neimpozabile, nu
depesc 300 lei lunar (anterior 250 lei)
cu excepia veniturilor prevzute la art.
62 lit. o), w) i x) i/sau a pensiilor de
urma cuvenite conform legii, precum
i a prestaiilor sociale acordate potrivit
art. 58 din Legea nr. 448/2006 privind
protecia i promovarea drepturilor persoanelor cu handicap, republicat, cu
modificrile i completrile ulterioare.
Copiii minori n vrst de pn la
18 ani mplinii, ai contribuabilului, sunt
considerai ntreinui.
Pentru copilul minor provenit din
cstorii anterioare, dreptul la deducerea
personal revine printelui cruia i-a fost
ncredinat copilul i unuia dintre soi care
formeaz noua familie.
n situaia n care ntr-o familie sunt
mai muli copii aflai n ntreinere, cu
excepia copiilor minori, acetia vor fi preluai n ntreinerea unuia dintre prini
conform nelegerii dintre pri. n aceste
situaii contribuabilii vor prezenta pltitorului de venit fie o declaraie pe propria
rspundere din partea soului/soiei, fie
o adeverin emis de pltitorul de venit
din salarii al acestuia/acesteia, dup caz,
din care s rezulte numrul i identitatea
copiilor care sunt preluai n ntreinere de
fiecare so/soie.

www.todaysoftmag.ro | nr. 44/februarie, 2016

45

contabilitate

Calculul salarial n 2016

Copilul minor cu vrsta cuprins ntre 16 i 18 ani, ncadrat n munc n condiiile Legii nr. 53/2003 Codul muncii,
republicat, cu modificrile i completrile ulterioare, devine
contribuabil i beneficiaz de deducerea personal, situaie n
care, pentru perioada respectiv, prinii nu mai beneficiaz de
deducerea personal.
n ce privete cotele de contribuii nu au existat modificri
la nivelul anului 2016.
Astfel, cotele de contribuii valabile pentru anul 2016 sunt:
Contribuii angajat :
CAS: 10.50%
CASS: 5.50%
omaj: 0.50%
Impozit: 16.00%
Contribuii angajator :
CAS: 15.80%
CASS: 5.20%
omaj: 0.50%
Fnuass: 0.85%
Risc i accidente -n funcie de codul CAEN
Fond garantare creane: 0.25%
Iat mai jos un exemplu de calcul salarial n dou variante:
1. Angajat cu salariul minim de 1.050 lei, fr persoane n
ntreinere.
Contribuii angajat
CAS 10.50% =110
CASS 5.50%= 58
omaj 0.50% =5
Deducere personal =300
Impozit 16%= 92
Total taxe angajat= 265
Salariu net =785
Contributii angajator
CAS 15.80% =166
CASS 5.20% =55
omaj 0.50% =5
Concedii i indemnizaii 0.85% = 9
Fond risc 0.15% = 2
Fond garantare creane 0.25% = 3
Total taxe angajator = 240

46

nr. 44/februarie 2016 | www.todaysoftmag.ro

2. Angajat cu salariul minim de 1.250 lei, fr persoane n


ntreinere.
Contribuii angajat
CAS 10.50% =131
CASS 5.50% =69
omaj 0.50% =6
Deducere personal= 300
Impozit 16% =119
Total taxe angajat= 325
Salariu net =925
Contributii angajator
CAS 15.80% =198
CASS 5.20% =65
omaj 0.50% =6
Concedii i indemnizaii 0.85% =11
Fond risc 0.15% =2
Fond garantare creane 0.25% =3
Total taxe angajator =285

Delia Mircea
delia@contzilla.ro
@Contzilla.ro

contabilitate

Ce pregateste statul roman pentru


domeniul IT&C ?

nceputul de lun aduce o raz de speran pentru start-up-rile din domeniul IT&C
din Romnia. Articolul de fa i propune s aduc n atenia publicului interesat un
subiect care se dorete a fi rspunsul la o mai veche problem, ncadrarea n activitatea
de creaie de programe pentru calculator, pe care OMFP nr. 1479 / 02.09.2013, a lsat-o
nerezolvat.
Ioana Varga
ioana.varga@aiconsulting.ro
Expert contabil Managing Partner
@ A&I Consulting

Pe scurt, n momentul de fa, dac att


angajatorul, ct i angajatul su ndeplinesc
o serie de condiii prevzute n ordinul stipulat mai sus, se beneficiaz de o scutire
a impozitului pe salariu, cu meniunea
c angajatorul trebuie s fi realizat n anul
fiscal anterior o cifr de afaceri de 10.000
dolari pentru fiecare angajat care urmeaz
s beneficieze de aceast scutire n anul fiscal curent.
Legiuitorul a ncercat o relaxare a condiiilor de acordare a scutirii pentru acest
impozit, prin modifirile aduse OMFP
nr. 1479/2013 care a intrat n vigoare la
data de 30 iulie a anului trecut. Noutile
aduse const n adugarea unei noi poziii
n Lista cuprinznd ocupaiile specifice
activitilor de creaie de programe pentru
calculator, i anume cea de Programator
de sistem informatic. De asemenea, o noutate este reprezentat i de posibilitatea de
a aplica scutirea impozitului pe salarii i
pentru acei angajai, ceteni ai statelor
membre UE, Spaiului Economic European
i Confederaiei Elveiene ale cror diplome
sunt echivalente cu diploma acordat
dup finalizarea unei forme de nvmnt
superior de lung durat sau cu diploma
acordat dup finalizarea ciclului I de studii
universitare de licen. Pentru aceti angajai, la ncadrarea n munc este necesar
existena copiei legalizate a atestatului de
echivalare a diplomei, eliberat prin structurile Ministerului Educaiei i Cercetrii
tiinifice.
Cu intenia de a extinde ct mai mult

plaja de acordare a scutirii impozitului


pe salarii, principala modificare adus de
ctre legiuitor a constat n eliminarea Listei
specializrilor existent din 2013 - din
reglementarea anterioar, astfel nct, orice
absolvent de studii superioare care lucreaz
n domeniul crerii de programe s poat
beneficia de scutirea impozitului pe salariu, att timp ct sunt ndeplinite i celelalte
condiii prevzute n Ordin. Aceasta este
probabil cea mai mare neclaritate pe care
angajatorii o au de nfruntat, ntruct, la
momentul actual, nu exist niciun cadru
legal care s ofere detalii concrete cu privire la posibilitatea ncadrrii pe funciile ce
beneficiaz de aceast scutire a persoanelor
ce nu au studii de specialitate, ci doar studii
superioare.
Considerm oportun o revenire asupra
acestei prevederi cu precizarea ct mai clar
a inteniei legiuitorului i oferirea detaliilor
necesare cu privire la urmtoarele chestiuni pe care le vom enumera sub form de
ntrebri: Este suficient condiia finalizrii oricror studii superioare att timp ct
ncadrarea se face pe una din funciile prevzute n ordin sau se dorete existena unei
diplome de finalizare a studiilor superioare
de specialitate? Care sunt acei candidai pe
care angajatorul i poate ncadra pe funciile
prevzute n Ordin? Din punct de vedere
legal, care sunt rigorile ce trebuie ndeplinite
pentru a ncadra un angajat pe o anumit
funcie? Ce i face pe unii angajai eligibili
pentru ocuparea funciilor ce beneficiaz de
scutirea pe impozit? Din lips de informaii

www.todaysoftmag.ro | nr. 44/februarie, 2016

47

contabilitate
suplimentare i din dorina de a-i motiva
angajaii cu costuri ct mai reduse, angajatorii se expun unor riscuri considerabile n
cazul n care organele abilitate pot constata
o forare a legii.

Dei este necesar o clarificare a condiiilor prevzute de prezentul
Ordin, aceast facilitate fiscal este binevenit, a ajutat i ajut n continuare la
motivarea angajailor, la obinerea unor
rezultate bazate pe o calitate a muncii tot
mai ridicat i, desigur, constituie un factor
important n dezvoltarea companiilor.
Dar ce se ntmpl cu acele companii
nou nfiinate, cu acele mini strlucite care
i doresc s nceap propriul business n
acest vast domeniu al IT&C, dar care nu
beneficiaz de puterea de finanare necesar la nceput de drum? Fr a se dori
acest lucru, legiuitorul a creat un mediu
discriminator fa de companiile nou
nfiinate care nu au posibilitatea de a-i
atrage resursa uman potrivit, de a o
motiva i pstra. Se poate afirma, astfel, c
ordinul actual nu doar c nu ofer faciliti
start-up-rilor, dar ofer i un cadru de
business n care concurena pe pia nu
este ncurajat.

Cu toate acestea, s nu lsm pesimismul s ne ntunece viziunea i s dm
timpul napoi, n luna noiembrie a anului
trecut i s facem o vizit la Conferina
How to Web 2015 unde l putem urmri
cu interes pe domnul ministru de resort al
Comunicaiilor i Societii Informatice,
domnul Marius Bostan. La ntlnirea cu
reprezentanii mediului IT&C, domnul
Marius Bostan i-a exprimat ngrijorarea
cu privire la start-up-rile romneti care
sunt nevoite s i fondeze companii n
afara rii i a manifestat dorina de a avea
un mediu mai prietenos cu acest gen de
companii.

Revenind la momentul actual,
ntr-un scurt interviu acordat Digi24,
domnul Marius Bostan revine la subiectul
start-up-rilor i face urmtoarea afirmaie
cu privire la beneficierea scutirii impozitului pe salarii, aa cum prevede OMFP

48

Ce pregateste statul roman pentru domeniul IT&C ?


nr. 1479 / 02.09.2013: Va urma un ordin
comun n care noi suntem reprezentai alturi de alte trei ministere n care vom ncerca
s definim ct mai exact cadrul de aplicare
al acestei norme. Prin ordinul precedent,
trebuia s dovedeti c ai produs software
timp de doi ani pentru a putea beneficia, nu
e normal s nu fie aplicabil pentru startup-uri, cred c ar trebui s gsim definiia
exact, pentru c start-up-urile sunt o for
vital n economie.

Vom vedea n ce mod se va
reui punerea n practic a unei asemenea prevederi. S-ar putea recurge la o
serie de instrumente de evaluare pentru
start-up-uri, pentru a se stabili clar cine
poate beneficia de aceast prevedere. S-ar
putea totodat recurge la crearea unui
depozit pentru sumele reprezentnd scutirea aferent impozitului pe salarii, iar la
nchiderea anului fiscal, ar urma s se fac
regularizarea: suma adunat ar urma s
intre n buzunarul salariatului sau al statului, n funcie de atingerea cifrei de afaceri
necesar. Este de menionat, totui, c o
asemenea msur este discutabil, ntruct un salariat nu este obligat s stea 12
luni la un loc de munc i este dificil de
stabilit cum i se va acorda unui fost angajat
o suma cuvenit de drept, aplicnd literalmente actualul ordin. n condiiile n care
actualul ordin face referire la scutirea doar
a anumitor tipuri de absolveni angajai n
industria IT&C, iar piaa forei de munc
se confrunt cu o cerere tot mai mare de
personal instruit n acest sector, este posibil s asistm la o relaxare a condiiilor.

Pn la apariia unor detalii concrete cu privire la aplicarea acestei posibile
scutiri, nu putem s facem altceva dect
speculaii, dar v fac o invitaie de a vizita
site-ul oficial ce aparine de Ministerul
Comunicaiilor i Pentru Societatea
Informaional, www.mcsi.ro1, unde vei
gsi un comunicat foarte interesant datat
cu 5 Februarie 2016, i anume:

Bursa de Valori Bucureti (BVB)
i Ministerul Comunicaiilor i Pentru
1 http://www.mcsi.ro

nr. 44/februarie 2016 | www.todaysoftmag.ro

Societatea Informaional au semnat, pe 5


februarie 2016, un protocol de colaborare,
destinat sprijinirii IMM-urilor din sectorul IT&C. Cele dou entiti vor demara
mpreun o serie de programe, menite s
aduc antreprenorii mai aproape de piaa
de capital, prin finanarea pe piaa AeRO
i pe piaa principal a Bursei de Valori
Bucureti.

Pe scurt, n primavara anului
2016, se va demara un program de ase
sptmni, cu ase workshop-uri ale IMMurilor din IT&C care i vor prezenta
afacerea n faa investitorilor. Se vor preselecta i selecta companii din ase regiuni
ale rii, cte 10 companii/ regiune, care
i vor prezenta povetile de afaceri i de
cretere ntr-o sesiune de pitching rezervat
sectorului din care provin, sau regiunii specifice, sau unui anumit model de poveste
de cretere (de exemplu, companii care
doresc s strng bani pentru a i extinde
serviciile n strintate sau companii care
doresc s i dezvolte noi linii de business).
Publicul va vota pentru prezentarea fiecrei companii, lund n considerare diferite
criterii de evaluare.

Companiile, indiferent de dimensiunea lor, sunt n cutare de soluii de
finanare. Apetitul pentru risc mai ridicat
de finanare sttea pn acum n business
angel i venture capital. Este extraordinar
c o for de amvergura Bursei de Valori
Bucureti vine s sprijine ideile noi, care pot
aduce o plusvaloare fantastic investitorilor i antreprenorilor. tim c n Polonia a
funcionat i mai tim c fr inovaie nu
putem avansa, a declarat Ministrul Marius
Bostan.

Prin prezentul articol se dorete
atragerea ateniei tuturor persoanelor
interesate de apariia unor noi reglementri fiscale n viitorul apropiat, ntruct
bugetele fiecruia pot suferi modificri i
readaptri n funcie de strategia de business preferat.

management

Echilibrul via-munc i generaiile


pieei muncii. Cum rspundem n 2030
la ntrebarea Ce faci astzi?

nul 2015 a fost anul n care Generaia Y (milenar) a preluat un procent semnificativ din piaa muncii din majoritatea statelor europene. Azi ne pregtim
intens pentru venirea generaiei Z. Pentru c gestionarea generaiilor de pe
piaa muncii e un subiect de actualitate, s-a ajuns la mituri, exagerri i adevruri
incomode.

Florentina ipeean
florentina@happy-employees.com
Consulting Manager
@Azimut Happy Employees

Cum reuete Generaia Y s fac fa


provocrilor familiale, tehnologice, economice sau emoionale? S mearg zilnic la un
job full-time, s se ngrijeasc de dezvoltarea sinelui, s dea curs hobby-urilor, s i
ntemeieze o familie, s pstreze legtura cu
prinii, s ias n ora cu prietenii, s dea
curs unei invitaii la cafea venit din partea
unui prieten aflat n nevoie, s acumuleze
competene noi, s i finalizeze studiile...
Lista poate continua vreme ndelungat.
Toate sunt provocri pe care angajaii din
jurul nostru le experimenteaz parial
sau total, cu unele schimbri de situaii i
context.
Aceste ipostaze au fost reunite ntrun concept cruia i s-a spus generic
echilibrul via-munc. Iniial echilibrul
via-munc a aprut n apropiere termenului de stres (Rantanen, 2011). n ultimii
ani ns discuia s-a mutat ntr-o direcie
mai ... pozitiv. Echilibrul via-munc s-a
tradus prin gradul de satisfacie i buna
funcionare a angajatului att la lucru, ct i
acas, cu minime conflicte de rol ntre acestea dou (Clark, 2000). Lumea tiinific s-a
pus de acord c acest echilibru influeneaz
stima de sine, satisfacia n munc i n
general este un semn de via bun. Nu
s-a ajuns ns la un consens cu privire la
cum se msoar i ce factori l influeneaz
(Grzywacz & Carlson, 2007).
De ce este echilibrul via-munc un
element important pe piaa muncii att pentru angajai, ct i pentru angajatori? Ce
valene capt echilbrul via-munc pentru
Generaia Milenar? Cum ne ajut statistica
i macro-indicatori n acest sens?

Pentru Generaia Y echilibrul via-munc

este o metafor
Dei echilibru nseamn balan,
raport just ntre dou lucruri opuse, pentru
Generaia Y timpul personal nu are cum s
fie cntrit/alocat proporional cu cel profesional din motive justificabile i lesne de
neles. Raportul este valabil i invers. Drept
urmare, echilibrul este unul metaforic. Cum
se traduce el n viaa de zi cu zi i de ce este
important?
Se estimeaz c ntre 2020 i 2030, ntre
50-75% din piaa forei de munc va fi acoperit de generaia Y (variaz n funcie de
surse i caracteristici naionale dei n
contextul globalizrii acestea vor conta din
ce n ce mai puin) - adic tinerii care au
acum ntre 18 i 33 de ani.
Milenialul este vzut de parinii i bunicii lui ca un fel de buric al Pamantului,
care crede c le tie pe toate. Consider c
are cam (prea) mult ncredere n sine i c
este lene, dar ambiios: l duce capul, dar
nu vrea! Aa o fi... Dar pentru c nu are
chef i timp s nvee despre lume n sisteme
educaionale care sunt pentru el ca patul
pentru Procust, construiete o lume nou.
O lume nou care i va influeneaz pe toi:
pe prinii lui, pe angajatorii lui, pe prietenii
lui, mediul care l nconjoar n general. Iat
cinci caracteristici care relev btlia din fiecare membru al Generaiei milenare cnd
vine vorba despre echilibrul via-munc.
1 ) L E N E S AU AU T O N O M I E ?
Generaia milenar pune accent pe autonomie i independen altfel dect au fcut-o
generaiile anterioare i uneori se traduce n
dorina de nu fi blocai n programul unei
zile de lucru. Aceast dorin nu ar trebui
tradus prin lene. Atunci cnd sunt motivai
i implicai n munc, Generaia milenar

www.todaysoftmag.ro | nr. 44/februarie, 2016

49

management
lucreaz i 50-60 de ore pe sptmn
(Ernst & Young, 2015).
2) VIAA MILENIALULUI DE
25 DE ANI DIN ROMNIA: NTRE
E DU C A I E , C OPI L I L O C DE
MUNC - n 2/3 din rile continentului
european aproximativ 10% dintre studeni
au copii (BA, MA, PhD). Media de vrst
a studenilor romni cu copii este de aproximativ 27 ani. n Romnia anului 2015
studenii cu copii sunt n numr de 45.000
din totalul numrului naional de studeni
(aproximativ 500.000 estimrile Min.
Educaiei) (Eurostudent, 2015). 2 tineri
din 3 din Romnia, cu vrsta peste 25 de
ani, lucreaz cu norm ntreag (Centrul
de Sociologie Urban i Regional, 2014).
3 ) C N D PA R T E N E R U L
LUCREAZ I EFUL NU NELEGE:
78% dintre membrii Generaiei milenare
au un so/partener care lucreaz full time.
Spre deosebire de doar 47% dintre cei din
Generaia X (34-49 ani), care acum sunt
majoritari n funciile manageriale din
companiile din Romnia. S-a creat ceea ce
se numete empathy gap ntre angajaii
mai vechi cu familii cu roluri clare (ei aduc
banii i un alt membru al familiei ngrijete
casa sau lucreaz cu program scurt) versus
angajaii mai tineri care ncearc s fac
totul singuri (fiecare partener aduce bani
i ngrijete casa). Generaia milenar nu
e singura care vrea s obin un echilibru
ntre viaa profesional i cea personal,
ns ei sunt printre singurii dispui s
prseasc compania atunci cnd acest
lucru nu se ntmpl. Sunt convini c se
pot adapta repede la tehnologii noi i au
competene profesionale solide.
4) BALANA SE NCLIN DE
OBICEI NSPRE MUNC: n 2014 un
sfert din tinerii din Romnia cu vrste
cuprinse ntre 20-29 ani au raportat 50
de ore sau mai mult de timp suplimentar petrecut la locul de munc, adic cu
cel puin 25% mai mare dect norma
legal (Centrul de Sociologie Urban i
Regional, 2014).
5) CE DORETE GENERAIA Y:
Cele mai importante trei provocri pentru
generaia Y sunt: a) s gsesc timp pentru
mine (76%), b) s dorm suficient (67%), c)
s mi gestionez viaa personal i cea profesional (67%) (Ernst & Young, 2015 ).

De ce ar trebui s ne intereseze aceste date


i macro-indicatori?
Suntem inundai de studii care traseaz
caracteristicile unor generaii ntregi i
pune toi oamenii n aceeai oal n funcie
de un singur criteriu: vrsta. De fapt, cu

50

Echilibrul via-munc i generaiile pieei muncii.


toii observm c lucrurile se schimb
rapid, auzim des pe strad replici care
ncep cu Generaia asta cu tehnologia... i
vedem cum anumite categorii de vrst au
unele trsturi distincte. Unii dintre noi,
speriai de generalizrile pripite din trecut, decidem s lum fiecare om ca atare,
ca un individ de sine stttor, cu caracteristici proprii. E de neles ct de dificil
este pentru angajatori i pentru angajai s
ia decizii profesionale n funcie de CV-ul
unei generaii.
Dac ne mutm napoi atenia spre
mediul business, vom observa c procesul decizional n cadrul unei companii se
ia n majoritatea cazurilor pe baza numerelor i a procentelor, a performanei, a
gradului de satisfacie al clienilor sau pe
cifre care ne arat fluctuaia de personal.
Adic tot statistic, date i macro- indicatori. Soluiile de analiz predictiv din
cadrul forei de munc i-a ajutat i i ajut
pe angajatori s descopere anumite tipare
de aciune ale angajailor, ale mediului,
ale pieei, oferindu-le bucile lips din
puzzle-ul procesului decizional. i ajut
i pe angajai pentru c le arat cum s
fie cu un ochi la trecut i cu unul la viitor,
ntocmai ca un Zeu Ianus i cele dou fee
ale sale. Este deci important s fim ateni
la prognoz i la indicatorii macro ai unei
generaii pentru a nu fi luai prin surprindere. Nici ca angajator i nici ca angajat.

Cu echilibru despre... echilibrul viamunc


Concret, cum le putem mpca pe
toate? Le lum pe rnd!
Exist o serie de intervenii de pompier atunci cnd simim c s-a produs o
ruptur i c trebuie s purtm o discuie
sincer cu noi despre echilibrul viamunc. Primul ar fi s aplicm conceptul
de tech free time cnd suntem cu prietenii sau familia. News-feed-ul poate
s atepte, conversaia din lumea real
nu. Apoi o pova de bun sim pe care
o tiu mai bine bunicii notri: cnd obosim - lum o pauz. E recomandat cam
la 4-5 luni s ne organizm un context
de recreere.
Cnd ne cutm un loc de munc s
avem n vedere companiile cu orar flexibil. Sunt momente cnd aceast opiune
le va depi rapid i fr de tgad pe
toate celelalte cum ar fi salariul, proximitatea fa de cas, prestigiul companiei.
Ne programm timp pentru hobbyuri i activiti personale.
inem pasul cu evoluiile din jurul
nostru pentru a fi mereu narmai cu

nr. 44/februarie 2016 | www.todaysoftmag.ro

competene de actualitate.
Purtm o discuie sincer cu noi
nine despre triada slujb-cariervocaie (chemare) pentru a vedea ce
semnificaie acordm muncii i dimensiunilor persoanei n funcie de stadiile
vieii.
Cum fiecare dintre noi i controleaz echilibrul via-munc, este
nedrept s ateptm acest lucru de la
guvern sau de la compania pentru care
lucrm. Suntem responsabili de limitele
pe care le vrem n viaa noastr.
Echilibrul se schimb n funcie de
momentele vieii. Anumite decizii de
job sau de carier sunt fundamental
incompatibile cu a fi semnificativ i cu
sens implicat n viaa ta personal, fie
c e vorba de a-i ntemeia o familie, a
cltori, a te angaja n unele proiecte din
zona de vocaie .a.
La final, un exerciiu de imaginaie:
gndindu-ne la luna februarie a anului
2030, oare cum va arta o zi obinuit
din viaa fiecruia dintre noi? M trezesc
diminea, apoi...

Surse:
1.
2.

3.

4.

5.

6.

7.

8.

Clarificare: Gen Y (18 33 ani); Gen X (34


49 ani); Baby Boomers (50 68 ani).
Clark, S.C (2000), Work-family border theory: a new theory of work/family balance,
Human Relations, nr. 53:747770.
Clarke, M.C., Koch, L.C, Hill, E.J., (2004)
The work-family interface: differentiating
balance and fit, n Family and Consumer
Sciences Research Journal, nr. 33:121140
Ernst&Young, (2015) Work-life challenges
across generations. Millennials and parents
hit hardest
Eurostudent, (2015) Social and Economic
Conditions of Student Life in Europe
2012-2015. Romnia raport naional.
(Datele au fost comparate cu cele Eurostat,
iar diferenele au fost nesemnificative
procentual)
Gr;zywacz J.G., Carlson D.S., (2007)
Conceptualizing workfamily balance:
Implications for practice and research n
Advances in Developing Human Resources.
nr. 9:45571.
Rantanen,J., Kinnunen, U., Mauno, S,. &
Tillemann, K. (2011), Creating balance?
International perspectives on the work-life
integration of professionals, pp. 27-47.
Centrul de Sociologie Urban i Regional
CURS pentru Friedrich-Ebert-Stiftung
Romnia (FES) (2014), Tineri n Romnia:
griji, aspiraii, atitudini i stil de via,
pp.65-89.

diverse

Gogu i sofismele

G
Simona Bonghez
simona.bonghez
@colorsinprojects.ro
Speaker, trainer i consultant
@Owner of Colors in Projects

ogule, vii desear la sal? se ii de dup display faa de neao ardelean a lui
Miu.
- Nope, m duc la crm. ... la bar, dac vrei s sune mai bine, se
corect Gogu rapid.
- No, pi nu ne fu vorba s facem micare, s ne ntrim muchii, s devenim...
cum i-o zis la cu abonamentul?! se scrpin Miu la ceaf, dup care se lumin: Fit! Aa
i-o zis. Deci, ne fit-uim disear?
- Eu m fit-uiesc la cr... bar.
Ochii lui Miu se rotunjiser a ntrebare, aa c Gogu catadicsi s-l lmureasc:
- Am citit eu despre o cercetare care zice c un pahar de vin rou face chiar mai bine
dect o sesiune de exerciii la sal. ntrete inima i muchii, mbuntete performanele
exact ca i cum ai fi lucrat la aparate.
- Aha, or fi zis iar nite unii pe feisbuc despre cercettori britanici i tu repede te faci
mang, c face bine la sntate.
- Canadieni.
Replica l zpci pe Miu, care rmsese blocat. Gogu explic:
- Cercettorii. Sunt canadieni, nu britanici. De la Universitatea Alberta din Canada. i
nu m fac mang.
- Nu, te faci pleazn, soarele i pmtufu stora de n-au ce cerceta la universitile lor.
Da despre sport, micare, exerciii i influena lor benefic n-ai fi citit! C gsim numa
informaiile alea de ne convin. Or tii tu cum se numete asta, Gogule? Sofism, m, sofism
i zice.
De data asta, Gogu era cel blocat. Miu savur cteva clipe victoria, apoi cu zmbetul
larg lit peste fa, se legn puin pe picioare i se ntoarse uor s vad dac mai sunt i
alii martori la reducerea lui Gogu la tcere. Nimeni nu prea c bag de seam discuia
celor doi, aa c renun s se mai umfle n pene i reveni la Gogu:
- Adic, nu tii tu ce i un sofism?!
- Raionament aparent corect, dar fals n realitate, spuse dintr-o rsuflare Gogu
care ntre timp i revenise. Ia te-te, cine tie cuvinte mechere. Ia explic tu, de ce e fals
raionamentul meu cnd el se bazeaz clar, pe o cercetare a unei universiti. Or tu zici c
ia-s proti?!
- No, c n-am zis io c-s proti, ddu Miu napoi, lungind cuvintele ca i cnd ar fi vrut
s ctige timp suplimentar de gndire.
- Atunci eu sunt prost?!
Miu se nroi la fa, ncurcat de ntorstura neateptat a discuiei, dar pe Gogu l
pufni rsul.
www.todaysoftmag.ro | nr. 44/februarie, 2016

51

diverse
Gogu i sofismele
- Hai, mi Gogule... Uite ce-am vrut s zic: tindem s ne
alegem dintre informaiile puse la dispoziie pe acelea care
ne convin mai mult, care ne confirm prerile iniiale sau
care, cteodat, explic deciziile pe care le-am luat deja. Nu
o facem contient, nu falsificm, ci pur i simplu tindem s
confirmm ceea ce tim sau bnuim. Sau ce ne convine mai
mult, cum e cazul tu acum. De ce s caui tu mai multe
informaii, cnd acelea ar putea s te conving s depui ceva
efort la sal i s gfi cum ai fcut data trecut, mai bine te
opreti la studiul cela al cercettorilor britanici...
- Canadieni.
- S fie sntoi acas la ei! i cum ziceam, mai bine te
opreti la tia care te las s mergi linitit la o but.
Gogu trase lung aer n piept, ls s ias tot aerul ca i
cum ar fi oftat prelung i se uit n ochii lui Miu zmbind
complice:
- Ai chef s vii cu mine desear s dezbatem sofismele
astea la un pahar de vin? Face bine la sntate i ne exersm
i muchii creierului.
***
Dup dou ore de dezbtut sofisme i impactul lor asupra deciziilor din proiecte, plus dou sticle de vin care,
dup calculele lui Gogu fceau cam ct 20 de km de alergare uoar cei doi se deciser s plece acas. O oarecare
influen asupra deciziei de a pleca avusese i soia lui Gogu.
Ei, nu asupra lui Gogu, nu. Asupra lui Miu: Zu, Miule,
aveam mare ncredere n tine, e posibil s plecai cu gndul la
fcut micare i n loc de asta s v nfundai ntr-o crcium
la but?! Pi aa ncredere s am eu n tine?!
Mai rmsese un rest de vin n sticl, aa c Gogu l
ntreb pe Miu:
- Mai e puin, vrei? Cum Miu refuz, i turn el n
pahar:
- Nu prea mai am chef, dar dect s irosim buntate de
vin...
Lui Miu i se aprinser luminiele n priviri, de ziceai c-i
girofar:
- Uite, Gogule, alt exemplu de sofism: am dat banii pe
vin, aa-i?
- Da, am dat. Eu. C tu te-ai fofilat...
- i am but amndoi ct ne-a fcut plcere. Gogu ddu
din cap.
- i restul la nu ne mai trebuie, continu Miu. Gogu
aprob n linite.
- Pi i-atunci, concluzion Miu victorios, de ce mai
bem restul la? i spun eu de ce: e vorba de costuri nerecuperabile sau cum zice englezul sunk cost. Eroarea de judecat e urmtoarea: decizia noastr de a continua un proiect sau o
iniiativ este afectat de banii deja cheltuii, de efortul deja nglobat sau, cteodat, de nivelul de implicare emoional. Dac ne
oprim, investiia deja fcut pare s se piard, i-atunci de multe ori continum, chiar dac asta va duce n mod evident la pierderi
suplimentare. Pricepi? N-avem puterea de a ne opri, pentru c ar nsemna s acceptm pierderea.
- Adic ne cer tia bani n plus?
- Hai, mi Gogule, c nu poate avea omul o discuie logic cu tine! Pe lng banii pe care i-ai dat pe vin, care reprezint investiia
iniial, tu acum investeti i starea ta de bine, c o s i se fac ru de la restul la de vin. Pn acum ai investit pe baza unor decizii
corecte, dar acum decizia ta este afectat de investiia deja fcut, dovad c ai zis dect s irosim....
- Bine mi, psihologie ambulant, hai acas, c m-ai zpcit. S sperm c nevast-mea o s considere c a investit suficient n
csnicia asta a noastr i nu i vine vreo idee crea...

52

nr. 44/februarie, 2016| www.todaysoftmag.ro

Testeaz-i
abilitile

programez.ro

n curnd

sponsori

powered by

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