Som programmerare är man ofta lockad att tillfredställa sina kunder eller användare av program man gjort genom att lägga till ny funktionalitet. Speciellt om det är en liten fix som bara tar 20 minuter att koda.
Det man inte tänker lika ofta på är att det faktist inte bara är de där 20 minutrarna det gäller. Har programmet stöd för flera språk så ska det översättas, manualer ska uppdateras, en ny version av programmet ska distribueras, påverkas någon annan del av programmet av denna ändringen, ligger högre prioriterade åtgärder i pipelinen osv.
Det påminner mig om den berömda “Hur många Microsoftanställda behövs det för att byta en glödlampa?”
För att göra en ny funktion (ex: ChangeLightBulbWindowHandleEx) som tar 5 minuter krävs detta hos Microsoft (och det är inget skämt utan normal arbetsgång):
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.
Den där lilla 5-minutersändringen resulterar i flera manveckors arbete i slutändan. Vet man inte om detta så känns det som att 5 minuter kan man ju lägga på att göra en kund glad. Det viktiga här är alltså att ha en bra arbetsplan med värderade prioriteringar som gör att arbetsinsatsen man gör maximerar nyttan för så många kunder som möjligt.
Inlägget jag hämtat punkterna ovan från är från Eric Lippert's Blogg: http://blogs.msdn.com/ericlippert/default.aspx