Key differences

  • Software is more malleable
  • Hardware changes are costly
  • Software is developed in multiple versions by refactoring to add new features
  • Hardware parts cannot be replaced and hence have to be planned from the beginning