Live data from Hacker News

Software engineers hate code

dancowell.com

181–190 of 235 posts

Re: Software engineers hate code

#181
post #114

Earlier quoted context omitted.

> If the developers are not competent enough to write maintainable code or maintain existing code Or if the old system simply doesn't work with modern environments. Or if it depends on long abandoned frameworks. Or if the business grows but the old implementation scales badly or not at all. Or if it depends on components that incur licensing fees that become prohibitively expensive when it's scaled up. Or if there ar…

The key is identifying which parts of the code needs to be adapted or replaced and which do not. If the code is well designed with separation of concerns, replacing a framework or library or external dependency should not require all the code to be scrapped, just the layers directly interacting with replaced part. Some trivial applications are basically just glue between frameworks, but most non-trivial application o…

In my experience one of the main reasons for wanting to scrap code is not only that it has scaling/other tech issues, it also has very poor separation of concerns.

Granted, that concept can and should be introduced into old codebases. Last year my team successfully warded off the Sirens of Rewrite by just doing the hard work of extracting all of the dead framework calls and then NOT adding them back in drag-and-drop style, but properly exposing them through interfaces that don’t require everything to know everything about the particular replacement framework we used.

Re: Software engineers hate code

#182
post #105

Earlier quoted context omitted.

A follow up analogy is more typical in my experience. The foreman says that we should reinforce the walls. The PMP certified 6 sigma ninja Project Manager insists that the reinforced walls aren't necessary because no one is going to put anything on the wall. We will revisit the wall later when we the city tells us to enforce new wall codes. No more than 6 months later a contractor tried to add a shelf to the unenforc…

this is also not a good analogy because building codes will often just require 20" O.C or 16" O.C studs and those are in the plans- drafted by a person that designed the home (self, architect, drafter). Reinforcements for shelves or cabinets are also part of the code for kitchen walls. Those are not to be expected in every location in the house. The framers are locked into the house plans as far as stud distances and…

  > House construction is far, far more standardized and strict that programmers coding crap code. It's not a good analogy.
the way i took it was that in home construction what they describe is completely absurd and yet that is how most businesses do software, so the contrast there drove the point home (no pun intended)

Re: Software engineers hate code

#183

Earlier quoted context omitted.

> If the developers are not competent enough to write maintainable code or maintain existing code Or if the old system simply doesn't work with modern environments. Or if it depends on long abandoned frameworks. Or if the business grows but the old implementation scales badly or not at all. Or if it depends on components that incur licensing fees that become prohibitively expensive when it's scaled up. Or if there ar…

You say that as if these events are unfortunate accidents instead of lack of technical leadership. I’ve met quite a few “unlucky” people in my life and what nearly all of them had in common was the inability to connect their actions and inactions to consequences. They were blindsided by predictable outcomes over, and over, and over again. Eventually the people who could actually help you get tired of your drama and m…

You say that as if these events are unfortunate accidents instead of lack of technical leadership.

Sometimes they are. I've seen several applications that were successful for many years but eventually had to be rewritten because some vital dependency was no longer viable.

In web development we had an early generation of web apps that used plugins like Flash or Java to do things. Fast forward five years and those plugins have been brutally killed off by the browser developers. However other web technologies have become viable alternatives for some of those things. That's a big rewrite.

Some programming languages have had big jumps that weren't entirely compatible. Python 2 to Python 3 is an obvious example that took years but eventually resulted in not only Python 2 no longer being supported but some libraries never being updated to support Python 3 and others being created to provide similar functionality. In this case many of the direct code changes could be automated but you can't automate swapping out each obsolete library for a replacement with a similar purpose but a different API. And maybe you wouldn't want to because in the 5 or 10 years since you built the last version new ideas have come along and you're better off adopting them instead since you have to make a big change anyway.

Re: Software engineers hate code

#184
I'm terrible at reading code.

I've analyzed myself in process and it's because I get bored and start glossing over details.

In some cases, I feel this makes me a weaker engineer than my detail-oriented counterparts.

In other cases, I connect concepts and problem solve better than they do because I am quite smart.

The division of labor, I guess.

Re: Software engineers hate code

#185
post #114

Earlier quoted context omitted.

> If the developers are not competent enough to write maintainable code or maintain existing code Or if the old system simply doesn't work with modern environments. Or if it depends on long abandoned frameworks. Or if the business grows but the old implementation scales badly or not at all. Or if it depends on components that incur licensing fees that become prohibitively expensive when it's scaled up. Or if there ar…

The key is identifying which parts of the code needs to be adapted or replaced and which do not. If the code is well designed with separation of concerns, replacing a framework or library or external dependency should not require all the code to be scrapped, just the layers directly interacting with replaced part. Some trivial applications are basically just glue between frameworks, but most non-trivial application o…

> If the code is well designed with separation of concerns,

"If" is the operative term here. "If" it is well designed, then there is usually not alot of reason to scrap it in the first place.

Re: Software engineers hate code

#186

Earlier quoted context omitted.

“All of this has happened before, and all of this will happen again” - Six, BSG.

Filching from Nietzsche, scriptwriters are lazy bums.

Either that or they were aware of what they were doing and left the extreme irony of what they chose to repeat as a kind of Easter egg for anyone familiar with the source.

Just kidding, they're lazy.

Re: Software engineers hate code

#187
post #8

> This is the best-kept secret of the software engineering profession: engineers hate code. Especially code written by other people. It's why they love working on greenfield projects so much. No code, no maintenance, no headaches! Except that I've met lots of engineers who were the opposite. They hate greenfield projects and prefer maintaining existing code. I noticed this broad division of personality early in my ca…

I didn’t realize how unique my circumstances were until I started reading r/experiencedevs.

I’ve had 8 jobs over 25 years and over that time, I’ve mostly done green field work, including at my first job out of college.

I’m not even sure I have the skillset to modify a huge existing code base.

Even at one job where there was a large codebase that I was “modifying”, it was mostly to add new CRUD features to an API or website and I did my own vertical “slice” that didn’t involve modifying existing code.

Re: Software engineers hate code

#188
post #105

Earlier quoted context omitted.

A follow up analogy is more typical in my experience. The foreman says that we should reinforce the walls. The PMP certified 6 sigma ninja Project Manager insists that the reinforced walls aren't necessary because no one is going to put anything on the wall. We will revisit the wall later when we the city tells us to enforce new wall codes. No more than 6 months later a contractor tried to add a shelf to the unenforc…

this is also not a good analogy because building codes will often just require 20" O.C or 16" O.C studs and those are in the plans- drafted by a person that designed the home (self, architect, drafter). Reinforcements for shelves or cabinets are also part of the code for kitchen walls. Those are not to be expected in every location in the house. The framers are locked into the house plans as far as stud distances and…

No analogy is good when you dissect it to pieces. Being perfect encapsulations of reality is not the point of analogy, they are simply there to increase understanding.

Re: Software engineers hate code

#190

I've been a software developer for almost 10 years and during that time I've questioned many times why I keep on going. A while ago I realized that the biggest thing that I like about software development is the simplicity within it's complexity. What I mean by this is; software either works or it doesn't. In many other professions this is not the case. So while there are many things that could be done better and mor…

> software either works or it doesn't

You don't use threads in your software, do you?

Post reply on HN