Project names: verschil tussen versies

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen
 
(23 tussenliggende versies door dezelfde gebruiker niet weergegeven)
Regel 1: Regel 1:
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.
+
What is a good name for a project? When you think this is a strange question, you might either not have done many projects, or you might be right.
  
 
== Counter examples ==
 
== Counter examples ==
Regel 5: Regel 5:
 
We humans are more responsive to ''pain'' than to ''gain'', so let's start with some pain:
 
We humans are more responsive to ''pain'' than to ''gain'', so let's start with some pain:
  
=== kbshop01 ... kbshop08 ===
+
=== kbshop01 ... kbshop15 ===
  
 
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.
 
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:
+
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... KbShop15''. 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
+
* 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 ''KbShop15'': 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
 
* 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.
 
* 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.
Regel 17: Regel 17:
 
=== GuPDreFigAr82 ===
 
=== 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:
+
This made-up name could be an example of how I used to  ''name objects'' in programming, including naming variables, around the beginning of this century. If names are complicated acronyms, they will be complicated to use:
 
 
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
 
* 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.
+
* Six months later, changes are that I wouldn't understand what the name stands for, and it would be very tempting to replace it with something simpler.
  
 
=== UpdateSite ===
 
=== 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.
+
This is probably the least egregious of the examples here, but still problematic: Over six months, I might not know to what project or time such a name refers to - This would indicate that ''non-descriptive names'' would be a problem. More about that later.
  
== Purpose of a project name? ==
+
It's also un uninspiring name.
  
Why does a project needs a name in the first place? Who came up with this? Well, let's see:
+
== Purpose ==
 +
 
 +
What's the purpose of a project name?
  
 
=== Communication ===
 
=== Communication ===
  
I currently have a project called ''Finalize-de_de''. That isn't very easy to pronounce and therefore to communicate. Maybe better:  
+
As a Dutch expression puts it: ''Het beestje moet een naam hebben'' - ''The little animal needs a name''. Or as I think the Bible puts it:''to know something, call it by its name''. Anyhow, a project needs a name, simply to be able to refer to it.
 +
 
 +
Short, distinct and intuitive names seem best here. Intuitive means that names are easy to remember, to pronounce and to write.
 +
 
 +
Example: A project called ''Finalize-de_de'': This name isn't very intuitive for me, as I easily confuse it with some obvious alternatives:
 +
 
 +
* ''Final-de''
 +
* ''FinalDe''
 +
* ''FinDE''.
 +
 
 +
Some more examples:
  
* ''Fina-de'' - Sounds better
+
* ''ShopUp'': Good!
* ''FinalDe'' - Sounds good.
+
* ''Perf23'': I think that including numbers, makes a name a bit harder to handle
 +
* ''AutomateAlot'': Not very intuitive. It could easily be written in other ways.
  
=== Inspiration ===
+
=== Inspire ===
  
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.:
+
It is important that names inspire. E.g.:
  
 
* MoveStuffFromA2B vs. BigMoveA2B
 
* MoveStuffFromA2B vs. BigMoveA2B
* BuildSite vs. LetsDoSiteLaunch.
+
* BuildSite vs. LetsDoSiteLaunch
 +
* Refresh23 vs. Flywheel
 +
* AutomateAlot vs. DeusExMachina.
  
When names are boring, they become emberrassing to mention them to others and even to myself.
+
=== Retrieveable ===
 
 
=== Retrievable ===
 
  
 
Maybe the most important function of a name: Helping to find it back, e.g, over 5 years. E.g.:
 
Maybe the most important function of a name: Helping to find it back, e.g, over 5 years. E.g.:
  
 
* UpdateSite vs. SiteAcmeUpdate23
 
* UpdateSite vs. SiteAcmeUpdate23
 +
* Flywheel vs. RefreshNL23
 +
 +
Note that this is easily at odds with ''inspiration'' or ''communication''.
  
 
== Criteria ==
 
== Criteria ==
  
 
What are criteria for good names?
 
What are criteria for good names?
 +
 +
=== Intuitive ===
 +
 +
''Intuitive'' means the same here as ''ergonomic'' or ''intuitive'': That you don't have to do a lot of mental power to work with a name. E.g.:
 +
 +
* GuPuarTwar → Para22.
 +
 +
One approach might be, to use unrelated words from a dictionary. E.g.: This is used in The Netherlands for naming large court cases, but also or naming diseases. E.g.:
 +
 +
* Chinese flue → Corona
 +
 +
Not only does this result in ergonomic names, but also (hopefully) in judgement-free names.
 +
 +
=== Inspiring ===
 +
 +
See previous chapter.
  
 
=== Descriptive ===
 
=== Descriptive ===
  
It helps if a name is descriptive. I don't think this is the most important thing, but it helps.
+
It helps if a name is descriptive, eventhough it might not be too important.
  
=== Distict ===
+
When I look online for guidelines about good project names, this seems to be the least concern. Some decades ago, I had the same impression when I was researching good band names. ''Metallica'' is a descriptive name, but there aren't that many examples.
 +
 
 +
=== Distinct ===
  
 
Maybe the surest way that projects don't get lost due to unhelpfull names: Use distinct names. E.g.:
 
Maybe the surest way that projects don't get lost due to unhelpfull names: Use distinct names. E.g.:
Regel 73: Regel 105:
 
* This is why I like using ''camel case'' or ''underscores'' in names.
 
* This is why I like using ''camel case'' or ''underscores'' in names.
  
=== Intuitive ===
+
=== Durable ===
 
 
''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.
+
I often change names of projects, which is really annoying. So choose a name that might not have a risk of being changed every couple of weeks. Like those names for large criminal cases in the Netherlands - They are timeless.
  
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.:
+
Maybe the trick here is to use more symbolic names, rather than descriptive names.
  
* Spanish Flue → Montanto
+
== See also ==
  
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).
+
* [[Hoofdpagina#Project_management | Home page » Project management]]
  
 
== Sources ==
 
== Sources ==
  
 
* https://www.articulatemarketing.com/blog/project-names
 
* https://www.articulatemarketing.com/blog/project-names
 +
* https://www.igorinternational.com/process/brand-naming-expert.php
 +
* https://www.wikihow.com/Name-a-Project

Huidige versie van 13 mrt 2023 om 10:16

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

Counter examples

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

kbshop01 ... kbshop15

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... KbShop15. 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 KbShop15: 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

This made-up name could be an example of how I used to name objects in programming, including naming variables, around the beginning of this century. 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 understand what the name stands for, and it would be very tempting to replace it with something simpler.

UpdateSite

This is probably the least egregious of the examples here, but still problematic: Over six months, I might not know to what project or time such a name refers to - This would indicate that non-descriptive names would be a problem. More about that later.

It's also un uninspiring name.

Purpose

What's the purpose of a project name?

Communication

As a Dutch expression puts it: Het beestje moet een naam hebben - The little animal needs a name. Or as I think the Bible puts it:to know something, call it by its name. Anyhow, a project needs a name, simply to be able to refer to it.

Short, distinct and intuitive names seem best here. Intuitive means that names are easy to remember, to pronounce and to write.

Example: A project called Finalize-de_de: This name isn't very intuitive for me, as I easily confuse it with some obvious alternatives:

  • Final-de
  • FinalDe
  • FinDE.

Some more examples:

  • ShopUp: Good!
  • Perf23: I think that including numbers, makes a name a bit harder to handle
  • AutomateAlot: Not very intuitive. It could easily be written in other ways.

Inspire

It is important that names inspire. E.g.:

  • MoveStuffFromA2B vs. BigMoveA2B
  • BuildSite vs. LetsDoSiteLaunch
  • Refresh23 vs. Flywheel
  • AutomateAlot vs. DeusExMachina.

Retrieveable

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

  • UpdateSite vs. SiteAcmeUpdate23
  • Flywheel vs. RefreshNL23

Note that this is easily at odds with inspiration or communication.

Criteria

What are criteria for good names?

Intuitive

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

  • GuPuarTwar → Para22.

One approach might be, to use unrelated words from a dictionary. E.g.: This is used in The Netherlands for naming large court cases, but also or naming diseases. E.g.:

  • Chinese flue → Corona

Not only does this result in ergonomic names, but also (hopefully) in judgement-free names.

Inspiring

See previous chapter.

Descriptive

It helps if a name is descriptive, eventhough it might not be too important.

When I look online for guidelines about good project names, this seems to be the least concern. Some decades ago, I had the same impression when I was researching good band names. Metallica is a descriptive name, but there aren't that many examples.

Distinct

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.

Durable

I often change names of projects, which is really annoying. So choose a name that might not have a risk of being changed every couple of weeks. Like those names for large criminal cases in the Netherlands - They are timeless.

Maybe the trick here is to use more symbolic names, rather than descriptive names.

See also

Sources