The Chodera lab has written a nice overview of many aspects a developer needs to think about when writing scientific code. They discuss topics like continuous integration, dealing with python bottle necks, software design and reuse. Many of their discussions are short - so you will need to look else where to learn the details but this provides a great summary to think about.