Emergent, Intentional Architecture
Architecture matching the inherent problem to be solved, evolved and documented as the project evolves.
Firmware can quickly and easily become a spaghetti nightmare. Our industry’s past is one of globals, super loops, and 1000-line functions. Modern teams can’t afford to be stuck with the slow speed and low quality resulting from this type of development.
Modern firmware teams understand that building firmware is a craft and a science. Many crafters have catalogued design patterns and techniques to encourage malleable, reliable, maintainable code. They understand that architecture should evolve from the inherent problem to be solved, not a predetermined blueprint.
Code must be refactored as the project evolves. The safety net allowing us to move quickly through refactoring cycles is our tests.