So many competing issues; and there always will be.
As the amount data increases and the depth of historical context deepens I find the shops I work in to be moving towards the following hierarchy:
- Code for performance - this means proven best of bread components and distributed processing
- Code for maintainability - point one is more complex and requires a clear and concise architecture not only for its authors but for future contributors
- Code for configurability - its easier for an operator to change options than for a programmer to change code (and subsequent testing; and yes, these options have to be planned and coded)
Some may add to this list, however, most shops won't have the bandwidth to do much more.
I think acceptable compromises can be reached and effective, maintainable solutions implemented.
PeteK
I have CDO. It's like OCD but all the letters are in alphabetical order... as they should be.