GantSign Ltd. was founded in 2007 as a software and software consultancy company. The name is a portmanteau of “elegant” and “design”; it is through elegant design that software best meets the needs of a business rather than being an obstacle holding that business back.
The Oxford English dictionary defines elegance as:
The quality of being pleasingly ingenious and simple
In software an elegant design is typically one that:
- fulfills it’s purpose
- is easy to test
- prioritizes common requirements & uses cases
- focuses on getting the maximum benefit with the fewest features and least cost
- focuses on doing a small number of things well rather than a great many things poorly
- is intuitive
- leverages familiar patterns
- favours readability over conciseness but tries to do both
- encourages best practice
- is self documenting
- minimizes the scope for bugs
- encourages fail fast behavior for bugs
- is easy to debug when things fail
- encourages the developer to write the parts of the code that are likely to need debugging
- encourages the developer to write the parts of the code that are likely to vary most with use case
To achieve an elegant design you need:
- a solid understanding of the requirements
- years of experience from iterative improvement
- an unquenchable thrust to learn from others
- some lateral thinking
- an appreciation for feedback
- to start small
- an iterative development approach
- a healthy resistance to unnecessary and unprofitable features
- a pragmatic approach to compromise
You can see implementations for some of GantSign’s elegant designs in our open-source projects.