Much ado despre nimic

For dilbert fans

January 22, 2008 · Leave a Comment

Scott Adams just released a cool new Dilbert widget – you can get your own (and in other sizes, too) from widget.dilbert.com :

→ Leave a CommentCategories: EN · Much Ado About Nothing

You Can’t Manage What You Don’t Measure

November 12, 2007 · Leave a Comment

I found this great article – I’ll post it here so that I’ll know when to find it in the future :P

http://management.about.com/od/metrics/a/Measure2Manage.htm

Enjoy the reading.

→ Leave a CommentCategories: EN

Scena politica romaneasca

October 25, 2007 · 1 Comment

Ce zicea un presedinte american, Lyndon Johnson, acu’ 40 de ani:

If one morning I walked on top of the water across the Potomac River, the headline that afternoon would read “President Can’t Swim”

Suna familiar? :D

→ 1 CommentCategories: Countless ado about politics · RO

Extreme “groupthink”

October 12, 2007 · 1 Comment

I ran into this interesting NYTimes article…. definitely worth reading:Diet and Fat: A Severe Case of Mistaken Consensus. I always thought the ‘low fat’ American fad was stupid – and now, scientific data seems to build up to confirm it.

But what’s really impressive, is the mechanism that lead to this situation… spooky when you think that one will most certainly need a doctor sometime in the future. We just can only hope that the ‘expert treatment’ we receive isn’t just a fad and a cascade of wrong opinions…

→ 1 CommentCategories: EN · Much Ado About Nothing

Free stuff

August 27, 2007 · Leave a Comment

40 coolest free applications. Interesting lecture :)

→ Leave a CommentCategories: EN · Endless ADO about .NET

Legiuitorii lor sunt mai tari decat legiuitorii nostri

August 21, 2007 · Leave a Comment

Credeati ca nu exista un parlament mai stupid decat cel romanesc? Think again:

http://www.msnbc.msn.com/id/20227400/site/newsweek/

→ Leave a CommentCategories: Countless ado about politics · RO

The ideal team of programmers – or at least, my view on it

August 19, 2007 · Leave a Comment

Frank Willes talks about the high cost of hiring inappropriate programmers, I also feel the same way – I know that the “benefit” of hiring a completely unappropriated programmer can even be negative (one person can easily do more harm than good). Still, some of his affirmations puzzled me; he made a few clarifications in this very interesting followup on the subject , but I partially disagree – so let me explain.

First of all, he claims that in many situations companies can and should staff themselves with the vast majority being experts. I don’t agree here: first of all, it is extremely hard to staff a company with experts-only. There are simply not so many available… and for larger companies, it is simply impossible. Besides, assuming you would somehow manage to find those experts – it is extremely hard to manage them; they are often hard to please, they have strong personalities and are used to “being right” when it comes to technical solutions; but real-life problems often have more than one good solution, and I suspect that in a large team of experts, conflicts would easily spark – as it is likely that different people may choose different solutions. You may say that they are wise enough to avoid conflicts… but I’m not so sure. An expert likes to be “the first violin” – and in a large all-experts team, some of them would necessarily be (or at least seem to be) more “important” than the others. This is a sure recipe for disaster.
Let’s ignore even these practical considerations. Say you could have harmony in your team; there are more reasons to have “non-experts” in your team.First of all – the young, talented programmers do not qualify as “experts”. No matter how talented you are, and how smart – you are not an expert when you graduate the university. You still have to learn all the things you are facing when you build and operate a real product, when you work with real customers, when you work “a la longue” with the same people, in the same team – sometimes, a distributed team. You need to learn when to make compromises and when to avoid them – yes, you need some experience; everybody does. (when I graduated I used to hate my company for remunerating a lot “experienced” employees, who were very bad programmers; I understand now better why they did it – they were wrong, in that particular situation, but it was simply too hard for them to make things right; anyway, more on this in a further article).
Going back to the “rising stars” – young, resourceful graduates or even students: yes, a team of fresh graduates would probably not have the experience to put together a product. However, a young graduate has something to prove to himself and to the world: his worthiness. He does better than his peers in university – he wants to be better in the industry. Moreover, he is eager to learn – and being smart (we are talking about really smart students or graduates, right?), he understands that he can always learn and is in fact focused on “learning”. As such, he has two major advantages: first, he accepts the role of a “lesser-importance employee”; he is eager to work under the “coordination” of an expert, he will challenge the expert’s solutions but he will eventually accept them when they make sense. Secondly – he works hard. He has something to prove – he is used to being among the best, so he wants to make an impression. IMO, in an ideal team – you should definitely have at least as many “young talents” as you have experts. Say 1/3 experts. 1/3 young talents.
What about the rest of the team? Well, if your team is small – like, 5 people or so – you don’t need this third category. But if it is larger, you definitely do. A larger team means that your project is really large – so it surely has some non-interesting stuff to do. Probably, lots of non-interesting stuff. You could have your experts do that – but they will eventually be bored and will leave for another company. You could try to have the “young talents” do that – but that violates one of the primary goals of a young talent: to LEARN, to do something interesting. No matter how you look at it – you need some average programmers to do these tasks (if they are a little above average, it is even better). And they actually have a very important role in keeping a “healthy team”: not only they can do the tasks your experts don’t like, but they are expendable and they serve as a healthy “reference”. See – your experts don’t like to be the last wheel of the wagon. If all your team is full of experts – one of them will inevitably be the weakest programmer, he/she will be (or seem to be) less critical for the team. If you have “young talents” – things improve a bit – but not very much. The young talents, as I described them, will be every bit as smart as your experts – sometimes, even smarter.Yes – they lack experience; but they will more than make up for this, with their increased determination and motivation. No, your experts will have a hard time if they try to feel “technically superior” to a young talent.They won’t get that feeling of importance, that feeling of being “better and more important than most of the team”. Even your young talents, who are probably ambitious, will need to feel that they are gaining a lot of importance; the “average programmers” will provide the initial “easy victories” – a young talent will feel that his work has attracted the attention of the leadership, that he is viewed as being better than some of the team members – but he still has work to do, to become one of the ‘experts’. This can only work towards motivating him more.

I realize that this theory is not really “politically correct”, and it may sound evil to bring some “expendable” programmers in the team just because you need a negative reference. Ideally, people should be judged by their merits only, and not relative to the others. Unfortunately, in the real life – not only we judge other people relative to the others, but we judge ourselves relative to the people around us. ” In the country of the blind the one-eyed man is king“; unfortunately, this works the other way around too – “in the country of x-ray vision, the normal man is blind”. There is even an old Romanian saying along these lines: “decat codas la oras, mai bine-n satul tau fruntas”.

To summarize – I do believe you need three categories of employees, in an ideal team:

A. Experts – they know how to get your product out, in time, and with smooth functionality. They know when to accept and when to avoid compromises. They know the market and can properly interpret the customer input – they can take a poorly-formulated customer request and understand what is the thing he actually needs.

B. Young talents. They are smart, they are up-to-date with new technologies, they have good general knowledge (experts may often be a bit “focused” on a particular field, and miss up on news from other fields). But most importantly: they are highly motivated, and they work hard. They are willing and able to do most of the actual coding in your product – and they are even more efficient at this than your experts.

C. Average programmers. They are typically cheaper to hire, they can do the less challenging tasks (where it would be an overkill to assign an expert), they are replaceable and as such they serve as a reference so that the others can easily see how critical they are for the company.

There is still one thing missing from this picture: it’s not enough to hire experts and young talents. You have to retain them, otherwise you accomplished nothing – all your work will seem like a Sisyphean task.
Frank is puzzled by the fact that companies typically pay only a 10-20% premium for an expert over the average programmer. While this may seem stupid at first sight, there is a very good explanation for that: Maslow’s hierarchy of needs. Programmers typically earn good money – once you have a home, a car, you can afford food, entertainment, vacations – how much value do the extra money ad? I mean, really, how much happier is one to own an Audi instead a Skoda, for instance? Sure, it means something – I’m not saying it doesn’t. But once our basic needs are satisfied, most important (from a salary p.o.v.) is to feel that you are paid fairly. If you’re not paid fairly (e.g. someone with an inferior contribution gets payed more, or your friends working for other companies are payed better) – then yes, it is a problem; but otherwise, being paid 20% or 100% better than “an average programmer” makes almost no difference – other things are far more important. I already detailed the “esteem” part (all your expert programmers should have a feeling of achievement and the respect of others) – you need to work towards creating an environment of “friendship” (team members should really be friends), providing challenging and creative work for them, and at making them feel important and “personally involved” (this is why it is easier for startups to get experts – having a good share of the business gets you quite involved; share options in large companies do not accomplish this goal, since one persons’ influence in a 50000-persons company can seldom be significant).
Which actually means that you should have a “manager” which is an excellent “people manager” – never forget you are working with persons, not machines, and each person is unique. There can be guidelines, but there can be no sure “recipe for success”. Actually, if I am to pinpoint a single most important person for the success of the product – and eventually, the company – it is the team manager. Ideally, he should be very skilled at working with people, understanding their needs, their wishes and – why not – their dreams. At the same time – he should be a technical expert himself – this will not only help him understand & evaluate the team members better, but will also help him hire great staff as well as get their respect and recognition as a manager.
Unfortunately, such people are extremely rare; if I hadn’t met one myself, I would think they don’t even exist. The practical solution is in diversity: you should have people in your team who are very good at tracking progress, documenting work and keeping everybody on track; people who are very good at “smoothing” the relationships, and “fixing” conflicts; people who are good at socializing and creating a team spirit; people who are very good designers; people who are experts, in various technologies – preferably, not a single one; and so on. Of course, these roles may “overlap” – and it is good if you can find someone who can do all these tasks; the problem is, you are lucky if you find one who can accomplish 2 or 3 of these roles – so really, be on the lookout for diversity in your team, and always try to find out what exactly is missing. This may not always be obvious – but hey, life is complex :)

[update]: I have left out of the discussion, on purpose, the “definition” of an expert. Yes, I give a few guidelines of “stuff you may expect from an expert” – to hint the reader about what I understand from the term “expert”. However, a company may define it’s own expectations from an “expert” – to put it very shortly, my point is

  1. If “expert” is someone “experienced” – then no, you don’t want to have an all-experts team, it can actually be better to have novices too in your team
  2. If “expert” is some very creative, or very knowledgeable guy – then again, you don’t want an all-experts team; not all tasks require creativity, not all tasks require extensive knowledge, and so on
  3. Even among the “experts”, there are many domains of “expertise”: technical knowledge of some specific technology, target-market knowledge, attention to detail, creativity, human interaction and dealing with people…. it is highly unlikely that any single “expert” would excel in all these areas. What you need is diversity.

→ Leave a CommentCategories: EN · Endless ADO about .NET

Mobile networking

August 10, 2007 · Leave a Comment

HSDPA or WiMax? Juniper Research says HSDPA will dominate mobile broadband. That is yet to be seen – at a first glimpse, it makes sense: the network is already there; on the other hand – never underestimate the greed of the mobile phone operators :) . Just look at the way that Romtelecom started to loose market share, even though it had a well-established monopoly situation. That should have never happened, theoretically, had they been less greedy – it was extremely hard to compete against Romtelecom. And yet, quite a few companies have started to be very successful, doing just that.

The same may happen to Vodafone, Orange, and the other operators on the “mobile broadband” front – unless they significantly cut the end-customer costs. Assuming that they can do that – because if they can’t, HSDPA is doomed anyway.

→ Leave a CommentCategories: EN · Profuse ado about business

Statisticile nu mint. Oare?

August 9, 2007 · 6 Comments

Profit de faptul ca seful meu e intr-o vacanta de 2 saptamani ca sa-mi mai updatez si eu blogul :D

Acesta e primul intr-o serie de (probabil) 3 articole, in care ma gandesc sa tratez ‘problema’ IT people vs. business people. Totul a plecat de la un articol de-al lui Adrian Spinei, la care as fi avut si eu ceva de comentat. De fapt, aveam atat de multe de comentat ca m-am apucat sa scriu un articol. Dar articolul s-a dovedit a fi mult prea lung… asa ca, n-am ce face, il sparg in bucatele mai mici. Dar sa revin la subiectul acestui articol.

In vremurile de demult (acum 5-6 ani mai precis :P ), aveam un sef francez, extrem de inteligent si un profesionist excelent. El avea o vorba: “statistics don’t lie”. E o idee pe care am imbratisat-o si eu imediat – intr-adevar, statisticile nu mint, statisticile iti ofera o baza excelenta pentru luarea deciziilor . Mi-am insusit ‘textul’ lui, si l-am mai rostit si eu in cateva ocazii, ca pe un truism, ceva ce nu poate fi contestat. Doar ca sa aflu cu surprindere ca a fost contestat foarte repede, de un coleg, care mi-a zis ca “nu e chiar asa”. Pai cum se poate? – m-am mirat eu. “Pai uite un exemplu: stiu de la maica-mea ca exista o boala X, la care daca administrezi medicamentul Y, 80% din bolnavi se fac bine. Pe restul de 20% ii nenorocesti, dar 80% se fac bine. De-aia, medicii prescriu intr-o veselie medicamentul Y ca si tratament, nenorocind astfel o gramada de oameni”. Bineinteles, i-am taiat-o scurt: “bine, dar sunt doctorii prosti. Statistica nu minte, statistica zice ca in 20% din cazuri medicamentul face rau. Ca ei prefera sa citeasca doar partea cu ‘in 80% din cazuri face bine’, asta e problema lor”.

Insa, discutia asta m-a facut sa fiu totusi un pic mai atent. Si observ mereu de atunci cat de ‘abuzate’ sunt statisticile. Sa nu ma intelegeti gresit – sunt un instrument exceptional – cercetarea stiintifica se bazeaza foarte mult pe statistica. Medicina se bazeaza pe statistica. Tot mai multe “demonstratii” se fac statistic, in ziua de azi. Dar tocmai din cauza ca e un instrument atat de puternic, orice neavenit a auzit de statistica, si oricine se crede calificat sa le interpreteze. Matematicienii inteleg statistica, si stiu ca nu e simpla; marea masa a oamenilor insa nu o intelege, dar o foloseste pentru a-si justifica deciziile si concluziile aleatorii.

Uite, sa luam ultimul raport SAR – zice acolo ca “În România şansa de a muri într-un accident pe un drum naţional este de 40 de ori mai mare decât media în UE”. Nu ma intelegeti gresit – raportul contine multe sugestii bune, si atinge niste subiecte la care eu nu sunt expert, si deci nu ma pot pronunta. Dar prima fraza din raport, fraza-soc cu care ei atrag atentia si in jurul careia isi centreaza argumentatia, e fundamental gresita. In primul rand, explica ei acolo cifra de ‘40′ astfel:

In România numărul de accidente pe autoturism e de trei ori mai mare decât în UE; în timp ce în Europa doar unul din 40 de accidente se soldează cu decese, în România raportul este de unu la trei. Combinat, practic şansele de a muri pe drumurile naţionale sunt de 40 de ori mai mari în România decât în restul UE

Asta mi se pare strategie clasica de politician (si in general, de individ ‘clueless’) …. iei 2 statistici, le combini cumva si tragi o concluzie “convenabila”. Colegul meu avea dreptate – daca asa aplici statistica, atunci da – statistica “minte”, deseori.

Sa vedem, strict dpdv al acestei fraze, ce intrebari mi-am pus eu imediat:

  • Oare in Romania numarul de autoturisme pe om este mai mic sau mai mare decat in UE? Probabil ca e mai mic, dar vreau sa stiu exact cat de mic, inainte de a trage o concluzie. Daca omul mediu are 3 masini – nu o sa circule cu toate 3 simultan, ci doar cu un. NOrmal ca numarul de accidente per autoturism e mai mic, atunci, nu?
  • In Europa, doar unul din 40 accidente se soldeaza cu decese, in RO unul din 3. Interesant. Dar oare cati oameni circula in medie intr-un autoturism, in UE si in RO, si cati mor? Caci daca in RO un accident din 3 am 3 morti, iar in UE la unul din 40 am un mort… concluzia e un pic diferita.
  • Se includ si autostrazile in raportul asta? zice de “drumuri nationale”…. pai acolo, mare parte din trafic e pe autostrazi (un prieten imi zicea ca a citit raportul si ca “sunt incluse si autostrazile”; sper ca asa e, eu unul nu am vazut unde scrie asta).
  • Cum se numara “accidentele”? E vorba de numarul de masini lovite? Daca da – de exemplu, la ei, multe accidente sunt “carambol pe autostrada”. Daca se lovesc 500 masini si moare unul (ala care a declansat accidentul)… pai asta nu imi spune ca e mai “safe” la ei. ci doar ca ei numara “multe accidente per incident”.
  • samd samd…. sunt din start pesimist, cand vad cifre atat de spectaculoase… cred ca sansa de a fi “interpretate convenabil” e foarte mare

O sa-mi spuneti, “hai ma ca se vede cu ochiul liber ca e mai nesigur la noi decat la ei, nu vezi cati nebuni sunt pe sosea care circula absolut aiurea”? Asa o fi, dar cu ce ne ajuta statistica asta de fapt? De ce am facut-o daca stiam dinainte concluzia? Iar daca nu stiam concluzia, oare chiar ne spune ceva relevant statistica celor de la SAR? In general, facem o statistica fiindca vrem sa aflam ceva. In cazul asta, nu am aflat mare lucru, zic eu….

Sa zicem ca am aflat ca “e mai nesigur in Romania” (desi repet, nu am aflat exact “cat de nesigur e”). Atunci, cu aceasta fraza de inceput, ei si-au justificat necesitatea raportului: “ar trebui facut ceva pentru imbunatatirea sigurantei circulatiei”, Dar tot continutul propriu-zis al raportului e complet nefundamentat, si prezinta pareri personale fara nici un fel de fundamentare statistica. Daca vrem sa facem un raport cu “cum sa imbunatatim siguranta circulatiei”, atunci eu as fi vrut sa vad de la SAR urmatoarele statistici:

  • Unde, in Romania, sunt cele mai multe accidente soldate cu morti (pe ce tipuri de drumuri, in localitati/in afara localitatilor, pe drum cu o banda/2 benzi pe sens, etc)
  • Care sunt cauzele (depasiri neregulamentare? oboseala la volan?viteza excesiva – iesiri “in decor”?neasigurare? obstacole nemarcate pe drum? etc. etc.)
  • Ce fel de ‘actori’ sunt implicati in accidentele mortale (pietoni? biciclist? carutasi? masini mici; noi sau vechi – cate ’stele’ NCAP au? SUV-uri? Camioane?).
  • varsta soferilor implicati, de cati ani au carnet (e intr-adevar vorba de faptul ca “se da prea usor carnetul”, cum am auzit de nenumarate ori?)
  • Zic cei de la SAR ca “multe vehicule lente o iau pe DN fiindca DJ sunt proaste”. Oare? As vrea sa va si eu, cam cate vehicule lente circula pe fiecare DN in parte, si ce rute alternative (pe DJ) ar exista. CA de multe ori – eu nu stiu nici o ruta alternativa. Sa luam valea oltului, de exemplu – pe unde ar putea “ocoli” cei care merg de la un sat la altul?

Pana nu o sa vad date statistice de genul asta, consider ca raportul SAR e facut de niste amatori. Da, multe concluzii par a fi “de bun simt”, cu multe (chiar daca nu cu toate) sunt si eu de acord. Dar asta e doar “my gut feeling” – daca vrei sa faci o chestie profesionista, argumentata, colectezi niste date relevante. Asa cum e prezentat raportul acum, e doar o poveste frumoasa, dar fara nici o fundamentare. Dar care vrea insa sa lase impresia ca e “fundamentata pe date statistice”.

In stirea aceasta de pe dailybusiness.ro,  se confirma ceea ce am spus eu de la bun inceput: SAR abuzeaza de “statistici”, combina in mod gresit numerele, doar ca sa iasa ceva frumos si “publicabil”. O sa citez o parte foarte relevanta:

Mai mult, raportat la numarul total de masini, la noi se inregistreaza 58 de decese la 100.000 de autovehicule, pe cand in UE se inregistreaza in medie 188 de decese la 100.000 de autovehicule. Comparatia cu UE ar trebui sa includa asadar si gradul de folosire al unei masini, numarul de accidente raportat la numarul de kilometri parcursi si multe alte elemente inainte de a clama panicard ca la noi riscul de a muri dintr-un accident auto este de 40 de ori mai mare decat in Europa.

→ 6 CommentsCategories: Much Ado About Nothing · Profuse ado about business · RO

Trecutul si viitorul informatiei

July 19, 2007 · 1 Comment

Vreti sa intelegeti cum s-a ajuns la Web2.0 si ce implicatii are? Uite un clip excelent:

Si daca tot am inceput cu ideea asta…. urmatorul filmulet reia un pic evolutia webului, si incearca sa prezica viitorul. O teorie interesanta, chiar daca nu neaparat adevarata :)


→ 1 CommentCategories: Much Ado About Nothing · RO