What does good embedded software look like?