Programmers: stop calling yourselves engineers. That was the title of an article I found myself reading a couple months ago. Of its many points about the difference between programmers and software engineers, I summarize them here as:
Software engineering requires craftsmanship and accountability; today’s programmers are lacking in both.
Indeed, there’s no shortage of poorly crafted software to point to. Should a bridge collapse, negligent engineers face losing licensure. There is little parallel for programmers. This fosters a lack of responsibility in our field, leading to articles like the one above.
It’s clear we need higher quality software, but how do we get there?
We don’t need programmers. We need software engineers.
These two terms are not the same. They are a dividing line. Yet my views differ from the article. I believe programmers can become engineers, and there are many of them out there today. My criteria for a software engineer is self-accountability and practicing software craftsmanship.
But what does software craftsmanship mean? As a programmer, how can I learn it? As a manager, how can I tell the difference between programmers and software engineers? How can I foster the very practices that enable those engineers to live up to their title?
The foundation of software craftsmanship is Clean Code, and it’s the subject of this blog series. We’ll discuss why Clean Code is important, some basics, and how we at BTI360 put it into practice. We’re eager for managers and engineers (current or aspiring) to follow along. We’re all in this together. It’s our choice whether we’re programming the next flub or engineering the next success.
Read the Other Parts of the Clean Code Series:
- Part 1: The Difference Between Programmers and Software Engineers
- Part 2: Why Clean Code is Important for Developers and Management
- Part 3: 4 Clean Code Naming Principles Every Developer Needs to Know
- Part 4: What Every Software Engineer Ought to Know about Functions
- Part 5: Does Testing Really Make You Go Faster?
- Part 6: Teamwork Makes Clean Code Work