Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

You bring a great point that I think needs to be discussed further.

Every year I spend more time banging my head and I think it is having serious effect on my mental health.

I enjoy programming and I don't really spend a lot of time debugging. My code usually runs fine, or I am able to easily find out what is wrong.

It is the whole combined complexity of all the tools that we use. Git, Java, maven, gradle, jenkins, Oauth2, aws(ec2, s3, opsworks, cloudwatch, iam, secrets manager, etc), prometheus, elk, splunk, etc.,etc. plus the combination of all the repositories, branches, modules, versions, libraries that we use.



To your point, there was an Ask HN thread yesterday where someone was asking for a simpler alternative to git. They kept messing up their repository when using git and they were ready to give up.

The responses were basically a) “git is the de facto standard. You can try mercurial but you’ll be missing out on a lot”, which is sadly true or b) “it’s not that bad, just really study the underlying data structures and git will get easier”.

I think the attitude of the second point is one of the reasons why writing software for a living can be so frustrating. Even the tool that saves and tracks changes in your work requires a non trivial amount of cognitive load to use correctly. It’s death by a thousand cuts. Sure, tool X isn’t rocket science but it’s also one of 20 tools I use and if it’s giving me trouble it can make the process of shipping software so frustrating.


I never resist the opportunity to quote:

Computer people generally design terrible computer interfaces because they are not only willing to cope with something bad, they're pleased to. - Alan Kay, Personal Computing Historic Beginnings


There is an ever-increasing library of skills and tools that all have major flaws that have to be used in IT/Software Development.

Nothing ever seems to work right - and because all software is written differently by different people in different companies and languages, old and new, you can't solve everything. Things just don't work, and often. Problems are ignored. Software is thrown out to users to be "updated later."


Oh yes, this tool situation is the worst part of our jobs imo. Every time I see a new layer coming in, I instinctively duck.

I hate how much time and brain space these things occupy. I can't even by lazy when working with them, there's always a ton of tiny things to read about and factor in, and often no shortcuts to just getting it over with. You have to be cautious and try to get it right the first time because most of them inevitably involve spending money, and your dumb mistakes will be quickly discovered.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: