This is a rough sketch of some of my generally-held principles for writing software and designing/implementing software systems. YMMV, and so may mine. I reserve the right to deny ever having said any of this.
Like all the best principles, these are only meant to get you thinking, not as hard and fast rules.