I recently stumbled on "97 Things - Things every software architect should know" (via Bobby Woolf). This is a list of axioms for architects (which will eventually be a book by O'Reilly) edited by Richard Monson-Haefel. While I don't agree with all the axioms, and some, which I feel, are a bit overlapping (e.g. one on trade-offs and one on balancing), there's a lot of great stuff there.
For instance, here are a few of the ones I like:
- Don't put your resume ahead of the requirements by Nitin Borwnkar - I've seen this happen a lot in my consulting days. Technology changes and updates all the time and its tempting to always use what's new it isn't always the right choice. As someone responsible for the overall quality of the system, it is up to you to make the right choice for the system -- not the right choice for you.
- Challenge assumptions - especially your own by Timothy High - There are no absolute truths and what was right once may not hold for the current project.
- Welcome to the Real World by Gregor Hohpe - The difference between theory and practice is that in theory they are the same...
- Your system is legacy, design for it by Dave Anderson - Actually Robert L. Glass put it nicely, when he wrote that "Software Maintenance is a Solution, Not a Problem"