What does “make your code DRY” even mean?! Here is a glossary of some common terms and acronyms used in software development.

  • DRY: Don’t Repeat Yourself

    • Don’t copy your code (and more importantly, don’t duplicate your abstractions).
  • YAGNI: You Aren’t Going to Need It

    • While you are developing, if you think to yourself “I may need this functionality someday,” don’t implement it until you actually need. Because you aren’t going to need it.
  • KISS: Keep It Simple, Stupid

    • When you have to choose between a simple and a complex implementation, always choose the simple one.
  • GIL: Global Interpreter Lock

    • The GIL is used in Python, and is one of the reasons parallelization is difficult/inefficient.
  • OBOE: Off By One Error

    • Good luck catching these bugs…
  • SCM: Source Code Management

    • Whenever you see this, think git.
  • Yak Shaving: Uncover many layers of complexity

    • Have you ever solved a problem only to uncover another problem underneath it? This is also referred to as doing menial tasks that preclude you from doing the real interesting work.
  • Bike Shedding: Focusing on the trivial in spite of the essential

    • Imagine you are working on an important building (like a nuclear power plant), spending time discussing the color of the bike shed is trivial compared to the rest of the project.

Bonus, not an acronym, but rather initials:

  • DHH: David Heinemeier Hansson

    • Co-founder of Basecamp, creator of Ruby on Rails, and holder of strong opinions.

Extra bonus:

  • BDFL: Benevolent Dictator For Life

Guido van Rossum (the creator of Python) was formerly the BDFL. Now Python is governed by a steering council.