Software Development Hard Or Complicated

Published on Tuesday, January 02, 2024

Software Development - Hard or Complicated

I think software development is like chess -- it's hard, but it's not complicated.

Anyone can learn how the various chess pieces move in a half hour, but it takes... longer than than to get any kind of good at chess.

Once you become familiar with how one language expresses basic programming concepts such as variables, loops, arguments, and so forth, you're well on your way to having a handle on other languages. Each language certainly has its own share of quirks (I'm looking at you, JavaScript), but when you've seen one...

Similarly, there are broad classes of libraries and frameworks that are similar enough to each other that it's not that great a stretch to go from one to the other; once you have T-SQL under your belt, MySQL or Postgress are not going to look like Latin to you. I'm not saying that there aren't platform-specific things you'll need to be aware of, but it won't be completely foreign territory.

Angular, React, Vue and Svelte have more things in common than not.

However... the important thing in chess is not how the pieces move, it's where to put them, and I think that's true in software development as well. Application Architecture is ultimately about deciding where functionality should go, and every time a dev says to themselves, "oh, I'll just include this parsing code in this component, no one else is ever going to need it", your technical debt went up.