One of the things I think hardware should adopt from software is modular debuggability of system components. I'm a software guy building a display board with a battery management system. I'm building the bms as a pluggable component on the display to make my development easier and the end unit more iterable.