Build modular programsWrite readable programsUse compositionSeparate mechanisms from policyWrite simple programsWrite small programsWrite transparent programsWrite robust programsMake data complicated when required, not the programBuild on potential users' expected knowledgeAvoid unnecessary outputWrite programs which fail in a way that is easy to diagnoseValue developer time over machine timeWrite abstract programs that generate code instead of writing code by handPrototype software before … [Read more...] about 17 Rules
Open Source
19 Lessons
Every good work of software starts by scratching a developer's personal itch.Good programmers know what to write. Great ones know what to rewrite (and reuse).Plan to throw one [version] away; you will, anyhow (copied from Frederick Brooks's The Mythical Man-Month).If you have the right attitude, interesting problems will find you.When you lose interest in a program, your last duty to it is to hand it off to a competent successor.Treating your users as co-developers is your least-hassle … [Read more...] about 19 Lessons