Live data from Hacker News

Names should be cute, not descriptive

ntietz.com

341–350 of 498 posts

Re: Names should be cute, not descriptive

#341
Lots of people pointing out how bad this is for new hires, but it’s not just a hurdle for new hires to get over… in a lot of cases people will just _never get over the hurdle_. The discussions outside their team will just be a bunch of gobbledygook that they tune out. And years down the line you end up with a really Balkanized engineering culture. Where you know what happens in Zeus, but you have basically blocked out Persephone, Ulysses, and Palmyra because they are another team’s responsibility.

Maybe that’s actually a good thing for some organizations, I know many CTOs spend most of their time trying to make cleaner separations between teams.

But if you want a culture where people understand and evolve the larger architecture from time to time, cute names are going to make that less likely.

Re: Names should be cute, not descriptive

#342
post #106
post #49

TFA is based on a false dichotomy. You can have both. At one of my latest workplaces, there was a system of loosely connected, branching event-driven processing nodes where the events accumulated additional data as they rippled through the system. In the code and UI, this was represented as "heroes", coming from "guilds", "embarking" on "quests", eventually meeting their "reaper". On their quests, they entered "locat…

Brew tries this: You write software formulas (packaging scripts) into bottles (binary packages) in your Cellar (installed packages directory). Some software, such as GUI applications, uses casks, because casks are a different type of container. If you want a new source of packages, you add a tap. I would take packages, packaging scripts, package repository, binary packages and GUI packages any day over brew's attempt…

I think there could be a difference here: you're already familiar with the domain brew operates in.

The system I'm speaking of were extensively used and configured by people who had no prior experience with event-driven, branching logic, nor any familiarity with the terms involved.

You can still argue it would have been more efficient to teach them that domain first, then teach them this particular system for it. Maybe. I'm saying as far as I can tell, there was no drawback to the cutesy terminology for the intended users (nor for developers other than in isolated cases) and it seems to me they learned quicker with that framing than without it.

Re: Names should be cute, not descriptive

#343
> A well-factored service will generally have a tight set of responsibilities which make sense together, and this makes a descriptive name very appealing. Your service which started with a nice, tidy set of responsibilities may start to shift over time. And then you're faced with a choice: keep the old descriptive-but-now-wrong name, or put in all the effort to change it.

I had this happen recently. We wrote an application with two major components: one that processes events and repackages them as generic events and a component that receives those events and schedules work. We work in a compliance heavy environment so the architecture often reflects a separation of concerns given the information being processed.

The scheduler became pretty popular for people to plug into, even if they didn't use our other component. The scheduler eventually left the nest of our small, purpose-built program and became general infrastructure. It's now the "SecureScheduler", though on our component diagrams it simply goes by "scheduler".

My lesson learned was that if you properly separate an application out, the component names can become independent software in the service registry over time if they need to. The scheduler is pretty strictly scoped, so it'll never start doing new zaney things. It simply schedules work in a controlled environment.

These arguments over cute and functional names, I think, are a byproduct of a couple failures:

- Properly naming and confining components role within a single service. Our scheduler was generic enough to operate on its own, but it's role within our architecture was pretty confined. It's main optimization compared to other software like it was the inbound communication and authentication flows that made it easy to securely plug into.

- Lack of organization and vision at the service registry level. The scheduler didn't need a vastly different name, because it's purpose didn't really change. It did one thing and it did that one thing exceedingly well. There was a hole in the wider service registry that it could fill. As a result it was elevated to its own program in the service registry with its own deployment schedule.

Re: Names should be cute, not descriptive

#344
> The world is boring enough as is. Let's add more whimsy and cuteness through our service and project names.

This is a recipe for creating a wholly impenetrable language about your services. Which is easier for an outsider to understand:

"I updated the code for how Batman writes to Goliath in Cair Paravel"

"I updated the code for how the backend services write to the customer database in the billing application."

> I don't want to be the one to advocate for delaying features so we can rename broadcast-service to broadcast-and-new-responsibility-service. That's going to be an unpleasant conversation with your product manager, for good reason: Because this never should have happened, and it's a waste of time to change the name.

What seems to happen more often at the particular Large Company I work for is that not just responsibilities change, but fundamental assumptions underlying the architecture of a system change every few years. So rather than renaming a service, often a new system is put in place that reflects these new assumptions, and this new system will have a new name. The migration then isn't about the new name, it's about the new system, along with the new APIs and model of operation that comes with it. Yes, there are lots of examples of billing systems written 40 years ago in COBOL, but most software systems have a lifecycle on the order of 3-5 years.

Re: Names should be cute, not descriptive

#345

Why not take this to its logical conclusion and name modules, functions and variables cute names too. You need to understand the program and the code could be lying to you with its naming so why bother to name them at all. Start with Pokémon characters, atomic elements, geographical features etc. The possibilities are endless! This naming strategy can also save time when refactoring because you can change the meaning…

just name things with single letters and when you run out you can use double letters etc. you'll be so fast at writing code a promotion is sure to follow

Contrarian take:

If your code is unreadable with single letter variable names your comments aren't clear enough. Case in point: Mathematics.

Re: Names should be cute, not descriptive

#346
post #152

Earlier quoted context omitted.

Kawai Wasabi is incompatible with Yakotori. It is a known choice by the lead developer. When using Yakotori you should use Tare instead.

Is Tare even maintained? I tried to build it with Mochi, but it gives weird error messages.

Why would anyone still build it manually? Tokidoki automates all of that, and all you have to do configure your .toki bundles after you've installed the right SpaghettiWare layer for your architecture and connect it with either Tutti or Frutti. Easy peasy lemon squeezy! Oh that reminds me you do need Squeezy running in the background.

Re: Names should be cute, not descriptive

#347
post #303

> I don't want to be the one to advocate for delaying features so we can rename broadcast-service to broadcast-and-new-responsibility-service. That's going to be an unpleasant conversation with your product manager, for good reason: Because this never should have happened, and it's a waste of time to change the name. I couldn't disagree more. This is exactly why you would want the name to be descriptive. If the thing…

[deleted]

Re: Names should be cute, not descriptive

#348
There’s some history here people are missing.

Back in the day we used cutesy names for boxes, and we did it for good reason:

Back then, before cloud services, when you were building out an application, you would build one computer, load it up with some services, and then when that one started performing poorly you’d add another computer and move some of the services off.

You would frequently rebalance which services went on which box, in order to maximize performance.

But these boxes weren’t services themselves, they were just the machine some set of services happened to run on.

So we gave them cute names because the hardware was largely meaningless. They had no inherent purpose, so we named them Athena, Zeus, etc so we had something to remember.

These names were largely not used for the services. Maybe you did have your FTP service on Athena, and maybe that was the only service on there. You still served it from ftp.techdazzle.com or whatever.

I feel like people just ported this concept forward into the microservices realm because it’s fun, even though it doesn’t really make as much sense in a cloud environment.

Re: Names should be cute, not descriptive

#349

A company I have visited had, for some obscure reason, decided that teams should have their own fun/memorable names. Almost 2 years after implementation, every new hire's first comment was: "it's impossible to navigate the org with those names, we have no idea of what each team is doing". I could live with funny+descriptive, but for all that is good, funny only just does not work.

Yes, and we should change an entire companies culture to make a new hire onboard slightly faster /s

In this occurrence, I couldn't measure the benefits of that specific element of culture.

It may have been silent and powerful, I'll spare you the extra comment ;)

Re: Names should be cute, not descriptive

#350

I made an account on HN because this is the worst post I have ever read here. NO!!!! DON'T USE CUTE NAMES!!! I am currently working with a big company for my apps and it is full of cute names which are the biggest problem for me. To launch an app you have first to integrate the Zaamla-Service into your IDE. Then just patch things up with Pimble, upload the signed HIMA-Package into the Katala and activate after that Z…

Would this be easier if you needed to integrate with user-provider-service, timestamp-conversion-service, image-storage-service (which also stores videos these days, though HEIFF and h.265 has obviously been moved to iOS-image-storage-service so customers can be billed for the special software that requires patents) to upload a signed SecuredApplicationPackage file to InternalExternalSoftwareManager so that it can be…

Not only that, but half of those services would become acronyms very quickly.

Would this be easier if you needed to integrate with UPS, TCS, ISS (which also stores videos these days, though HEIFF and h.265 has obviously been moved to iOS-ISS so customers can be billed for the special software that requires patents) to upload a signed SAP file to IESM so that it can be included in the AD next time RM decides to update its endpoints?

Post reply on HN