I have collected some baseline principles that guide my software development process.
The Requirements Principle:
Requirements are never _____ (fill in the blank) enough.
Most clients are of the “I’ll know what I want when I see it.” variety. By the way, I am that way too. I don’t think it’s possible to fully specify any software project that is worth doing.
“Can you make it do this?” is another common question. My answer: “It’s just a matter time & money and the mythical man-month” (see the Pi Principle below).
“I want it to be user friendly.” – Of course, I always try to make it as un-user-friendly as possible.
Everything takes 3.14 … times as long to complete as what you originally estimate.
Corollary: Everything costs 3.14 … times as much as management wants to spend.
Pi has such a mystical quality about it, the way it goes on forever without repeating. It’s not unlike some projects that seem to never end.
The Golden Rule:
He (or She) who has the gold makes the rules.
But often times the rules are unclear and subject to change. The one who has the gold may not be right, but that person has the power to pucker up and stop a project as well as keep progress flowing. (You don’t have to have brains or a heart to be a boss, you just have to be an ….)
It’s easy to say anything, but hard to do everything.
Corollary: Talk is cheap. Do what you say you will do (DWYSYWD).
A bad plan isn’t better than no plan at all, it’s just a bad plan.
Corollary: Success Principle: “If at first you don’t succeed, try, try again. Then quit. There’s no point is being a damn fool about it.” – W.C. Fields
The end is not in sight, except when death is looming.
Continuous improvement is good. Deadlines are good too. (Git ‘er done!)
You only know what you know.
But you can learn anything (and forget a lot of what you’ve learned).
Corollary: Nothing is easy, unless you know it.
The Code of Excellence:
Quality (not necessarily cleanliness) is next to Godliness.
Quality, the level of excellence, is often something that you can’t always define, but you know it when it moves you spiritually.