Software Developer, Are You Just A Hammer?

raddevus - Jul 31 '23 - - Dev Community

Background & Article Setup

I’m going to say a number of extreme things about Devs in this article to get your attention and get you thinking.

But, as you read this, keep in mind that I am a Software Developer and have been for 25 years of my 32 years in IT (Information Technology).

I Know I’m A Tool

Over those years I’ve worked for a numerous companies in various industries (Civil Engineering, Real Estate, Legal Data, BioTech, E-Commerce, Banking & more). And to them, I know, I am just a tool. That’s good and bad. I’ll tell you about both as we continue on in this article.

Along the way I’ve learned that we as Developers get extremely focused on the esoteric details of code*, but to make ourselves more valuable we should actually learn something far more important.

*How many 100s of articles have you seen here on Dev.to that discuss cookies, JavaScript map or centering a dev in HTML?

All of that is why my first extreme statement is:

Don’t Learn To Code, Learn to Create Software Solutions

You don’t need to learn to code. You need to learn to create a product or a solution.

Is That Statement Just Hyperbole?

You may be thinking that statement is pure hyperbole — just a huge exaggeration — because of course to create the product you’ll need to learn to code, right?

Not really, because… if you could design the product to an extreme level of detail you could just guide one or more devs (who know how to turn those details into code) to create the product.

Learn Enough to Create The Product

But, even if you are the developer of the thing you design, then you only need to learn enough to build the product.

Yes, I’m saying stop wasting your time learning all of those pedantic little details that you never remember anyways. Instead, follow these steps:

  1. Determine the interesting thing that you want to build which solves someone’s problem
  2. Design the basic solution
  3. Build the MVP (Minimum Viable Product) and iterate. 3a. You’ll learn the necessary details as you go.

You Don’t Need To Know Every Detail of A Programming Language

Of course, the more you know then the more quickly you can build solutions so I’m not saying it isn’t important to learn.

The 80/20 Rule Again

The point is that 80% of the code you use is the same old stuff — and that’s a good thing. Yes, there will probably be 20% that you need to learn to create the software solution but that’s fine. Don’t worry about it. Cross that bridge when you get to it.

But, if you always just build little pieces of things that other people design then maybe you’re just an assembly line worker. If you never create the entire thing yourself (gather requirements, design solution, write all the code, test and deploy to production) then there is a lot you aren’t learning. You may be the equivalent to an Assembly Line worker.

Image description

Image from https://pixabay.com/vectors/factory-car-engine-assembling-35104/

Just Write SQL Stored Procedures

I worked at a company where they hired people who only wrote SQL Stored Procedures. The management mentioned that they were like assembly line coders. These devs had no idea how the Stored Procs were used in the over all system. It’s a very limited viewpoint.

If You’re Just Writing Code In A Bigger System

Maybe you’re just an assembly line worker?
Coding requires extreme levels of detail at times and knowing those esoteric details are really important. However, if all you ever work on are the esoteric details then you are just a code monkey sitting in a cave. You’ll never have your own product or service. Instead, you’ll just work for someone else who will use you like a tool.

Are You Just A Hammer?

Sure, you’re important and may be able to do things that only a few others can, but in the long run you are just a tool. Hammers are useful and important but they are replaceable too.

Take a moment to answer this question: Who is going to make more of an impact:
A) the person who designs complete products and can build them
B) the person who knows the esoteric details of how to implement some specific functionality?

How Easily Replaceable Are You?

Also, ask yourself which one of those Roles are there more of? Are there more product designers in the world or are there more JavaScript developers?

It’s Not Entirely Negative to Be An Assembly Line Worker

Finally, yes you can make a ton of money being a tool. People pay huge amounts of money for large power tools (you may be the equivalent of a power tool) that solve their problems. Maybe that is all you want. It is certainly a road to travel down and I too have traveled that road for my entire career.

Create Your Side Hustle

However, along the way you need to be building your own products and services also.

Reasons to create Complete Products & Services

If you work on completing a product from beginning to end you will learn learn every aspect of the SDLC (Software Dev Life Cycle) and you will be and even more valuable as a resource to any company you work for.

Better Communication With Other Roles

You will discover the challenges that other roles have (testing / QA, DevOps - deployment / support, etc.) and you will be able to communicate with them at a better level.

Total Ownership, No Better Learning

If you designed a product to a high level of detail and then hired one or more devs to do the work, you’d suddenly transform into a true owner / leader because you’d suddenly become aware of time/cost challenges that your Development Manager has to worry about.

Your need to get the product created as best as possible in the shortest time possible (paying an hourly rate) would become a necessity.

There are things you can only learn by taking complete ownership - monetary, technical,
You can only take complete ownership by creating a product from initial requirements through deployment and support.

Skin In The Game

To learn these lessons, you have to have skin in the game. There has to be risk associated with it or it’s never going to become real.

I Encourage You To Build Your Thing

In conclusion, I’m encouraging you to stop just writing little scripts and toy code. Instead, take a chance and build something that you want. Build something that doesn’t currently exist and that you would like to have.

Dont limit yourself. You can build a better Facebook or a better email client or whatever.

My Password Generator / Manager

I’ve created a complete Password Generator / Manager EcoSystem and it was a huge challenge that helped me learn:

  1. Android development (wrote android app)
  2. iOS dev (wrote iphone app)
  3. Web App dev including PWA (Progressive Web App) dev - runs seamlessly on all phones
  4. WebAPI creation - allows users to store their SiteKeys and retrieve them from any device
  5. Cryptography using AES256 and Authenticated encryption

You can read all about how my FREE (forever) program C’YaPass works.

You can get the open source code at my GitHub.

Get the desktop version written in HTML5 & ElecronJS (runs on Mac, Linux, Windows)

You can read an overview of how it works and keeps your passwords safe by never storing your passwords anywhere but generates them every time.

Image description

Take on A Big Challenge and Grow

I encourage you to take on a big challenge, write (and deploy) a complete app or service and you will transform into a Software Solution Designer, not just an assembly line worker.

Hammer image from: https://pixabay.com/photos/claw-hammer-hammer-tool-2202195/

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .