I haven't had much time for blogging lately, so rather than post my musings,
here are some questions. I credit these to a combination of Iain M. Banks, r0ml, and the
Long Now foundation Please comment and post a link to your blog if you
write about one of these.
What kind of a program would take one hundred years to write? How would one
manage such a project? How would you manage planning and estimating at that
scale?
What if you had to write a program that would only be run once, but was
supposed to run forever - could never, ever crash, notwithstanding hardware
failures? That was expected to outlast humankind on earth? What would such a
program do? How would you test it?
What if you had to write a program that would be maintained for ten thousand
years - how would you factor it so that the lower levels could still be
improved without breaking anything? What would the release process for
modules look like? Imagine that you had inherited a program that
was ten thousand years old but had never been designed to be maintained this
way?
Finally - how does thinking about these problems of heretofore impossible
scale affect the way you write programs today?
Update: I forgot to mention Alan Perlis's Epigram #28.