These seem to be obvious, but if so - why do I every now and then meet people who seem capable but ignore them happily?
- There’s a difference between software create by student who just did 3 days-long training and professional developer that has already created several applications using given technology. Significant difference. Humongous one - usually like between cardboard box under a bridge and a new villa.
- Creating crapware and then investing money to raise it to acceptable quality level by applying test->fix cycle is dumb like a jar of nails.
- Time-boxing mixed with increasing scope will ALWAYS result in decreased quality.
- Temporary solutions are the ones to last the longest.
- If you re-assign Java developer to COBOL work, his productivity won’t really sustain (unless he’s fully capable in antiques). And you may end with a knife in a liver.
- Eskimos have 12 different words to name snow. Developers have 12 meanings for 1 single word "done".
- Business people are not the ones to design software. They are to say "what" has to be achieved, not "how" it will be achieved.
- There’s a significant difference between Analyst and Chronicler - the first one is supposed to think and abstract models. The latter is the one obliged to depict the reality directly. Hint: chroniclers shouldn’t participate in software development.
- Security and authorization models are so annoying because they are meant to protect you from yourself.