top | item 10119436

Ask HN: What are the most annoying things in software development?

16 points| ThePhysicist | 10 years ago | reply

As a software developer, which tasks do you find most annoying in your daily work? Which part of your job would you like to outsource to someone else if you could?

39 comments

order
[+] jasonkester|10 years ago|reply
- Make a change that fixes a bug

- Before committing, clean things up by removing a debugging statement and some whitespace

- Bug reappears

- Undo the cleanup

- Bug remains

It's amazing how often this happens. It usually takes a good half hour to find what's actually wrong. A good indication that you're close is that your development environment will mysteriously hang or your house wifi will go down. That's the universe putting in its one last shot at wasting a little more of your time before giving up and letting you win.

[+] eecks|10 years ago|reply
I don't think that has ever happened to me. There can be stuff like caching or hot reloads working/not working in your favour but if the bug is fixed, it's fixed.
[+] datenwolf|10 years ago|reply
> As a software developer, which tasks do you find most annoying in your daily work?

Having to tell others (contractors, collaborating 3rd parties, etc.) what they shall do and how to do it. We've got an issue tracker and a TODO list and tons of TODO/FIXME/XXX comments in our code base. How about working on those? Pick an issue in the tracker (or if you've found some TODO/FIXME/XXX that hasn't assigned a tracking ID, create a new own) and work on it! Oh, and please don't ask me for a pinned down specification for each and every detail; it takes me more time and work to write down such micromanaging specs, than it'd take me, to write the code myself.

You think meetings are productivity killers? At least you can zone out in those and mentally work problems. People asking to be micromanaged, that's what really grinds my gears.

[+] MalcolmDiggs|10 years ago|reply
Waiting. Just in general. Waiting tends to piss me off

...Waiting for tests to run

...Waiting for code to compile

...Waiting for someone to return an email / message / text / whatever

...etc

I probably don't actually spend that much time waiting everyday. But when I do have to sit and wait for something, I go nuts.

[+] insoluble|10 years ago|reply
If you work on or manage Windows machines, then waiting for Windows Updates can really suck. This may not seem directly related to programming, but it can be when you have sandbox virtual machines that are perpetually non-updated after being reverted to previous snapshots, or when you often break operating systems. Virtual machines make for an IT Groundhog Day.
[+] nstart|10 years ago|reply
Fighting to get my estimates accepted. I try as often as possible to give good estimates. This seems to always mean mine are a little longer as I don't give optimistic timelines. I get pushed back to shorten timelines and I'll sit on my head refusing to do so. This is almost always when it comes to dealing with obscure bugs. It's very difficult to give a timeline for those, so after digging around and trying to find the root of the problem (or at least a general direction) I give an estimate of a few days (3-5, sometimes 7) for that. Fighting to have these estimates accepted is painful. It's especially annoying because one is made to feel like long estimates are an indication of slacking off. Everywhere I've been it's the same thing. It feels like a bargaining exercise at your local street bazaar. Not fun. Also, mildly demotivating for a short period of time.
[+] what-no-tests|10 years ago|reply
Building something (with great effort) then tearing it apart because the product team decided to go a different way.

Over and over again.

[+] AnotherMarc|10 years ago|reply
Ugh, you need a new product team if doing that is the norm. It's gonna happen sometimes, but shouldn't all the time. Maybe you can push back on them before getting too far into the builds, force them to think through things a little deeper?
[+] andymurd|10 years ago|reply
Oh how many things there are that annoy me. Here are just two:

Number one has to be the idea that software development can be outsourced to save time. It takes the same amount of man-hours to develop the software plus about 40% more to manage the relationship with the outsourcing firm. Then another round of contracts/specifications/budgets/bs to fix the things that weren't in the original spec.

Number two is the idea that some people are just too important to get involved in specifying a product but they'll certainly tell you that you have done it all wrong two days before release. I may be a little bitter about that.

[+] jnpatel|10 years ago|reply
Bikeshedding during code reviews
[+] muzmath|10 years ago|reply
It can help tremendously to have an established style guide everyone follows strictly, which eliminates 99% of bikeshedding moments.
[+] hanniabu|10 years ago|reply
What's bikeshedding?
[+] taprun|10 years ago|reply
Sitting in meetings that had nothing to do with me
[+] onedev|10 years ago|reply
Then just don't go to those meetings. Problem solved.
[+] infamouscow|10 years ago|reply
Convincing software developers that networks disconnect, hardware fails, and data gets corrupted.
[+] onedev|10 years ago|reply
What do you mean "networks disconnect" and "hardware fails"? I have no idea what you're talking about.
[+] ljw1001|10 years ago|reply
Scrum (especially the estimation/tracking cycle), and the people who inflict it on you
[+] AnotherMarc|10 years ago|reply
Some things here (meetings, bad managers, etc.) are all too true, but not unique to software development/developers!

The most frustrating is when I am completely convinced a change I make is going to resolve some failed tests, and then I run the tests, and something still doesn't work. Or I fix something and cause another problem. I enjoy the challenge of getting everything right, but just feel betrayed when I'm convinced I do it right and I'm wrong.

Can't outsource that, though. What I would love to outsource is the actual writing of the testware. I like thinking up all the test scenarios, but wish I could do a brain dump and have someone else write the testware.

The other thing I wish I could outsource is any documentation creation or review. Probably because I can think a lot faster than I can write, and then also feel like I have to take extra time to document things precisely because I might not be able to have a dialog with whoever is reading the docs.

[+] awaythrow101|10 years ago|reply
Non-technical direct management.

This tends to include many of the things listed by others here, like not having estimates accepted at face value (because they don't understand development), lack of communication of business goals (because they believe developers just implement, they don't understand "product"), lack of consideration of developers' ideas (see last), deadlines without input from development (because developers will inflate their estimates)... But for some reason, developers can't just learn management, they have to find someone "skilled" from the outside, technical understanding be damned.

[+] bambang150|10 years ago|reply
Content development, Small bug, yeahh something like those things that required some time. And also, image fixation requires more time than it should be lol
[+] velikos|10 years ago|reply
Requirements churn
[+] ThePhysicist|10 years ago|reply
You mean e.g. requirements that change over time or requirements that get added during the project?
[+] tonyedgecombe|10 years ago|reply
What bothers me more are people who think requirements won't change as development proceeds.
[+] lgieron|10 years ago|reply
Scrum meetings. Hard to outsource though.
[+] bbcbasic|10 years ago|reply
As a developer it seems I am subordinate and I am not privy to any business decisions or direction which is information that is not communicated, and we are often not consulted.

Never do I here, oh we are thinking of going in this direction. What do you think?

Rather it is "We ARE doing this, and we need to get it done in 2 months, how can you make it happen?"

[+] eshvk|10 years ago|reply
> As a developer it seems I am subordinate and I am not privy to any business decisions or direction which is information that is not communicated, and we are often not consulted.

Either your company has a bad culture, or your Product Manager doesn't believe in a collaborative process or you are not working for a small enough company. :-)

[+] hga|10 years ago|reply
Dealing with incompetent managers.