This story is brilliant. Notable points include:
- The engineers spent an entire week just watching silently while people tried to use the software. People were getting stuck at points well before the sort of issues they had been discussing as potential problems.
- This project got done so well in part because it was unofficial, and there was no process to get in the way. And for the original deadline, they had no design doc to mandate features, so they were able to just build what they thought was the right thing to build.
- Because of delayed hardware, they had an extra three months after they were complete, so they did usability fixes, bug fixes, and a full code audit. As a result, Apple used this software as part of their hardware testing.
I’ve been thinking a lot recently about the economics of software, and how to align the natural forces of software with other forces like time and money. Quality software takes time, and some of that is elapsed time, rather than simply time spent working heads down. There need to be breaks in development, extended testing with real world use, and then more refinement. Which means it doesn’t really fit very well with a fixed time and budget project.