A Practical Guide to Developing Computational Software