Ask HN: What is the most painful problem you have day-to-day as a software dev? - putnam
======
ThePadawan
The feeling that writing software doesn't matter in the slightest in the grand
picture of things.

As a full-stack web engineer, I don't help cure cancer, fix world hunger, or
even make people using the software happier. I help business take the
customer's money to make managers on both sides of that deal happy.

~~~
giveahoot
Wouldn't software help enable accomplishing all of the work you're comparing
yourself against? I have the same feeling sometimes but software absolutely
has the power to positively impact people's lives, the environment, basically
anything. If you really feel strongly about this - I'd suggest looking for a
job that enables you to work on something along these lines. Doesn't even have
to be a non-profit but there are for-profit companies with great missions

~~~
ThePadawan
I have to be honest here in saying that to give a good answer, I took my notes
on why I left my last position in November.

I will be starting in a smaller, more human-focused foodtech company in
January (shout-out: [http://felfel.ch/en/](http://felfel.ch/en/))

------
5h
Suffering through technical interviews where the potential employers are
inexperienced at delivering said interviews.

Simultaneously nitpicking & grandstanding without once discussing the
realities of software lifecycle, managing complexity, change of business
focus, development pragmatism etc is a red flag.

In a recent interview - with the entire development team for a 10 customer
product with great potential - spending a couple of hours picking over a
mutli-tier caching architecture to serve a million views of a million variants
of a million products, when your login form is broken, doesn't impress me much
as a candidate.

------
SeanBoocock
Compilation times and flakiness of bespoke build systems. Most of my time is
C++ (game dev) and while we've reduced our compilation/link times with the
standard tricks ("unity" files and distributed compilation) I'd still love for
it to be as fast as something like C# or C for that matter.

It would be cool if there was some way to build a "progressive" C++ compiler
where initially the generated code was poorer quality (except perhaps along a
hot path ala [https://en.wikipedia.org/wiki/Profile-
guided_optimization](https://en.wikipedia.org/wiki/Profile-
guided_optimization)) and gradually refined/hot patched into a running
process.

------
tvanantwerp
I am the sole technical person where I work, responsible for basically
anything that involves electricity. Nobody knows or cares what I do as long as
nothing appears broken.

~~~
thebiglebrewski
Haha omg my lifeeeee

------
nulagrithom
A truly _astounding_ amount of technical debt.

Sometimes the sheer weight of it makes me think I'll never finish this
project, ever, and I should just give up _right now_ and go find a new job.

What's more is we're about to (unknowingly) add more by rewriting some things
in an obscure language that doesn't have any way to automate testing &
deployments, use version control, etc...

~~~
h_r
This sounds like using the tibco tools!

------
mbrameld
SI joint. The clock's going to tick over to 40 next year and most of the last
20 was spent in a chair in front of a computer. Now I spend around an hour
every day stretching and doing exercises to try to reverse some of the damage.

~~~
codewritinfool
Right on. I had major SI problems until I got injections. The next day the
pain was completely gone. Once I had no pain I learned exercises and have been
pain-free for two years now.

------
dmalik
Where I work it's lack of process. I get work thrown at me randomly from all
directions.

Also with deadlines that I have no say in, usually created by non technical
people.

~~~
_asummers
Bug reports in Slack can die in a fire. Make me a ticket, I won't remember
that there was a bug reported at 2:32 on Thursday if I'm not taking care of it
right then, and there will be reams of text to scroll back through to find it.

~~~
tomjen3
I am reading through GTD now (brought it years ago, but in an amazing twist of
events, never got through it) and his suggestion would be to have exactly one
in place, where all your information gets put, then you sort through it one at
a time, not to do the item, but to figure out where the item belongs: in your
case it is very clear that it does not belong on slack, but in a bug tracking
system, so just put it there.

------
psyc
1\. Every piece of software and the OS wanting to update/reinstall itself
every other morning. So much for app start times!

2\. Dependencies that don’t install their dependencies and require hours of
configuration.

~~~
greysteil
I built Dependabot to help you out with that one:
[https://dependabot.com](https://dependabot.com)

------
11thEarlOfMar
Dealing with management who would rather hope than plan.

~~~
virtualized
Developer: "This is a difficult problem that requires careful planning and
cooperation between people in different companies."

Product manager: "Yeah whatever it will be fine"

(no planning nor help in cooperation between companies)

 _six months later_

Product manager: "Why didn't you tell me earlier that there was a difficult
problem?"

------
reaperducer
Deadlines. I'm terrible at estimating how long something will take to
complete; especially if other people are involved.

~~~
ashark
Everyone is. No-one wants to pay for what it takes to get a decent estimate,
which incidentally also requires a near-perfect idea of what you're gonna do
ahead of time which is also usually lacking and which no-one's interested in
figuring out and committing to. Look at the space shuttle software development
process and how much time they spent nailing down requirements and such so the
rest of the process would be highly predictable—IIRC it was like 1/3 of the
duration of a project. Ain't no-one in business gonna commit to that.

Most software projects are half-cocked and operating on a shoestring. Anything
other than "start on this, we'll tell you to stop if we don't like your
progress, use something like story points so if we're still doing this in 6
months we'll have an OK-ish way to predict the way the project will go for the
next month or two" is delusional. Can it be done? Yes. Here's what it costs.
Actual development can start in 3-6 months. You gonna pay for it? Didn't think
so. Want us to just start now and see how far we can get in a month or two?
Cool.

------
jpmoyn
Managing daily burn-outs where my mind prevents me from looking at code
objectively and patiently. I recently have tried putting on meditative music
and trying to clear my head so i can be productive again. It is really hard
for me to code for 8+ hours a day.

~~~
montecarl
I do not aim to code for 8 hours per day in a professional context. I know
very few people who can really honestly do 8 hours a day of "thinking" work on
a regular basis. It may be possible in some cases: perhaps on a new project
where there is a lot of boilerplate code to write and you are free to make
design choices as you see fit. However, most of the time when writing code in
a existing large complex code base I find that 5-6 hours a day is a very
productive day for me.

I work from home I work in bursts of 2 hours. When I get stuck/bored (either
because I don't have any more focus left or I'm stuck on a tricky problem) I
will read, shower, go for a walk, or take a nap. When I come back to the
problem, I generally find I am able to resume work.

I find that I get as much done if not more than my coworkers who must be in
the office 8 hours a day. I also graduated from my PhD using similar tactics,
while many of my classmates seem to LIVE at school.

My point is just that the 8+ hour work day may be possible for some types of
tasks, but for real "thinking" work I don't think it is a good goal. You are
burned out because you are trying to do achieve an unreasonable goal. Redefine
your goals so you can succeed and be happy.

~~~
cjwhite
This. Seriously, no one minds if you take breaks where I'm at. I'd bet it's an
unreasonable minority of companies which do.

If your company has salespeople, they probably spend a large amount of time
chatting. It is what it is. Some amount of it is healthy.

------
notacoward
"My virtue is the only virtue" thinking.

The real world is full of tradeoffs. Sure, delivering early is a good thing.
Sure, doing everything we can to prevent bugs (or at least find them early) is
good. Delivering early is good, more features are good, beautiful interfaces
are good. But you can't have all these things at once, even if you could spend
infinite money on infinite developers (which would be un-good in its own way).
Oh yeah, work-life balance and employee retention are also good.

I'd be a lot happier without the architects who only care about clean APIs.
The reviewers who only care about braces and variable names. The devs who only
care about core algorithms. The testers who only care about reporting as many
bugs as possible. The performance engineers who only care how fast it is. The
product managers who only care about features. The project managers who only
care about schedules. _Work with me_ , people, instead of just flinging
demands at me from every direction at once. Or go screw yourself, because if
everyone else is going to be that way then I might as well be too.

And thus do I become part of the problem.

------
sssilver
The crippling feeling that the way I'm designing this is probably wrong and
there surely has to be a better way to do this and I am not smart enough to
think of it.

Also, architecting anything always feels like the first time.

------
majewsky
Not myself, but for my colleagues, it's their toolchain. Whenever I sit with
someone else and watch them do something, I grit my teeth at how they work
_against_ their tools rather than _with_ them.

~~~
ashark
I can't imagine I'm alone in wanting some more details about this, if you'd
care to provide them.

~~~
majewsky
I considered giving some examples, but I don't want my fellow colleagues to
recognise themselves in the stories.

~~~
majewsky
That may have improved since then. I do not recall any tearing from my
extensive usage of mpv. (Or I'm just lucky with my drivers.)

------
mnm1
Repetitive Stress Injuries. They make the entirety of the job, hell. Trying to
get worker's compensation and physical therapy has been hell. I used to enjoy
programming, like many here. Now, I mostly think about how to minimize typing
and trackpadding, while keeping my posture proper and taking breaks every
hour. As you can imagine, this does not lead to amazing amounts of
productivity as it takes me about an hour to get into the proper mindset to
code most days. I work from home, however, so I'm still more productive than
anyone in the office. I long for the day when voice recognition becomes decent
for people with accents so I can code with my voice like my American
coworkers. Right now, the detection rate in a silent room with a very good mic
is around 50% on a good day, so it's mostly useless. Yeah, there's shitty
tooling, horrible boilerplate all over the place, stupid features to add, and
all kinds of shit like that, and all that stuff sucks a million times worse
with every single keystroke or tap. I'm still in my 30's too. I just can't
imagine doing this shit for another 30 to 40 years or more. I wake up in pain,
I go to sleep in pain, and I feel pain from RSI during my sleep as well as
most of my days, sometimes including weekends. And on top of all that shit, I
still have to think through solutions and program. If I could do anything else
and still make a decent living, I would, but I see no other options.

------
sebazzz
Use general wide-used web development tooling like Webpack.

I'm in a classic .NET web development team that started using web forms, we
now use a CSS preprocessor LESS via BundleTransformer the last few years and
Typescript using the tooling in Visual Studio. It works, but it misses good
stuff like live reloading and LESS source maps. I know from my free-time
project that Webpacks works quite well, but I don't know how I can sell this
to my team.

------
breakpointalpha
Opening Hacker News 15+ times a day.

Seriously, "Focus" is the hardest thing to do when I have the entire internet
and my phone right in front of me.

How do you manage?

~~~
fragmede
How well do you eat? One thing that helped was to realize that HN (and Reddit,
et al) is the brain equivalent of junk food, and just as bad for you. (The
irony of writing this on HN is not lost to me.)

Discipline, mostly. It's a skill to learn, just like any other, and it helps
in all walks of life.

------
austincheney
Working as a JavaScript developer in a heavy Java shop for a major dot com.

Everybody, on one hand, expects you to be a jack of all trades with mastery
of: markup and various templating engines, CSS and presentation, anything
related to events and asynchronous logic, distribution, and so forth.

On the other hand your skills are generally not valued, though frequently
requested and required. They consider JavaScript and the web an inferior
platform and inferior skillset for amateur developers, until they are required
to do some of that work themselves. When I am not available to assist the
excuses and blaming of things piles up.

Fortunately, I don't work in that industry any more.

~~~
virtualized
I hate being the framework, library or programming language guy who has to
Google things for his coworkers. I'm good enough to do their jobs for them,
but my advice is often times ignored when they didn't explicitly ask for it.

------
closeparen
The minimal/empty intersection between coding environments with acceptable
performance (Vim, Sublime, etc) and environments with reasonable code
intelligence (JetBrains).

~~~
sharpercoder
This is my top one as well. Most intelligence is slow yet can be outsourced to
a (on premise) cloud. I find it quite strange that in 2017, there is no
universal API to delegate code analysis computation onto distributed nodes.
Language servers are a good step, yet this concept should be expanded to
(macro) code analysis, automated code reviews, memory leak detection,
(unit|integration) tests, large scale refactorings, builds, deployments,
basically anything a modern IDE does.

Some of above is already there, but they are separate products which don't
integrate well. For example: You can find a distributed build environment for
.NET & Java. This also runs test, so there is some level of integration.
However, I'd also like workflows like refactor-build-test-analyze-fix-refactor
until satisfactory.

~~~
fragmede
What successful _products_ are out there? Developers can be one of the worst
markets to try and sell to; even Microsoft gave up and decided to give away
VSCode (which, despite having little to actually do with Visual Studio, is
still them acknowledging that it's a hard market).

~~~
tuananh
why do you think Microsoft gives VSCode away. Seems to me they are quite
committed to it.

------
pvinis
Trying to keep a good posture so I can minimize the back pain. I find that
more than any dev problem I face, if I feel uncomfortable sitting while
thinking, it distracts me.

------
billconan
dealing project managers.

they are very bureaucratic. They create tons of excel files to track project
progress, and drag you into 8a.m. meetings to discuss how to update those
excel files.

~~~
warent
Sounds like a bad PM. I currently work with one of the best PMs that is like a
huge shield against upper management and politics

------
markbernard
Getting the tools to do the job. Can't use Angular cause its not approved.
Can't use REST because it is not approved. Supposed to use STRUTS 2(what a
joke).

------
badpun
Communication with other people. In my experience, even a two-dev project can
be worse (in terms of overall quality, coherence of vision etc.) than if I
just did everything myself. Of course, the more people the more mess the
project becomes - but, at the same time, most software is just too large to be
written by a single person or even a very small team. Hence, the usual end
game is a crappy code base and a product that barely works.

------
scabbycakes
Newish CTO who puts technical concerns before common sense decisions in a
small company.

Example: App is already crashing due to server load a month prior to black
friday, his decision instead of optimizing things and finding the problems is
to write unit tests for the month. Finally a mutiny happens by the senior team
and everyone scrambles to fix and improve things a week before BF and we make
it through by the skin of our teeth.

~~~
cjwhite
I agree the priorities in that situation sound misplaced, but I would not
characterize that as putting technical concerns first. Fatal bugs are a
technical concern.

~~~
scabbycakes
There are other things, that's just an example of the startlingly poor
decision making skills.

~~~
cjwhite
That sounds annoying. I have the opposite problem, but I still sympathize.

Sometimes you get someone making really bad technical decisions so the
direction forward looks good to upper management in the short term.

It's a hard balance to meet the needs of the technical requirements and the
business requirements, but that's why it's their damn job!

------
Fire-Dragon-DoL
Badly designed product or requirements changing because of bad analysis from
product team. It feels like I waste so much time...

------
tomjen3
Self-doubt: Am I good enough compared to my coworkers.

Getting people to leave me alone so that I can get some work done.

I doubt anything could be done about the first, but it would be nice if there
was something that could be done about the second: I am half considering
putting on the DND blinders found elsewhere on the front page.

------
cocoa19
Unnecessary meetings.

~~~
virtualized
Today I was invited to an indefinite series of phone meetings with four+
people two times a week because someone has one or two questions he can't be
bothered to ask by mail.

------
bluntfang
getting management to believe that not being able to run tests locally is a
huge problem.

~~~
notduncansmith
Maybe you could find their equivalent - ask if they would be okay with waiting
5 minutes after changing an Excel file before seeing the results, or having to
wait 5 minutes to see if an email actually sent.

------
djhworld
Corporate proxies.

~~~
majewsky
At my company, it took us several years and the concerted outcry of hundreds
of developers, but internal IT is now finally abolishing our proxies, one
office at a time.

------
meri_dian
Compilation.

------
cjwhite
Code reviews where people come up with BS just to have something to say. Or
creating a clean design only to have it turned into spaghetti by others.

~~~
virtualized
At least there were code reviews where you worked. In my current job such a
thing would be considered a waste of time.

------
dokka
My office is loud and I am not allowed to work from home or stay
late(management will actually kick us out of the building after 6:00PM)

~~~
jesterbuzzo
Bose noise-cancelling headphones are a godsend for this problem. Look for some
droning atmospheric music (I like post-rock and post-metal for this purpose),
put on the Bose, and you're in your own little world.

------
vorticalbox
Gulp.

------
putnam
Part 2: What keeps you awake at night, indigestion boiling up in your
esophagus, eyes open, staring at the ceiling? \- Sam Putnam

------
ericclemmons
New management. There was a reorg (coup) where tech is actively excluded, yet
still the target of blame.

------
balls187
Long commute to the office.

~~~
jlebrech
do you also need to go to the gym?

I had commute problem where i was 1 hr commute by bus and didn't have time for
the gym, I could have solved it by buying a car.

but instead I got a bicycle and commuted that way instead, at my most unfit I
could still cycle faster that the previous commute by public transport would
take, an I even enjoyed it.

Some problems are opportunities.

~~~
closeparen
Once you’re accustomed to it, bicycling to work is not much exercise. It’s
certainly better than nothing, but I would not see some mild cardio as a
replacement for running and/or strength training.

~~~
u801e
It depends on how much effort you put into it. While one's body will adjust to
the load cycling puts on it, that doesn't mean that one cannot increase the
effort put in to compensate.

The commute will become shorter due to increased speed, but that doesn't stop
one from putting in more effort to maintain an even higher speed.

~~~
closeparen
Ok, sure, I guess some people have the luxury of a dedicated bike path with no
intersections. Here in the city, I can’t get close to my (low) top speed
because I hit a res light every block or two. When I used a suburban trail, it
was mixed-use, so I had to go even slower to navigate safely around
pedestrians and potholes.

~~~
jlebrech
bike paths can be counterproductive and sometimes dangerous if badly designed.
they are good for learning to ride at the weekend but not worth it if you
commute daily, it's better to keep your line and learn defensive riding.

------
askthrowaway
Merging .Designer.cs files

------
lostmsu
Lack of a good news filter.

------
f-penelope
Slack

------
elorant
Acquiring new clients.

------
matte_black
Getting distracted and messing up my flow.

------
1_2__4
Convenient fantasies displacing reality amongst management. I can’t count how
many times a day a courself action is decided upon that everyone in the room
knows will fail, but nobody is allowed (in the figurative sense) to say that.

~~~
virtualized
"Company X will give us a lot of money if I promise them we can do a thing for
them." \- Boss is considered very successful

"We cannot possibly do that in the time frame you promised." \- developers are
obviously at fault here

------
jlebrech
switching context between components/templates backend/frontend for single
features (angularjs), I wish there were frameworks to inject a features into
an application an you'd only have to touch one file (or directory)

~~~
jitl
React!

~~~
jlebrech
sure, that's the move.

i'd like to use something like react that creates both backend/frontend code
in the future.

you end up with 5-6 files that just pass the same data from one to the next
(form/model/component/xhj/api/model/etc..), react just removes 2 or 3 files
from that equation.

~~~
scabbycakes
Try Nuxt. It has easy-peasy server side rendering.

If you know Angular then you'll be at home with Vue (used in Nuxt), which is
much nicer and a bit faster and smaller and a bit more useful for actual app-
building than React.

