Interesting views, excellent facts and wonderful h
2007-04-14
What I've learned:
* No revolution starts big. Any grand vision has to start from smaller things like scratching your own itch and dogfooding.
* Do not overinvest infrastructure. Do an agile project and remember the vision on the same time.
* Start with the humblest, simplest and dummest thing, then one innovation by another, slowly ramp up your roadmap.
* Only software that does something new is worth writing.
* We engineers need to learn when "DONE" is done.
* Releasing important feature is more urgent than meeting some internal arbitrary schedule.
* Transparency for visibility is different from transparency for collaboration. The latter is much harder.
* "One must imagine Sisyphus happy".
Some wonderful contents:
Despite a host of innovations, programmers have been stuck with the hard slog of debugging. Their work is one percent of inspiration, the rest sweat-drenched detective work; their products are never finished or perfect, just varying degree of "less broken"
"It's like a treasure hunt," Anderson, unflappable, responds: "You have to find the first thing. You have to get the first clue before you're on your way, and you don't know how long it will take."
In practice, Brooks found, nearly all software projects require only one-six of their time for the writing of code and fully half their schedule for testing and fixing bugs.
That's the way Silicon Valley replenishes itself, forest like: The technology companies have always germinated in the enpty space created by the toppling of other companies from a previous wave of growth.
"Engelbart, for better or worse, was trying to make a voilin" -- but "most people don't want to learn the voilin." This tension between ease and power, convenience and subtlety, marks every stage of the subequebt history of software.
Too often, though, we end up with software that's not only confusingly detached from the world we can touch and feel but also unable to deliver on the promise of flexibility and versatility that was the whole point of "going digital" in the first place.
For programmers, just as for writers and artists and everyone whose work involves starting with a blank state, the "funnest" time of a project ofter falls at the very beginning, when worlds of giddy possibilities lie open, and before painful compromises have shut any doors.
But usually the parts of what you need done that your off-the-shelf code won't handle for you are the very parts that make your new project different, unique, innovative -- and they're why you're building it in the first place.
The one that people talk about most is that it's important to actually finish sharpening the axe and get abck to chopping. ... But for me, the big problem with "axe sharpening" is that it's recursive, in a Xeno's pardox kinda way.