Details
Joined devRant on 2/26/2019
Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
-
There should be a TV show where junior programmers make a software and then one famous senior programmer finds bugs, yell at them and fixes it. The name of the show will be "Coding nightmares".15
-
TL;DR;
I was asked to give estimation on an app, that:
1. No one has a clue what it does, even though there is v1 on the store with almost 10% of functionality working
2. No one has a clue what should be in the new rewritten version
3. We are already behind schedule and I have no clue why, I've just been told that
4. They need UI flow that shows how the app will work with static data and when API's are ready (because ya know, writing code is easier than creating wireframes and modifying them accordingly) I will then need to link app with API as if it is as simple as drinking a cup of water, especially that: 1. What is water? 2. Do I have a cup or is it given, and 3. Relax bro, drinking water is like eating a burger, piece of cake!
I'm not sure what to do, not enough that it's React Native but also spaghetti requirements that no one was able to answer my simple question: What is the app responsible of?
P.S.: Some say I must rewrite the old app ONLY, no new features, others say: Turn the new web portal into mobile app, I say: WTF is going one?6 -
Project coordinator blames our team because client said we failed to "align" with other teams.
Coordinator.
Project. Coordinator.
What the actual fuck.2 -
Nope, definitely not going to work for that customer anymore. Fuck this shit. At least for this week.
My background: mid-30 years old, some kind of business & IT consultant / lead dev working for a mid sized CRM consulting company, with approx 15 years of experience in development and software architecture, most of the time "thinking" in C#, still learning new languages, being a cloud evangelist and team lead. We usually have customers with customers (B2B/B2C).
Personality type "campaigner" (ENFP-A).
Today the project lead of my client (a big corporation in the energy industry) told me that he still didn't order all the necessary resources for the cloud project. Just to be clear: He's on the client side. We (the architects, one internal and me) told him one month ago what we need for the beginning. Just a few things - an Azure subscription, a license for the CRM platform, and our dev tools.
And now let's guess when the project is planned to begin? Yeah, right: 1st of April. NO APRIL'S FOOL. And guess what? Next Tuesday we'll do the onboarding for the new (external) devs, and NOTHING will be ready. Yeah, just let us build stuff in our minds, and on the whiteboards, because it's an AGILE project, right? We don't need any systems and tools...
And now he sent me the questionnaires which need to be answered before any cloud service can be ordered by the corporate IT. And yes, he didn't answer a single thing, and just meant "Those are architecture questions" (they are not) and (of course) "please provide the answers until Monday morning, so we can FINALLY order the services."
Yeah, you fucktard. Of course it's MY FAULT now. Maybe I should write an email to your boss asking how we can speed things up a little bit...3 -
Sales employee Bob wants a clickable blue button.
Bob tells product owner Karen about his unstoppable desire for clickable blue buttons.
Karen assigns points for potential and impact (how much does a blue button improve Bob's life, how many people like Bob desire blue buttons)
Karen asks the button team how hard it is to build a button. The button team compares the request to a reference button they've built before, and gives an ease score, with higher score being easier (inverse of scrum points).
These three scores are combined to give a priority score. The global buttonbacklog is sorted by priority.
Once every two weeks (a "sprint") the button team convenes, uses the ease scores to assign scrum points. Difficult tasks are broken up into smaller tasks, because there is a scrum point upper limit. They use the average of the last 5 sprints to calculate each developer's "velocity".
The sprint is filled with tasks, from the top of the global button backlog, up to the team's capacity as determined by velocity. Approximate due dates are assigned, Bob is a happy Bob.
What if boss Peter runs into the office screaming "OUR IMPORTANT CLIENT WANTS A FUCKING PINK BUTTON WHICH MAKES HEARTS APPEAR"?
Devs tell boss to shut the fuck up and talk to Karen. Karen has a carefully curated list of button building tasks sorted by priority, can sedate boss with valium so he calms the fuck down until he can make a case for the impact and potential of his pink button.
Karen might agree that Peter's pink button gets a higher priority than Bob's blue button.
But devs are nocturnal creatures, easily disturbed when approached by humans, their natural rhythms thrown out of balance.
So the sprint is "locked", and Peter's pink button appears at the top of the global backlog, from where it flows into the next sprint.
On rare occasions a sprint is broken open, for example when Karen realizes that all of the end users will commit suicide if they don't have a pink heart-spawning button.
In such an event, Peter must make Bob happy (because Bob is crying that his blue button is delayed). And Peter must make the button team of devs happy.
This usually leads to a ritual involving chocolate or even hardware gift certificates to restore balance to the dev ecosystem.23 -
Customer support story time: (swearing in Dutch because it sounds more fun but it's general swearing so no translation needed I think (will translate the non obvious parts)
Me: good morning, how can I help you?
Client: hello, I have a question for you.
Me: go ahead!
Client: alright so.... one sec, let me turn off my music.
Client: hey Google
.
.
.
Client: hey Google
.
Client: Heeeey Gooooooogle
.
Client: HEY GOOGLE, GODVERREDOMME
.
Me: 😆
.
Client: REAGEER GODVERDOMME. "HEY GOOOOGLE"
.
.
Client: VIES VUIL TYFUS DING, LUISTEREN. HEEEEEY GOOOOOOGLE
.
.
Client: JA GODVERREROMME, LUISTER GEWOON, FUCKING KUT DING. *SHOUTS WITH ANGRY VOICE* "HEY GOOGLE HALLOOOO LUISTEEEEEREEEEEN" (oh for fucks sake, LISTEN fucking piece of shit)
Me: *desperately trying to keep it together*
Client: IK DOE HET ZELF WEL JEZUS GODDOMME *FOOTSTEPS, MUSIC STOPS* (Translation: I'll do it myself, fucking hell)
.
.
.
Client: finally, sorry for that 😅
Me: *still trying to control myself* no problem!15 -
I'm so fucking tired of all these "teach kids to code" and "everyone can code" shit.
It's genuinely not for everyone. Some people are not meant to code, so stop trying to force it down everyone's throat because we're going to end up with a lot of people doing it because of a nice job and shit, not because they want to.
I get many of these programs and shit are to expose people to it and all, but fucking hell stop trying to make everyone fucking programmers23 -
Hello {Project}, my old friend. I've come to debug you again
Because the scope is softly creeping
Left its seeds while I was developing
And the misery that was planted in my brain
Still remains
Within the sound of silence...
In restless dreams I debugged alone
Narrow file of cobbled code
‘Neath the halo of a desk lamp
I turned my collar to the cold and damp
When my eyes were stabbed by the flash of git checkin
That split the night
And touched the sound of silence
And in the naked light I saw
Ten thousand bugs and maybe more
People coding without asking
People coding without listening
People writing code that they never share
And no one dared
Disturb the sound of silence
Fools, said I, you do not know
{Project} like a cancer grows
Hear my words that I might teach you
Take my arms that I might reach you
But my words, like silent raindrops fell
And echoed in the wells of silence.
And the people bowed and prayed
To the kludgy app they made
And the sign flashed out its warning
In the words that it was forming
And the sign said, the words of the prophets are written on the subway walls
And tenement halls
And whispered in the sounds of silence
<-- Found in my documents, no clue where it's from5 -
A young guy I work with burst into tears today, I had no idea what happened so I tried to comfort him and ask what was up.
It appears his main client had gone nuts with him because they wanted him to make an internet toolbar (think Ask.com) and he politely informed them toolbars doesn't really exist anymore and it wouldn't work on things like modern browsers or mobile devices.
Being given a polite but honest opinion was obviously something the client wasn't used to and knowing the guy was a young and fairly inexperienced, they started throwing very personal insults and asking him exactly what he knows about things (a lot more than them).
So being the big, bold, handsome senior developer I am, I immediately phoned the client back and told them to either come speak to me face-to-face and apologise to him in person or we'd terminate there contract with immediate effect. They're coming down tomorrow...
So part my rant, part a rant on behalf of a young developer who did nothing wrong and was treated like shit, I think we've all been there.
We'll see how this goes! Who the hell wants a toolbar anyway?!401 -
Time for a soap box rant.
I just found this in one of our projects. I've simplified the example to make it more anonymous.
When I see code like this it automatically means there is a lack of attention to enumerations and/or understanding of what they are.
One may argue that in a certain execution of code it's a minor performance hit and therefore insignificant. It's still a performance hit. Furthermore, it takes even less time to do it the right way than it does to do it the wrong way.
Every one of these lines will enumerate the list from the beginning to try and find that one element you're interested in. Big O notation, people.
Throw that crap into a dictionary or hashset or similarly applicable data structure with direct reads at the beginning of your logic so that it only gets enumerated ONCE when the data structure instance is created. Then access it however many times you want.
Soap box rant over.15