“When I use a word,” Humpty Dumpty said, in a rather scornful tone, “It means just what I choose it to mean — neither more nor less. (Lewis Carroll, Through the Looking Glass)
Whether it be a variable, method, class, package, or especially an App’s name. The name is important. Get it wrong, and it can have repercussions that last years.
One of my current clients had a VP 10-15 years ago that went to a conference where some brilliant non-technical person informed him that naming apps in a Celestial manner would help foster creativity (or so the story goes). However, the Celestial names have done nothing but create confusion ever since “Apus” and “Polaris” joined their software environment. Since their inception, each app has had at least two names:
- Polaris = ARS = Activity Reporting System
- Apus = User Security and Application Profiles
This environment’s confusion is by no means limited to Celestial names. There are also multiple apps that contain their version in the name: OP2 and CSR2. However, so far my favorite is the so clearly defined “New XYZ” (e.g. New CRM). There are well over 100 apps in this environment, and many of them have one or more of the aforementioned naming issues.
Renaming an app is fine, it happens all the time, especially as the requirements for an app evolve over time. For example, “customer” could become “vendor”. So the app could go from “Customer Management System” to “Vendor Management System”. No problem, as long as everything else changes with the re-name as well: code repository names, links, build names, etc. If it is not easy to change the names, at least create entirely new streams/branches/builds/whatever for the update. If not, you then have multiple teams referring to the same app with completely different names.
Maintenance is a nightmare. Users call into the Help Desk and say the CSM is having issues, so a member of the Infrastructure team is called to look at the issue, but he does not know of a CSM app. The Infrastructure guy/gal has to spend 5-10 minutes trying to figure out what else the CSM app could be called (e.g. VMS) in order to look through logs to begin troubleshooting the issue.
I was migrating an app from an old app server to a new, and tried to get everything involved with the CMS app renamed to VMS as to prevent future confusion, but since this app had been renamed about 5 years ago, it was going to require Steve Jobs being resurrected to get everything changed. In the end, nothing was changed, and name confusion persists.
For all that is holy, please pick the names of code and apps carefully. Don’t be afraid to be too concise or too verbose; just be damn sure it is accurate. No more, no less.