Category Archives: Management

Da,despre asta e vorba!

http://sethgodin.typepad.com/seths_blog/2011/01/three-ways-to-help-people-get-things-done.html

Trebuie sa scapam de mizele mici,trebuie sa scapam de jocurile care presupun si intretin saracia,trebuie sa scapam de violenta inutila! Uneori,lucrurile par predici  in pustiu dar din fericire totul tine de masa critica! Multe din lucrurile astea vor deveni “evidentul” de maine…

Carte obligatorie pentru manageri și întreprinzători

Am terminat de citit “The For Steps to the Epiphany, Successful Strategies for Products that Win”  si recunosc ca ar fi fost bine  sa o fi citit cu mai mult timp  in urma. Sau poate nu pentru ca as fi fost si mai ingrijorat de ce ma asteapta cu Axiologic si nu as mai fi indraznit sa pornesc  :)  Din punctul de vedere al cartii am facut destule greseli in 2010 dar recunosc senin ca nu-mi pare rau :) ) Din fericire,inovatiile tehnice create in 2010 imi aduc satisfactie singure si merita timpul si banii investiti.

Cartea  mi-a deschis ochii in unele privinte dar din pacate e doar un framework teoretic care trebuie aplicat in practica dupa caz . Aici nu prea te poate ajuta nimic altceva decit instinctul si experienta. Greselile facute sunt utile daca inveti din ele. O astfel de carte e buna dupa ce ai facut greselile si nu stiu daca chiar le poate preveni.

Desi cartea este un pic greu de citit (prea lunga,prea multe cuvinte ca sa spuna ceva,nesintetizata!? – se pare ca e facuta dupa un curs din ce spun comentatorii pe Amazon)   dar oricum merita pe deplin efortul de a o citi!

Cum sa fii un bun sef?

Cum Romania duce lipsa de sefi/manageri competenti si care sa stie sa puna binele echipei,comunitatii,samd inainte binelui personal m-am gindit sa scriu o scurta lista cu calitatile si comportamentele pe care in teorie orice om ar trebui sa le astepte de la un sef (leader,manager,etc):

1. Simtul realitatii: Un sef bun stie sa aiba grija de asteptarile angajatilor,subordonatilor dar in acelasi timp sa fie onest si conectat la fapte reale. Pe perioade scurte se pot obtine avantaje din minciuni si manipulari dar acestea se deconteaza prin  calitatea scazuta a implicarii oamenilor,prin deteriorarea relatiilor,etc.

2. Viziune si sens. Un sef bun ajuta la stabilirea unei viziuni si face ca munca oamenilor sa aiba un sens (personal si social).

3. Un sef bun stie sa asculte pe altii si sa ia decizii impartiale pe baza opiniilor divers exprimate. Un sef bun vorbeste mai putin decit asculta.

4. Prevedere.  Un sef bun trebuie sa prevada problemele viitoare si sa ia masuri sa le preintimpine.

5.  Responsabilitate. Un sef bun isi asuma esecurile echipei de unul singur si impartaseste succesul cu echipa. Un sef bun nu-si asuma meritele altora si isi asuma consecintele rezultate din asumarea punctului 4.

5. Un sef bun are grija sa existe o atmosfera de lucru buna,pozitiva si bazata pe respect intre oameni.

Astept si alte sugestii!

Lucruri de bază. Viaţă şi profesionalism

Cu ocazia naşterii noii noastre firme, Axiologic SaaS (Software as a Service) cu care impreuna cu 4 asociati si prieteni am pornit sa ducem mai departe  eforturile din cadrul lui Axiologic Research, am scris acest post cu lucrurile cele mai elementare (cumva mai teoretice,principiale) care consider ca merita cunoscute de parteneri intr-o afacere,de manageri dar si de orice angajat ce vrea sa fie profesionist .

  • Dezvoltare personala. Pe plan profesional (si nu numai) toti oamenii  par sa parcurga 3 etape (deseori le parcurg in paralel,cu viteze diferite):
    1. Etapa de cistigare a increderii si sigurantei in proprie forte.Nu stii daca te vei descurca in viata. De etapa asta se trece prin seriozitate,munca si reusite.
    2. Etapa in care incerci sa prin diferite metode sa dovedesti ca esti mai bun decit altii. Colaboararea cu altii e dificila si incerci mereu sa pari mai grozav decit esti.  Nu ai constientizat/interiorizat inca ca diversitatea este buna si chiar daca oamenii au abilitati diferite ele pot fi complementare. Oricum nu vei putea avea succes singur.
    3. Etapa profesionista in care iti faci datoria,inveti sa lucrezi in echipa,lasi pe altii sa vada daca esti bun. Daca nu vor vedea inseamna ca sunt blocati prin etapele 1 si 2 . Oricum orice ai face nu le va schimba parerea cit timp nu devin constienti de etapa in care sunt si nu avanseaza. In etapa profesionista daca nu-ti place ceva incerci sa schimbi in mod constructiv,cu rabdare in loc sa te plingi sau sa ai o atitudine defensiva, pasiva, otravitoare in orice fel.

Din pacate multi oameni/angajati romani stau blocati prin etapele 1 si 2.. Cei ajunsi sefi dar aflati in etapele 1 si 2 pot face destul rau celor din jur.

  • Lucrul in echipa. Orice echipa trece prin 4 etape. O sa dau numele etapelor in engleza:
    1. Forming: echipa se formeaza,e doar o adunatura de oameni care nu se coordoneaza
    2. Storming: etapa in care apar problemele,conflictele in echipa
    3. Norming: etapa in care apar regulile interne ale echipei,se aleg leaderii informali
    4. Performing: etapa in care ajung doar unele echipe daca trec cu succes de norming

Echipele revin la etapa iniatiala cind se schimba proiectul,tehnologia,apar sefi sau membri noi in echipa.

  • Par sa existe cam 5 tipuri de motivatie care ii face pe oameni sa se scoale dimineata
    1. Curiozitatea si pasiunea: oameni care se indragostesc de idei,de tehnologii,vor mereu sa invete,sa inoveze,le place ceea ce fac.
    2. Recunoasterea sociala: Oameni care vor sa fie apreciati social. Sa fie iubiti, apreciati, recunoscuti ca oameni buni (sau rai),puternici,influenti,frumosi,dezirabili,etc etc. Daca au suficienta empatie sunt benefici social daca nu au empatie poate fi o motivatie uneori nefasta…
    3. Victoria: Acesti oameni vor sa cistige cu orice pret (in orice si uneori indiferent de costuri).
    4. Banii/lacomia: Oameni care din diferite motive pun mai mult accentul pe a a avea in loc de a fi.
    5. Comoditatea: Oameni ce muncesc ca sa poata sa se distreze sau sa-si asigure un viitor comod… Daca asta e singura lor forma de motivatie in general nu cred ca reusesc sa faca mare lucru… Cei cu motivatii puternice de tip 3 si 4 pot fi buni oameni de afaceri si uneori buni anagajati. Cei din categoria 5 sunt anagajati slabi si de evitat. Eu prefer angajatii si partenerii cu motivatie de tip 1. Intr-o anumita masura toti avem toate cele 5 tipuri de motivatie,aici  le-am ordonat dupa preferintele personale. Motivatia de tip 2 poate fi uneori semnul unei insecuritati sociale.
  • Despre “Leadership”:  Exista cel putin 4 moduri de a conduce pe altii:
    1. Comanda si control (aka micomanagment) E modul de conducere in armata. Merge eficient doar pe termen scurt si numai cu echipe mici de oameni prosti,incompetenti si putin motivati.
    2. Auto-conducerea prin democratie si colaborare (ca in agile programming). Membrii echipei sunt sensibil egali in competente,responsabilitati si putere de decizie. Daca oamenii nu cred in valorile si scopurile firmei din cauza ca responsabilitatea este difuza perfomantele pot avea de suferit. Metoda functioneaza cu echipe mici de oameni competenti si cu o atitudine profesionista.
    3. Conducerea prin invatare (te folosesti de experienta superioara ca sa conduci in timp ce ceilalti compenseaza inconfortul de a fi condusi si dirijati prin satisfactia ca invata si cresc profesional). Este metoda cea mai buna pentru a conduce echipe de oameni tineri,entuziasti,dornici de a invata.
    4. Alinierea la o viziune. Conducere prin urmarea intentiilor nu a ordinelor leader-ului. Leaderul creaza si comunica o strategie si o viziune clara despre viitor. Obtine suportul echipei pentru indeplinirea scopurilor (ce devin scopuri comune). Lucrul de zi cu zi se bazeaza prin exprimarea unor intentii clare (nu prin comenzi concrete si ce trebuie urmate in mod exact). Executia este urmata de o verificare ce probeaza alinierea efortului echipei cu intentiile exprimate si cu viziunea generala. Membrii echipei sunt creativi si nu trebuie sa li se spuna detaliat ce sa faca. Ei fac totul pentru a a indeplini intentiile si viziunea comuna. Au incredere in intentiile leaderului.
      Nici una din metode nu e perfecta si nu functioneaza cu orice echipa. In functie de motivatia si experienta echipei trebuiesc colaborate toate metodele.
  • Personal, cred ca succesul in viata tine de :
    1. Noroc. Din pacate cred ca e pe primul loc. Daca nu te nasti unde trebuie,nu primesti o educatie adecvata putem spune ca nu ai noroc indiferent de dotarile personale :)
    2. Pasiune pentru ceea ce faci
    3. Sa faci ceva util pentru altii (fara utilitate sociala nu poti avea succes veritabil pe termen lung)
    4. Integritate (profesionalism,cinste)
    5. Munca (dar smart not hard) Focusare pe ceea ce iti doresti si fara sa te imparti in prea multe directii.
    6. Idei bune si creativitate (care inseamna mai ales: sa asculti,sa observi, sa fii curios, sa intrebi,sa incerci sa rezolvi probleme si sa faci conexiuni)
    7. Rabdare. Perseverenta,disciplina si perseverenta din nou…
      Evident ca realitatea ma contrazice prin faptul ca multi au succes prin coruptie, furt, minciuna, inselaciune.  De fapt multi oameni considera in sinea lor (imatur as zice) ca asta e modul corect de a face politica, de a conduce si ar face la fel daca ar fi in locul celor de la putere. Din pacate e demonstrat ca modelul matematic cel mai apropiat de jocul social in care suntem toti prinsi se numeste dilema prizonierului cu iteratii nelimitate. Se stie ca desi pe termen scurt a trada este o strategie mai buna decit cooperarea pe termen lung tradarea aduce dezavantaje tuturor (si celor care tradeaza). E de bun simt ca o lume de hoti,mincinosi,lenesi,etc e un iad. Evident ca strategia unora e mai sofisticata: fura/tradeaza un pic ca pe urma sa fie oameni cinstiti si buni cetateni. Asta merge un timp pina creste nivelul intelectual si memoria societatii ca intreg  sau pina cind cei care joaca cinstit nu mai rabda si se razbuna in mod irational pe cei cu succes obtinut asa. Mergind pe strategia asta mixta multi din membrii “elitei” se opun progresului. Probabil nu sunt capabili si pregatiti sa faca fata unei societati mai deschise,mai corecte,mai bazata pe valori,competente si mai putin bazate pe imagine sau aparente…
      Noi ceilalalti care incercam sa jucam corect, suntem condamnati sa incercam sa aducem acest viitor utopic mai aproape prin orice efort… Asta daca nu suntem pacaliti si ametiti de argumentele sofisticate ale manipulatorilor ce au ca strategie principala minciuna,furtul si ametirea altora prin sofisme…
ordinates and established four different leadership styles to use:

S3 High Relationship and Low Task

Participating, Encouraging, Collaborating, Committing

· Shared/participative decision-making

· Role of leader being to facilitate and communicate

· High support and low direction

· Used when people are able but are perhaps unwilling or insecure

S2 High Task & High Relationship

Selling, Explaining, Clarifying, Persuading

· Sometimes known as a ‘coaching’ approach

· People are willing and motivated but lack the required maturity or ability

· This style does not work for people with a lot of experience

· Many times people start a new job or task and it is more difficult than expected, so they simply stop or do not perform. They need encouragement and support through a tough time

S4 Low Relationship and Low Task

Delegating, Observing, Monitoring & Fulfilling

· The leader still identifies the problem or issue

· High degree of competence and maturity

· People know what to do, and are motivated to do it

S1 High Task and Low Relationship

Telling, Guiding, Directing, Establishing

· The directing style is for new hires or inexperienced people

· Sometimes used when an important decision has to be made very quickly

· Involves giving people a great deal of direction and attention to definite goals and roles

Despre progres,OOP,vodoo si prostitutie

De mic am fost crescut sau m-am crescut cu iluzia ca progresul si dezvoltarea sunt bune neconditionat,inevitabile si cel mai mare dar facut de zeii cu neuronii excitati. Cind am inteles ca cea mai probabila definitie a lui “a fi bine” sta probabil in intersectia termenilor “a exista azi” cu “a exista fericit si maine” mi-am reconsiderat parerea rationala despre progres desi pe plan emotional tind inca sa fiu ultragiat de conservatori si in general de oamenii fara dorinta de a intelege viitorul si progresul.Cu virsta am inteles deci ca DESI “mai binele”,solutia mai “perfecta”,mai optima va invinge in final – acest “in final”poate fi suficient de indepartat incit o atitudine conservatoare este pentru multi oameni logica si mai profitabila pe termen scurt. Mai mult,viitorul si progresul pot ascunde pericole necunoscute.

Programatorii, pentru ca despre programatori si programare vreau totusi sa vorbesc aici sunt un caz interesant de studiu in ceea ce priveste atitudinea fata de progres.
Cea mai la moda si mai “buna” metoda de a face programe de vreo 10-15 ani se numeste OOP (sau un infam POO pentru vorbitorii de romgleza ) . In ciuda sutelor de limbaje noi de programare,a zecilor de mii de articole publicate despre alternative si imbunatatiri aduse programarii se poate paria destul de safe ca OOP-ul va mai ramine favoritul maselor de programatori inca o perioada. In ultimii ani a aparut o elita a programatorilor OOP,programatorii care stiu Design Patterns. Aceste patternuri sunt fara indoiala fetisul suprem al maselor si baronilor angajatori de programatori.
Ca sa nu am vorbe o sa precizez ca fiind programator sunt si eu bineinteles bine adapat din nectarul zeilor oop-ului si consider ca patternurile sunt placute, interesante si utile.

Dar.. si aici e darul meu cel mai mare,sentimentul meu profund despre OOP este ca e folosit mult prea mult pe post de “ciocanul bun la toate” (un antipattern pentru cunoscatori). Acest sentiment ca programarea actuala poate fi in mod serios imbunatatita s-a accentual in ultimii 6-7 ani adica de cind am inceput sa platesc alti programatori din postura de mic si precaut intreprinzator. Abia de curind am inceput o investitie mai mare pe cont propriu si pe riscul meu dar una din problemele cu care m-am confundat in acesti 6-7 ani au fost tocmai costurile prea ridicate cu programarea si programatorii. Cind lucrezi pentru clienti si ei platesc suficient e mai usor sa tolerezi imperfectiunile metodei de lucru dar cind vezi cum se duc proprii bani pe niste programatori “seniori” sau mai putini seniori ce au invatat in felul lor controsionat arta programarii papusilor vodoo, lucrurile se simt diferit.

Este adevarat ca programarea este un pic grea datorita unei complexitati esentiale a problemelor pe care le rezolva dar parerea mea este ca metodele folosite multiplica uneori cu un factor ce poate fi si de zeci de ori complexitate esentiala a problemei. Am avut uneori de implementat algoritmi mai complicati si spre supriza mea complexitatea problemei devenea abordabila doar in momentul cind schimbam modul de reprezentare a datelor desi conceptual algoritmul in mintea mea era acelasi de la inceput. Poate ca unii dintre cititori vor intelege de ce am adus asta ca argument,restul sunt rugati sa treaca mai departe sau se gindeasca de cite ori au avut de a face cu bug-uri prostesti, cu proiecte care si-au depasit termenele sau cu programe care pur si simplu “spurca” in moduri inadmisibile datele clientilor stirnind furia si inchiderea portofelului acestora.
Chiar si numai faptul ca trebuie sa angajezi superi-eroi programatori ca sa rezolve probleme de business simple pe care le inteleg si paznicii clientilor dar si dificultatea in a stabili termene precise de realizare, inflexibilitatea si costul mare cind vrei sa schimbi aplicatia in functie de cerintele clientului, bug-uri “nesimtite” si de neimaginat sunt simptome ca modul a face “software development” cu OOP are cel putin un miros ciudat daca nu cumva e stricat bine de tot.

Sigur ca e usor sa zici toate lucrurile astea fara a veni cu solutii. Intr-un mod cam eroic (poate) am inceput un proiect care sa vina cu niste raspunsuri dar o sa vorbesc despre asta altadata.

Ce ma preocupa acum e reactia programatorilor in fata progresului. Uneori am simtit ca programatorii, constient sau nu joaca “by default”  cartea “job safe”. Asta inseamna ca daca codul pute mai tare cu atit firma va avea nevoie de ei ca sa mentina codul cel magic in viata. Din cauza asta programatorii C++,Java de exemplu par sa se opuna destul de sistematic folosirii sistemelor de tip RAD sau desconsidera si ridiculizeaza limbajele folosibile si de incepatori (PHP,Visual Basic)

Programatorii percep instinctiv ca democratizarea/simplificarea programarii nu este in interesul lor si vor incepe jocul politic de decredibilizare a tehnologiei sau a celor care o folosesc. Partea amuzanta este ca ei vor folosi argumente adevarate pentru a sustine puncte de vedere tendentioase. Totul ar fi bine daca firmele care le platesc salariile nu ar avea de suferit din proasta evaluare a unor astfel de nuante.
Oricum,progresul e inevitabil,legile fizicii ii ajuta pe cei care le inteleg si le folosesc.Parerea mea este ca cei care se masturbeaza intelectual cu OOP cind ar trebui sa foloseasca altceva sau si mai rau prefera sa se prostitueze pe modelul “job safe” facind o munca de mintuiala si fara implicare, vor avea de suferit pe termen lung.

Spre mirarea mea, de multe ori cind exprim astfel de opinii descopar din partea programatorilor surpriza, neincredere,indignare  ascunsa sau faptul ca nu s-au gindit vreodata la asemea chestii ce tin de pragmatica programarii. In apararea programatorilor nu pot decit sa spun ca evaluarea tehnlogiilor si ideilor progresiste este cu adevarat grea si deja programatorii se confrunta cu riscul de a nu avea o viata sociala de calitate… Nu e bine ca istetii de programatori sa ramina neiubiti si fara copii,nu-i asa:) ?

Cum va fi viitorul? Nu stie nimeni sigur dar probabil va fi de partea celor care se gindesc la el…

P.S. Cineva inspirat a zis despre OOP urmatoarele: You wanted a banana but what you got was a gorilla holding the banana and the entire jungle.

Despre startup-uri: Sfaturi adunate de pe Internet

  • Problema pe care o rezolvi trebuie sa fie grea/urita.Soluţia trebuie sa fie frumoasa.
  • Chiar şi cele mai de succes idei au avut 100 de probleme pina la implementare. Nu există nici o idee perfectă.
  • Asuma-ti riscuri calculate. Piaţa rar recompenseaza pariuri sigure.
  • Tu alegi destinul tău, pentru că iti alegi echipa.
  • Dacă schimbi direcţia de multe ori, sa vă faceţi griji un pic. Dacă schimbati oameni des sa vă faceţi griji foarte mult.
  • Esti singuratic cind ai succes dar chiar si mai singur cind nu ai. În primele zile de la pornire, aproape nimeni nu vrea să vorbească cu tine.
  • În cele din urmă produsul dumneavoastră va trebui să lucreze şi să facă ceva util. Nici un efort de marketing sau strategie nu va putea evita asta.
  • La sfârşitul fiecărei zile, întrebaţi-vă:produsul e mai bun pentru clienţi astăzi?Daca nu e,stai si munceste până devine.
  • Până când devii profitabil  timpul lucreaza împotriva ta. Odată esti profitabil timpul este de partea ta.
  • Pentru a îmbunătăţi calitatea  îmbunătateste calitatea informatiilor cu care lucrati. Citiţi, stati de vorbă cu oamenii potriviti.
  • Forteaza-te sa scrii deoarece aceasta te va obliga sa gindesti.
  • Cel puţin o dată pe an afacerea va fi in pericol.
  • Fii cine eşti. Lucreaza ceea ce iti place. Inconjoara-te de oamenii care iti plac.
  • Solicita transparenţă şi înţelegere cu partenerii dvs. de devreme. Problemele se fac mai grele cu trecerea timpului
  • Fondatorii lucreaza mai mult de 8 ore/zi pentru un motiv foarte intemeiat. Cine caută echilibru sa îl caute în altă parte.
  • Clienţii rai va vor micsora pasiunea. Clienţii cu adevarat rai va consuma din ambele: pasiune şi profituri. Din păcate, clienţii cei mai răi vor degenera în clienţi într-adevăr răi dacă nu se face ceva despre asta

Principii ale time-tracking-ului pentru programatori

Time trackingul in definitia mea se refera la incercarea de a masura cu exactitate cit timp lucreaza un om, la ce lucreaza (cite ore a durat fiecare task,etc).  Fara indoiala  ca ideea de a optimiza costurile este o idee buna… atit timp cit metoda de optimizare nu mareste costruile :) De asemenea daca o echipa/persoana lucreaza la mai multe proiecte simultan poate fi util sau chiar absolut necesar sa existe o metoda de a sti care sunt costurile.

Nevoia existind,ramine de gasit metoda prin care sa facem asta fara sa marim costurile.

Cerintele pe care le consider absolut importante in orice reguli care sa urmareasca obtinerea unui time tracking sanatos sunt:

- time tracking sa nu fie o metrica pentru masurat perfomantele unui programator. Echipa, managementul trebuie sa fie orientate pe scopuri clare si nu pe maximizat timpul petrecut la munca ( sau mai rau,de  indeplinit cerinte de timp minim!) Conteaza ce se produce nu cit timp stau oamenii la munca!  La programatorii care fac chestii creative,dificile,novative… asta e singurul criteriu real! Daca managementul nu poate verifica rezultatele si nu poate urmari efectiv ce se intimpla… e o clara dovada de incompetenta.. E adevarat ca sunt situatii cind munca si oamenii necesita o astfel de abrdoare dar in general asta nu e adevarat in programare. Implementarile Agile reusite (si corecte)  si succesul lor in foarte multe firme pare sa-mi dea dreptate.

- orice forma de time tracking care este enervanta  pentru cei care aduc valoare nu este bun!(De exemplu pentru ca necesita atitudinea de ghicitor sau introduce un stres pentru ca necesita grija sa tii minte mereu exact ce ai facut si cit a durat. O astfel de grija este un obstacol inutil care scade performanta.) Aparent dureaza 10 minute sa scrii intr-un raport cit timp ti-a luat,dar sunt 10 minute enervante!

- time tracking care sa faca oamenii sa se simta prost pentru ca mint este otravitor! Inevitabil oamenii vor fi tentati sau mai rau fortati sa minta despre timpul petrecut pentru un task (pur si simplu nu suntem perfecti,nu suntem roboti care lucreaza non stop).  Eu prefer sa am in jur oameni care se simt prost cind mint.. Cine vrea sa aiba in echipa oameni care se simt prost zilnic inainte de a pleca acasa!!!?

Mai vrea cineva time tracking? Noroc ca exista si solutii sanatoase care pot sa cada in treaba managerilor!

Management: multitaskingul este daunator?

Desi unele lucruri sunt aproape evidente, exista inca loc pentru a promova unele valori vechi sau inevitabile :)

Gindirea (magica) a unor manageri spune ca a da unui om mai multe task-uri (eventual vagi…cetoase) este un lucru bun pentru ca subconstientul oamenilor va lucra in background (si in timpul liber al omului eventual) si el va veni cu idei stralucite…

Cind exista pasiune si interes pentru un anumit subiect este adevarat ca subconstientul vine cu solutii in momente neasteptate… dar a incarca in mod nejustificat un angajat cu multe taskuri in paralel nu va duce,dupa experienta mea,decit la ineficienta! Multa,multa ineficienta!
Un anumit nivel de multitasking e inevitabil dar nu trebuie incurajat!

Articole bune pe aceasta tema: