Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Good coding-practices-for-scientists-jan-2014


Published on

Motivating why scientists need to think about coding quality. A small introduction to test driven development as a way to enhance code quality in scientific projects.

Published in: Education, Technology
  • Be the first to comment

  • Be the first to like this

Good coding-practices-for-scientists-jan-2014

  1. 1. Siv Midtun Hollup
  2. 2. ”I know exactly what code I need to write”
  3. 3. ”Coding is easy.”
  4. 4. ”I’ll just add another function instead of changing the existing one.”
  5. 5. ”Don’t fix it if it ain’t broken.”
  6. 6. As little code as possible Results as fast as possible Correct results Efficient code Extendable code
  7. 7. ”A scientists’ nightmare: Software problems leads to five retractions” G. Miller, Science (2014)
  8. 8. ”Deriving chemosensitivity from cell lines: Forensic bioinformatics and reproducible research in high-throughput biology” KA Baggerly et al, Annals of Applied Statistics (2009)
  9. 9. ”Scientific software development is not an oxymoron” SM Baxter et al, PLOS Computational Biology (2006) ”Publishing scientific software matters” C. Pradal et al, Journal of Computational Science (2013) ”Best practices for scientific computing” G. Wilson et al, PLOS Biology (2014)
  10. 10. To rewrite existing source code in order to improve its readability, reusability or structure without affecting its meaning or behaviour
  11. 11. ”Testing takes too much time.”
  12. 12. ”It’s too hard to test.”
  13. 13. ”I can’t possibly test everything.”
  14. 14. ”Test-Driven Development: An Empirical Evaluation of Agile Practice” Lech Madeyski
  15. 15. As little code as possible Results as fast as possible Correct results Efficient code Extendable code
  16. 16.  Clean Code, Robert C. Martin (Uncle Bob)  Test Driven Development, Kent Beck  Refactoring, Martin Fowler  Working effectively with legacy code, Michael Feathers
  17. 17.  Introcing TDD and why it’s a good idea, Evan Dorn  Estimation and deception, Linda Rising  TDD in action (Roy Osherove)
  18. 18.  Practice coding and get feedback:  Online courses (subscription):