The Service Library Service
Adam's organization was going through a period of rapid growth. Part of this growth was spinning up new backend services to support new functionality. The growth would have been extremely fast, except for one thing applying back pressure: for some reason, spinning up a new service meant recompiling and redeploying all the other services.
Adam didn't understand why, but it seemed like an obvious place to start poking at something for improvement. All of the services depended on a library called "ServiceLib"- though not all of them actually used the library. The library was a set of utilities for administering, detecting, and interacting with services in their environment- essentially a homegrown fabric/bus architecture.
It didn't take long, looking at the source control history, to understand why there was a rebuild after the release of every service. Each service triggered a one line change in this:
enum class Services { IniTechBase = 103, IniTechAdvanced = 99, IniTechFooServer = 102, … }Each service had a unique, numerical identifier, and this mapped them into an enumerated type.
Adam went to the tech lead, Raymond. "Hey, I've got an idea for speeding up our release process- we should stop hard coding the service IDs in ServiceLib."
Raymond looked at Adam like one might examine an over-enthusiastic lemur. "They're not hard-coded. We store them in an enum."
Eventually Raymond got promoted- for all of their heroic work on managing this rapidly expanding library of services. The new tech lead who came on was much more amenable to "not storing rapidly changing service IDs in an enum", and "not making every service depend on a library they often don't need", and "putting admin functionality in every service because they're linked to that library whether they like it or not."
Eventually, ServiceLib became its own service, and actually helped- instead of hindered- delivering new functionality.
Unfortunately, with no more highly visible heroics to deliver functionality, the entire department became a career dead end. Sure, they delivered on time and under budget consistently, but there were no rockstar developers like Raymond on the team anymore, the real up-and-comers who were pushing themselves.
[Advertisement] Picking up NuGet is easy. Getting good at it takes time. Download our guide to learn the best practice of NuGet for the Enterprise.Search for missing mother-of-three Rachel Booth enters its third day after 38-year-old was last seen 'after jogging from 45 minutes away to buy wine and milk'
Thunderstorms and heavy rain expected in Essex as Met Office issues weather warning
Thunderstorms and heavy rain expected in Essex as Met Office issues weather warning
Japan discovers object out beyond Pluto that rewrites the Planet 9 theory
Asia In Brief Japan’s National Astronomical Observatory last week announced the discovery of a small body with an orbit beyond Pluto’s, and scientists think its presence means the “Planet 9” theory should be revisited.…
Eamonn Holmes, 65, whisks girlfriend Katie Alexander, 43, and her children on 'luxurious Greek getaway' following couple's 'rocky patch' - as his sons side with ex Ruth Langford
Obama says boys should have gay men as mentors in their life to 'call out when they say stuff that's ignorant'
Star Fred: I won't let prostate cancer diagnosis get me down
Votes at 16? We can't even pick Keir Starmer out of a line-up! Teens are wary of voting at next General Election - but they do know who Nigel Farage is
Mysterious Antimatter Physics Discovered at the Large Hadron Collider
Read more of this story at Slashdot.