Monday, May 5, 2014

The Insanity of Software

At times someone distills perfectly what it means to be a software developer.  This week Peter Welch posted the following article to Gizmodo and I strongly recommend it to my readers “Why a Job in Programming Is Absolute Hell”.  This week, I wanted to comment on this blog and try to let you know that while programming is hell; the trip is worth it if you can help customers try and solve their problems.

Welch’s thesis is that while software development does not require you to lift 50 pounds or dangle from a building while you wield together iron girders, it is filled with stress and insanity.  I can attest in my career that software is one of the few products we make in western civilization which is made completely by hand.  That said many of the people who build software see themselves as artists and craftsmen.  This is a recipe for mental illness and conflict.   Because no two software developers will build the same thing the same way, this means that the more software developers you have working on a project the more disagreements about how the work is going to get done.

I am going to postulate something known as Wisniowski’s theorem.  For every developer on a software team, the amount of disagreement increases by the power of the number of developers on the team.  Thus, a team of seven developers is two to the seventh power more likely to disagree about how to build something than a team of two developers.

To prevent this from spiraling out of control, scrum masters and project managers were created who were supposed to act as guides and leaders to prevent conflict from spiraling out of control and get work done on time.  This has created an entirely different set of problems because many project managers and scrum masters do not come from a technical background.  So they do not know how to mediate conflict in a technical team or even what questions to ask.  This means that developers become insubordinate and work around the project leadership to get work done.  By the time someone has realized what has happened, it is either too late or the developer has decided to switch jobs working someplace else.  If this sounds like madness, it is.

So what company to do?  Well many people purchase software in the hope of never having to figure out how it is constructed.  Others pay millions of dollars for consulting companies to build the software and hope that it works.  Finally, the truly brave hire developers and IT professionals and hope that they can keep the organization afloat.  I have lived it for over 15 years and I have to scars to show it.

This is why I founded E3 systems.  I wanted to help businesses with low cost and low hassle solutions to fleet maintenance and inventory management.  Contact us today and we will tell you how.

Software development is filled with stress and insanity.  It has rewarded me with a modicum of independence and a middle class lifestyle but I know for a fact that there has to be a better way to practice my profession.  So enjoy that working software because someone had to go a little insane to make it a reality.

Until next time.