We've all heard of the SOLID principles, but have you heard about coding with SAUCE?
I doubt it, because I just made it up 😛.
So what's it all about, why do we need more acronyms?
Well, it's about a mindset in software development that I have tried to put my finger on over the years, rather than a set of hard and fast principles. The successful projects in my career have always been developed with this mindset. If you are developing with a SAUCE mindset you are likely to be producing high quality work. That and acronyms are just easier to remember.
Without further ado, here's what it stands for:
-
Scalable
-
Airtight
-
Usable
-
Consistent
-
Efficient
Scalable
Software should be scalable, in all of the following areas:
- load it can handle
- growth of the codebase
- growth of team
- support
Airtight
Software should be airtight, in all of the following areas:
- requirements and acceptance criteria
- security
- architecture
- input validation
- tested logic paths
- user journey
- Software Development Life Cycle
Usable
Software should be usable, in all of the following areas:
- UX
- code maintainability / readability / extensibility
- deployment
- data structures
- logging
- support
- documentation
Consistent
Software should be consistent, in all of the following areas:
- UX
- coding standards
- data structures
- industry standards
Efficient
Software should be efficient, in all of the following areas:
- UX
- performance
- deployment
- testing (automated)
Conclusion
I have tried over the years to summarize my attitude to software development and this acronym is what I have boiled it down to.
Perhaps next time you are working on a project, check the sauciness of your work before taking it to production. I'd love to hear of any improvements you notice after doing this.
Let me know in the comments if you think of something the acronym does not cover.