Project names: verschil tussen versies

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen
Regel 68: Regel 68:
 
* UpdateSite → AcmeUpdateSite2023
 
* UpdateSite → AcmeUpdateSite2023
  
This comes (for me) from something an old Greek guy said about taxonomy: What do things have in common, and what does set them apart. Names should have both these aspects.
+
Notes:
 +
 
 +
* This comes (for me) from something an old Greek guy said about taxonomy: What do things have in common, and what does set them apart. Names should have both these aspects
 +
* This is why I like using ''camel case'' or ''underscores'' in names.
  
 
=== Intuitive ===
 
=== Intuitive ===

Versie van 6 feb 2023 17:05

What is a good name for a project? When you think this is a strange question, you might have not done may projects, or you are right.

Counter examples

We humans are more responsive to pain than to gain, so let's start with some pain:

kbshop01 ... kbshop08

Around 2018, I was busy building a new version of an existing webshop for a customer. It contained a lot of different things, including things like data cleansing, SKU creation, import automation, theme development, plus some of these things in an iterative way.

It probably started with a name like KbShop. That was fine for a while, until it became too big. I wanted to split it in subprojects, probably iteration-wise. Eventually it became something like KBshop01... KbShop08. Some problems that I had with this:

  • The dream of iterative working is such a sweet, sweet dream, but in reality it rarely works. E.g: KbShop01 might have been a real iteration, but the second iteration was everything from KbShop05 until KbShop08: The just wasn't a real second iteration anymore - I just didn't start afresh anymore after the second iteration
  • Names became useless: E.g., Kbshop06 was something about data analysis. Some years later I was wondering where I did this eye-opening data analysis job years ago. It took a lot of work to find it back, because KbShop06 wasn't a helpful name
  • This was not one project, but a bunch of projects that in certain ways, had little to do with each other. It was like there were three projects in that 2018, e.g.: Build a rocket, Do some brain surgery and KbShop. But only when diving deeper into KbShop, would I realize that it contained 8 major subprojects.

GuPDreFigAr82

I made this name up (although the beginning, GuP stands for Groeten uit Paramaribo). This is not actually experience concerning project naming, but an experience concerning object naming in programmingl, including naming variables:

If names are complicated acronyms, they will be complicated to use:

  • Everytime when I have to use such a name, I have to do some serious thinking - The opposite of good ergonomics
  • Six months later, changes are that I wouldn't even know what the name stands for.

UpdateSite

This is probably the least egregious of the examples here, but still problematic: Over six months, I might not know what this refers to. Or at least, I might not know about which site this is, or when it was - Actually really not the worst name. Just not very creative.

Purpose of a project name?

Why does a project needs a name in the first place? Who came up with this? Well, let's see:

Communication

I currently have a project called Finalize-de_de. That isn't very easy to pronounce and therefore to communicate. Maybe better:

  • Fina-de - Sounds better
  • FinalDe - Sounds good.

Inspiration

Both for projects that I work on with others, and projects that I do only myself: It is important that names are inspiring. E.g.:

  • MoveStuffFromA2B vs. BigMoveA2B
  • BuildSite vs. LetsDoSiteLaunch.

When names are boring, they become emberrassing to mention them to others and even to myself.

Retrievable

Maybe the most important function of a name: Helping to find it back, e.g, over 5 years. E.g.:

  • UpdateSite vs. SiteAcmeUpdate23

Criteria

What are criteria for good names?

Descriptive

It helps if a name is descriptive. I don't think this is the most important thing, but it helps.

Distict

Maybe the surest way that projects don't get lost due to unhelpfull names: Use distinct names. E.g.:

  • UpdateSite → AcmeUpdateSite2023

Notes:

  • This comes (for me) from something an old Greek guy said about taxonomy: What do things have in common, and what does set them apart. Names should have both these aspects
  • This is why I like using camel case or underscores in names.

Intuitive

Intutive is the same here as ergonomic: That you don't have to do a lot of mental power to work with a name. E.g.:

  • GuPuarTwar → Paramaribo22.

One approach might be, what they do in The Netherlands for e.g., large criminal cases: They get an unrelated word from a dictionary. E.g.:

  • Spanish Flue → Montanto

Not only does this result in ergonomic names, but also names that are judgement-free (The Spanish Flue didn't come from Spain, but got its name because Spain wasn't fighting in WW1 hence there was less censorhip).

Sources