Firstly I want to start with quote (source):
“The real skill is in solving a complicated solution simply, not complicating a simple problem“
This simple sentence describes well, the most important skill in computer science I believe.
The another interesting things about the complexity, are Jens Coldewey Complexity Boosters:
- explicit multithreading
- paradigm chasms (such as object / relational)
- multiplatform development
- extreme performance requirements (such as more than 100 transactions per second).
Martin Fowler describes them well in following way:
” All of these carry a high cost. Certainly there are times when you have to do it, but never forget that each one carries a charge both in development and in on-going maintenance.”
Complexity best practices – nothing more nothing less.