TECH

Unfinished business of software development

or Never-ending game of Whack-A-Mole

Polojko
Polojko
Apr 10 · 4 min read

These, and many other, questions are popping into one’s head, while trying to wrangle the thing called software development. Yes, programming as a discipline prides itself on being modeled after the “real” world (e.g.OOP). However, it’s nothing like that. Can you imagine a car, or a building, being built the way software is being built? It would be an ugly, unevenly developed car, that nobody could fix after it’s being shipped: you could never be sure whether it’s going to start, or stop unexpectedly, or guide you to the nearest ditch, without a clear reason.

Who’s to blame? There are many elements to that. I’ll attempt to list some of them below:

Lack of planning/organization/resources

Very little attention is paid to planning, figuring out/deciding, and having clear and concise plans of what we want to build (of course, there are exceptions to this, but very few and far between). To extend the previous analogy: can you imagine someone attempting to build a building, without detailed, clear, and concise blueprints? Of course not, because it doesn’t happen. Yet, in software development, that’s the norm. We have hosts of UX designers, project managers, scrum masters, etc. and one would think that would be sufficient to have a clear and detailed picture of what we want (to build). In reality, more often than not, devs are receiving half-baked requirements, no clarity whatsoever, and then they (devs) have to chase down all the requirements that are missing. Would this be happening in construction: would carpenters chase engineers for things that they’ve missed? No, engineers wouldn’t be able to submit plans that don’t list all the details (they’d be fired if they continue to do so). Most software out there looks more like a result of happy accidents, than (a result) of conscious, planned activity.

Lack of responsibility

… and a clear definition of one’s duties. I’m not saying that this is as widespread, but - a large portion of software shops out there operate that way. Multitasking is a norm, and most people, while they multitask, aren’t able to focus on the task at hand. “DevOps” mentality? Agile? Please!. If devs are to get involved in all aspects/stages of building software… why do we have all those other people? Everything becomes a “hero” type effort, without a chance to deliberate and focus. Programming should (and is) a contemplative activity. Pushing devs into new roles that they’re not equipped to do doesn’t do any good to anyone.

We have a structure like this:

And this structure perpetuates into infinity.

New white-collar class

Software development used to be - back in its early days - a field for dedicated professionals, with proper education, and talents. Since it became lucrative, and every company out there jumped on its bandwagon, people working in the software industry are mostly inadequate, former white-collar office workers that switched to “software” because - it pays well and it’s available.

To extend the construction analogy even further: please do not attempt to put new granite tops in your kitchen. You don’t know/experience/tools to do so. Call a contractor to that for you.

To all those wannabe “software” companies out there: please do not attempt to build your software in the house. It would cost you dearly, and you won’t get what you were hoping for. Call the professionals.

CodeX

Everything connected with Tech & Code

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store