Roots: born in Sweden — lived also in Switzerland, USA, UK — mixed up genes from Sweden, Norway, India, Germany
Languages: French, English, Swedish, German, Portuguese, Latin, Ada, Perl, Java, assembly languages, Pascal, C/C++, etc.
Roles: entrepreneur, programme manager, methodology lead, quality and risk manager, writer, director of technology, project lead, solutions architect — as well as gardener, factory worker, farmhand, supermarket cleaner, programmer, student, teacher, language lawyer, traveller, soldier, lecturer, software engineer, philosopher, consultant
2002-Jul-11 ![[this day]](http://radio.weblogs.com/0103811/images/dailyLinkIcon.gif)
Inside the Apple iPod design triumph
With iPod, listening to music will never be the same again.—Steve Jobs
Much of the underlying iPod design was performed by outside companies. ... Realizing that the MP3 market was still in its infancy, Apple developed a layered design chain tuned for an early-stage market to create the iPod.
[via the strangely named Electronics Design Chain Magazine... I suppose we'll soon have "strategy" people touting design-chain management in addition to supply-chain management, or are they related?]
The value of code reviews
Lessons of a software engineering odyssey
The Windows NT project started in 1988 with 12 engineers. Windows 2000 involved teams totaling more than 5,000 people—the largest group of engineers Microsoft has ever assembled for a single project. What did it take to scale the development effort by orders of magnitude in just ten years? How well has the initial design stood up over time?
Lucovsky was one of the founding members of the Windows NT group, joining Microsoft in 1988 from Digital Equipment Corporation.
Here are the salient lessons learnt, grouped by topic (note: an optimal debrief process should generate a list of challenge/solutions rather than a list of injunctions; see notes on my debrief framework below).
- Team management: to scale a team, establish a culture, in particular around problems (for discovery, reaction, ownership, and solution); goal-setting is a good foundation for a software-engineering culture; maintaining a culture as a team grows is hard (note: it requires explicit awareness and actions within the culture); structure the project into modular sub-projects, in order to foster independent teams (rather than a bunch of individuals who report to one person).
- Objectives: set goals and prioritize; define the vision (high-level goals — in the case of NT it was: portability, reliability, extensibility, compatibility, and last performance); ingrain the vision within the team culture (note: use it as the explicit and objective standard for all decisions).
- Quality: spread review duties broadly; make reviews part of the culture; accept that mistakes will happen and deal with it in a non-abusive manner (i.e. don't call people "stupid"—even the best developers check-in compile-time mistakes); the test team size is about the same as the development team size; the average number of defects per developer and time required to fix defects increases in relation to team size (the effect on productivity is close to linear, as a 50% increase in team size tends to double total defect fix time per day).
- Technical: design for future evolution, based on a solid architectural foundation; pay early attention to the development environment; communal (shared) ownership of the code fails when there are more than 150 people involved; excessive process management (in e.g. version control and build constraints) serializes and slows down development work; the build lab should run automatically, email reports of build failures per branch, and consolidate only successful builds into the main branch/build.
I would love to help such a team work through its experience and identify lessons learnt, using my framework for focused project debriefs (based on after-action reviews). Maybe I could sell/run that activity as an external consultant? There are so many IT projects/teams in the world who could profit from it. Someone also needs to follow up on the lessons learnt and necessary change management...
- Submission, also known as Islam
- Stress situations improve memory recall, and impair problem-...
- Drink red wine for health!
- Well met, Hobbit! (aka Homo floresiensis)
- 150 million online songs, and counting
- Not for bread alone
- The growing American prosperity
- What is a Plog?
- Give me liberty, or give me death!
- Anacreontic hymn
- Origins and essence of Apple's Dashboard
- Running between the elephant's legs
- Free markets and innovation
- Copper-extracting bacteria
- Private enterprise into space
- Saudade: Greece defeats Portugal
- The scientific assault on aging
- What is SENS?
- Remember Tiananmen!
- Perl Periodic Table of Operators
- Conceptualizing the Ediacaran period
- Agile software development processes conference
- USD 50+ billion farm subsidies in the Europe Union
- Berkshire betting against the US dollar (and starting to los...
- Abdullah and the Jinn
- Anagram
- US highway deaths
- Environmentalist terrorism
- Digital photography, twice around the sun for me
- Nearing commercial manned suborbital flights
- Potential evidence for Martian microbe-like life
- Three bad books, by Rushdie, McEwan, and Ben Jelloun
- Vaccine against lung cancer
- Why are universities dominated by the Left (i.e. statists an...
- The meaning and future of publishing: paper, electron, creat...
- Musical fuel, every day
- A few notes on Apple and downloadable music