Thoughts on Software Craftsmanship

  • Guy Lebanon
  • Mohamed El-Geish


Why should we care about code craftsmanship? The long answer is in this chapter. First, let’s see what a French philosopher, by the name of Guillaume Ferrero, discovered: the Principle of Least Effort. He wrote about it in 1894—long before a single line of computer code, as we know it today, was written. Nevertheless, we can’t help but think that, had he been alive to witness how most code is written, he would have demonstrated coding as the epitome of the least effort principle: “[Coding] stops as soon as minimally acceptable results are found.”


  1. Wolfram Schultz, Peter Dayan, and P. Read Montague. A neural substrate of prediction and reward. Science, 275 (5306): 1593–1599, 1997. ISSN 0036-8075. doi: 10.1126/science.275.5306.1593. URL Scholar
  2. H. Scarlett. Neuroscience for Organizational Change: An Evidence-Based Practical Guide to Managing Change. Kogan Page, 2016. ISBN 9780749474881.Google Scholar
  3. M. Feathers. Working Effectively with Legacy Code. Robert C. Martin Series. Pearson Education, 2004. ISBN 9780132931755.Google Scholar
  4. W. Isaacson. Steve Jobs. Simon & Schuster, 2011. ISBN 9781451648539.Google Scholar
  5. M.T. Nygard. Release It!: Design and Deploy Production-ready Software. Pragmatic Bookshelf Series. Pragmatic Bookshelf, 2007. ISBN 9780978739218.Google Scholar
  6. Andrew Hunt and David Thomas. The Pragmatic Programmer: From Journeyman to Master. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1999. ISBN 0-201-61622-X.Google Scholar
  7. M. M. Lehman. Programs, life cycles, and laws of software evolution. Proceedings of the IEEE, 68 (9): 1060–1076, Sept 1980. ISSN 0018-9219. doi: 10.1109/PROC.1980.11805.CrossRefGoogle Scholar
  8. Melissa R. Dale and Clemente Izurieta. Impacts of design pattern decay on system quality. In Proceedings of the 8th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, ESEM ’14, pages 37:1–37:4, New York, NY, USA, 2014. ACM. ISBN 978-1-4503-2774-9. doi: 10.1145/2652524.2652560. URL
  9. R.C. Martin. Clean Code: A Handbook of Agile Software Craftsmanship. Robert C. Martin series. Prentice Hall, 2009. ISBN 9780132350884.Google Scholar
  10. D. Kahneman. Thinking, Fast and Slow. Farrar, Straus and Giroux, 2011. ISBN 9781429969352.Google Scholar
  11. David N. Card and Robert L. Glass. Measuring Software Design Quality. Prentice-Hall, Inc., Upper Saddle River, NJ, USA, 1990. ISBN 0-13-568593-1.Google Scholar
  12. R. W. Selby and V. R. Basili. Analyzing error-prone system structure. IEEE Transactions on Software Engineering, 17 (2): 141–152, Feb 1991. ISSN 0098-5589. doi: 10.1109/32.67595.CrossRefGoogle Scholar
  13. S. Levy. In The Plex: How Google Thinks, Works, and Shapes Our Lives. Simon & Schuster, 2011. ISBN 9781416596714.Google Scholar

Copyright information

© Springer Nature Switzerland AG 2018

Authors and Affiliations

  • Guy Lebanon
    • 1
  • Mohamed El-Geish
    • 2
  1. 1.AmazonMenlo ParkUSA
  2. 2.VoiceraSanta ClaraUSA

Personalised recommendations