'Unembedding' Embedded Systems
Offer solutions to the miseries most embedded developers (and non embedded developers too), are used to live with:
Embedded code is usually polluted everywhere with low level implementation details, being the SFRs dependencies the worst of them all. Those unmanaged dependencies results in having a code firmly tied to dependencies that are hard to change, like for example third party libraries (including the vendor tools) or the running hardware and platform itselves. These hard to change dependencies should be the real definition of Firmware.
Rigidity is the tendency for software to be difficult to change, even in simple ways. Every change causes a cascade of subsequent changes in dependent modules. Closely related, fragility, is the tendency of the software to break in many places every time is changed, and more than often, these places have no conceptual relationship with the area that was changed
Higher level modules are usually poluted with low level implementations details. Long modules and methods, with bad names and more than one responsability... We expend more than 60% of our time reading existing code, so it is better to take into account the following quote:
Any fool can write code that a computer can understand. Good programmers write code that humans can understand
Present the root causes of those problems and study solutions that work for any kind of software (embedded or not), hardware, platform, microcontroller, 3rd party library and vendor:
What are they saying?
A very interesting, enjoyable, useful and easy to follow course for any software developer, coming from the embedded context or not. Great course and experience!
José María Martínez Martínez
Clarifying, relevant and necessary! Essential to avoid continuing to survive in the world of development. I am looking forward to applying everything I have learned to my projects and continuing to improve
Revealing course! From a passionate teacher, learning by test-driven coding in order to achieve clean working code that produces higher quality applications and avoids debugging time
Enlightening course! Thanks to him, I learned the basics of TDD and embedded system programming good practices
Are you interested in applying state-of-the-art Software Engineering practices to embedded development? This course is what you have been looking for!
Fantastic course about Agile methodology! Analyze, deocuple, think a test and pick code. Let’s work as a trust team!
A much better approach to develop fully tested, highly reusable, greater quality embedded software while being decoupled from Hardware
David Sanz Vidal
This course has certainly saved us months of headaches in the development of our projects. A great course from an excellent communicator and a mentor in the Embedded Software Craftmanship world.
Pablo Martinez Crespo
Our Firmware development team has quickly internalized a faster and better approach to create higher quality long run products. Excellent course, professional and trainer. Strongly recommended
Elías García García