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 - "testing gone wrong"
-
This was my first freelancer project. Just dropped out of school, i think i was 17. No money, no proper hardware, i had a very old laptop & stolen wifi from our neighbor. I lived in a very small room at my mom’s flat, she wanted me out as soon as i turn 18. At the time my plan was to work on freelancer stuff and make my own games. “It will be fine, fuck school, who needs school? 😂“ I haven’t really finished anything back then, so i only had a few wip hobby projects to show ppl as my references. I saw a freelancer job posting. The task was to make a simple quiz game for mobile, it paid 350$. Back then that was a lot of money for me so i took it. I met the client, he said “2-3 week tops, i send you everything, you do the code” Cool. I finally had a “job”😃. The 2-3 weeks turned into a 8 month blur of all-nighting and just implement one more thing and its finished. I did not really have any experience on how to deal with clients and i really needed this project to finally have something on my porfolio. I motivated myself with “if i can finish this i can finish anything”. I think the story of my most definitive all-nighting was 3 months into the development. I finally got everything from the client so it was like just put it together and its done. The client wanted 300 levels, beeing a noob i was i started making all the 300 unity scenes by hand, aligning the pictures, the ui, testing each level, making adjustments to the code, etc.. after a really long night and a fuckton of caffeine i was done. I sent it to the client at around 9 am and gone to sleep. When i woke up i checked my emails to saw this: Cool! But can we do hints? (wich needed a fuckton of rework of my code) I think i had my first mental breakdown while working on the project. After that he wanted more modifications and because i made every level by hand i had to remake all of them like 10 times 😂
But in the end it turned out positive, he really helped me to start my carrier, we became sord of friends and the project gave me a lot of confidence and experience on how to deal with stuff when shit goes wrong because everything that can go wrong in a project gone wrong. It was the most valuable developer lesson. Plus it sounds so cool to say “i was born in development hell, b*tch!”🕶
I attached a pic of the laptop i worked on 😂
Thanks for reading 😃32 -
They asked me if I could recommend any video streaming frameworks. I said no, but I could google around a little. I found one, sent it to them with a note that I hadn't used it but it seemed solid.
One afternoon, right before hometime, a month later and the day before go-live, I come in, to emails with _all_ the managers on it, demanding that I assist immediately. They'd finally tried testing it, and they had found an issue. No details.
I email back, asking for the actual issue they'd found - no response. I phone - that developer has now gone on leave for week, there's a new dev who'll help me. I email him, asking for "precise technical details" of what had gone wrong.
He replies, "when you try use it, it literally causes the apocalypse." and goes silent. I check the skies, no visible apocalypse yet.
Based on some keywords they'd mentioned, I google and find a known issue as well as a patch for their version. I email it over to them.
The response? "If I'd known he was just going to Google it, I would have tried that myself."14 -
The riskiest dev choice...
How about "The riskiest thing you've done as a dev"? I have a great entry for that. and I suppose it was my choice to build the feature afterall.
I was working on an instance of a small MMO at a game company I worked for. The MMO boasted multiple servers, each of them a vastly different take on the base game. We could use, extend, or outright replace anything we wanted to, leading to everything from Zelda to pokemon to an RP haven to a top-down futuristic counterstrike. The server in this particular instance was a fantasy RPG, and I was building it a new leveling and experience system with most of the trimmings. (Talents, feats/perks, etc. were in a future update.)
A bit of background, first: the game's dev setup did not have the now-standard dev/staging/prod servers; everything ran on prod, devs worked on prod, players connected and played on prod, etc. Worse yet, there was no backup system implemented -- or not really. The CTO was really the only person with sufficient access. The techy CEO did as well, but he rarely dealt with anything technical except server hardware, occasionally. And usually just to troll/punish us devs (as in "Oops ! I pulled the cat5 ! ;)"). Neither of them were the most reliable of people, either. The CTO would occasionally remote in and make backups of each server -- we assumed whenever he happened to think of it -- and would also occasionally do it when asked, but it could take him a week, sometimes even up to a month to get around to it. So the backups were only really useful for retreiving lost code and assets, not so much for player data.
The lack of reliable backups and the lack of proper testing grounds (among the plethora of other issues at the company) made for an absolutely terrible dev setup, but that's just how it was, and that's what we dealt with. We were game devs, afterall. Terrible or not, we got to make games! What more could you ask for!? It was amazing and terrible and wonderful and the worst thing ever, all at the same time. (and no, I'm not sharing the company name, but it isn't EA or Nexon, surprisingly 😅)
Anyway, back to the story! My new leveling system also needed to migrate players' existing data, so... you can see where this is going.
I did as much testing and inspection of my code as I could, copied it from a personal dev script to the server's xp system, ... and debated if I really wanted to click [Apply]. Every time I considered it, I went back to check another part or do yet more testing. I ended up taking like 40 minutes to finally click it.
And when I did... that was the scariest button press of my life. And the scariest three seconds' wait afterwards. That one click could have ruined every single player's account, permanently lost us players ...
After applying it, I immediately checked my character to see if she was broken, checked the account data for corruption or botched flags, checked for broken interactions with the other systems....
Everything ended up working out perfectly, and the players loved all of the new features. They had no idea what went into building them, and certainly had no idea of what went into applying them, or what could have gone wrong -- which is probably a good thing.
Looking back, that entire environment was so fragile, it's a wonder things didn't go horribly wrong all the time. Really, they almost never did. Apocalypses did happen, but were exceedingly rare, and were ususally fixed quickly. I guess we were all super careful simply because everything was so fragile? or the decent devs were, at least. We never trusted the lessers with access 😅 at least on the main servers where it mattered. Some of the smaller servers... well, we never really cared about those.
But I'm honestly more surprised to realize I've never had nightmares of that button click. It was certainly terrifying enough.
But yay! Complete system overhaul and migration of stored and realtime player data! on prod! With no issues! And lots of happy players! Woooooo!
Thinking back on it makes me happy 😊rant deploying straight to prod prod prod prod dev server? dev on prod you chicken migration on prod wk149 git? who's a git? you're a git! scariest deploy ever game development1 -
Built a C#/.NET application with support for a serial device. Tested it on systems A, B, C initially, all Windows system, same .NET version, same targeting, same build tool version, same initial connection configuration etc, etc.
Testing - works on A and C, B nopes.
...
OK, let's check the source, is there something about B that makes it impossible to execute that bit? - No, there is not, you checked that already, stop poking around, it definitively should work on B.
...
OK, maybe admin privileges, there is I/O involved, didn't need that on A and C, but who knows - nope, doesn't work on B.
...
OK, maybe something wrong with the connection settings? First try at reinstalling driver - but no, it doesn't work on B.
...
OK let's try with another device - more/less devices on B. Other USB ports. No. Still does not work on B.
...
OK, this is stupid, but, is the cabling alright? It is, of course it is, stupid - but it still does not work on B.
...
OK, at that point I'm just gonna ask a colleague, GrumpySoftwareDev whether he has any clue why it doesn't work on B. GrumpySoftwareDev knows nothing, but discovers that one of his applications doesn't work on Windows 10. You know nothing, Jon Snow, but it doesn't work on B.
...
OK, now I'm just going to ask another colleague TheLastOfHisKind who handed B down to me somewhat bluntly if he ever experienced problems when working with B and its serial configuration. TheLastOfHisKind tells me he does not and kindly offers me some input on the situation. Still no progress to get it working on B but he hinted he might have fucked up B's driver. I already reinstalled the driver but didn't reboot, which comes after reinstall.
...
OK, I'm just gonna remove and re-install the driver, then restart. Hu! Now the UI is gone but another serial device reacted on a general call. Not fully working on B but we're getting there.
...
OK, I don't know, I'm getting frustrated, let's borrow another system D - which has roughly the same configuration as B - from my colleague StrongCurrentGuy. StrongCurrentGuy borrows me his system and cautions me not to break it. I install the driver, plug the device and copy the application from B. It just works on D. Not on B though.
...
OK, you know what. I'm done. For shits and giggles I'm gonna remove that driver again, reinstall it and restart, maybe it'll magically work afterwar- WHAT THE HELL, I JUST OPENED IT AFTER RESTARTING, IT JUST WORKS - ON B!
... seriously, what the fuck. But yeah, at least it works now.4 -
tl;dr - why you no read this?
Here I am pondering why I continue to return to my job everyday when we are currently at month 13 of a 4 month project... yea let that set in for a minute... which is still at least 3-4 months away from being deployed due to annual leave of key stake holders and the whole Christmas period creeping up and things just not going as planned every step of the way.
There's no greater demotivater - is that even how you spell it - then being stuck in a project for so long you really just don't give a shit if it works or not anymore.
This has gone from a simple - relatively speaking - project to some monolithic mayhem of requirement changes and process adjustments, that have not only delayed our team, but 3rd party vendors needing to change things as well, or the requirements being wrong early so when you get up to business testing it's like "nope, that's not what we wanted" .... despite all the sessions of you personally giving the PM all the damn requirements.
But in saying that, they (3rd party) aren't innocent either, we have found nothing but issue after issue with their product since we started this project that who ever signed off on going forward with the thing should have been shot from both sides - it's not designed for the scale we will be using it yet we didn't find that out till we got so far into the rabbit hole we had a chance to be able to do load testing.
Meh, guess I'll go to work Monday and spend another week in misery trying to deliver something that just doesn't want to know what the finish line is.4 -
Love the topic, and I have multiple.
We were designing a frontend for a new application and we were using University lingo for the text placeholders. I forgot to remove one section in which the text stated "You are looking to enroll in the University of Deez Nuts", on another section I left "Click here cuh". Our manager at the time liked the design so much, but forgot to check for spelling or texts and as such sent the demo to our entire department. Everyone saw it, and while they all found it funny it could have seriously gone wrong. Thankfully our department VP had a pretty good sense of humor.....dude also knew exactly who it was from the start.
On another application, a director, who is a friend, asked for multiple items on a request form, during testing, I added text in Spanish (I am in Texas, but Spanish is pretty well known and spoken in the state) saying "Que bien chinga <Name of the Director>" which roughly translates to "<Name of the Director> is being annoyong" (but in a very Mexican spanish way)
I neglected to consider that the dude was probably viewing the admin board and checking the items as they were being added to the system and he called me not even 3 minutes later saying "You know I can see what you add right??"
All in all, I was pretty lucky because in any other places I would have been severely reprimanded :P
There are many more, but these came at the top of my head as the better ones. -
When you let your friends test you application. All of this happened in about 3 seconds. I directly shut down the server haha. Translation: "page ... couldn't be loaded."2
-
I really like my position as the head of my department. But I am most definitely hitting walls(and in some way breaking them) concerning the way the CTO(my direct boss) deals with a lot of the things that his management team wants to do.
For example, the previous manager could only do so much in terms of directing a software team since she did not have a formal background in computer science or engineering, thus the developers that she had would tell her the different deals with many things and she would have to take their word for it. Nothing necessarily bad with this, but it just meant that a lot of things could have gone smoother had she the knowledge to fix said items. Whenever she would try to use resources(dev time or such) the CTO will resort to the all powerful manthra of "if it ain't broke don't fix it!".
but it was about more than fixing things that were breaking, our internal services and admin boards were built using all of the WRONG proper development practices, it feels as if they took the book of best practices.....and said fuck it and did whatever the fuck they wanted. It is the worst PHP/Java/JS code I have ever seen in my entire life and the reason why even though I do not concur with it I will always understand the dislike from other developers. Our services look like something that came out from the 90s, no style, no engineering concepts in place, no versioning no testing NADA zip(these are all web based services)
One in particular, it was an admin board used internally to let students evaluate their professors, the entire app is shit, and it was broken, for some UNGODLY reason, the original dev decided to use some weird external libraries he got from some blog somewhere and as such something that would take about 5 or 6 files is now a mess with over 200 php/js files all over the fucking place. The CTO insisted on fixing them, they were all broken, and I continuously told him that redesigning the application would be faster.
Mofo fought me on it, and in the end I did what I wanted and rebuilt the app.
It took me one afternoon. One fucking afternoon, over possibly 2 weeks of fixing it.
See, I am not one to just do whatever he pleases, but I am firm in my belief that if I know a better way I will do it and save precious time. The dude had to agree with me on this and promised to consider this shit on other items that will undoubtedly come up. He was lying out of his ass but oh well..........
W3 -
Having a lot of bad experiences while working as intern in startups and about to join a MNC, i wanted to share my work life balance and technical demands that i expect from a company. These are going to be my list of checkpoints that i look forward , let me know which of them are way too unrealistic. also add some of yours if i missed anything :
Work life balance demands ( As a fresher, i am just looking forward for 1a, 2a and 8, but as my experience and expertise grows, i am looking forward for all 10. Would i be right to expect them? ):
1a 8 hr/day. 1b 9h/day
2a 5days/week. 2b 6 days/week
3 work from home (if am not working on something that requires my office presence)
4 get out of office whenever i feel like i am done for the day
5 near to home/ office cab service
6 office food/gym service
7 mac book for working
8 2-4 paid leaves/month
9 paid overtime/work on a holiday
10.. visa sponsorship if outside india
Tech Demands (most of them would be gone when i am ready to loose my "fresher " tag, but during my time in internship, training i always wished if things happened this way):
1. I want to work as a fresher first, and fresher means a guy who will be doing more non tech works at first than going straight for code. For eg, if someone hires me in the app dev team, my first week task should be documenting the whole app code / piece of it and making the test cases, so that i can understand the environment/ the knowledge needed to work on it
2. Again before coding the real meaningful stuff for the main product, i feel i should be made to prepare for the libraries ,frameworks,etc used in the product. For eg if i don't know how a particular library ( say data binding) used in the app, i should be asked to make a mini project in 1-2 days using all the important aspects of data binding used in the project, to learn about it. The number of mini tasks and time to complete them should be given adequately , as it is only going to benefit the company once am proficient in that tech
3. Be specific in your tasks for the fresher. You don't want a half knowledgeable fresher/intern think on its own diverging from your main vision and coding it wrong. And the fresher is definitely not wrong for doing so , if you were vague on the first place.
4. most important. even when am saying am proficient , don't just take my word for it. FUCKIN REVIEW MY CODE!! Personally, I am a person who does a lot of testing on his code. Once i gave it to you, i believe that it has no possible issues and it would work in all possible cases. But if it isn't working then you should sit with me and we 2 should be looking, disccussing and debugging code, and not just me looking at the code repeatedly.
4. Don't be too hard on fresher for not doing it right. Sometimes the fresher might haven't researched so much , or you didn't told him the exact instructions but that doesn't mean you have the right to humiliate him or pressurize him
5. Let multiple people work on a same project. Sometimes its just not possible but whenever it is, as a senior one must let multiple freshers work on the same project. This gives a sense of mutual understanding and responsibility to them, they learn how to collaborate. Plus it reduces the burden/stress on a single guy and you will be eventually getting a better product faster
Am i wrong to demand those things? Would any company ever provide a learning and working environment the way i fantasize?3