Software and hardware design is less different than software designers think, but more different than hardware designers think.