1. Too many features in a code base. Extra, unneeded features are rampant, and and they dramatically drive up costs.
2. Architecture needs to be simple, and also loosely coupled.
3. User interaction. Simplicity rules!
4. Dependencies in the schedule - why not decouple a schedule into logically decoupled workflows instead of creating a complex schedule with lots of dependencies.
5. Code, of course, as you mentioned, must be simple.
6. Simple workflow - getting something done should not involved a complicated trip to innumerable specialists, but a simple path through the system
I'm sure there are a lot more....
Mary Poppendieck
Author of Lean Software Development, Implementing Lean Software Development, and Leading Lean Software Development
Mary Poppendieck wrote:1. Too many features in a code base. Extra, unneeded features are rampant, and and they dramatically drive up costs.
I see what you did there.
Other facets of simplicity:
- documentation
- development (and specification) processes
- infrastructure issues (how hard is it to get what you need)
- QA/UAT/post-deploy issue tracking/resolution