David Caulfield

List of Software Definitions + Phrases

Definitions are pretty pointless...aren't they?

I remember studying for a physics exam. While my maths skills were pretty good, I never properly learned the definitions of things and, as a result, didn't get good marks in my exams. At the time, I remember thinking "It's not like I'll ever need this...what's the point in learning it?" But learning definitions is not pointless - it's necessary. When you learn a definition, you shortcut what probably took 1000s of hours from different people to get to that definition. The definition of anuthing is likely a far better summary than you could ever come up with.

But here's the catch - just because you know the definition doesn't mean you know what you're talking about. I think this is where the novice falls down. Sure, you can learn off the definition and not be an expert. But...and here's the point...you can't be an expert without knowing the definition. Almthough I complained that I had to learn off physics definitions for my exams, my (excellent) physics teacher easily cited back multiple definitions in each class without looking at any notes. The expert uses definitions to avoid reinventing the wheel.

For example, if I try to explain the software principle of DRY (Don't repeat yourself) without using the principle itself, I end up with a load of gibberish as I try to find different words to describe DRY. Even worse, someone might say "David, you're talking about DRY right?" and will soon conclude that I don't even know the thing I'm describing. Therefore, it seems to me that knowing definitions are not only important, but are necessary. So here is my attempt at gathering and recording any useful definitions I come across to 'parrot' back to the people who are unfortunate enough to listen to me.

List of Software Definitions + Phrases

Note: This is update with anything new I come across.

  • DRY: Don't repeat yourself; Used to reduce repition of software patterns.
  • Scrum: Empirical framework that helps people, teams and organizations generate value through adaptive solutions for complex problems.
  • Agile: A philosophy of iteration and continuous improvement when delivering software; Incremental deliveries
  • Kanban: Helps visualise work, maximise efficiency + continuously improve.
  • Servant leader: Someone who wants to serve first, lead second;
  • Satisfy the customer through early and continuous delivery of valuable software: Agile principle; Requires early and constant customer feedback; More feedback correlates to happier customers correlates to happier workers; So always seek more feedback;
  • Welcome changing requirements, even late in development: Agile principle; Requirement always change.

0 kudos