Software Development Isn’t Writing Code

Taylor Built Solutions Logo

Ok, yes, that headline is a hot take that borders on clickbait. And it is also true for many Software Developers/Engineers; typing code is often the smallest part of the job. From my experience figuring out what to type is the hard and time consuming part of the work. “So What?” you might ask. This post is intended to be a reminder to myself and other engineers to be patient with the process of creating, modifying, or fixing a product as a whole

At the end of the day the goal of any engineer is to solve a problem. We’re trying to resolve this particular problem (whatever this is). The steps to solving a problem in software is the same as solving a problem in any other job with only the language used to solve the problem being different.

What are the steps to solving a problem?

In order to solve any problem there are always steps to be taken. These include

  • Understanding the problem / requirements gathering
  • Breaking down the problem into discrete steps
  • Updating the problem statement / requirements based on research found while breaking down the problem
  • Work the steps (hint: this is where the writing code goes. Even then it’s still a small part)
  • Update your problem statement / requirements again based on how working through the steps of the problem turned out
  • Clean up
  • Prepare for delivery
  • Presentation of the solution

Be patient with yourself and your solution

This headline comes from a mantra that I have to tell myself. I tend to be very hard on myself for not immediately understanding a problem, knowing what the solution is, and having it typed out right now. I have to remind myself to be patient enough to really understand the problem I’m trying to solve and ask clarifying questions of those who understand what we’re trying to solve. This patience, while it may cause me to take a little longer to produce a solution now, usually grants me a better solution long term.

Slow is Smooth; Smooth is Fast

Take note that this patience doesn’t mean you have to move slowly to solve a problem. It simply means that you need to take your time to understand, prioritize, and make peace with that prioritization. Yes you should work hard. Yes you should work extra hours IF there’s a good reason to. And, yes, you should re-evaluate your expectations if they turn out to be unreasonable. Take the time to work smoothly and you’ll find yourself finishing work faster than if you rushed.

Leave a Reply

Your email address will not be published. Required fields are marked *