Why is managing our software so complex and expensive what can we do about it