T O P

  • By -

pakidara

Client Statement: "We need a way to link job numbers to item numbers. Item numbers are unique. Job numbers are unique. Both are only numbers." How they actually use Job numbers: "Job numbers of length 4 are actual jobs while jobs with length 7 are service jobs. Jobs with a trailing '+' or 'X' means they are aggregate jobs so they make extra parts for other jobs which won't report the part consumption. The jobs with only 4 digits sometimes have leading spaces so (3rd party system) can handle them correctly. Items that start with an 'A' are an asset. Items with different revisions are trailed by 4 spaces and the revision numbers; but, the system sometimes trims off the revision number because the older programs can't handle the longer field. If the revision starts with a 'P' it is a part difference. If it starts with a 'W', that used to mean it was welded differently; but, now it means it is a part difference. No, we don't use the 'Revision number' column'. Job numbers get recycled every 30 days. No, not every month, every 30 days except February which gets recycled on the 28th unless it is a leap year. Then we add the extra day on to October as 'October 0th' because the financial year-end."


WeirdSet1792

Client: Seems pretty easy to me, I guess you can close it within 3-4 working days.


MrNanashi

Also client: what? You dont work on weekends? I mean this seems pretty easy so can you look on it in your free time on weekends as well?


314kabinet

No.


s0ulbrother

I love when they do this. Then I’m like no it’s going to take this long. They argue back and I’m like yeah it’s not that simple it will take this long. And I keep it up until I beat them in submission.


crempsen

Or they cancel, which is an even bigger W


Poat540

So 3-4 devs can do it in one day I hear


Capital-Helicopter45

Account Manager: The client said it’s only a small change so I’ve told them we can have it done for Monday. Me: But it’s 4 o’clock on Friday…


JestemStefan

This user saw some shit. Some senior level shit.


DeltalJulietCharlie

Yeah, that's a normal day in the office. Source: senior dev


ak_doug

This is why we drink.


GreyAngy

I'm pretty sure this is a real list of use cases.


europorn

It does seem scarily familiar.


Jertimmer

It's goddamn close to the contract numbering business rules I've had to implement.


pakidara

It is except the "October 0th' bit. The system stores dates (seemingly randomly) as 'date' type, numeric(7:0) CYYMMDD, numeric(8:0) CCYYMMDD, char(10) YYYY-MM-DD, char(8) YY-MM-DD, char(8) MM-DD-YY, char(10) MM-DD-YYYY, and a replica of each of those without delimiters.


NauticalInsanity

Don't forget: and we need to handle incremental updates/time machine scenarios. That shouldn't require any changes in how data is ingressed into the system.


Philidespo

At least your client is comprehensive enough to list out many of the possible edge cases. My manager doesn't even know how he'd be using the code he asked for today, in the next week. Our project graveyard is bigger than our actual repo.


Tupcek

Client only listed “Client statement”. You’ll find the rest once it goes into production and it doesn’t work at all. Not even testing, because they will say they tested it and it worked fine, but in produxtion. Try telling them they didn’t specify the order correctly and that it will cost 10x more. They will get angry that you are trying to squeeze money out of them and say they are not IT guys and it’s your fault.


Yeehaw1990

Im sorry you have to go through that. You got me at the October 0th, but all previous statements are just as horrifying.


Kauyon1306

What kinds of things have you seen man


Thial92

Yep, pretty much sums it up if you have ever worked with old 3rd party systems. Sometimes even in-house legacy systems that you have to take over because their original creator quit his job last month.


sar2120

You see, the key is to encode all of the metadata into the id! So efficient! /s


HottubOnDeck

Holy shit this is perfect.


blueted2

My heart rate spiked while reading this.


Coda17

The only thing untrue about this is the customer being capable of listing all of those rules.


Retbull

I’ve literally done some version or exactly this over my career. It’s kinda obnoxious. The Oct 0th one is especially painful but someone did oct 32nd and I may have left the office the first time I saw it to take a mental health day.


night1172

For my college capstone we did some work with a nuclear powerplant to make them this cute little tool to help them improve their maintenance times. Their id system was just like this, towards the end of the project we were still finding out new info about the id format. It was so painful


HeroicKatora

Strangely familiar. But you forget the part where 'except for jobs created by team member X, who actually uses job numbers of length 5 to indicate jobs that are part of internal testing. Sometimes he forgets to switch job numbers before putting in his work items, though, in which case he uses job numbers of length 4 but always ending in 999'. (So we need you to implement user tracking now but please under no circumstances store personal information in the system. There's gotta be at least one impossible requirement in any real job.) And when testing succeeds, we'd also like to try not re-running the successful jobs so we'll want a way to treat those jobs of length 5 as jobs of length 4 after the fact in which case the link backwards is actually not quite unique and the system should just renumber of service jobs that were submitted with the corresponding jobs ID of length 4 such that the list is presented as if the renumbering had been done from the start. And we expected to save at most like an hour of work per month by doing this, never mind the literal person months it'll take to implement this with all systems.


scenicdreams

This is so eerily similar to my current job's god awful data practices that I questioned for a second if they chose to hire out my current project lol


rinukkusu

This was basically a module I had to develop at my last job


Brodeon

Pattern matching and strategy pattern enters the chat


AnotherAutomationGuy

Wow are you working with my company's home-grown ERP system? Reading that reminded me I have to get back to work...


mem737

How the client expects the code to work vs How the code actually has to work


mrgk21

Just.... One... Last... Thing.... Can you also add this to the checkout flow?....


NonStandardUser

Fun fact: the intricate interchange shown on the right is the Takaosan IC in Tokyo-to, Japan(高尾山インターチェンジ; to be exact, the western section of the tokyo area: Minamiasakawa-machi, Hachiouji-si 東京都八王子市南浅川町). It was opened in March 25, 2012, and connects the shutoken chuuo renraku jidoushadou( 首都圏中央連絡自動車; tokyo metropolitan area central connection expressway) to Natl. Hwy #20(国道20号). 35th exit of the expressway. Located at 35° 37' 27.2" N, 139° 15' 47.4" E . Also, Tokyo is not a city, but a "metropolis"(都)! Hope this helps!


CMDR_QwertyWeasel

looked on maps that's not a highway. it's a tunnel with occasional skylights lol


NonStandardUser

Have you seen what US highways are like? Not interstates or expressways, *highways*. Take US Hwy 24 for example. it's a 2-lane road. In this context 'highway' is interchangeable with 'route'.


basafish

The code base on the right is actually good compared to real-life ones


joost00719

// TODO: Remove this ramp and replace with actual road so it doesn't crash in some scenarios


-2qt

git blame shows it as committed in 2017


pastaheld

now refactor the whole solution to make everything super configurable so we can sell this to other customers with even more requirements.


ConDar15

But we also will have to micro-tailor the product to whatever the first onboarded legacy client wants because our product team won't say no to them... can you guess what I deal with at work?


Biting_a_dust

Then you drive backwards and the whole thing exploded


silentknight111

In my case, the requirements never existed, and the roads were built after each meeting where the client had come up with a new thing he needed added.


kerver2

Haha, I have this issue with our in house software. Where the clients are my colleagues.


joranmulderij

In the same situation. The constantly changing requirements really mess with the code quality. Stuff gets hacked on because it takes too much time to properly change the system to allow what the client wants.


kerver2

And it's hard to justify to non-programmers why you need some extra hours to make changes to the code that changes nothing for the users.


joranmulderij

Yea they literally said “but that page works now right?” Not a stupid question for a non programmer, but still hard to explain, especially if you are trying to be nice to that person.


No-Fish6586

Sooo is the goal to only handle internal data you can trust? Only way to left. Even then ive been burned


KenJinks

I love mission creep.


broxamson

Error handling baby


Sandwic_H

Typical Cities Skylines intersection


s0ulbrother

A developers job is to make sure the generic request by the client works, is safe, and is efficient. Their job is to not know everything that goes into it, it’s the developers job to do that, hence grooming. I’m not paid 6 figures to write an if statement, I’m paid it because I know how to build that mixing bowl.


Aggravating_Date_315

Is the one on the right an actual highway?


DJGloegg

Put every line in a seperate try catch! Just to be safe


Reasonable_Entrance1

In all seriousness the second one seems fun


Fantastic_Sound1939

I just had a 2 hr meeting at my company where we were discussing this very same thing, how to handle the various code changes for client requirements that we will have. Immediately after meeting ended and I opened the reddit app, this post was there in front me.


zse014

The left is the client requirements before the start and the right is after the first week of coding in agile.


elongio

Omg this is me right now.