Reconsider If Your Top Developer Claims ‘It Works on My Machine’
Written on
Chapter 1 Understanding Developer Mindsets
Throughout the years, experienced developers have observed numerous junior programmers entering and leaving the field. While their naïve enthusiasm can sometimes be charming, it can also lead to considerable frustration.
Certain expressions can indicate a lack of experience in a developer. Elite developers never use these phrases, and if you hear them, it’s important to question the developer about the underlying mindset.
Section 1.1 "It Works on My Machine"
Software can behave differently across various systems. A seasoned developer recognizes that applications should function correctly in diverse environments, not just on a single developer's setup.
Implication: The developer has neglected to consider the environment in which the software operates.
The Expert Developer asserts:
"I’m not concerned with your setup or anyone else's. I expect to see high-quality software."
Section 1.2 "The Code is Self-Documenting"
Code should be clear and understandable, but this doesn’t mean it can replace traditional documentation in every case. Adding comments to clarify the reasoning behind code decisions is perfectly acceptable and aids future maintainers.
Implication: The developer may lack the diligence to document their work thoroughly.
The Expert Developer notes:
"Many developers fail to grasp the purpose of comments. Pro tip: focus on the 'why,' not just the 'what.'"
Subsection 1.2.1 "This Feature Can Be Implemented in a Day"
There are countless stories of developers underestimating the effort involved in implementing features. Experienced programmers know that feature development encompasses more than just writing code; it also involves thorough testing, including edge cases.
Implication: The developer hasn’t fully considered all aspects necessary for the feature they wish to create.
The Expert Developer remarks:
"When I code quickly, it’s because I excel. You, on the other hand…"
Section 1.3 "Testing is for Those Lacking Confidence"
Testing is not a reflection of confidence in one’s code; rather, it’s a strategy for building resilient and maintainable software. Early detection of bugs through testing is crucial in the development process.
Implication: The developer is neglecting to perform tests.
The Expert Developer says:
"Quality code lends itself to testing with ease. Unlike your code."
Chapter 2 The Pitfalls of Quick Fixes
Section 2.1 "We'll Fix This with a Quick Hack For Now"
Quick fixes might seem appealing for getting features into production swiftly. However, seasoned developers understand that investing time in a solid, well-thought-out solution pays off in the long run, resulting in maintainable outcomes.
Implication: The developer prefers to make things work rather than to deliver quality solutions.
The Expert Developer believes:
"If you’re going to tackle it, do it right."
Section 2.2 "Why Change It if It's Working?"
I frequently observe this mindset in my current role. Instead of improving and maintaining existing code, developers often just add new features to a flawed codebase. This approach can lead to significant complications.
Implication: The developer lacks a long-term perspective and opts for short-term fixes.
The Expert Developer states:
"This mentality is why I’m considering leaving my job."
Section 2.3 "I'll Just Use a Library/Framework for This"
While libraries and frameworks can be beneficial, they aren’t a universal solution for every issue that arises. It’s crucial to grasp the fundamentals of both the problem and the possible solutions before proceeding.
Implication: The developer relies too heavily on frameworks as a shortcut.
The Expert Developer advises:
"Don’t implement a solution until you fully understand the problem."
Section 2.4 "I Don’t Need to Understand This, I Just Copy-Pasted It From StackOverflow"
Do elite developers really depend on Stack Overflow? Codebases that excessively use this resource often end up with numerous untraceable bugs and are maintained by individuals who lack a deep understanding of the underlying code.
Implication: The developer is unfamiliar with their work.
The Expert Developer urges:
"You’re capable of more than this."
Conclusion
Identifying these phrases and recognizing their implications is vital for growth as a developer. Aim for best practices, continue to learn, and remember that even the most seasoned developers started out as beginners.
Yet, let’s be honest, we often find ourselves frustrated with beginners, don’t we?
About The Author
Professional Software Developer “The Secret Developer” can be found on Twitter @TheSDeveloper and frequently shares insights through Medium.com.