Software Development Is Hard, or A Meditation on Why We're Here

Published 21 April 2014 by C. G. Brown

 

 

I know you've felt like this before; admit it.


I recently read an old post over at Jeff Atwood's blog, Coding Horror, called "Nobody Hates Software More Than Software Developers". In his humorous and somewhat acerbic style, he explains why it's the case that the more you know about software development, the less software you want to use. There are a few reasons, according to his analysis, which I'll consolidate and distill a bit:

  • The software doesn't match the needs and the worldview of the end-user
  • The software breaks too often
  • The software is just plain ugly to look at
  • The software takes me out of the experience of getting my job done and makes me think about how to make it work


The main reason? Incompetent programmers.

Ouch! That's harsh!

When you look deeper though, this isn't simply meant as an insult. The deeper truth is that programming is hard. The more you spend time on a task, the more you learn the subtleties and nuances, how a small change can lead to big gains. As Atwood says:

"I hate software – most of all and especially my own – because I know how hard it is to get it right."

I still am astonished at how many people I talk to, especially those in web design and front-end development who primarily do HTML and CSS, who see version control as something that's too much of a bother for any but the largest and most complicated projects. Users of back-end programming languages are a bit more receptive, but even then will use something like Git without a backup repository (see our thoughts on disaster recovery for your code for more on why this matters).

I'll say this in no uncertain terms -- if you write in a programming language, you need revision control. You need it for protection of your code. You need it to be able to see who's doing what, and to trace regressions buried deep in your code back to the source. And you need it to not get in your way.

You don't run your own power plant for electricity, or your own water system for water. You don't source gas from the pipeline; you get it from a gas station. In the same way, we provide a delivery of services that you could set up yourself, but that would require enough overhead to cost you thousands of dollars a year in time spent away from your primary product.

This is why ProjectLocker is here. We help software developers by making a hard job a little easier, and by getting the tools that build and manage your software out of the way a bit so you can focus on your job and not on tool configuration maintenance. A clear-headed, focused programmer is a better programmer, and has a much better chance of getting it right.

Topics: Craftsmanship, Business, Software Development, Disaster Recovery

Subscribe to ProjectLocker's Blog

Follow Us

Get Updates by Email

Follow @ProjectLockerHQ on Twitter

Follow Us

Free Checklist: How to Choose Source Control for your Project