The 3 Basic Laws of Software Engineering

The 3 Basic Laws of Software Engineering

Why the engineering approach to software development is better

Before studying software engineering, I had always wondered what truly made an engineer an engineer. Well, during my five years of study in college, I had a lot of time to think about that. It was a slow process, but I eventually managed to find an answer to that question. In detail, I identified three basic laws every software engineer in the world should follow.

Becoming a software engineer takes years of studying. However, the main principles the engineering approach to software development is based on can be summarized in three fundamental laws.

Let's take a look at these three laws and understand how software engineers think.

1. Design Before Coding

One of the first I learned in my software engineering studies is that engineers first think, then act. When applied to software development, this means that engineers first design, then code.

To be more precise, most software engineers do not even code. Their work focuses on designing the database and software architecture, making decisions about the technology stack, and providing the development team with everything they need to implement an application.

After all, having control over the process is one of the primary principles of engineering. This is why spending time defining what needs to be done, how to do it, and with what tools is critical for an engineer.

2. Minimize the Cost of Failure

If I focus, I can still hear the voice of my professors: "If a project is to fail, it should fail in the first few weeks. The sooner it fails, the better." This is like a mantra for me.

When developing software, the key features that are most difficult to implement take priority. This is because if the development team is not able to implement them, the project will fail immediately. And this represents the best possible situation in the worst-case scenario.

After all, failing immediately means saving a lot of time, money, and energy. This is what minimizing the cost of failure is all about. Actually, this approach can be applied to many other areas of life. For this reason, I consider this the most important lesson I learned during my software engineering studies.

3. Measure the Results

Engineers do not look at results, they measure results. This is another key aspect of the engineering approach to software. Instead of accepting results, engineers measure them and understand how and why the entire team was able to achieve them. Only then can you understand where and what to improve.

Each project has different goals, and it is not always easy to find the right indicators to measure the results. This is where an engineer's experience plays a key role.

In most cases, the sooner these indicators are defined, the better. However, every project evolves over time, and a good engineer should be able to adapt and change the measurement tools and approaches accordingly. This helps to maintain control over your project.


Software engineering is an art and takes years to master. However, there are three fundamental aspects it relies on. In this article, you had the opportunity to take a look at the three basic laws of software engineering. If your journey to become a software engineer has just begun, these laws will inspire you. If your journey has already started, you will find in them evergreen lessons.

Thanks for reading! I hope you found this article helpful.

The post "The 3 Basic Laws of Software Engineering" appeared first on Writech.