Article 4F5RD A Problem in the Backend

A Problem in the Backend

by
Bobby T. Johnson
from The Daily WTF on (#4F5RD)

Gary works at a medium company. Big enough that workers are specialized in their duty, but small enough to know people in other departments and to make turf wars a little more close and personal: danger close. Most of the departments see themselves as part of a team, but a few individuals see themselves as McCarthy, who will themselves alone save the company and defeat the enemies (who are all spies inside the company sent to destroy it from the inside).

One of these individuals is named Eric. Eric is close to a Kevin. Eric is the front-end developer, and neither likes nor cares about what happens on the backend. Whenever Eric has an issue, he blames the backend. CSS rendering glitch? Backend problem. Browser crash? That's the backend problem. Slow UI, even when all the data is cached clientside? Definitely a backend problem. Gary used to get mad, but now knows that Eric is so dumb that he doesn't even know how dumb he is.

Eric grates on people's nerves. Since nothing is his problem, he doesn't seem to have any work, so he bugs backend developers like Gary with terrible jokes. A typically Eric joke:

"Do you know why they call back end developers back end," Eric asked.
"No?" Gary questioned
"Because you look like your back end!"
" "?"ha"

Another typically Eric joke is taping up backend developer work in progress on the men's restroom stall. Gary knows it was Eric, because he came to ask the connection details for the color printer (the printer nearest Eric is grayscale only).

The first telling is almost funny. The second telling is less so. The 100th joke while Gary is trying to debug a large Perl regex, and Gary is less inclined to be sympathetic.

Eric and Gary have had in a couple danger close incidents. The first time involved an issue where Eric didn't read the api naming conventions. He wrote front-end code with a different naming convention, and insisted that Gary change a variable name in the API. That variable is referenced twice on his front end and and in over 10,000 lines of backend code.

The most recent danger close incident involved the Big Boss. The Big Boss knows how Eric can be, so he generally gives Eric some time to find out the problem, but features need to ship. Eventually, the Big Boss calls a meeting.

"Hey Gary, Eric, I don't know whose fault it is, but when I log in as a superuser, log out and log back in as a limited user, I still see data for a superuser. This is an information security issue. Now I'm not sure which part is causing this, but would you know?" asked Big Boss.

"I'm sure it's the backend.," Eric proclaimed.

"100% sure it's a backend issue?," the Big Boss asks to help give Eric an out.

"I only display what the backend returns. It must be what they are returning to me and not checking the user credentials," Eric stated as the law of the universe. This recalled another joke of his: the front end is a pipe to the backend and the backend is the crap that the developers put into it.

"So you are positive that it's a back end issue," Big Boss asked.

"I mean I can even show you right now how to test it. If I'm sending different identities to the backend, then the backend should reply with different sets of data," said Eric.

Eric grabbed the boss's mouse and started clicking around on his computer. After a moment, he started shouldering the boss further away from his computer.

"Aha, See? It's definitely different identities, but we see the same set of data, which as I've said is FROM THE BACKEND. You have to fix the backend, Gary," Eric said.

Gary watched this, silently. He already knew exactly what was happening, and was just waiting to hang Eric out to dry. "Hey boss, can you try a couple things? Can you disable the browser cache and refresh the page?"

The Boss cleared and disabled the cache and refreshed. The Boss logged back in several more times, under different identities, and everything was correct. They re-enabled the cache, and the buggy behavior came back in. Clearly, the front-end was configured to aggressively cache on the client side, and Gary said as much.

"But it needs to be that way for performance"," whined Eric. "Because the backend is so slow!"

"Well, it fixes the issue," the Big Boss said. "So, Eric fix that front-end caching issue please."

buildmaster-icon.png [Advertisement] BuildMaster allows you to create a self-service release management platform that allows different teams to manage their applications. Explore how! TheDailyWtf?d=yIl2AUoC8zAmRdaidnboUw
External Content
Source RSS or Atom Feed
Feed Location http://syndication.thedailywtf.com/TheDailyWtf
Feed Title The Daily WTF
Feed Link http://thedailywtf.com/
Reply 0 comments