The Most Important Thing in Software Engineering
Photo by Miguel Á. Padriñán from Pexels: https://www.pexels.com/photo/photo-of-golden-cogwheel-on-black-background-3785927/

The Most Important Thing in Software Engineering

When reading and talking about software development, there is a lot of emphasis on code. It's all about writing fast, fancy or clever code. Now, don't get me wrong, I love programming and I appreciate writing code. However, it's a trap to think about software development as just coding. There is a lot more involved here, especially when you are doing it for a living.

Imagine your car is broken. One day, you want to go on a trip with your family, but the engine refuses to start. Knowing very little about cars, you call your car dealer and tell them about your problem. You say your car is broken. A mechanic comes by and picks up your car. He says, they will take care of it and call you when it's all done. Then, you talk to your family and postpone your trip to a different date.

A few days later, your car dealer calls. He says, it's all good, and you can come over to pick up the car. Once you are there, someone takes you to a parking lot and shows you a shiny new sports car. Mildly irritated, you ask why they are showing you this new fancy sports car. The man tells you, this is now your new car. He hands you a bunch of papers showing a price of 100000 $. At first, you were surprised, now you are angry: "What was the issue with the old car that you could not fix it?" The man says: "I have no idea, you said your car was broken, so we got you a new one. It runs perfectly fine and much faster than the old one. Please sign here..." You look at the car: It has only two seats, not enough for your family. It's consuming more gas than your entire neighborhood combined and of course, the sticker price is completely mind-blowing.

You might think this story is crazy, but it's not unusual in software development. The car dealer assumed your car was completely broken and took your word for it. After all, he likes selling new cars better than fixing old ones. For him, it's all about selling cars.

Bottom line: Find out what is actually needed and build the right thing.

  • Talk to the customer and understand his needs first.
  • Make sure, you really understand the requirements by asking a lot of questions and challenging assumptions.
  • Keep talking to the client in the process of problem-solving. If possible, show intermediate results and establish a feedback loop.

What has been your experience with "building the right thing"? Tell me in the comments.


Nice analogy 😂 but I’m so with you. Understand the customer’s need, before you actually put in some code 👩💻

To view or add a comment, sign in

More articles by Bastian Isensee

  • Better Than Estimations

    Relying on estimations in software projects is dangerous. Unfortunately, many projects keep doing it and often fail as…

  • The Biggest Risk for Developers

    Working in IT is great. It stimulates your mind and creativity by solving problems.

  • Building a REST API in Golang

    REST APIs are one of the most common architecture patterns in today’s distributed software systems. Therefore, I want…

    5 Comments
  • Code Style Traps

    Readable code is often compared to well-written prose or poetry. Ideally, code should be a pleasure to read.

    1 Comment
  • Better Than Writing Code?

    Software developers love to write code. We enjoy talking about different programming language.

    2 Comments
  • The Problem With Agile

    In today’s world, everyone claims to be agile. Being agile is no longer just for tech and IT people.

    2 Comments
  • How to Avoid Shipwrecks in Software Development

    Building software can feel a bit like steering a ship through an endless ocean. We have to fight storms, waves, fog and…

  • Consider This When Navigating a Software Project

    Recently, we have talked about The Most Important Thing in Software Engineering and one common reason Why Many Software…

    2 Comments
  • Why Many Software Projects Fail

    In professional software development, there are many aspects to be aware of for achieving excellent results. Last time,…

  • Database Usage in Golang Part 1: Basic Interaction

    In this tutorial we will learn the fundamentals of talking to SQL databases from Golang. We will connect to an SQLite…

Others also viewed

Explore content categories