De cati angajati Microsoft e nevoie pentru a schimba un bec?
Cautand un articol mai vechi, am dat peste un post mai vechi al unui coleg care descrie o parte din costurile asociate cu programarea intr-o companie de dimensiunile Microsoft.
Pornind de la bancurile clasice de tipul "de cati ingineri/matematicieni/emo e nevoie pentru a schimba un bec", Eric prezinta varianta urmatoare:
- One dev to spend five minutes implementing ChangeLightBulbWindowHandleEx.
- One program manager to write the specification.
- One localization expert to review the specification for localizability issues.
- One usability expert to review the specification for accessibility and usability issues.
- At least one dev, tester and PM to brainstorm security vulnerabilities.
- One PM to add the security model to the specification.
- One tester to write the test plan.
- One test lead to update the test schedule.
- One tester to write the test cases and add them to the nightly automation.
- Three or four testers to participate in an ad hoc bug bash.
- One technical writer to write the documentation.
- One technical reviewer to proofread the documentation.
- One copy editor to proofread the documentation.
- One documentation manager to integrate the new documentation into the existing body of text, update tables of contents, indexes, etc.
- Twenty-five translators to translate the documentation and error messages into all the languages supported by Windows.The managers for the translators live in Ireland (European languages) and Japan (Asian languages), which are both severely time-shifted from Redmond, so dealing with them can be a fairly complex logistical problem.
- A team of senior managers to coordinate all these people, write the cheques, and justify the costs to their Vice President.
Dincolo de aspectul haios, lista de mai sus dezvaluie un aspect pe care multi il ignora: intr-o companie de talia Microsoft, orice modificare a codului atrage dupa sine costuri colaterale considerabile (in timp si resurse). Ganditi-va la asta data viitoare cand va intrebati de ce n-am mai adaugat la produsul X un buton micut care sa faca Y.
Labels: Microsoft


Nu zic nu, adevărat e - e foarte greu să faci schimbări chiar mici într-un soft cît de cît maturizat. Mai ales la nivel jos.
Asta nu înseamnă decît un punct în minus pentru programele monolit care fac mai mult decît li se cere.
Într-adevăr, e greu să schimbi un item dintr-un ansamblu de 25000, şi e complicat să modifici o linie într-un fişier care după partea de precompilare ajunge la 500.000 de linii.
Nu înseamnă că vă condamn, doar că uneori, un re-design ajută :P Şi pentru backwards compatibility există Wine :P
Posted by
dorinlazar |
June 11, 2008 12:03 PM
Dorin, n-ai inteles nimic din articol...
Te referi la redesign/reimplementare a intregului feature sau chiar implementarea unui nou sistem de luminare. In termenii echivalenti ai articolului, asta inseamna cel putin redesign-ul becului si al fasung-ului (eventual si al lampii care sa-l tina, al intrerupatorului, al cablajului electric necesar pentru puterea electrica maxima a becului).
Un exemplu de redesign ar insemna punere de neoane :-). Pentru asta mai sunt nevoie de un user-experience specialist si un PM care sa faca un studiu de piata si sa ajunga la concluzia ca luminatul incandescent nu satisface utilizatorul, un grup manager care sa accepte ideea si sa-si propuna ca viitorul produs sa foloseasca alta tehnologie, un grup de designeri care sa recomande folosirea de neoane vs. lampi cu gaz, minim un dev care sa faca design-ul, un grup de devi care sa faca peer si intial review, niste arhitecti si dev leads, care sa aprobe design-ul, etc :-) Cu alte cuvinte, redesign-ul nu exclude nici unul din pasii aia pe care i-a ilustrat Eduard, din contra, adauga mai multi...
A propos, Eduard a uitat niste oameni:
- tehnicienii de la buildlab, aia care trag firele si cableaza becul, fac o derivatie ca atunci cind becul e schimbat si testat sa nu afecteze intreaga cladire daca becul ia foc si care suprevegheaza testingul.
- devii de la servicing, care schimba becul efectiv si pun abajurul la loc.
- un dev care sa scrie patentul pentru "method and aparatus for changing a bulb". Un reviewer care sa verifice si submita aplicatia de patent.
- cei de la sales and marketing & pr, care advertise noul bec si imbunatatirea luminatiei cladirii
Posted by
Alin Constantin |
June 11, 2008 2:18 PM
love the procedures at microsoft :p
Posted by
Dan |
June 12, 2008 4:30 AM
in sfarsit o recunostere (chiar daca indirecta) a meritelor freetarzilor de la open source software pe blogul asta:))
Posted by
xvd |
June 12, 2008 7:12 AM
"Ganditi-va la asta data viitoare cand va intrebati de ce n-am mai adaugat la produsul X un buton micut care sa faca Y."
Să reformulez: gândiţi-vă când cereţi ca un gigant care scoate grămezi de bani de pe urma voastră să facă un soft aşa cum ar fi trebuit făcut de la început! Le răniţi sentimentele lor fragile, ce dracu'?!
Cam aşa am înţeles eu îndemnul.
Posted by
RRR |
June 12, 2008 2:50 PM
RRR, esti un neghiob.
Posted by
Anonymous |
June 12, 2008 5:12 PM
@Anonymous: Pe aici e o regula: cand critici sau injuri pe cineva, semneaza! Sa injuri si sa te ascunzi sub umbrela anonimatului - not cool. Really.
Posted by
Eduard |
June 12, 2008 11:55 PM