SMS: Writing scientific software