Things I Believe In Software Engineering
Software engineering is an ever changing discipline and thus I follow some rather simple but powerful guiding principles. I share this for the sole reason to have it documented for myself and be able to guide others to this list.
So here we go, this is a non exhaustive collection of things I believe in Software Engineering. This is heavily inspired by the collection of Paul Swail.
This list is updated from time to time.
- What > How
- Done is better than perfect (Sheryl Sandberg)
- (Almost) Every decision comes with a trade-off
- KISS and YAGNI trump DRY
- Understand the problem > solving the problem
Technology selection & architecture
- Choose Boring technology
- Embrace the API first principle
- Domain driven design (DDD)
- Hexagonal Architecture
Quality & Operations
- Embrace “You build it you run it” (YBIYRI)
- Run only one environment: Production
- Use feature toggles/flags to separate deployment from release
- Write very good documentation