Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
Get a devDuck
Rubber duck debugging has never been so cute! Get your favorite coding language devDuckBuy Now
Search - "fight for better code"
Here's a true story about a "fight" between me and my project manager...
I've been working as a Frontend developer for nearly two years, managed to acquire a decent amount of knowledge, in some cases well above the rest of my coworkers, and one day I got into a bit of a disagreement with my project manager.
Basically he wanted me to copy/paste some feature from another project (needless to say, that... "thing" has more bugs than an ant farm), and against his orders I started doing that feature from scratch, to build a solid foundation from the very start.
I had a lengthy deadline to deliver that feature, they were expecting me to take some time to fix some of the bugs as well, but my idea was to make it bug-free from the moment the feature was released. Both my method and the one I should be copying worked the exact same, but mine was superior in every way, had no bugs, was scalable and upgradeable with little effort, there was no reason not to accept it.
We use scrum as our work methodology, so we have daily meetings. In one of those, the project manager asked me how was the progress on that new feature, and I told him I was just polishing up the code and integrating it with the rest of the project, to make sure everything was working properly. I still had a full day left before the deadline set for that feature, and I was expecting to take about half an hour to finish up a couple lines of code and test everything, no issues so far...
But then he exploded, and demanded to know why wasn't I copying the code from the other project, to which I answered "because this way things will work better".
Right after he said that the feature was working on the other project, copying and pasting it should take a few minutes to do and maybe a couple of extra hours to fix any issues that might have appeared...
The problem here is, the other project was made by trainees, I honestly can't navigate through 3 pages without bumping into an average of 2 errors per page, I was placed into this new project because they know I do quality code, and they wanted this project to be properly made, unlike the previous one, so I was baffled when he said that he preferred me to copy code instead of doing "good" code...
My next reply was "just because something has been made and is working that doesn't mean that it has been properly made nor will work as it should, I could save a few hours copying code (except I wouldn't save any, it would take me more time to adapt the code than to do it from scratch) but then I'll be wasting weeks of work because of new bugs that will be reported over time, because trust me, they will appear... "
I told him this in a very calm manner, but everybody in the meeting room paused and started staring at me, not many dare challenge that specific project manager, and I had just done that...
After a few seconds of silence the PM finally said... "look, if you manage to finish your task inside the set deadline I'll forget we ever had this conversation, but I'll leave a note on my book, just in case..."
I finished that task in about 30 mins, as expected, still had 7 hours till deadline, and I completely forgot about that feature until now because it has never given any issues whatsoever, and is now being used for other projects as well.
It was one of my proudest/rage inducing moments in this project, and honestly, I think I have hit my PM with a very big white glove because some weeks after this event the CEO himself came to the whole team to congratulate us on the outstanding work being made so far, in a project that acted against the PM's orders 90% of the time.11
Is there anyone else who starts massive amount of projects and never finishes one?
It's a big problem when you lose time you should spent on orders because you work on that-amazing-idea that you'll drop few hours later.
I'm lucky as my employer thinks that all these unfinished stuff are pushing my experience forward, but for me it's depressing to not be able to focus on my work.
What do you do to fight with the urge to code that one more project? What do you do focus on the current work?
I've tried making myself a system for better client-programmer communication to keep myself motivated with better organised feedback and deadlines but ended up dropping it and sticking to terribly messy mailbox.10
> be me
> work on a nice project with friends: A, B and C
> joined in a bit later, but before any real progress was made + we scrap the existing code, because it was Python2 or something
> decide on a framework
> A wants to create one himself, instead of using an existing one
> we fight for a little, but let A do his thing
> 2 months later
> been waiting the whole time
> +1000 lines on github, but still not finished
> "Wouldn't it be better if we would use the normal framework?"
> "No, mine is hand-crafted for that task"
> "But it is full of bugs"
> "If you find one major bug, we'll ditch my framework"
> finds major bug
> "That's fixed, just give me a min-"
> finds another bug
> "Thats just because you don't know how to use the framework"
- Documentation inside ONE gigantic README
- Library is missing the core features we needed/those which are implemented don't work
- Both B and C were on my side from the beginning (in that we should use "Already Existing Fully Documented Popular And tested Framework Which Does Everything We Need")
> "But i dont understand this framework so explain it to me"
> send him a few code examples + a tutorial??? (dont remember if i actually sent im the tutorial before i left)
> "explain it to me, i can't understand it"
> I CANT UNDERSTAND YOUR FUCKING FRAMEWORK DUMBASS
> ragequitted the server+project
To this day i still don't know, which framework they are using..
Also that Python 2 code in the beginning was because A didnt know the difference and copied (yes by hand) the code from atom to github without testing anything.4
TLDR: Read the post.
Bare with me here, I am new to all of this jazz. But I wanted to tell a story.
I have been a programmer for a while now, working on various projects with various companies, doing various things. I know that sounds vague, but it's the truth.
I never work on the same thing, ever, I never work with any fancy IDE, because I don't need one. I personally believe no developer works with the massive huge code base all at once, but instead works on it in pieces. That's a story for another day.
I have seen the shittiest of the shittiest and some how survived, I have been beaten down by code bases that were out sourced yet some how managed to stand up and gain my baring and fight back. I have dealt with clients, bosses and idiots from A-Z. Watching them all scramble around for their pennies like greedy rich white men seeking more pennies to swim in.
Some how I survived all this. I started working from home almost 3 years ago, the freedom is exhilarating. The ability to fuck off for most of the day and work at night, or work all morning and fuck off. There's nothing better.
As you work from home you think, this will be amazing. Until the crippling loneliness takes over and even the 6th bottle of beer doesn't quench the thirst of human contact. The pain of being trapped in the four white walls of your office makes that bottle of tequila, to numb out the emptiness inside look more satisfying.
At some point, you crawl out of your space to find people to interact with, refusing to be beaten down by both shit code and loneliness only to find all your friends, family and significant others are working, in offices, where they cant just fuck off for a day with you. The silence of the house, the office, the what ever becomes deafening.
its crawling all over you like bugs that pick away at your mind, breaking you, hating you. So you decide that a coffee shop is the best place, only to sit there and people watch or check Facebook or what ever else people do at coffee shops that isn't actually work.
The point in all of this, is that working from home is both a positive and a negative. It has destroyed me, created a workaholic and, probably, an alcoholic. There isnt a day I dont wish that I could sleep away the deafening silence of the world around me as every one busies off to the office.
One might think: get an office job, but I have become accustomed to my misery, pain and suffering of working from home, isolated and medicated by vaping and alcohol. the freedom, from what I have found, is worth more then the sacrifice of it - to work around people I slowly begin to hate, people that make me want to overdose on anything rather then see their smug faces and be beaten down by their idiotic words, code bases and money grubbing hands...
I guess I'll get back to work now, in my house, with my cats, my vape and my beer. Here's to freedom and the sacrifices that go along with it.5
When I started at my company I was full of energy and wanted to improve the whole codebase. After years of getting blocked by new projects with deadlines month short of the actual time required and missing a lot or all important bits (texts, images. you name it, it's missing) I kind of have up.
I do refractoring now and then but it's not as extensive.
My biggest sin was a nested for-loop that I came across (50+ times nested, previous dev really loved c+p).
I looked at it and started to write the recursive function but stopped half way through, fixed that one error I'm the loop somewhere around 30 levels down, committed and made myself a coffee.
I hate myself to this day for giving up.
Shit I'll just factor that loop tomorrow3
Epic code fight broke out today when one developer fronted himself for leader due to having beat all the metrics by a factor of ten. Claimed he could replace the entire department based on LOC alone.
Another developer told him to fucking zip it.
After almost coming to blows someone managed to explain to him that he had to put his code into a compressed archive.
As it compressed to ten times smaller than the next smallest contribution he declared victory because his compressed better. Another developer joked better call bomb squad.6
Fuck I wish I knew what to do about low motivation!!! I have some ideas I think are really great, some that might be profitable, and fuck I just don’t do any of them. I spend more time panicking about what to do than anything else. But damn so much time wasted when I just needed a little guidance or a little planning or a little like less than $100 more money. That frustrates me to no end.
There’s so much bullshit to everything. This does follow up to my wk106 rant, where I’m trying to rationalize the tons of code that are behind the smallest features. How many thousands of builds go into a deploy. Just swallowing how much rite in software.
I feel like a failure at my job at times but what sucks is I’m just in the middle. Not the most experienced dev, not the least. I’ve got my feet wet in a number of things, but not a solid enough stack for a lot.
BUT SOMEHOW I GOTTA BE MOTIVATED TO LEARN. FFS I CAN DO BETTER BUT MY INSIDE IS BROKEN SOMETIMES AND I JUST WANK OFF FUCK GET IT TOGETHER.
Yea, I fight with myself a lot. I have a big ego and I’m a piece of shit at the same time. Idk. That is annoying too. If only I could get really motivated and focused on some of these projects I could do amazing things. I’ve never struggled with a subject I applied myself to. I just wasn’t motivated. I don’t know how to fix it and I wish I did. I also don’t know what the end game for me holds.
This whole complex really scares me for later life. I will have regrets because my mind builds impossible plans for good, but if I achieve any of it I WILL THINK damn I should have not dealt with this and done x. Like I could make world peace but be like damn coulda rebuilt cars or some stupid shit.
So I’ll conclude with that I’ve done a lot of jobs around the house, and yes working with drywall sucks. So sometimes I’ll think about that. But damn. That doesn’t last because I know I can do it well if I apply myself.
All this leads to getting overextended which is another huge motivation killer. I’m trying to learn self control and focus. But also I need small victories along the way. Very annoying.
Well at least I was motivated to finish this rant. I have a few weekly rants I wanted to participate in but couldn’t even find the motivation for that. There was a toxic person in my life then and I’m slowly getting back to normal but I know that even normal me struggles with motivation. Plus that toxic person was my friend and I’ve lost a lot of (long term) friends recently and that is a real drag. But they needed to go. But I wish they had just shut up sometimes then they wouldn’t have been so toxic. But I digress.
I know I have so many ideas I can’t do them all even if I am motivated and for some time is of the essence.
So look out for some collabs. And grab that motivation wherever you can find it.1
WOW Xcode is such a trash fucking application, I am so pissed at how much I have to fight this damn piece of shit program to get my work done
The time it takes to index my code is disgustingly long, I sit and sit and wait for it to FINALLY recognize I've added a new variable to the header file before it can begin to suggest autocompletions, but wait??? Why is it telling me there's errors about another variable? On a line of code that doesn't even fucking mention that variable??? BETTER WAIT IT OUT FOR IT TO INDEX SOME MORE, NO XCODE MY CODE ISN'T ERRONEOUS, YOU ARE YOU CRAP SHOOT!!
AND WHY WON'T YOU LET ME SPLIT VIEW YOU WITH ANOTHER APP??2
I need some advice to avoid stressing myself out. I'm in a situation where I feel stuck between a rock and a hard place at work, and it feels like there's no one to turn to. This is a long one, because context is needed.
I've been working on a fairly big CMS based website for a few years that's turned into multiple solutions that I'm more or less responsible for. During that time I've been optimizing the code base with proper design patterns, setting up continuous delivery, updating packaging etc. because I care that the next developer can quickly grasp what's going on, should they take over the project in the future. During that time I've been accused of over-engineering, which to an extent is true. It's something I've gotten a lot better at over the years, but I'm only human and error prone, so sometimes that's just how it is.
Anyways, after a few years of working on the project I get a new colleague that's going to help me on my CMS projects. It doesn't take long for me to realize that their code style is a mess. Inconsistent line breaks and naming conventions, really god awful anti-pattern code. There's no attempt to mimic the code style I've been using throughout the project, it's just complete chaos. The code "works", although it's not something I'd call production code. But they're new and learning, so I just sort of deal with it and remain patient, pointing out where they could optimize their code, teaching them basic object oriented design patterns like... just using freaking objects once in a while.
Fast forward a few years until now. They've learned nothing. Every time I read their code it's the same mess it's always been.
And this is just the frontend part of the code. The backend is often orders of magnitude worse. They will - COMPLETELY RANDOMLY - sometimes leave in 5-10 lines of whitespace for no discernable reason. It frustrates me to no end. I keep asking them to verify their staged changes before every commit, but nothing changes. They also blatantly copy/paste bits of my code to other components without thinking about what they do. So I'll have this random bit of backend code that injects 3-5 dependencies there's simply no reason for and aren't being used. When I ask why they put them there I simply get a “I don't know, I just did it like you did it”.
I simply cannot trust this person to write production code, and the more I let them take over things, the more the technical debt we accumulate. I have talked to my boss about this, and things have improved, but nowhere near where I need it to be.
On the other side of this are my project manager and my boss. They, of course, both want me to implement solutions with low estimates, and as fast and simply as possible. Which would be fine if I wasn't the only person fighting against this technical debt on my team. Add in the fact that specs are oftentimes VERY implicit, so I'm stuck guessing what we actually need and having to constantly ask if this or that feature should exist.
And then, out of nowhere, I get assigned a another project after some colleague quits, during a time I’m already overbooked. The project is very complex and I'm expected to give estimates on tasks that would take me several hours just to research.
I'm super stressed and have no one I can turn to for help, hence this post. I haven't put the people in this post in the best light, but they're honestly good people that I genuinely like. I just want to write good code, but it's like I have to fight for my right to do it.1
Great practice/skill sharpening idea for my fellow mad dogs that like to get down in multiple languages/syntaxes:
Pick something simple that won't cause too much stress, but will make you sweat a little bit and put up a good fight, ha!!!
For example, I picked the classic "Caesars Cipher" and picked 5 languages to create it in! I picked Dart, Java, Python, CPP, and C. Each version does the same thing:
1. Asks for a message
2. Runs the logic
3. Prints the message cipher.
4. To decrypt, you just run the same program again and enter the cipher text at the message input prompt. The message gets deciphered using the same logic an shows up as the original text.
Only dox/books allowed for reference. Otherwise it wouldn't push you to get better!!!
Python, C, and CPP were EASY, even with me never having used C before. I am great at using Dart, and that one really challenged me for some reason, but I finally got it. The previous 3 langs took less than 40 lines of code each (with Python being only 18 I believe). Dart actually took somewhere around 50, and Java took about 371784784. (Much love to Java though for real!)
Kinda boring as shit, but I gotta tell you it felt fuckin GREAT to look at all 5 of those programs after completing them, no matter how barbaric... especially when you complete 1 or 2 in a language you've never used or maybe felt really challenged by. Simple exercises that hold a lot of important, relatable logic no matter the subject is our lifeblood!!!9