Part of AmmerseDesignPrinciples
"Simplicity is the ultimate sophistication" - Leonardo DaVinci?
Minimal is not Simple but it is AsSimpleAsPossibleButNoSimpler - By being Minimal one can have simple.
Minimal is the 'least you need to do, elegantly'.
It is the thing that is left after refactoring and after as much as possible has been made simpler.
A minimal design:
Keeps it simple.
Is one that tries to create a small architectural footprint.
Abstracted terminology is kept to a minimum.
Finds the core expression of the solution.
Avoids mess, clutter and distractions.
Implementation is minimally categorized.
Minimal is fine grained. Smallest atom classes, methods.
Uses other design artifacts (as long as those artifacts maintain the same principles)
To pull it off, one also has to manage "requirements". Some requirements may greatly complicate a tool or project but are only marginally useful. But this requires people skills and negotiating power that many of us techies find difficult to perfect. Related: RequirementsVsWishesCategoryLowEnd