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
Search - "bug war"
-
"I will go to sleep after i fix this bug" 10min later I look outside, North Korea and the USA are fighting a nuclear war, russia invaded europe, hitler rose from the death and there's even more javascript frameworks8
-
LONG RANT AHEAD!
In my workplace (dev company) I am the only dev using Linux on my workstation. I joined project XX, a senior dev onboarded me. Downloaded the code, built the source, launched the app,.. BAM - an exception in catalina.out. ORM framework failed to map something.
mvn clean && mvn install
same thing happens again. I address this incident to sr dev and response is "well.... it works on my machine and has worked for all other devs. It must be your environment issue. Prolly linux is to blame?" So I spend another hour trying to dig up the bug. Narrowed it down to a single datamodel with ORM mapping annotation looking somewhat off. Fixed it.
mvn clean && mvn install
the app now works perfectly. Apparently this bug has been in the codebase for years and Windows used to mask it somehow w/o throwing an exception. God knows what undefined behaviour was happening in the background...
Months fly by and I'm invited to join another project. Sounds really cool! I get accesses, checkout the code, build it (after crossing the hell of VPNs on Linux). Run component 1/4 -- all goocy. run component 2,3/4 -- looks perfect. Run component 4/4 -- BAM: LinkageError. Turns out there is something wrong with OSGi dependencies as ClassLoader attempts to load the same class twice, from 2 different sources. Coworkers with Windows and MACs have never seen this kind of exception and lead dev replies with "I think you should use a normal environment for work rather than playing with your Linux". Wtf... It's java. Every env is "normal env" for JVM! I do some digging. One day passes by.. second one.. third.. the weekend.. The next Friday comes and I still haven't succeeded to launch component #4. Eventually I give up (since I cannot charge a client for a week I spent trying to set up my env) and walk away from that project. Ever since this LinkageError was always in my mind, for some reason I could not let it go. It was driving me CRAZY! So half a year passes by and one of the project devs gets a new MB pro. 2 days later I get a PM: "umm.. were you the one who used to get LinkageError while starting component #4 up?". You guys have NO IDEA how happy his message made me. I mean... I was frickin HIGH: all smiling, singing, even dancing behind my desk!! Apparently the guy had the same problem I did. Except he was familiar with the project quite well. It took 3 more days for him to figure out what was wrong and fix it. And it indeed was an error in the project -- not my "abnormal Linux env"! And again for some hell knows what reason Windows was masking a mistake in the codebase and not popping an error where it must have popped. Linux on the other hand found the error and crashed the app immediatelly so the product would not be shipped with God knows what bugs...
I do not mean to bring up a flame war or smth, but It's obvious I've kind of saved 2 projects from "undefined magical behaviour" by just using Linux. I guess what I really wanted to say is that no matter how good dev you are, whether you are a sr, lead or chief dev, if your coworker (let it be another sr or a jr dev) says he gets an error and YOU cannot figure out what the heck is wrong, you should not blame the dev or an environment w/o knowing it for a fact. If something is not working - figure out the WHATs and WHYs first. Analyze, compare data to other envs,... Not only you will help a new guy to join your team but also you'll learn something new. And in some cases something crucial, e.g. a serious messup in the codebase.11 -
I spent two days in a row fixing chairs at work because our whole dev team was waiting for issues (which means helping QA team and playtesters testing the whole game).
Just when everyone left and Im standing up to go as well a playtester comes up with a release breaking bug in the handwriting recognition code...
Since this game is build for a charity which will release it in a country at war we cant push the release date.
Guess who is making overtime trying to fix this bug?3 -
An iOS app which was basically a wrapper for a giant jQuery eForm.
~5000 lines of custom JS and it broke ALL THE DAMN TIME. A team of us worked on it for about a year and all we ever did was fix bugs. But the bug count never went down. The bugs just got replaced with more bugs.
Thankfully its not live anymore.
After the global thermonuclear war, all that will remain is cockroaches and jQuery. -
time traveler: *steps on a bug*
changes to our world:
- C has python syntax based on indentation and has no curly braces
- mario has fall damage
- tetris is called triris and uses blocks of three squares rather than four
- the word "disk" doesn't exist, everything is "disc"
- every device uses a new version of mSATA instead of usb type c
- screens are 3:2 instead of 16:9
- javascript name wasn't adopted, the language was called lifescript instead, as originally intended. because of it, it didn't secure funding when it most needed it, so it never caught on. instead, microsoft bought macromedia, and every site is written with Microsoft Flash. CSS has XML syntax.
- steve jobs didn't rely on alternative medicine, so he succesfully beat cancer. because of him, every phone has the size of iPhone 4s, but bezels are tiny. everything that's bigger is called phablet, and big phones are not a thing. instead, web is "smaller" in size, every ui is more compact.
- wimax caught on and won the 4g war. 5g is called wimax 2.0.
- microsoft had more time to complete vista, and hardware manufacturers had more time to make faster chips. when vista came out, it wasn't buggy and was very fast. it acquired cult status like xp. because of it, windows 8 still had frutiger aero design.19 -
As some of you might know I am currently working in a QA Team.
One of my "colleagues" asked me to help him with the automation of a simple page.
The tool we are using could not determine if a checkbox on a mask was checked or not so he decided to open a BUG!
This is not a bug the page is working fine (the checkmark is visible and the server handles the data correctly)!!
When I asked him why he opened the bug he said "Because I want the developer to make that easier for me!!!"
WTF This is your job! JUST GET IT FUCKING DONE!
I work my ass of to close the gap between testers and developers...
BUT IF I SEE THINGS LIKE THAT I UNDERSTAND EVERY DEV WHO WANTS TO PUNCH HIM INTO HIS FACE! -
The next major war seems more likely to be started by a bug in someone's code than an action taken by a world leader.1
-
Reflecting back on my previous post regarding quitting my job without an offer . Today the final email from system came : my resignation is accepted, my lwd is 7th dec and portal no longer shows the with draw button. The small spark with potential to burn the world did burn it , so her we are.
3 people were supposed to be part of this seperation : my current manager, the avp (person who hired me, was sr manager back then) and HR. HR was on leave for 2 days and all my emails went into auto reply from her, and when she came back, she approved the resignation without any discussion.
my manager(EL), who is the primary cause of me taking this step, tried talking to me. I can't say its because of u, so I simply said WLB, I need work from home. She tried to bring facts : why wfh? you are doing fine in hybrid ? you are getting 6h work every day? your joining letter said all days working from office?
I didn't entertain those points. The meeting ended in 5 mins.
Next day I emailed again regarding my status and she was the person who texted me saying such emails are not acceptable, go to portal and initiate seperation. she shared the steps and as i was about to press the button, I got a call from the avp
I tried the excuse approach bit he was able to see through it (he was showing disappointment). his talking style is charming, so I eventually opened up to him. the call lasted 30 mins, it made me think and today morning I was thinking of alternatives and discussing with him on chat, ittle to my knowledge that my manager has already approved the resignation. fine, I guess.
But here is the main story: WHY DO I WANT TO RESIGN? why would I ask a 3 day office company to gove me wfh and write here that even this is a lie. WHAT IS THE REAL REASON? here are the points , most of which i told the avp in some way as well:
1. The most frank reason is disrespect. I have been in this org for 2.9 years and was one of the first 4 members to join. today we are a 20 people team, one of the 1st 4 came as product manager and is now senior pm, 2nd came in as SSE and is now EL (SSE-> Module Lead -> Engineering Lead). 3rd came as SSE and is now ML . I came as software engineer and is still a software engineer . I even helped hiring a guy with 2 yrs less experience than me and in 10 months he got a sneior position but not me
2. The obvious area of disrespect is when I try to put my point, but my points are not considered but rather needs to be approved by those peole who hold a title. I am a laughing stock among juniors
3. Even after doing flwaless work for years and not getting an ounce of respect, my smallest mistakes are openly highlighted and humiliated. There was once a prod bug that was caught during sanity but for that, I was shouted upon by this EL at 1140pm in night in a 3 person call of EL,an intern and me. this same lady joined 10 days before me and did nothing but politics and talkings to get a position where she is humiliating me
4. These people suck at management and end up making us feel like slaves. one mistake (from anyone) and we get called out in meetings, chats . Our estimates are questioned and negotiated because the "senior" thinks it can be done in lesser time .
5. New rules are enforced everyday , making everything a dev's job . unit test cases? developer will do . uat testing? developer should do. prod testing? dev's job after getting prod numbers whitelisted. war room testing of modules? dev's job . let other teams know of changes? dev job. making a list of all tasks,all estimates and hourly time spent by a dev in a sprint? dev's job. What is the responsibility of qa team and EL?
6. in past 2 years I added 500+ commits, worked on 450+ small to large tasks and almost 99% of app's features are known to me. but in first year I broke my left arm and took a month wfh. In 2nd year i got stage 3 cancer and took 2 months sabbatical. all this made my contributions z my efforts as 0 and I never got any appreciation once.
----
With all these issues, what else could i have done apart from putting papers? How much can I figjt the useless fights? I am not the loudest nor the most cunning person in thsoe rooms. And these 2 seems common attributes of both of those SSEs who got good leadership positions.
I am sorry I couldn't be a better fighter. I am tired of fighting : my life, my situation and now the fight to proove my worth in the only space that i am passionate and proud19 -
Okay. Here's the ONLY two scenarios where automated testing is justified:
- An outsourcing company who is given the task of bug elimination in legacy code with a really short timeframe. Then yes, writing tests is like waging war on bugs, securing more and more land inch after inch.
- A company located in an area where hiring ten junior developers is cheaper than hiring one principal developer. Then yes, the business advantage is very real.
That's it. That's the only two scenarios where automated testing is justified. Other such scenarios doesn't exist.
Why? Because any robust testing system (not just "adding some tests here and there") is a _declarative_ one. On top of already being declarative (opposed to the imperative environment where the actual code exists), if you go further and implement TDD, your tests suddenly begins to describe your domain area, turning into a declarative DSL.
Such transformations are inevitable. You can't catch bugs in the first place if your tests are ignorant of entities your code is working with.
That being said, any TDD-driven project consists of two things:
- Imperative code that implements business logic
- Declarative DSL made of automated tests that also describes the same business logic
Can't you see that this system is _wet_? The tests set alone in a TDD-driven project are enough to trivially derive the actual, complete code from it.
It's almost like it's easier to just write in a declarative language in the first place, in the same way tests are written in TDD project, and scrap the imperative part altogether.
In imperative languages, absence of errors can be mathematically guaranteed. In imperative languages, the best performance (e.g. the lowest algorithmic complexity) can also be mathematically guaranteed. There is a perfectly real point after which Haskell rips C apart in terms of performance, and that point happens earlier on than you think.
If you transitioned from a junior who doesn't get why tests are needed to a competent engineer who sees value in TDD, that's amazing. But like with any professional development, it's better to remember that it's always possible to go further. After the two milestones I described, the third exists — the complete shift into the declarative world.
For a human brain, it's natural to blindly and aggressively reject whatever information leads to the need of exiting the comfort zone. Hence the usual shitstorm that happens every time I say something about automated testing. I understand you, and more than that, I forgive you.
The only advice I would allow myself to give you is just for fun, on a weekend, open a tutorial to a language you never tried before, and spend 20 minutes messing around with it. Maybe you'll laugh at me, but that's the exact way I got from earning $200 to earning $3500 back when I was hired as a CTO for the first time.
Good luck!6