A great software is one that does what it needs to do without surprises. Nobody like surprises. Like what makes a light switch great? I should be able to toggle the light safely and reliably.
Unlike a light switch a software does not live in a static environment, so it must be able to keep changing.
A software is like a plant, you want stability (no surprises) and adaptability within the resources that are available.
Comments
A great software is one that does what it needs to do without surprises. Nobody like surprises. Like what makes a light switch great? I should be able to toggle the light safely and reliably.
Unlike a light switch a software does not live in a static environment, so it must be able to keep changing.
A software is like a plant, you want stability (no surprises) and adaptability within the resources that are available.
Love this. It speaks to the fact that software solving complex and changing problems is never finished!
Adaptability, maintainability, reasonability etc are virtues that are difficult to overstate.