Think Again if Your Elite Developer Says ‘It Works on My Machine’

Photo by Jason Leung on Unsplash

Seasoned developers have seen generations of junior coders come and go. Sometimes their sweet innocence can be endearing, but at other times it can represent a source of frustration.

Simple sayings can mark a developer as less experienced. These phrases are never said by the elite, and if you hear them you should be challenging the developer about the implications of their thinking. 

“It Works on My Machine”

You might see different behavior on various machines. An experienced developer will understand that software is not intended to work on a single developer machine but should work adequately in any particular environment.

Implication: The developer has not considered the environment they are running software in

The Secret Developer says:

I don’t care about your machine or any machine. I want to see well-crafted software.

“The Code is Self-Documenting”

The code should be readable and understandable. This does not mean that the code itself should replace documentation in all situations. For example, it is perfectly acceptable to add comments to the code to describe why rather than what to help future programmers be able to understand and maintain the code.

Implication: The developer is too lazy to document their work.

The Secret Developer says:

Few developers seem to understand what the comments are for. Protip: Why not what.

“This Feature Can Be Implemented in a Day”

There are classic tales of developers underestimating the amount of effort and work that goes into a feature. More experienced developers know that building features is about more than just coding. Those tests need edge cases, for example.

Implication: The developer has not thought about everything required for the feature they seek to implement.

The Secret Developer says:

When I code fast, it’s because I’m awesome. You on the other hand…

“Testing is for People Who Aren’t Confident in Their Code”

Testing isn’t about confidence in code. It’s about building resilient and maintainable software. Using testing means bugs can be identified early in the software development process.

Implication: The developer isn’t testing.

The Secret Developer says:

Good code can be tested easily. Unlike your code.

“We’ll Fix This with a Quick Hack For Now”

It usually feels like a good idea to fix something quickly and get a feature into production. Experienced developers understand that spending time on a solid well-crafted solution ultimately saves time and produces better results that are maintainable.

Implication: The developer just gets things working, rather than producing good solutions.

The Secret Developer says:

If you’re going to do it, do it right.

“Why Change It if It’s Working?”

I’m seeing this so much in my current job. Rather than evolving and maintaining code developers simply add a new feature to the existing (poor codebase). Believe me, it’s a nightmare.

Implication: The developer doesn’t care about the long term and chooses to develop in a short-term way.

The Secret Developer says:

This attitude is why I’m leaving my current position.

“I’ll Just Use a Library/Framework for This”

While it is true that libraries and frameworks can solve some problems, it should be noted that they are not suitable for all issues that crop up in teams. It is important to understand the fundamentals of both the problem and any potential solution before tackling the issue.

Implication: The developer uses a framework as a crutch to solve every problem.

The Secret Developer says:

Don’t use a solution until you’ve understood the problem.

“I Don’t Need to Understand This, I Just Copy-Pasted It From StackOverflow”

Do you really think elite coders are using Stack Overflow? Codebases that overuse the question-and-answer website are oftentimes riddled with untraceable bugs and are maintained by developers who do not know how the codebase works under the hood.

Implication: The developer doesn't know what they are doing.

The Secret Developer says:

You’re better than this.

Conclusion 

Recognizing these sayings and understanding their implications is an essential part of growing as a developer. Strive for best practices, keep learning, and remember, every seasoned developer was once a beginner too.

Yet I think we all hate beginners. Right?

Previous
Previous

What Leadership Think About Hardcore Programmers

Next
Next

5 Ways Your IDE is Smarter Than You