Fixing things that can never be broken: Soware maintenance as heterogeneous engineering