Developing Scientific Computing Software