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 to a feature"
-
Yesterday: Senior dev messages out a screenshot of someone using an extension method I wrote (he didn’t know I wrote it)..
SeniorDev: “OMG…that has to be the stupidest thing I ever saw.”
Me: “Stupid? Why?”
SeniorDev: “Why are they having to check the value from the database to see if it’s DBNull and if it is, return null. The database value is already null. So stupid.”
Me: “DBNull is not null, it has a value. When you call the .ToString, it returns an empty string.”
SeniorDev: ”No it doesn’t, it returns null.”
<oh no he didn’t….the smack down begins>
Me: “Really? Are you sure?”
SeniorDev: “Yes! And if the developer bothered to write any unit tests, he would have known.”
Me: “Unit tests? Why do you assume there aren’t any unit tests? Did you look?”
<at this moment, couple other devs take off their head phones and turn around>
SeniorDev:”Well…uh…I just assumed there aren’t because this is an obvious use case. If there was a test, it would have failed.”
Me: “Well, let’s take a look..”
<open up the test project…navigate to the specific use case>
Me: “Yep, there it is. DBNull.Value.ToString does not return a Null value.”
SeniorDev: “Huh? Must be a new feature of C#. Anyway, if the developers wrote their code correctly, they wouldn’t have to use those extension methods. It’s a mess.”
<trying really hard not drop the F-Bomb or two>
Me: “Couple of years ago the DBAs changed the data access standard so any nullable values would always default to null. So no empty strings, zeros, negative values to indicate a non-value. Downside was now the developers couldn’t assume the value returned the expected data type. What they ended up writing was a lot of code to check the value if it was DBNull. Lots of variations of ‘if …’ , ternary operators, some creative lamda expressions, which led to unexpected behavior in the user interface. Developers blamed the DBAs, DBAs blamed the developers. Remember, Tom and DBA-Sam almost got into a fist fight over it.”
SeniorDev: “Oh…yea…but that’s a management problem, not a programming problem.”
Me: “Probably, but since the developers starting using the extension methods, bug tickets related to mis-matched data has nearly disappeared. When was the last time you saw DBA-Sam complain about the developers?”
SeniorDev: “I guess not for a while, but it’s still no excuse.”
Me: “Excuse? Excuse for what?”
<couple of awkward seconds of silence>
SeniorDev: “Hey, did you guys see the video of the guy punching the kangaroo? It’s hilarious…here, check this out.. ”
Pin shoulders the mat…1 2 3….I win.6 -
Hey everyone,
First off, a Merry Christmas to everyone who celebrates, happy holidays to everyone, and happy almost-new-year!
Tim and I are very happy with the year devRant has had, and thinking back, there are a lot of 2017 highlights to recap. Here are just a few of the ones that come to mind (this list is not exhaustive and I'm definitley forgetting stuff!):
- We introduced the devRant supporter program (devRant++)! (https://devrant.com/rants/638594/...). Thank you so much to everyone who has embraced devRant++! This program has helped us significantly and it's made it possible for us to mantain our current infrustructure and not have to cut down on servers/sacrifice app performance and stability.
- We added avatar pets (https://devrant.com/rants/455860/...)
- We finally got the domain devrant.com thanks to @wiardvanrij (https://devrant.com/rants/938509/...)
- The first international devRant meetup (Dutch) with organized by @linuxxx and was a huge success (https://devrant.com/rants/937319/... + https://devrant.com/rants/935713/...)
- We reached 50,000 downloads on Android (https://devrant.com/rants/728421/...)
- We introduced notif tabs (https://devrant.com/rants/1037456/...), which make it easy to filter your in-app notifications by type
- @AlexDeLarge became the first devRant user to hit 50,000++ (https://devrant.com/rants/885432/...), and @linuxxx became the first to hit 75,000++
- We made an April Fools joke that got a lot of people mad at us and hopefully got some laughs too (https://devrant.com/rants/506740/...)
- We launched devDucks!! (https://devducks.com)
- We got rid of the drawer menu in our mobile apps and switched to a tab layout
- We added the ability to subscribe to any user's rants (https://devrant.com/rants/538170/...)
- Introduced the post type selector (https://devrant.com/rants/850978/...) (which will be used for filtering - more details below)
- Started a bug/feature tracker GitHub repo (https://github.com/devRant/devRant)
- We did our first ever live stream (https://youtube.com/watch/...)
- Added an awesome all-black theme (devRant++) (https://devrant.com/rants/850978/...)
- We created an "active discussions" screen within the app so you can easily find rants with booming discussions!
- Thanks to the suggestion of many community members, we added "scroll to bottom" functionality to rants with long comment threads to make those rants more usable
- We improved our app stability and set our personal record for uptime, and we also cut request times in half with some database cluster upgrades
- Awesome new community projects: https://devrant.com/projects (more will be added to the list soon, sorry for the delay!)
- A new landing page for web (https://devrant.com), that was the first phase of our web overhaul coming soon (see below)
Even after all of this stuff, Tim and I both know there is a ton of work to do going forward and we want to continue to make devRant as good as it can be. We rely on your feedback to make that happen and we encourage everyone to keep submitting and discussing ideas in the bug/feature tracker (https://github.com/devRant/devRant).
We only have a little bit of the roadmap right now, but here's some things 2018 will bring:
- A brand new devRant web app: we've heard the feedback loud and clear. This is our top priority right now, and we're happy to say the completely redesigned/overhauled devRant web experience is almost done and will be released in early 2018. We think everyone will really like it.
- Functionality to filter rants by type: this feature was always planned since we introduced notif types, and it will soon be implemented. The notif type filter will allow you to select the types of rants you want to see for any of the sorting methods.
- App stability and usability: we want to dedicate a little time to making sure we don't forget to fix some long-standing bugs with our iOS/Android apps. This includes UI issues, push notification problems on Android, any many other small but annoying problems. We know the stability and usability of devRant is very important to the community, so it's important for us to give it the attention it deserves.
- Improved profiles/avatars: we can't reveal a ton here yet, but we've got some pretty cool ideas that we think everyone will enjoy.
- Private messaging: we think a PM system can add a lot to the app and make it much more intuitive to reach out to people privately. However, Tim and I believe in only launching carefully developed features, so rest assured that a lot of thought will be going into the system to maximize privacy, provide settings that make it easy to turn off, and provide security features that make it very difficult for abuse to take place. We're also open to any ideas here, so just let us know what you might be thinking.
There will be many more additions, but those are just a few we have in mind right now.
We've had a great year, and we really can't thank every member of the devRant community enough. We've always gotten amazingly positive feedback from the community, and we really do appreciate it. One of the most awesome things is when some compliments the kindness of the devRant community itself, which we hear a lot. It really is such a welcoming community and we love seeing devs of all kind and geographic locations welcomed with open arms.
2018 will be an important year for devRant as we continue to grow and we will need to continue the momentum. We think the ideas we have right now and the ones that will come from community feedback going forward will allow us to make this a big year and continue to improve the devRant community.
Thanks everyone, and thanks for your amazing contributions to the devRant community!
Looking forward to 2018,
- David and Tim
45 -
As a long-time iPhone user, I am really sorry to say it but I think Apple has completed their transition to being a company that is incompetent when it comes to software development and software development processes.
I’ve grown tired of hearing some developers tell me about Apple’s scale and how software development is hard and how bugs should be expected. All of those are true, but like most rules of law, incompetence and gross negligence trumps all of that.
I’m writing this because of the telugu “bug”/massive, massive security issue in iOS 11.2.5. I personally think it’s one of the worst security issues in the history of modern devices/software in terms of its ease of exploitation, vast reach, and devastating impact if used strategically. But, as a software developer, I would have been able to see past all of that, but Apple has shown their true incompetence on this issue and this isn’t about a bug.
It’s about a company that has a catastrophic bug in their desktop and mobile platforms and haven’t been able to, or cared to, patch it in the 3 or so days it’s been known about. It’s about a company, who as of a view days ago, hasn’t followed the basic software development process of removing an update (11.2.5) that was found to be flawed and broken. Bugs happen, but that kind of incompetence is cultural and isn’t a mistake and it certainly isn’t something that people should try to justify.
This has also shown Apple’s gross incompetence in terms of software QA. This isn’t the first time a non-standard character has crashed iOS. Why would a competent software company implement a step in their QA, after the previous incident(s), to specifically test for issues like this? While Android has its issues too and I know some here don’t like Google, no one can deny that Google at least has a solid and far superior QA process compared to Apple.
Why am I writing this? Because I’m fed up. Apple has completely lost its way. devRant was inaccessible to iOS users a couple of times because of this bug and I know many, many other apps and websites that feature user-generated content experienced the same thing. It’s catastrophic. Many times we get sidetracked and really into security issues, like meltdown/spectre that are exponentially harder to take advantage of than this one. This issue can be exploited by a 3 year old. I bet no one can produce a case where a security issue was this exploitable yet this ignored on a whole.
Alas, here we are, days later, and the incompetent leadership at Apple has still not patched one of the worst security bugs the world has ever seen.
81 -
1. The quality of the coffee and toilet paper you encounter during an interview tells you more than promises about table tennis or fruit baskets.
2. Try to determine who their primary client is: subscribers, app buyers, advertisers, etc. It's a major influence on the company dynamic.
3. Before an interview, you can just say: "I would like to sit down with a PO and run through one backlog feature and one bug, to get a feel for the type of tasks at the company". Such an activity immediately reveals team structure, whether they have product owners & scrum masters, what a sprint looks like, how they prioritize tasks, and how organized/chaotic your work experience will be.16 -
I'm happy the announce the official devRant bug/feature suggestion tracker, now on GitHub!
It just went live, and you can find it here: https://github.com/devRant/devRant
Going forward, please use that issue tracker for all bug reports and feature suggestions. We decided to move bugs/features reports to GitHub because we've had a lot of people tell us they'd prefer that method since it makes tracking issues easier, and we also think it will improve searchability and maintainability of current bugs and feature suggestions.
Since we're starting from scratch with it, if there's a bug/feature that you're interested in submitting, and it's not already there, then please go ahead and add it! Even if it's been suggested before in a rant, we want to get them in the GitHub issue tracker, so please add it there too.
Feel free to let me know if you have any questions, and we hope this new method makes it easier to see what bugs we're working on fixing and makes it easier to see and discuss possible new features!46 -
I accidentally created a bug that became an amazing feature at my last job.
It was for a program to read barcode tickets (we created software and web solutions for events), and to register the barcode sacnners to the computer I had to do some magic with USB-detection since it was not specified which brand the scanners would be (so no SDK would be available).
When the scanner was plugged in it would create its own thread so it wouldn't interfere with the UI of the program when it was reading/sending data.
Somehow I messed up with the thread termination for new scanners so it would accept to connect more than one scanner and it would work flawless since it was its own thread in the program.
When I tried to think out a solution for multiple scanners when planning it I got a headache and thought that's something for later. Turned out alright in the end apparently.
8 -
A friend asked me to test a program he made
So i downloaded it, and i noticed that i crash when you try to minimize the window
After i tell him about the bug, he send me a new version, and said "I fixed it, it was pretty easy"
He just removed the minimize button
"to remove a bug, remove the feature"4 -
I’ve had a good amount of incompetent co-workers in the past. One that stands out was this junior developer who worked at one of my previous companies. He was incompetent, but that wasn’t even his worst attribute. He was incompetent, and worse, he had a piss-poor attitude.
Myself and a few other devs at the company tried to help him, but he would literally get mad when people tried to help him. Sometimes he would even call one of us over and start getting snarky with us as we tried to help him. He was a piece of shit and a shitty developer. I don’t think he built one complete feature or fixed one bug in the year he was at the company before he was eventually fired.
Oh, and aside from his incompetence and shitty attitude, he had no sense of humor. It was so annoying. My friend and I made a little song based on his name and a group that sounded like his name, and he got pissed. We always used to sing it anyway after that and it always riled him up. I feel a bit bad about that now but he pretty much got mad at everything so whatever.
One of my favorite memories of him is when he was leaving one day, my good friend/co-worker and I were having a Nerf gun battle. The junior was leaving the office, and my friend tried to get him involved in the battle and shot him, but accidentally hit him in the back of the head. He said nothing, didn’t turn around, and just walked out lol. He was not happy about it.10 -
An open letter to the guy that commented on my website:
«Function X does not work. This program is shit. I am going to uninstall it and tell everyone.»
I'm sorry that my completely open source project didn't work for you. The fact that I lost countless days and months and years working on it in my free time, without ever asking for a cent, just trying to do something good for the community, doesn't give me the right to release a feature that may be buggy.
You could have opened a bug report. But that takes time. A whole 2 minutes. I understand the urge to post such a harsh public critic on my website. That's why I was so calm and understanding when I replied to you there.
However, it's a long time I wasn't browsing devRant and I confess I felt the urge to tell you to go fuck yourself. And this is the best place to do it! I'd pay to know you. I'd love to see your face. Oooh you must be so confident of yourself. I'm sure you have accomplished a lot in your life. So here's my message:
Go Fuck Yourself Asshole9 -
I was newly hired to company. A customer came in yelling saying "there's a bug, this should do this but it's doing that..."
PM came to me and told me to "urgently fix this as this is an important customer".
So I started debugging for hours and asking around and all follow devs agreed that this is a bug. Then I found it!! And it was clear that it was not doing what the customer wanted.
I decided to look through this code history and found out that this part of the code wasn't changed for a year but the code commited before it did actually what the customer was expecting (whaaaa....)
Gathered the devs and the PM showing them what I found. They all looked at each other and then one said "ouuhhh right...yes it was doing this but we changed it to that..."
Turns out it's a feature not a bug, and everyone forgot about it.
FML8 -
Today, I finally had the opportunity to say to a client: "It is not a bug, it is a feature".
No, seriously, it is a feature.2 -
🔥 🔥 Release day! 🔥 🔥
devRantron has reached v1.0.0 today! Here is what you can do with devRantron:
1. @mention someone when posting comments
2. Filters rants with keywords
3. Add emoji when posting rants and comments
4. Get notifications
5. Browse rants, collabs and stories
6. Browser user profiles
7. Post rants
8. Create custom columns of your own choice
Thank you so much to all the contributors, especially @Dacexi for designing the app and @sirwindfield for setting up our build infrastructure.
We plan to add more features in future. For example, searching rants, edit/delete rants or comments and most importantly, themes. Right now it has a dark theme by default.
Thank you to the users to opened issues on GitHub during development. Your feedback has helped a lot.
Whenever you find a bug or want a new feature, please open a new issue on GitHub and we will look into it.
Contributors are always welcome. I am still working on writing a article about the structure of the application, I will let you guys know when that is done. It will be easier for you to contribute when you have a bigger picture.
Relevant collab: https://devrant.io/collabs/420025/
46 -
//
// devRant unofficial UWP update (v2.0.0-beta)
//
After several concepts, about 11 months of development (keep in mind that I released 20 updates for v1 in the meantime, so it wasn't a continous 11 months long development process) and a short closed beta phase, v2 is now available for everyone (as public beta)! :)
I tried to improve the app in every aspect, from finally responsive and good looking UI on Desktop version to backend performance improvements, which means that I almost coded it from scratch.
There are also of course a few new features (like "go to bottom" in rants), and more to come.
It's a very huge update, and unfortunately to move forward, improve the UI (add Fluent Design) and make it at the same level of new UWP apps, I was forced to drop the supported for these old Windows 10 builds:
- Threshold 1 (10240)
- Threshold 2 (10586)
Too many incompatiblity issues with the new UI, and for 1 person with a lot of other commitments outside this project (made for free, just for passion), it's impossible to work at 3 parallel versions of the same app.
I already done something like that during these 11 months (every single of the 20 updates for v1 needed to be implemented a second time for v2).
During the closed beta tests, thanks to the awesome testers who helped me way too much than I ever wished, I found out that there are already incompatiblity issues with Anniversary Update, which means that I will support two versions:
1) One for Creators Update and newer builds.
2) One for Anniversary Update (same features, but missing Fluent Design since it doesn't work on that OS version, and almost completly rewritten XAML styles).
For this reason v2 public beta is out now for Creators Update (and newer) as regular update, and will be out in a near future (can't say when) also for the Anniversary Update.
The users with older OS versions (problem which on PC could be solved in 1-2 days, just download updates) can download only the v1.5.9 (which probably won't be supported with new updates anymore, except for particular critcal bug fixes).
So if you have Windows 10 on PC and want to use v2 today, just be sure you have Creators Update or Fall Creators Update.
If you have Windows 10 PC with Anniversary Update, update it, or if you don't want to do that, wait a few weeks/months for the update with support for your build.
If you have an older version on PC, update it, or enjoy v1.5.9.
If you have Windows 10 Mobile Anniversary Update, update it (if it's possible for your device), or just wait a few weeks/months for the update with support for your build.
If you have Windows 10 Mobile, and because of Microsoft stupid policy, you can't update to Anniversary Update, enjoy v1.5.9, or try the "unofficial" method (registry hack) to update to a newer build.
I hope it's enough clear why not everyone can receive the update today, or at all. :P
Now I would like to thank a few people who made this possible.
As always, @dfox who is always available for help me with API implementations.
@thmnmlist, who helped me a lot during this period with really great UI suggestions (just check out his twitter, it's a really good person, friend, designer and artist: https://twitter.com/thmnmlist).
And of course everyone of the closed beta testers, that reported bugs and precious suggestions (some of them already implemented, others will arrive soon).
The order is random:
@Raamakrishnan
@Telescuffle
@Qaldim
@thmnmlist
@nikola1402
@aayusharyan
@cozyplanes
@Vivaed
@Byte
@RTRMS
@tylerleonhardt
@Seshpengiun
@MEGADROID
@nottoobright
Changelog of v2.0.0-beta:
- New UI with Fluent Design and huge improvements for Desktop;
- Added native support for Fall Creators Update (Build 16299);
- Changed minimum supported version to Creators Update (Build 15063), support for Anniversary Update (Build 14393) will arrive soon;
- Added mouse support for Pull-To-Refresh;
- Added ability to change your username and email;
- Added ability to filter (by 'Day', 'Week', 'Month' and 'All') the top Rants;
- Added ability to open rant links in-app;
- Added ability to zoom GIFs (just tap on them in the Rant View);
- Added 'go to bottom' button in the Rant View (if more than 3 comments);
- Added new theme ('Total Black');
- ...complete changelog in-app and on my website (can't post it here because of the 5000 characters limit)...
What will arrive in future updates:
- 'Active Discussions' screen so you can easily find rants that have recent comments/discussions;
- Support for 'Collabs';
- Push Notifications (it was postponed and announced too many times...);
- More themes and themes options;
- and more...
If you still didn't download devRant unofficial UWP, do it now: https://microsoft.com/store/apps/...
If you find some bugs or you have feature suggestion, post it on the Issue Tracker on GitHub (thanks in advance for your help!): https://github.com/JakubSteplowski/...
I hope you will enjoy it! ;)
52 -
string excuses[]={
"it's not a bug it's a feature",
"it worked on my machine",
"i tested it and it worked",
"its production ready",
"your browser must be caching the old content",
"that error means it was successful",
"the client fucked it up",
"the systems crashed and the code got lost" ,
"this code wont go into the final version",
"It's a compiler issue",
"it's only a minor issue",
"this will take two weeks max",
"my code is flawless must be someone else's mistake",
"it worked a minute ago",
"that was not in the original specification",
"i will fix this",
"I was told to stop working on that when something important came up",
"You must have the wrong version",
"that's way beyond my pay grade",
"that's just an unlucky coincidence",
"i saw the new guy screw around with the systems",
"our servers must've been hacked",
"i wasn't given enough time",
"its the designers fault",
"it probably won't happen again",
"your expectations were unrealistic",
"everything's great on my end",
"that's not my code",
"it's a hardware problem",
"it's a firewall issue",
"it's a character encoding issue",
"a third party API isn't responding",
"that was only supposed to be a placeholder",
"The third party documentation is wrong",
"that was just a temporary fix.",
"We outsourced that months ago.","
"that value is only wrong half of the time.",
"the person responsible for that does not work here anymore",
"That was literally a one in a million error",
"our servers couldn't handle the traffic the app was receiving",
"your machines processors must be too slow",
"your pc is too outdated",
"that is a known issue with the programming language",
"it would take too much time and resources to rebuild from scratch",
"this is historically grown",
"users will hardly notice that",
"i will fix it" };11 -
You might know by now that India demonetized old higher value notes and brought in new one. The new ones easily tear off easily and generally feel cheaper and less reliable than pervious ones.
One interesting thing people discovered is that rubbing it with cloth makes the ink transfer to the cloth. Sign of crap printing. Here's government response:
The new currency notes have a security feature called 'intaglio printing'. A genuine currency note can be tested by rubbing it with a cloth; this creates a turbo-electric effect, transferring the ink colour onto the cloth
TL;DR: its not a bug, it's a feature7 -
At one of my former jobs, I had a four-day-week. I remember once being called on my free Friday by an agitated colleague of mine arguing that I crashed the entire application on the staging environment and I shall fix it that very day.
I refused. It was my free day after all and I had made plans. Yet I told him: OK, I take a look at it in Sunday and see what all the fuzz is all about. Because I honestly could fathom what big issue I could have caused.
On that Sunday, I realized that the feature I implemented worked as expected. And it took me two minutes to realize the problem: It was a minor thing, as it so often is: If the user was not logged in, instead of a user object, null got passed somewhere and boom -- 500 error screen. Some older feature broke due to some of my changes and I never noticed it as while I was developing I was always in a logged in state and I never bothered to test that feature as I assumed it working. Only my boss was not logged in when testing on the stage environment, and so he ran into it.
So what really pushed my buttons was:
It was not a bug. It was a regression.
Why is that distinction important?
My boss tried to guilt me into admitting that I did not deliver quality software. Yet he was the one explicitly forbidding me to write tests for that software. Well, this is what you get then! You pay in the long run by strange bugs, hotfixes, and annoyed developers. I salute you! :/
Yet I did not fix the bug right away. I could have. It would have just taken me just another two minutes again. Yet for once, instead of doing it quickly, I did it right: I, albeit unfamiliar with writing tests, searched for a way to write a test for that case. It came not easy for me as I was not accustomed to writing tests, and the solution I came up with a functional test not that ideal, as it required certain content to be in the database. But in the end, it worked good enough: I had a failing test. And then I made it pass again. That made the whole ordeal worthwhile to me. (Also the realization that that very Sunday, alone in that office, was one of the most productive since a long while really made me reflect my job choice.)
At the following Monday I just entered the office for the stand-up to declare that I fixed the regression and that I won't take responsibility for that crash on the staging environment. If you don't let me write test, don't expect me to test the entire application again and again. I don't want to ensure that the existing software doesn't break. That's what tests are for. Don't try to blame me for not having tests on critical infrastructure. And that's all I did on Monday. I have a policy to not do long hours, and when I do due to an "emergency", I will get my free time back another day. And so I went home that Monday right after the stand-up.
Do I even need to spell it out that I made a requirement for my next job to have a culture that requires testing? I did, and never looked back and I grew a lot as a developer.
I have familiarized myself with both the wonderful world of unit and acceptance testing. And deploying suddenly becomes cheap and easy. Sure, there sometimes are problems. But almost always they are related to infrastructure and not the underlying code base. (And yeah, sometimes you have randomly failing tests, but that's for another rant.)9 -
Random fact #0
Back in the days of SEGA Saturn, SEGA was really picky in terms of the game stability. All the games that we're about to be released had to pass a series of tests, like for instance they had to run for almost a week without any crash non stop on a real hardware, or withstand cartridge tilting. If it failed, SEGA wouldn't license it and developer had to fix the bugs and re-send it again.
To fool SEGA testers, game devs we're adding exception screens with the fake "hidden content". Like in Sonic 3D Blast, it presented a screen in the image below and then the level select screen.
So yeah, it's not a bug - it's a feature
10 -
!!fml
"Root, go fix this bug. It'll take you two days."
The "bug" is a feature that was never implemented for one particular payment type.
The code in question is two years old, full of typos, smells, junior-isms, and is convoluted AF. The feature's commit touched 190 files and implemented many other features as well. Thus far, I have been unable to narrow down where this particular feature's code lives for the other payment types, nor which code or payment paths lead to it. Burned out, I can barely focus on the screen, let alone follow its many twisting and dynamically-inferred paths. I hint as to the ticket's scavenger hunt nature during standup.
"But I wrote comments on the ticket telling you exactly where to look to fix it," Thundercunt admonishes in front of the team.
"Sure, you did," Root replies. "You reworded what the original dev had said in the comments 20 minutes prior, and agreed with him. His comments were helpful, but it doesn't tell me how any of it works," she continues.
TC scoffs and closes the meeting.
Root stares blankly, seeing neither code nor screen, questions her life decisions, and recalls the previous tickets she has worked on: nearly every one of them busywork, fixing other people's bugs. Bugs she never could have gotten away with if she tried.
"Why do I put up with this?" She asks. "They don't care, and it's killing me."
But the bills remain, and so must she.
"Fuck my life" she finally decides.19 -
That moment your javascript has a bug but its a cool one so you decide to leave it and call it a "new feature"
2 -
Productive day!
Rewrote an intern's feature and briefly explained how/why
Gave intern a choice of projects, and explained them
Removed two unused models, one unused route
Dried up two views into a partial
Redesigned said partial
Tested validation edge cases (ex: Jan 10nd, 101bc)
Fixed an api
Simplified three models
Added scheduling and platform restriction to a feature
Le wild bug appears: a user with negative xp!?
Wrote a migration to expand players' max xp to 2^64-1 because a certain legacy game gives it away like my ex-boss makes promises. Chewed at devs, but they're all long gone so :/
Won two games of pool
Browsed devRant
Busy day, and all of this while falling asleep! 😊
I'm quite proud of myself today.16 -
Step 1: Create and deploy feature. Get feedback: It works fine!
A year passes...
Step 2: Add another small feature that is completely independent from previous feature.
Step 3: Notice that feature #1 is broken.
Why the HELL did it stop working?!? I didn't change anything related to that feature. I can't explain that!
Step 4: Examine bug and find out something unknown about the technology used in feature #1.
Why the HELL did that ever work in the first place?!?
Step 5: Get time to fix it. Don't get time to find out why it worked for a year...
The problem is solved, the mystery remains...3 -
Our product owner's equivalent of "It's not a bug, it's a feature" seems to be "It's not a new requirement, it's a clarification."
:-/2 -
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 -
aslkfjasf. i've spent 12 hours today (and lots more over the past two days) trying to reproduce a bug that my [sort of] coworker insists is present. I haven't seen any proof of it anywhere, let alone steps to reproduce it.
I've poured through the code, following all of its tangled noodles of madness from start to fuck-this-shit. I've read and reread the pile of demon excrement so many times i can still read the code when i close my eyes. so. not. kidding.
anyway, the coworker person is getting mad because i haven't fixed the bug after days, and haven't even reproduced it yet. This feature is already taking way too fucking long so I totally don't blame him. but urghh it's like trying to unwind a string someone tied into a tight little ball of knots because they were bored.
but i just figured out why I haven't been able to reproduce it.
the stupid fucking unreliable dipshit ex-"i'm a rockstar and my code rocks"-CTO buffoon (aka API Guy, aka the `a=b if a!=b`loody pointless waste of mixed spaces and tabs) that wrote the original APIs ... 'kay, i need to stop for breath.
The dumbfuck wrote the APIs (which I based the new ones on mostly wholesale because wtf messy?), but he never implemented a very fucking important feature for a specific merchant type. It works for literally every type except the (soon-to-be) most common one. and it just so happens that i need that very specific feature to reproduce this bug.
Why is that one specific merchant type handled so differently? No fucking idea.
But exactly how they're handled differently is why I'm so fking pissed off. It's his error checking. (Some) of his functions return different object types (hash, database object, string, nullable bool, ...) depending on what happened. like, when creating a new gift, it (eventually...) either returns a new Gift object or a string error basically saying "ahhh everything's broken again!" -- which is never displayed, compared against, or recorded anywhere, ofc. Here, the API expects a Hash. That particular function call *always* returns a Hash, no matter what happens in the myriad, twisting, and interwoven branches the code could take. So the check is completely pointless.
EXCEPT. if an object associated with another object associated with the passed object (yep) has a type of 8. in which case, one of the methods in the chain returns a PrintQueue that gets passed back up the call stack. implicitly, and nested three levels in. ofc.
And if the API doesn't get its precious Hash, it exclaims that the merchant itself is broken, and tells the user to contact support. despite, you know, the PrintQueue showing that everything worked perfectly. In fact, that merchant's printer will be happily printing away in the background.
All because type checking is this guy's preferred method of detecting errors. (Raise? what's that? OOP? Nah, let's do diverging splintered-monolithic with some Ruby objects thrown in.)
just.
what the crap.
people should keep their mental diarrhea away from their keyboards.
Anyway. the summary of this long-winded, exhaustion-fueled tirade is that our second-most-loved feature doesn't work on our second-most-common merchant type.
and ofc that was the type of merchant i've been testing on. for days. while having both a [semi] coworker and my boss growing increasingly angry at me for my lack of progress.
It's also a huge feature, and the boss doesn't understand that. (can't or won't, idk)
So.
yep.
that's been my week.
...... WHAT A FUCKING BUFFOON!rant sheogorath's spaghetti erroneous error management vomit on her sweater already your face is an anti-pattern dipshit api guy two types bad four types good root swears oh my3 -
8:50am aight alarm clock, give me 5 more minutes
8:55am ok lets round it to 9, wake me up then
9:00am aight enough. lets just sleep for 1 more minute since 9:00 is too round
9:43am fuck
9:44am ok its time to finally study for the upcoming college exam
9:45am nothing but a fresh day to start studying for college
9:46am eh i dont have a lot to study so I'll do it in 2pm, I'll code my project instead
2pm hold on 5 more minutes until i finish coding this feature and then I'll study
5pm where the fuck is this bug coming from
5:504pm goddamn i found it
6:36pm holy shit its already over 6pm, I'll study at night
7:42pm ok its night now, time to study but I'll do it when i fix all bugs
8:14pm ok bugs fixed, commit. lets study
8:15pm you know what, im way too tired and exhausted from this coding, I'll take a short 30 minute break and then I'll study
10:15pm ok im feeling fresh bois lets study now theres not too much
1:31am damn this movie was good
1:32am fuck i forgot to study, I'll do it tomorrow
2:10am *posts this rant*6 -
I don't want to write clean code anymore :(
I read Clean Code, Clean Coder, and watched many uncle bob's videos, and I was able to apply best practices and design patterns
I created many systems that really stood the test of time...
Management was kind enough to introduce me to uncle bob clean code in the first place, letting us watch it during work hours. after like one year, my code improved 400% minimum because I am new and I needed guidance from veterans...
That said, to management I am very slow, compared to this other guy, they ask me for a feature and my answer would be like "sure, we need to update the system because it just doesn't support that right now, it is easy though it would take 2 days tops"
they ask the same thing for the other guy : "ok let me see what I can do", 1 hour later, on slack, he writes : done. he slaps bunch of if-statement and make special case that will serve the thing they asked for.
oh 'cool' they say -> but it doesn't do this -> it needs to do that -> ok there is a new bug,-> it doesn't work in build mode-> it doesn't work if you are logged in as a guest, now its perfect ! -> it doesn't work on Android -> ok it works on android but now its not perfect anymore.
and they feel like he is fast (and to be fair he is), this feature? done. ok new bugs? solved. Android compatibility ? just one day ... it looks like he is doing doing doing.
it ends up taking double the time I asked for, and that is not to mention the other system affected during this entire process, extra clean up that I have to do, even my systems that stood the test of time are now ruined and cannot be extracted to other projects. because he just slaps whatever bools and if statements he needs inside any system, uses nothing but Singleton pattern on everything. our app will never be ready-for-business, this I can swear. its very buggy. and to fix it, it needs a change in mentality, not in code.
---------------
uncle bob said : write your code the right way, and the management will see that your code generates less errors, with time, you will earn respect even though they will feel you are slow at first.
well sorry uncle, I've been doing it for a year, my image got bad, you are absolutely right, only when there is no one else allowed to drop a giant shit inside your clean code.
note: we don't really have a technical lead.
-------------------
its been only two days since my new "hack n' slash" meta, the management is already kind of "impressed" ... so I'll keep hacking and slashing until I find a better job.9 -
paraphrased
C: "hey, we've seen the ticket resolved with a bug bounty rewarded to you! congratulations!"
C: "we've talked about it today on our meeting and think we deserve 85% - since it was discovered by you while working on our contract and system!"
That was so bizarre to me and I was speechless for a good 10 minutes, didn't even have any witty reply afterwards.
I just cancelled the contract, reported the client to my middleman, explained it to the on-sight business contact and requested the final milestone to be released with one week notice until it gets to be a public case if not released through escrow.
I'm still somewhat shocked at how greedy one can be, the whole system package I was working on had estimated 150-300k post first week launch (tons of existing clients merged and unified into one system, with much more paid and feature stuff etc.), the bounty I got was around 3.5k, it still didn't sink in me.7 -
For a week+ I've been listening to a senior dev ("Bob") continually make fun of another not-quite-a-senior dev ("Tom") over a performance bug in his code. "If he did it right the first time...", "Tom refuses to write tests...that's his problem", "I would have wrote the code correctly ..." all kinds of passive-aggressive put downs. Bob then brags how without him helping Tom, the application would have been a failure (really building himself up).
Bob is out of town and Tom asked me a question about logging performance data in his code. I look and see Bob has done nothing..nothing at all to help Tom. Tom wrote his own JSON and XML parser (data is coming from two different sources) and all kinds of IO stream plumbing code.
I use Visual Studio's feature create classes from JSON/XML, used the XML Serialzier and Newtonsoft.Json to handling the conversion plumbing.
With several hundred of lines gone (down to one line each for the XML/JSON-> object), I wrote unit tests around the business transaction, integration test for the service and database access. Maybe couple of hours worth of work.
I'm 100% sure Bob knew Tom was going in a bad direction (maybe even pushing him that direction), just to swoop in and "save the day" in front of Tom's manager at some future point in time.
This morning's standup ..
Boss: "You're helping Tom since Bob is on vacation? What are you helping with?"
Me: "I refactored the JSON and XML data access, wrote initial unit and integration tests. Tom will have to verify, but I believe any performance problem will now be isolated to the database integration. The problem Bob was talking about on Monday is gone. I thought spending time helping Tom was better than making fun of him."
<couple seconds of silence>
Boss:"Yea...want to let you know, I really, really appreciate that."
Bob, put people first, everyone wins.11 -
Stakeholder: There’s a bug on the site.
Me: That’s not a bug. The site is supposed to do that. Your team asked for that feature and we implemented it last summer.
SH: They did?
Me: Yes, they did.
SH: You sure it’s been like this since last summer?
Me: YES!!!4 -
Reached out to Apple to report a bug where my screen gets pushed down 50% and leaves an odd blank area. Turns out the bug is literally a feature 😂
6 -
The overhead on my JS projects is killing me. Today, I went to implement a simple feature on a project I haven't touched in a few weeks. I wasted 80% of my time on mindless setup crap.
- "Ooh, a simple new feature to implement. Let's get crackin'!"
- update 1st party lib
- ....hmm, better update node modules
- and Typescript typings while I'm at it
- "ugh yeah," revert one node module to outdated version because of that one weird proxy bug
- remove dead tsd references
- fix TS "errors" generated by new typings
- fix bug in 1st party lib
- clean up some files because the linter is nagging me
- pee
- change 6 lines of code <-- the work
- commit!3 -
Not really a bug, but once I tried to learn building function ajax per table asynchronously instead of calling all of them at once. Spend like couple of hours of trial of error. It wasn’t needed at the time, but suddenly I need to fetch something separately because of a new feature. Just write a couple and line it’s done
-
Dear Managers,
This is not efficient:
Boss: * calls *
Me: * answers *
B: there's a bug in feature ABC! The form doesn't work!
M: ABC uses a lot of forms. Is it Form A, B, or C?
B: Umm... let's just go on a Zoom call!
* 5 minutes trying to set up a Zoom call *
* 3 more minutes trying to find the form *
B: This form in here.
M: It works fine for me. What data are you inputting?
B: * takes 5 minutes trying to reproduce the bug * (in the meantime, the call is basically an awkward silence)
You spent 5 minutes wasting both of our times trying to set up a Zoom meeting, and another 8 wasting MY tine trying to find the bug.
This is efficient:
B: There is a bug in form C. If I try to upload this data, it malfunctions.
M: Thank you. I'll look into it.
You saved me 8 minutes of staring at a screen and saved us both another 5 minutes of setting up a meeting.6 -
!rant & story_time
This happend to the startup I was working for at ~2011. I was a junior Android dev, working on a very popular app.
During experiments for a new feature, I discovered that the system AlarmManager has a serious bug - you can set a repeating alarm with interval=0ms. If your app takes more then 1 ms to handle the Intent, then the AlarmManager will start to fill up the intent Queue, with unexpected results to the OS. causing it to slow down, and reboot when it ran out of Ram. Why? my guess was that because the AlarmManager was part of the OS, then any issues caused by it caused the system process to ran out of ram, crashing it, and the whole system with it. the real kicker was that even after a reboot, the AlarmManager still had Intents queued, causing the device to bootloop for a while, untill the queue was cleared. My boss decided to report the problem to google, as this was an issue in the OS. I built an example app, that caused the crash 10-30 seconds after starting, and submitted to Google. Google responded later that day with "not an issue, no one will ever do this".
Well... At this point I decided to review the autoupdate feature in our app, to make sure this will not happen to us. We just released a new feature where a user can set an update schedule option in the app settings - where you could setup a daily, weekly, or hourly update for the app. after reviewing it, It looked good, and the issue was not triggered in the manual QA I did. So, it was all good. And we released an updated version to the store.
After we did an update-install, we discoverd that, there was a provlem reading the previous version SharedPrefs value for the update schdule settings, and the value defaulted to 0...
the result was, our app caused all our users to go into a bootloop, and because the alarm was reset when the devices booted up, the bootloop could only be solved in a factory reset, or removing our app, before the device rebooted, and then waiting a few reboot cycles.
We lost 50 places in the market, and it took us 6 months to get back to where we were.
It was not my fault, but it sucked big time!4 -
Just watched sam and niko youtube channel’s latest video about a bug/feature in windows when you do this:
1. Create a new folder
2. Put a file or two or more inside it
3. Select all those files
4. Right click and send to compressed (zip)
5. Press ctrl+z
6. That folder and its contents disappears to another dimension
🤯
Here is the video link btw https://youtu.be/YY5zfbDlSMs1 -
- implement feature
- manager suggests a different way to do it
- manager's version adds bug
- get blamed
- manager makes you implement feature the way you originally did it
..... -
Easy cop out for people who wrote code vulenerable to SQL injection: It's not a bug, it's a feature that let's users search using SQL syntax.1
-
Bugfix I am most proud of?
The ones where I dont just fix a bug, but refactor an old (possibly shitty) feature thanks to new knowledge, making the next person's job easier in the process :)3 -
Customer: (calls emergency hotline) We have a really bad bug!
Rep: What seams to be the issue?
Customer: I need to talk to Sam, he knows what to do, tell him it's urgent.
Rep: can I tell Sam what the issue is?
Customer: Well, Sam built a newsletter program but I don't have a way to import mass amounts of emails addresses.
Rep: That sounds like a feature, not a problem.
Customer: why wouldn't it do that? Would you build a car without a steering wheel?
Rep: I am not sure that's relevant to the problem.
Customer: what do you mean?
Rep: I would say it is more like, "would you build a car without a pair of jet skis attached to the back." And we would respond with, "we would be happy to add Jet Skis, but it's going to cost you additional money."
Customer: So, how are we going to fix this bug in YOUR software?
Rep: :/5 -
When a minor bug inspires clients to add a new functionality :|
Instead of 'video calling' icon to make video calls, I mistakenly displayed calendar icon in the App and now clients want me to add schedule video call feature :|6 -
PM: Ok Android, i've reviewed the latest build, you are good to release. Waiting on iOS's build to test.
Me: ... are we not holding all builds until we hear back from backend about that bug?, as we likely have to change something on our side?
PM: Which bug?
Me: ... the only one we discussed yesterday in the team meeting.
PM: How many customers is it affecting?
Me: that we know of, one ... the CEO of our company
PM: oh that one, yeah were not doing that anymore.
Me: WHAT? i've been waiting all day / night to hear back. Why are we not doing this?
PM: ¯\_(ツ)_/¯ ... Everything is too messy at the minute anyway, the release plan is changing every day. Need to keep it back in line.
Me: ... the plan has changed exactly once. We had a plan at the start of last week for the last release, we changed it YESTERDAY to include 2 critical bug fixes. The only issue with the plan changing is nobody telling us these aren't bugs anymore
PM: We can discuss tomorrow in the team meeting.
CEO: oh hey guys, yeah we pulled that bug fix. Its not really a bug, more like a missing feature. No way it will get done before xmas. Going to live with the way it works for now and fix it properly next year.
Me: Ok, fair enough, but we really need to be told these decisions.
CEO: sure, sorry, didn't think anyone was blocked by this. What was the blocker?
Me: ..... you asked me yesterday to get this bug fix in the build ... you asked for the final build to be made today so we can go through the app store review. As we all discussed yesterday, today is kind of the last day we can really do this.
CEO: ok, its late, we can discuss this tomorrow in the team meeting.
Me: ..... ..... ..... ..... sure7 -
So… I released v2.0.0 of devRant UWP a few weeks ago.
Then I got a lot of reports of problems on Windows 10 Mobile and older (than 1809) versions of Windows 10 on Desktop.
I decided to resubmit v2.0.0-beta16 to the store, and try to find the issue in the update… I didn't find it.
The code seems the same as the working version (at least the part I try to test is 100% equal).
So it seems I fucked up the vs project.
This means that to find the issue I can spend weeks to search it over and over inside the latest project (using shitty emulators of older Windows 10 builds to debug it), or I could just restore it to the old v2.0.0-beta16 (released in august) and implement again every single new feature and fix (something like 5 new features, dozens of improvements, changes and bug fixes).
In any case, this will require a lot of time (which I don't have at this moment).
I'm really sorry for this inconvenience, I know some of you use my client daily (~3.000 users I guess), I'm really glad someone likes it, and thanks a lot for the awesome reviews and feedback, but stable v2 (v2.1.0 at this point) will be available not earlier than in February.
Probably some of you have already download v2.0.0 while it was available in the store, and maybe it works on your device (please let me know in the comments below if you did, how is it going, and also if you like the new features and improvements).
After this epic fail, and more than 1 year (way too much) of v2 public beta, I want to throw the current project in the trash, and start it from scratch.
Which means I will start to work on v3 as soon as you will see v2.1.0 in the store, making it faster, lighter and with better support for the latest Windows 10 (Fluent Design and not) features, dropping the support for the very old UWP API.
Thanks for your attention.
Have a good day (or night)!
5 -
While writing up this quarter's performance review, I re-read last quarter's goals, and found one my boss edited and added a minimum to: "Release more features that customers want and enjoy using, prioritized by product; minimum 4 product feature/bug tickets this quarter."
... they then proceeded to give me, not four+ product tickets, but: three security tickets (two of which are big projects), a frontend ticket that should have been assigned to the designer, and a slow query performance ticket -- on top of my existing security tickets from Q3.
How the fuck was I supposed to meet this requirement if I wasn't given any product tickets? What, finish the monster tickets in a week instead of a month or more each and beg for new product tickets from the product manager who refuses to even talk to me?
Fuck these people, seriously.8 -
Me: Right, its Monday, time for a fresh start. Things have been unbearable, but i've nowhere else to go just yet. I gotta just dig deep, ignore everything bad and just get it done, It's all about positivity right? Lets just ignore the little things and keep moving.
*My morning so far, 2 hours in*
Remote dev: (timezone 5 hours earlier than me) Hey so whats the plan for this quarter?
Me: ... I posted a big detailed plan in the group chat on Friday night so you wouldn't be delayed ... but anyway, lets just move on. I need you to work on A, B and C. A is just copying what Android has already done, for B one of the backend guys working next to you is doing this, he'll be able to help you. C is all documented in the ticket.
Remote dev: cool thanks.
Local dev: So I was just chatting with remote dev ... yeah he told me he has no idea what he's suppose to do.
Me: ..... Ok i'll book a video call with him in the morning. Can't do it right now.
==========
Remote dev: Hey i'm helping the BE team do some testing. I found a bug in Android. Homepage says theres no trips. But Offers screen says there is.
Me: Ok so just to confirm, The "available" offers screen has offers to accept, but the white notification on the homepage saying "You have X offers to accept" is not showing up?
Remote dev: Correct!
*debugging for 5 mins*
Remote dev: actually no, the "accepted" offers tab has offers, but the homepage says there are no upcoming offers to work on.
Me: ..... ok, thats very different ... but sure, let me have a look.
Me: Right so the BE are ... again ... sending down expired offers. Looks like the accepted tab isn't catching it and the homepage is.
Remote dev: Right i'll open a ticket for Android.
Me: ... and BE team.
Remote dev: why?
Me: ... because they once again have timezone issues. This keeps causing issues in random places. BE need to fix this everywhere.
Remote dev: right, i'll chat to them and see if they can fix it.
==========
Product: So this ticket xxxxx is clear right?
Me: eh, kind of, so you want us to add feature X to user type A?
Product: correct.
Me: right but I don't see anywhere talking about the time it will take to build the screen for feature X
Product: What do you mean the screen?
Me: ... well, feature X is only accessible on screen Y ... we would have to change screen Y to support user type A ... you know ... so they can ... use the feature
Product: .... hhhhmmm .... i suppose you are right. Well we can't just add screen Y, we'll have to add W and Z, it won't make sense without them.
Me: ... ok sure, but our estimates put us over for this quarter. I don't think we can just add in 3 screens.
Product: No this is a must have.
Me: Ok so we'll have to drop something else.
Product: hhhmmm, don't think we can ... let me get back to you.
==========
Backend team invited me to a meeting at 6am my time on Friday.
==========
... 2 hours into Monday ... there must be vodka around here somewhere -
> be me a 23 y.o intern
> two years on self learned MEAN stack
> first day of intern<
> boss: we need you to become an iOS intern
> me: *whut*
> me: *thinking swift syntax is similar to JavaScript*
> me: OK, in swift ?
> boss: No, in Obj-C
> me: *fuck*
> spend 2 days to familiarize with Obj-C
> boss: Here's a bug, solve it.
> me: OK
> me: *checking their code for the first time*
> me: *fuck, fucking huge*
> me: *open up bug related ViewConttoller*
> me: *fuck, 6k lines of code*
> me: *fucking MVC*
> spend 2 hours to fix the bug <
> boss: you did great ! awesome
> me: *heh*
> boss: *announce to everyone* from now on INTERN will take over the project.
> me: *whut*
> boss: here's our roadmap plz implement features
> after 3 months <
> me fixing bug <
> me do feature development <
> me write shitty code <
.
.
.
repeat, life as an intern6 -
Hey guys,
this rant will be long again. I'm sorry for any grammar errors or something like that, english isn't my native language. Furthermore I'm actually very sad and not in a good mood.
Why? What happened? Some of you may already know - I'm doing my apprenticeship / education in a smal company.
There I'm learning a lot, I'm developing awesome features directly for the clients, experience of which other in my age (I'm only 19 years old) can only dream.
Working in such a small company is very exhausting, but I love my job, I love programming. I turned my hobby into a profession and I'm very proud of it.
But then there are moments like the last time, when I had to present something for a client - the first presentation was good, the last was a disaster, nothing worked - but I learned from it.
But this time everything is worse than bad - I mean really, really worse than bad.
I've worked the whole week on a cool new feature - I've done everything that it works yesterday, that everything gets done before the deadline of yesterday.
To achieve this I've coded thursday till 10pm ! At home! Friday I tested the whole day everything to ensure that everything is working properly. I fixed several bugs and then at the end of the day everything seems to be working. Even my boss said that it looks good and he thinks that the rollout to all clients will become good and without any issues.
But unfortunately deceived.
Yesterday evening I wrote a long mail to my boss - with a "manual". He was very proud and said that he is confident that everything will work fine. He trusts me completly.
Then, this morning I received a mail from him - nothing works anymore - all clients have issues, everything stays blank - because I've forgotten to ensure that the new feature (a plugin) and its functionality is supported by the device (needs a installation).
First - I was very shoked - but in the same moment I thought - one moment - you've written an if statement, if the plugin is installed - so why the fuck should it broken everything?!
I looked instant to the code via git. This has to be a very bad joke from my boss I thought. But then I saw the fucking bug - I've written:
if(plugin) { // do shit }
but it has to be if(typeof plugin !== 'undefined')
I fucked up everything - due to this fucking mistake. This little piece of shit I've forgotten on one single line fucked up everything. I'm sorry for this mode of expression but I thought - no this can not be true - it must be a bad bad nightmare.
I've tested this so long, every scenario, everything. Worked till the night so it gets finished. No one, no one from my classmates would ever think of working so long. But I did it, because I love my job. I've implemented a check to ensure that the plugin is installed - but implemented it wrong - exactly this line which caused all the errors should prevent exactly this - what an irony of fate.
I've instantly called my boss and apologized for this mistake. The mistake can't be undone. My boss now has to go to all clients to fix it. This will be very expensive...
Oh my goodnes, I just cried.
I'm only working about half a year in this company - they trust me so much - but I'm not perfect - I make mistakes - like everyone else. This time my boss didn't looked over my code, didn't review it, because he trusted me completly - now this happens. I think this destroyed the trust :( I'm so sad.
He only said that we will talk on monday, how we can prevent such things in the feature..
Oh guys, I don't know - I've fucked up everything, we were so overhelmed that everything would work :(
Now I'm the looser who fucked up - because not testing enough - even when I tested it for days, even at home - worked at home - till the night - for free, for nothing - voluntary.
This is the thanks for that.
Thousand good things - but one mistake and you're the little asshole. You - a 19 year old guy, which works since 6 months in a company. A boss which trusts you and don't look over your code. One line which should prevent crashing, crashed everything.
I'm sorry that this rant is so long, I just need to talk to you guys because I'm so sad. Again. This has happend to frequently lately.16 -
There are three things in my workflow that I don't like:
1. Feature requests appearing out of thin air.
It's common to be handled work at 2pm that needs to be deployed by the end of day. Usually it's bug fixes, and that's ok I guess, but sometimes it's brand new features. How the fuck am I supposed to do a good job in such a short time? I don't even have time to wrap my head around the details and I'm expected to implement it, test it, make sure it doesn't break anything and make it pass through code review? With still time to deploy and make sure it's ok? In a few hours? I'm not fucking superman!
2. Not being asked about estimates.
Everything is handed to me with a fixed deadline, usually pulled off my PM's ass, who has no frontend experience. "You have two weeks to make this website." "You must have this done this by tomorrow morning." The result, of course, is rushed code that was barely tested (by hand, no time for unit or integration tests).
3. Being the last part of the product development process.
Being the last part means that our deadlines are the most strict. If we don't meet the deadline, the client will be pissed. The thing is, the design part is usually the one that exceeds its time (because clients keep asking for changes). So when the project lands on our desks it's already delayed and we have to rush it.
This all sounds too much like bad planning to me. I guess it's the result of not doing scrum. There are no sprints, no planning meetings, only weekly status update meetings. Are your jobs similar? Is it just usual "agency work"?
I'm so tired of the constant pressure and having to rush my work. Oh, and the worst part is we don't have time for anything else. We're still stuck with webpack 2 because we never have time to update it ffs.6 -
This is a friend's story:
So I've been trying to upload a free sticker pack for iMessage to AppStore for a while now. Why "trying"? because it keeps getting declined for the silliest reasons. It's nothing complex: just a bunch of our company's stickers about dev life. "Stickers for devs, from devs."
The first time Apple has declined the app because of the overall design, the second time it was because we used iMessage in the title. But this time it makes no sense at all. This is the message I got from Apple:
"Your app contains references to test, trial, demo, beta, pre-release or other incomplete content.
Specifically, some of your app’s stickers have “beta” references."
Huh? Check out the pic - one of our dev-related stickers says "still in beta". I guess Apple took that way too literally. Good thing they didn't tell me my app was too buggy because it has a sticker of a bug which says "it's not a bug, it's a feature"...
On second thought, what if AppStore is a modern-day Genie? Maybe I should add a sticker that says "Apple owns me $20 million in stock"? Or just one that says "Apple approves this sticker pack".
#Thisneverhappens_on_googleplay #appstore_make_a_wish #rookout
8 -
I've been working on implementing a fairly large feature on a project at work--
**Sorry. I should rephrase that**
I've been *trying* to work on implementing a fairly large feature on a project at work.
It's slightly complicated because I'm not as "in the know" with the project as I should be. I get tossed around projects a lot as the only designer+developer so I've got my hands in a lot of buckets... Or git repos I should say... My source tree has a lot of tabs open and each project is run by someone with their own ideologies on how stuff should be done and laid out and what not. Basically jumping between these projects leaves you mildly capable on all of them but not amazing at any of individual one them--
--I digress.
There's a bug I've been trying to fix.
--Stupid simple bug, literally just a casting issue or something but there's so much data in this one object that it's taking a few solid minutes of concentration to figure out which variable is busting it all up. It shouldn't take long to fix...
But it has. It has taken 4 days.
FOUR. DAYS.
...To fix what is basically a null reference exception.
Every time I sit down to work on this bug real quick I get pulled away to do a wireframe or change a flow chart or diagram or colour or print styling.
Every. God. Damn. Time.
4 days. Soon to be 5.
My commits are real low at this point guys.
Please boss man, just let me code...4 -
It's not a bug if a feature is working how you told me it should work but not how you wanted it to work.6
-
Some of the penguin's finest insults (Some are by me, some are by others):
Disclaimer: We all make mistakes and I typically don't give people that kind of treatment, but sometimes, when someone is really thick, arrogant or just plain stupid, the aid of the verbal sledgehammer is neccessary.
"Yeah, you do that. And once you fucked it up, you'll go get me a coffee while I fix your shit again."
"Don't add me on Facebook or anything... Because if any of your shitty code is leaked, ever, I want to be able to plausibly deny knowing you instead of doing Seppuku."
"Yep, and that's the point where some dumbass script kiddie will come, see your fuckup and turn your nice little shop into a less nice but probably rather popular porn/phishing/malware source. I'll keep some of it for you if it's good."
"I really love working with professionals. But what the fuck are YOU doing here?"
"I have NO idea what your code intended to do - but that's the first time I saw RCE and SQLi in the same piece of SHIT! Thanks for saving me the hassle."
"If you think XSS is a feature, maybe you should be cleaning our shitter instead of writing our code?"
"Dude, do I look like I have blue hair, overweight and a tumblr account? If you want someone who'd rather lie to your face than insult you, go see HR or the catholics or something."
"The only reason for me NOT to support you getting fired would be if I was getting paid per bug found!"
"Go fdisk yourself!"
"You know, I doubt the one braincell you have can ping localhost and get a response." (That one's inspired by the BOFH).
"I say we move you to the blockchain. I'd volunteer to do the cutting." (A marketing dweeb suggested to move all our (confidential) customer data to the "blockchain").
"Look, I don't say you suck as a developer, but if you were this competent as a gardener, I'd be the first one to give you a hedgetrimmer and some space and just let evolution do its thing."
"Yeah, go fetch me a unicorn while you're chasing pink elephants."
"Can you please get as high as you were when this time estimate come up? I'd love to see you overdose."
"Fuck you all, I'm a creationist from now on. This guy's so dumb, there's literally no explanation how he could evolve. Sorry Darwin."
"You know, just ignore the bloodstain that I'll put on the wall by banging my head against it once you're gone."2 -
My internship is coming to an end and I think my boss is testing my limits.
So, in the beginning of this week, he assigned me a non reproducible bug that has been causing trouble to the whole team for months.
Long story short, when we edit or create a planned order from the backend, once in fifteen, a product is added to the list and "steals" the quantity from another product.
Everyone in the company has experienced this bug several times but we never got to reproduce it consistently.
After spending the whole week analyzing the 9 lines of JS code handling this feature, reading tons of docs and several libraries source code. I finally found a fix by "bruteforce testing" with selenium and exporting screenshots, error logs and snapshots of the html source.
This has been intense but was worth the effort, first, I fix a really annoying bug and second, I learned a lot of things and improved my understanding of Javascript.6 -
had an issue where our clients payment gateway would duplicate the charge (at the gateway...not at the application) before sending it to the bank officially - the bank would detect the duplication then void both charges.
the gateway service admitted this was a bug, the bank it was tied to admitted it was a bug - but they wouldnt fix it. so my solution was to send a special uid with the original transaction (put it in a special field) and had the bank track that one as the "known good"
the funny thing? next version of the gateway api included this as a feature, but i got no credit.1 -
This is the last straw. I am so done with Chrome.
…
I woke up AGAIN this morning to my MacBook shining away brightly, having not gone to sleep the ENTIRE night. I did some better research this time and discovered it's actually Chrome that is causing this.
Yes Chrome is deciding whether my MacBook goes to sleep or not.
I am not ok with this. Worse, it doesn't even have any ability to change this behavior. It's basically a hidden "feature" of Chrome: it wastes your hydro too!
This is not the first time this has happened either. Last time my MacBook wasn't properly plugged in and it completely drained the battery, shutting it right off. I ranted about that already.
But I am just SO fucking livid about this right now. What on EARTH is going through google's mind that they think this is in any way even REMOTELY acceptable?
I've already filed a bug report but I think this is the last straw. I am just sick to death of Chrome. This bug is literally costing me money and damaging my property.
Shove it right up your fucking ass, Google. Right up there and twist it around.
I'm switching back to a real browser.
32 -
It's about a guy that knows better.
I was working as a subcontractor on a bigger system. We (subs) were not allowed to deploy code, we had to wait for contractor to deploy.
One day I got an email that my code is bugged and that my feature is not working on production. I checked it on test env, everything was fine. Then I checked if the code I wrote was deployed. It was not.
I send an email explaining that if they deployed my code it would be working. Then I got a response. There was a bug in my code.
Another email. I asked how would they know? Do they have a test on their environment that failed?
No. There is one guy that READ my code and he said it should not work, so he will not deploy it. He was not a programmer, he was a business consultant responsible for the documentation.
His issue was that I used a function that was not in a class. So if the function is not declared it's obvious it will not work. I had to explain to him in another email, that you can use object of another class inside your class and then call a function, that is not in your class. It was the last time this guy blocked my deploy.
TL;DR, I had to explain a non-dev how object composition works in order to have my code deployed. Took four emails.4 -
Just used my first "It's not a bug, it's a feature" explanation 😂. However, the irritating part is, I had to explain it to another person from IT industry (I mean testers) who is from another company.
And it's really a feature and not a bloody bug. Stop reporting it on the bugs list 😥3 -
So I asked my company's tools team to fix a bug in their tools related to testing a major feature of our project. They downgraded it to "low priority" because it's "user-specific". I asked how can this be user-specific when it's a major feature. They came back with "well, you're the only one testing it"... Right...
-
Today it was decided that we would hide a bug by making a new feature that only hides the bug
I don't like it, but it needs to be done for actual reasons5 -
I was supporting a legacy CRM app which front end used Visual Basic 6 and almost the entire business logic was written on SQL store procedures.
A "feature" of the product was the open code, anyone with admin access could modify forms, code and store procedures.
We also sold "official" (and expensive) consulting services to modify the code.
A long time customer owned this thing and it was heavily customized. They had hired us to change something, hired a third party to make other changes and decided to modify some stuff themselves because, why not?
Suddenly they came to product support asking to fix a bug. The problem happened on a non customized form.
After reviewing, I realized the form used several of the modified store procedures in the business layer. I tried saying we don't support custom code but my boss was being pushed and said "look into it"
All 3 parties denied responsibility and said their changes were NOT the problem (of course). Neither of them commented or documented their changes.
The customer started to threaten to sue us.
I spent 5 full days following every field on the form through the nested and recurrent SQL store procedures and turns out it was a very simple error. A failed insert statement.
I was puzzled of why the thing didn't throw any error even while debugging. Turns out in SQL 2003 (this was a while ago) someone used a print line statement and SQL stopped throwing errors to the console. I can only assume "printing" in SQL empties the buffered error which would be shown in the console.
I removed the print statement and the error showed up, we fixed it and didn't get sued
:)4 -
So this one made me create an account on here...
At work, there's a feature of our application that allows the user to design something (keeping it vague on purpose) and to request a 3D render of their creation.
Working with dynamically positioned objects, textures and such, errors are bound to happen. That's why we implemented a bug report feature.
We have a small team tasked with monitoring the bug reports and taking action upon it, either by fixing a 3D scene, or raising the issue to the dev team.
The other day, a member of that team told me (since I'm part of the dev team) he had received a complain that the image a user received was empty. Strange, we didn't update the code in a while.
So I check the server, all the docker containers are running fine, the code is fine, no errors anywhere.
Then, as I'm scratching my head, that guy comes back to me and says "I don't know if it can help you, but it's been doing it for a week and a half now".
"And we're only hearing about it now?!", I replied.
"Well, I have bug reports going back to the 15th, but we haven't been checking the reports for a while now since everything was fine", he says as if it was actually a normal thing to say.
"How can you know everything is fine if you're not looking at the thing that says if there's an issue?!", I replied with a face filled with despair.
"Well we didn't receive any new reports in a while, so we just stopped looking. And now the report tool window is actually closed on my machine", he says with a smile and a little laugh in his tone.
In the end, I got to fix the server issue quite easily. But still, the feature wasn't working for 1.5 weeks and more that 330 images weren't sent properly...
So yeah, Doctor, the patient's heart is beating again! Let's unplug the monitor, it should be fine.
Welcome to my little piece of hell :)7 -
Here I am trying to get some tickets for a theater, and I noticed an interesting thing. It seems that the website holds no session persistence. In other words it doesn't check to see if the user has stopped trying to order tickets, instead it holds the seats for about 30 minutes. This is kind of stupid because when you back out, your treated as a completely new session, you have no way of trying to get back the seats you had chosen.
Sooo, what does this mean? It means that I can start selecting a bunch of seats and continue selecting a bunch of seats. There appears to be no server-side checks to prevent someone from just booking the entire theater.
Soooooo, what does this mean? I could potentially spam the entire country's theaters (any that use this website as a booking system) and make it impossible for people to book seats through this website.
What do you guys think? Is this a bug or feature?
6 -
Here's a real tip for people new to the industry.
It's one of those things that's been said over and over again but very few can really seem to employ. I suggest you learn it /well/.
You are not your code. Criticisms of your code, ideas, or your thought processes, is not a criticism of YOU. You absolutely cannot take criticisms of your work personally.
We are engineers. We strive to seek the best solution at all times.
If someone has found a problem with your code or with an idea or whatnot, it is coming from a place of "this is not the best solution", NOT "you're an idiot".
It's coming from a place of "I'm closing this PR because it is not a change I feel suits this project", NOT "I'm closing this PR because it's coming from a woman".
It's coming from a place of "This feature request is ridiculous/this bug is not actually a bug", NOT "you're a fucking idiot, fuck you".
It's coming from a place of "I've already had to address this in a number of issues before and it's eaten up a considerable amount of my time already", NOT "I don't even know you and this I don't have time for a nobody".
You do not get to be bitchy to maintainers because they denied your request. It's not a reflection of you at all. But if you're arguing with someone who has maintained a piece of code for almost a decade, and they're telling you something authoritative, believe them. They're probably smarter than you on this subject. They've probably thought about it more. They've probably seen their code used in many different places. They have more experience than you with that codebase in almost all cases.
Believe me, if we cared about who was behind all of the issues, pull requests, etc. we get, we'd get NOTHING done. Stop taking shit personally. It's a skill, not a defense mechanism. Nobody has the time to sugar coat every little thing.
Let's normalize directness and stop wasting time during technical discussions into opportunities for ego-stroking and circle-jerking and back-patting.8 -
FUUUU!!!!!! 3h of colleagues work gone in sconds.. & yes, actually it is all my fault, even though I was not aware of being a totall ass at that time..
What happened?! You know the ctrl+s shortcut?! Yes? Weeeell...doesn't go well with oracle sql developer and packages.. o.O
I was totally unavare that I was typing in ctrl+s ctrl+s all the time. I know I do that with c# code.. Anyhow, when I first moved to sql developer from other tool I noticed that compile thingy.. Oooops, ok, let's remove that shortcut to not stab yourself absentmindenly and overwrite other peoples work.. OK that's taken care of, shortcuts removed and I go back to work..
It's been almost 6 months since the move & first incident and today I guess I did the same.. ctrl+s.. But this time I wasn't so lucky.
Coworker pissed off, that is not my procedure. When did you compile?! Someone overwrote my code..
Wasn't me.. Then I started thinking about ctrl+s.. OMFG!! I check this on another package, it compiled. O.o I almost died. I check the shortcuts. They are back! And even after removing them the package still compiled.. FML!! 😭😭😭😭
I removed them again & closed the tool. Reopended.. BACK!! We're back to fuck your life up!! Fuuuuuuu!!
Now I worry wtf else I fucked up without notice.. o.O hopefully not much.. I hope.. O.O boss will kill me...
BTW anyone knows how to really get rid of this feature?! Cuz for me its a bug (since I am buggy and press ctrl+s all the time.. )6 -
When you're lazy to implement a little feature you thought about but the feature gets implemented anyway because of some bug in your code..
True story btw
3 -
When the client decides not to do a feature because he finds your estimate unreasonable, then tries to add the missing functionality as a "bug" to another feature that's already estimated.3
-
I'm currently developing an integration to an API and I found out a bug.
So I asked the contact person for the API if this feature was intentional. I did this on their forum for the API and I sent it as a private message to him.
I got a response telling me that they dont have the "sufficient details" to answer my question and that they would investigate the feature "comprehensivley".
5 minutes later I see a post on the forum in the developer section from the contact dude and it was my fucking question.
So now he's asking the users of the API if his and his companys own bug is intentional.
What the actual fuck?!
Is this how you investigate things "comprehensivley"? -
@dfox just noticed a bug (or is it a feature?)
If you happen to double tap a rant slow enough that it doesn't +1 it. But fast enough that the rant view isn't opening yet it seems to register two single tap events and opens two views, needing to go back twice do return to the feed.
Not sure if that's important enough to report as a bug. :)
Ps: I'm on a LG G4, android 6.05 -
Took me 6+ full days.
The feature does not work. Repro is unknown, so only prod is experiencing the issue.. Which rules out the debugger option. Sometimes there's an entry seen in logs: "java.lang.StringIndexOutOfBoundsException". Nothing more - just that. No stack, no class, no nothing. Is it my code that's buggy? Is it some config? Integration? Unexpected response...? A bug in a lib? Is dimm faulty ir maybe server's shared libs are off?
Turns out I used a closing parentheses instead a closing curly bracket in an error message that's supposed to be interpolated...
String message = "{some-business-rule-related-error-message-key)";
took me 6+ full days... But I found it. Took the rest of that Friday off to walk in a park and enjoy my life :)9 -
I hate when a software update changelog looks like this:
The latest update is now available, update your software to get the most out of it.
I want a fucking changelog before updating my things. Like: fixed a bug, new button with cool new feature. Just something. I have to know. Can't just install something blindly that could ruin my software, especially when it's not reversible..1 -
Don't you just hate when your boss goes like:
"Why isn't this feature working?"
SHIT FUCK, IF I KNEW THE REASON, MAYBE I WOULD HAVE FIXED THAT SHIT, INNIT?
WHAT KIND OF FUCKING QUESTION IS THAT?
"Well you should have tested better"
IT TOOK A MONTH FOR 1 USER TO SEE THAT BUG, WHAT DO YOU EXPECT? YOU EXPECT ME TO SEE THAT BUG IN THE FEW HOURS OF TESTING I CAN ACTUALLY DO FOR THIS PROJECT?
"There also are other 15 project to get done"
FUCK THIS SHIT -
Tldr; my "this is not bug, its a feature" moment actually turned my bug into a feature.
Today we were presenting a project which has imposible deadline. I am developing this small project alone (which is probably good). I implemented core features first but I know project still have bugs and a lot of tech debts. Another friend started to presenting our demo and a wild bug appeared as expected. He was adding rows to a table. To add a new you gotta open new modal by clicking + button and fill the form. One of the fields had a bug. When you add row by clicking Ok button, the value of the field stayed there after you open modal again. So its basically a state problem in React. I forgot to clear previous state of modal. When they see that and my friend said "oh we got a bug there". Then I enabled my mic and said "thats not a bug, thats a feature. I didn't want to enter that field again and again when I adding multiple rows and made it persistent." and you know what? They liked the idea! They requested to add that bug to two more fields. I was just joking and my "this is not bug, its a feature" moment actually turned my bug into a feature. Instead of fixing it, I'm creating more of this bug. LOL!4 -
Don't attack flies using tanks.
In 2020, a bug was found in gnome-terminal where selecting many megabytes of text inside the terminal would cause the terminal emulator to crash.
As a remedy, the brain of gnome-terminal developer Christian Persch spawned a "brilliant idea": Limiting the "Select all" feature to selecting only the portion of text that is visible on screen.
In other words, Persch made the "Select all" option useless. After pressing "Select all", it appeared as if everything was selected, but once you scrolled up, nothing beyond what was visible was selected.
By solving a minor problem that rarely ever occurs, Christian Persch created a major problem that often occurs.
Source for screenshot: https://gitlab.gnome.org/GNOME/...
11 -
pms always tell the higher ups that I"don't have passion". I don't know how to show passion for their photoshop mock ups, one line requirements with no definition of done, their talking for hours about "leveraging" and name dropping about the top brass they are schmoozing with. I just ask if we are going to show our MVP to real users and she morphs to the bride of chuckie. I say we ought to pair program and she says it cost double to make a feature. Testing and code reviews are taking too much time but they hover over your shoulder while you try to fix a "mission critical bug" that occurs because they wanted us to skip practices that could have prevented the bug. Woo I feel better now!2
-
My boss just called me and asked to write a email informing our clients to not to download the update we pushed this very evening because Application is crashing when you will open that particular page.
What went wrong? One of our senior Developer, let's call him Mr. X, is totally against of testing the app before deploying it to clients. He believes that as i have created the application, i know exactly what to change to accomplish a requested feature or bug in application.
When a ticket assigned to him about a bug in the application, he simply make some changes in code, create the package and send it to test department. How do I know? He even boast it in front of us.
Most of the time it works but not every time like today. And I am pretty sure my boss is not going to ask a explanation about this to him.
I have great respect for him. It's okay to have confidence but testing before sending it to anybody will not make you junior. Will it? Being a senior You are making others to be careless about his job.
That's what happen today. Mr. X failed so does the testing department. So am I. I am the head of testing department as well.
I am not blaming him. I just cant. It was our job to test app thoroughly. I am feeling pretty bad now. His confidence made me vulnerable. Say his confidence made me clearly a fool. Lesson has been learned though.2 -
When I had to postpone the release of v2 of devRant UWP for 3 months because I changed a few minutes before the final build a "loaded" event to a "loading" event.
Something that for some stupid reason I thought will make the startup faster (maybe by 2ms) has caused crashes on mobile and some Windows 10 versions.
Of course I didn't spend 3 months to find this bug, but at least a few days in December and then I didn't have enough free time so I had to stop until mid February when I finally fixed it.
To find the reason I reverted the code to the previous update and started to add every feature one by one.
So much time wasted for a fucking "-ing". -
Just another big rant story full of WTFs and completely true.
The company I work for atm is like the landlord for a big german city. We build houses and flats and rent them to normal people, just that we want to be very cheap and most nearly all our tenants are jobless.
So the company hired a lot of software-dev-companies to manage everything.
The company I want to talk about is "ABI...", a 40-man big software company. ABI sold us different software, e.g. a datawarehouse for our ERP System they "invented" for 300K or the software we talk about today: a document management system. It has workflows, a 100 year-save archive system, a history feature etc.
The software itself, called ELO (you can google it if you want) is a component based software in which every company that is a "partner" can develop things into, like ABI did for our company.
Since 2013 we pay ABI 150€ / hour (most of the time it feels like 300€ / hour, because if you want something done from a dev from ABI you first have to talk to the project manager of him and of course pay him too). They did thousand of hours in all that years for my company.
In 2017 they started to talk about a module in ELO called Invoice-Module. With that you can manage all your paper invoices digital, like scan that piece of paper, then OCR it, then fill formular data, add data and at the end you can send it to the ERP system automatically and we can pay the invoice automatically. "Digitization" is the key word.
After 1.5 years of project planning and a 3 month test phase, we talked to them and decided to go live at 01.01.2019. We are talking about already ~ 200 hours planning and work just from ABI for this (do the math. No. Please dont...).
I joined my actual company in October 2018 and I should "just overview" the project a bit, I mean, hey, they planned it since 1.5 years - how bad can it be, right?
In the first week of 2019 we found 25 bugs and users reporting around 50 feature requests, around 30 of them of such high need that they can't do their daily work with the invoices like they did before without ELO.
In the first three weeks of 2019 we where around 70 bugs deep, 20 of them fixed, with nearly 70 feature requests, 5 done. Around 10 bugs where so high, that the complete system would not work any more if they dont get fixed.
Want examples?
- Delete a Invoice (right click -> delete, no super deep hiding menu), and the server crashed until someone restarts it.
- missing dropdown of tax rate, everything was 19% (in germany 99,9% of all invoices are 19%, 7% or 0%).
But the biggest thing was, that the complete webservice send to ERP wasn't even finished in the code.
So that means we had around 600 invoices to pay with nearly 300.000€ of cash in the first 3 weeks and we couldn't even pay 1 cent - as a urban company!
Shortly after receiving and starting to discussing this high prio request with ABI the project manager of my assigned dev told me he will be gone the next day. He is getting married. And honeymoon. 1 Week. So: Wish him luck, when will his replacement here?
Deep breath.
Deep breath.
There was no replacement. They just had 1 developer. As a 40-people-software-house they had exactly one developer which knows ELO, which they sold to A LOT of companies.
He came back, 1 week gone, we asked for a meeting, they told us "oh, he is now in other ELO projects planned, we can offer you time from him in 4 weeks earliest".
To cut a long story short (it's to late for that, right?) we fought around 3 month with ABI to even rescue this project in any thinkable way. The solution mid February was, that I (software dev) would visit crash courses in ELO to be the second developer ABI didnt had, even without working for ABI....
Now its may and we decided to cut strings with ABI in ELO and switch to a new company who knows ELO. There where around 10 meetings on CEO-level to make this a "good" cut and not a bad cut, because we can't afford to scare them (think about the 300K tool they sold us...).
01.06.2019 we should start with the new company. 2 days before I found out, by accident, that there was a password on the project file on the server for one of the ELO services. I called my boss and my CEO. No one knows anything about it. I found out, that ABI sneaked into this folder, while working on another thing a week ago, and set this password to lock us out. OF OUR OWN FCKING FILE.
Without this password we are not able to fix any bug, develop any feature or even change an image within ELO, regardless, that we paid thausend of hours for that.
When we asked ABI about this, his CEO told us, it is "their property" and they will not remove it.
When I asked my CEO about it, they told me to do nothing, we can't scare them, we need them for the 300K tool.
No punt.
No finish.
Just the project file with a password still there today6 -
Last week's Android development time breakdown:
21.9% Managing state
17.7% Referring to lifecycle diagrams
15.1% Waiting for Gradle
8.5% Reading the official docs on how to use component x
8.4% Reordering auto-generated ConstraintLayout XML
7.5% Swearing
4.2% Googling “Stack overflow component x is deprecated”
3.9% Googling “Stack overflow implement component x on API 24 or lower”
3.7% Googling “Stack overflow implement component x on API 21 or lower”
3.2% Googling “Stack overflow implement component x on API 19 or lower”
2.9% Googling “Stack overflow callback y called twice”, realising its a feature and not a bug, swearing a lot
2.0% Checking if Flutter is mature yet
1.0% Implementing business logic4 -
Sleeping the Thread for 1 sec, because the database had no real timestamp and a transaction on the same item within the same second would lead to a doubled primary key...
No real feature, but it is a bug and this makes it a feature I guess.1 -
*At the daily status meeting*
Manager: I don’t have anything to table or anything I want to ask about. I honestly don’t know what the point of this meeting even is.
*Throughout every other living breathing moment of time*
Manager: Hey, I had an idea
Manager: Hey, I wanted to get your thoughts on something
Manager: Hey, what do you think about…
Manager: Hey, what are you currently working on?
Manager: Do you think you could just *sneak* in this new feature request and have it to me by EOD?
Manager: Hey, I just sent you an email
The email: Hey I think I found a bug, it’s with image alignment in Microsoft Word and it’s pretty breaking to my productivity report. Do you think you could take a look right now? Thoughts?4 -
I am beginning to hate the relationship between email and my clients. I never thought it would come to the point where email is the worst communication platform I've ever used because some of my clients simply don't know how to use it properly.
I have one client who never uses the subject header in his emails. This makes conversational threads very difficult to follow, and I can't just scan the inbox I have for him. I have to actually do searches on my emails just to find recent conversations.
For some reason nobody knows how to start a new email thread. I have multiple clients that will just take the last email that I sent them, regardless of what it's about, and start a new conversation completely unrelated to the other email by hitting"reply". I end up with email threads that are 60 to 100 emails long and contain many different subjects, which again makes it hard to find anything. Never mind that they've usually put two or three important attachments, or username password combinations, or other valuable information in there amongst all the noise.
Worst of all, I have a few clients and co-workers who insist on starting a new email thread whenever anything about a particular issue comes up. This means that just today I have five separate email threads about the same goddamn issue from the same damn person. Am I supposed to respond to each thread with the same damned information? One of these people is supposed to be both a media consultant and an SEO expert and really should know better. Also, if you do actually send me an email with a subject like "the robot.txt error", please don't give me one sentence about that and five paragraphs about what color you'd like the background to be. That's ridiculous. How the hell am I supposed to find that later? Especially since we already discussed this in the other email that sitting in my inbox.
I swear I am setting up a bug tracking system simply so that my clients can log in and leave me bug reports, and feature requests, and will stop filling up my poor email boxes with what amounts to piles and piles threads that I have to sort through.
For a person who suffers with a form of ADD this is extremely frustrating. Why is it so difficult for my colleagues and clients to write good emails with good subject lines, and reply to the right damn emails?
Am I just being too anal, or does this bother others as well?16 -
"always think of a bug as a feature"
-Someone I used to know in a hckathon, 2012, colorized, minified -
Today is a stark reminder of why i want to leave here. First we couldn't do anything because production was down which blocks dev login. Then support tells me I need to work harder because my bug count keeps going up. But what is in my bugs? Feature requests, global changes, and work that isn't mine. Gee thanks :( Why does support get to comment on my performance anyway by something as dumb as a bug count? Grrr.5
-
The ability to understand every codebase immediately to the point where I:
* don't need to rely on the documentation
* know exactly where bugs are
* know how a change (bug fix, new feature, etc.) affects other areas of the project recursively
Obviously because it's a waste of time hunting that occur when modifying a codebase, no matter how carefully one writes tests or tests their code, something could always sneak in because it's not always apparent how a change ripples through your codebase.
It's tiresome and especially annoying when working with core modules1 -
You know what really grinds my gears? When new employees start shouting out suggestions of what feature we should do.. and how stupid this/that thing now.. or how slow that page is.. or how there's a bug somewhere.
WHAT WOULD'VE WE DONE WITHOUT YOUR OPINION?! thank you so much!!!
+10 points if their job has nothing to do with product or development
SHUT. THE. FUCK. UP
please!!!14 -
Lessons I've learnt so far on programming
-- Your best written code today can be your worst tomorrow (Focus more on optimisation than style).
-- Having zero knowledge of a language then watching video tutorials is like purchasing an arsenal before knowing what a gun is (Read the docs instead).
-- It's works on my machine! Yes, because you built on Lenovo G-force but never considered the testers running on Intel Pentium 0.001 (Always consider low end devices).
-- "Programming" is you telling a story and without adding "comments" you just wrote a whole novel having no punctuation marks (Always add comments, you will thank yourself later for it I promise).
-- In programming there is nothing like "done"! You only have "in progress" or "abandoned" (Deploy progressively).
-- If at this point you still don't know how to make an asynchronous call in your favourite language, then you are still a rookie! take that from me. (Asynchronous operation is a key feature in programming that every coder should know).
-- If it's more than two conditions use "Switch... case" else stick with "If... else" (Readability should never be under-rated).
-- Code editors can MAKE YOU and BREAK YOU. They have great impact on your coding style and delivery time (Choose editors wisely).
-- Always resist the temptation of writing the whole project from scratch unless needs be (Favor patching to re-creation).
-- Helper methods reduces code redundancy by a large chunk (Always have a class in your project with helper methods).
-- There is something called git (Always make backups).
-- If you don't feel the soothing joy that comes in fixing a bug then "programming" is a no-no (Coding is fun only when it works).
-- Get angry with the bugs not the testers they're only noble messengers (Bugs are your true enemy).
-- You would learn more than a lot reading the codes of others and I mean a lot! (Code review promotes optimisation and let's you know when you are writing macaroni).
-- If you can do it without a framework you have yourself a big fat plus (Frameworks make you entirely dependent).
-- Treat your code like your pet, stop taking care of it and it dies! (Codes are fragile and needs regular updates to stay relevant).
Programming is nothing but fun and I've learnt that a long time ago.6 -
I found a post in the depths of the steam forum about borderlands 2,that if you open the steam-overlay's browser while in-game, go to youtube, start a video and paused it, you would get +10-15% FPS. Tried it and it worked.
I can't even start to imagine the causal chain that causes such a... bug? feature?4 -
I’m so fucking sick and tired of !devs telling me how simple a feature should be to implement.
Like motherfucker the most complicated thing you’ve ever done with a computer is attempt (and fail) at working with tables in Microsoft Word and you’re trying to tell me how long a new feature/K8s architecture/noSQL aggregation should take to implement?
A monitor cable wiggling loose paralyses you for hours but I’m supposed to bow down to your understanding of what is causing a bug?6 -
I somehow can't stop laughing at the comment I posted.
@htlr "devRant has a rendering bug under weekly topic"
me: "I can't see that. Are you sure it's not a dead pixel on your phone?"
@electrineer "Dead pixel won't show up on screen shot"
me: "err... screen shot got be have a dead pixel capture feature, right?!"
🤣Oh geez. If someone need to balance out their genius brain wave, I'm here to help!
https://devrant.com/rants/1266369/... -
Client writes a bug report: This and that doesn't work.
Me: This functionality never was implemented. Please open a feature request.
Client: But this is a bug. Without this feature, the service won't work as we expect.
Me: But this wasn't in the requirements for release. So you have to contact the PM for a feature request.
Client: THIS IS A BUG! FIX IT!
Me: GO FUCK YOURSELF! THIS IS A NEW FEATURE AND YOU HAVE TO PAY FOR IT!
Unfortunately, I never sent the mail. But I kept it in the drafts. Maybe someday...1 -
Lots of questions going on about devRant. Just want to make devRant better.
1. Please tell the update intervals of upvotes and downvotes. Is there a delay? Doesnt really matter but i see many times i got a upvote notif but my score didnt increased...
2. Duplicate image algo is so poor. I know it is only in beta, but i see so many reposts which has the same pic but only with the resolution different or the image with the devrant watermark.
3. Minor, tags should be also saved when exitting the post rant activity.
4. Feature request : go to top, bottom in rant
5. Please make web app accessible in mobile. I think you check the user agent for the web app, but can you make it available to mobile users who cant download the app?
6. When accessing the web app in mobile, i type devrant.io/feed
Then, by the wonderful intent you made, it opens the app automatically. I was writing a rant, but it was all deleted.
7. Any new podcasts and cartoons planned?
8. Still bug not fixed.
Write a comment in a long rant.
Delete the comment you just wrote.
You cant reply to the last person comment.
Thanks.6 -
I started to hate programming.
I started with a lot of enthusiasm 11 years ago up to become in 2 years a full stack dev, a sysadmin and had also my fair share of technical assistance on every device plus hardware experience mounting hardware like cctvs, routers, extenders, industrial printers and so on. At the time you actually had the tools to solve problems and had to crack your head and pull hairs to solve stuff and people actually was developing solution and frameworks that solved stuff.
Today I can't stand anything.
Every midschooler feels entitled to release a framework that is announed as the next cure for cancer. Web dev once was thin and simplistic, now simplicity is considered a bug and not a feature.
I'm working on an angular project for the nth time and the whole environment is a clusterfuck of problems held togheter with kids glue.
Someone did a tool/framework for everything but most of it is barely well tested or mature.
Just to start this project we had to know, beside html/css/js techs like Angular, Kafka, Kubernetes, Docker, git, Lit, npm/node, mysql/sql server, webpack/grunt and the hell that it brings, C#/Asp.NET/MVC/WebAPI, and so on, the list is long.
DAMN. Making a simple page which shows a tabbed view with some grids requires you to know a whole damn stack of technologies that need to cooperate togheter.
It's 10x more complex and I actually find it much less productive than ever.
But what bugs me most, is that 90% of that stuff is bug ridden, has some niche use case or hidden pitfall and stuff because with this whole crap of "hey we put on github you open a ticket" they just release spaghetti code and wait for people to do the debug for them.
Angular puts out a version every 2 days and create destructive updates.
I am so tired that I spend most of my 8hrs binging youtube vids in despair to procrastinate work.
I liked to do this once....12 -
Client: "I found a bug on your website. Its not possible to submit the contact form."
Me: "No bug. Its a feature"
#answerforeverything4 -
PM : Develop this new feature. Client needs it tomorrow. And be sure it works perfectly well.
Dev : haha how can it work without bug if it's developed in a day ?
Poor dev got transferred to support department :(
4 -
Costumer called.
feature xyz doesn't work.
Spent hours trying to find the bug causing the malfunction, couldn't reproduce it on my devices.
Called to the customer to have a look on his device.
Feature xyz works as intended, the only bug: Too less patience at Layer 8.
Device just needs a little moment to establish a connection.
Patience is a virtue. -
Github 101 (many of these things pertain to other places, but Github is what I'll focus on)
- Even the best still get their shit closed - PRs, issues, whatever. It's a part of the process; learn from it and move on.
- Not every maintainer is nice. Not every maintainer wants X feature. Not every maintainer will give you the time of day. You will never change this, so don't take it personally.
- Asking questions is okay. The trackers aren't just for bug reports/feature requests/PRs. Some maintainers will point you toward StackOverflow but that's usually code for "I don't have time to help you", not "you did something wrong".
- If you open an issue (or ask a question) and it receives a response and then it's closed, don't be upset - that's just how that works. An open issue means something actionable can still happen. If your question has been answered or issue has been resolved, the issue being closed helps maintainers keep things un-cluttered. It's not a middle finger to the face.
- Further, on especially noisy or popular repositories, locking the issue might happen when it's closed. Again, while it might feel like it, it's not a middle finger. It just prevents certain types of wrongdoing from the less... courteous or common-sense-having users.
- Never assume anything about who you're talking to, ever. Even recently, I made this mistake when correcting someone about calling what I thought was "powerpc" just "power". I told them "hey, it's called powerpc by the way" and they (kindly) let me know it's "power" and why, and also that they're on the Power team. Needless to say, they had the authority in that situation. Some people aren't as nice, but the best way to avoid heated discussion is....
- ... don't assume malice. Often I've come across what I perceived to be a rude or pushy comment. Sometimes, it feels as though the person is demanding something. As a native English speaker, I naturally tried to read between the lines as English speakers love to tuck away hidden meanings and emotions into finely crafted sentences. However, in many cases, it turns out that the other person didn't speak English well enough at all and that the easiest and most accurate way for them to convey something was bluntly and directly in English (since, of course, that's the easiest way). Cultures differ, priorities differ, patience tolerances differ. We're all people after all - so don't assume someone is being mean or is trying to start a fight. Insinuating such might actually make things worse.
- Please, PLEASE, search issues first before you open a new one. Explaining why one of my packages will not be re-written as an ESM module is almost muscle memory at this point.
- If you put in the effort, so will I (as a maintainer). Oftentimes, when you're opening an issue on a repository, the owner hasn't looked at the code in a while. If you give them a lot of hints as to how to solve a problem or answer your question, you're going to make them super, duper happy. Provide stack traces, reproduction cases, links to the source code - even open a PR if you can. I can respond to issues and approve PRs from anywhere, but can't always investigate an issue on a computer as readily. This is especially true when filing bugs - if you don't help me solve it, it simply won't be solved.
- [warning: controversial] Emojis dillute your content. It's not often I see it, but sometimes I see someone use emojis every few words to "accent" the word before it. It's annoying, counterproductive, and makes you look like an idiot. It also makes me want to help you way less.
- Github's code search is awful. If you're really looking for something, clone (--depth=1) the repository into /tmp or something and [rip]grep it yourself. Believe me, it will save you time looking for things that clearly exist but don't show up in the search results (or is buried behind an ocean of test files).
- Thanking a maintainer goes a very long way in making connections, especially when you're interacting somewhat heavily with a repository. It almost never happens and having talked with several very famous OSSers about this in the past it really makes our week when it happens. If you ever feel as though you're being noisy or anxious about interacting with a repository, remember that ending your comment with a quick "btw thanks for a cool repo, it's really helpful" always sets things off on a Good Note.
- If you open an issue or a PR, don't close it if it doesn't receive attention. It's really annoying, causes ambiguity in licensing, and doesn't solve anything. It also makes you look overdramatic. OSS is by and large supported by peoples' free time. Life gets in the way a LOT, especially right now, so it's not unusual for an issue (or even a PR) to go untouched for a few weeks, months, or (in some cases) a year or so. If it's urgent, fork :)
I'll leave it at that. I hear about a lot of people too anxious to contribute or interact on Github, but it really isn't so bad!4 -
I've been working for the last 5 years on some large legacy code used in production, more than 100K LOC, poor comments (when existing) often outdated, huge parts of code that can no longer be reached, over-engineered class hierarchy, functions of thousands lines, huge parts of deprecated code that cannot be removed because "someone might still be using it". Statistically, every small change caused 3 new issues somewhere else and every bug fix or new feature required 10 times the time that would be necessary with a decent codebase. But after five years in hell I can finally say that... Oh wait, nothing changed, the code is still legacy and nobody is going to do anything about that.1
-
The moment, when you're coding a new feature on friday, your code somehow behaves weird in firefox... dev console shows unexpected behaviour and you're starting to think YOU ARE GOING CRAZY...
And then.. you find a fricking fucking Bug from over 12 YEARS AGO which STATUS IS "NEW"!
"Yes, the problem still persist with 2.0.0.11"
"This is indeed still an issue in version 3.6.3"
"Yes, it still exists in FF 4."
"Bug still present in Firefox 8."
"This ticket is almost 10 years old. Switch to Chrome."
CONGRATS FUCKING MOZILLA! THANK YOU! <3 <3
https://bugzilla.mozilla.org/show_b...2 -
As much fun it is to code and create new features for users. Take a break from the computer and spend time with real people.
A few years ago I would stay at work to get tasks done. While everyone in the office would go home I would stay and finish some task. After doing that for a few months my wife started to yell at me.
It made me realize that no matter how important a new feature, a bug or optimizing code is family and the relationships you have are more important.4 -
Google, will you ever manage to fix YouTube so it actually doesn't fucking break every day?
This "feature" where the page doesn't reload when I click reload is neat until I want to, you know, reload to see new content. Or reload because you failed to load a single video thumbnail. But no, you managed to combine the shit of both worlds and give me a loading progress bar and then don't change anything.
Also YouTube is the prime example why you don't try to reinvent text input fields. I can't remember a single instance in the last 5 years where the comment fields didn't have at least one weird bug.
Why do tech companies build the shittiest websites?8 -
Client: it's not a feature it's a bug
Me: comparing with the old system and proofing that it is currently definitely working like it did in the old system
Client: I didn't instruct you to check the old system
Wtf?1 -
That moment when the bug you are trying to troubleshoot isn't a bug but rather the result of a feature you wrote that actually fucking works!


