Lazy Coders Are Problematic, but So Are Efficient Coders
One of the myths of software development is that a good coder is a lazy coder. It simply isn’t true, we should be looking for something more than simply ‘laziness’. Let us take a look at what coding should mean and how we should implement great working practices into our code.
“Why am I seeing so many bad lazy coders? It’s because they are lazy coders but lazy in a negative way.
Let’s look at the way they are lazy (bad) and the way they should be lazy (good).
That is, the difference between lazy work and efficient”
Laziness or Efficiency
Being an efficient developer certainly should not be a roadblock to becoming the strongest developer you can be. In fact, it might well be a prerequisite. Lazy on the other hand is a negative trait.
“Let me show you the contrast between two developers I’ve worked with. Let’s call these two developers “Sleepy” and “Busy”. They worked with different technologies but the points below still stand.”
The Tale of Two Developers:
Sleepy
“On their first day at working their new job, Sleepy slept in.
They’d be working on their second job at home as well as in the office oftentimes working late into the night.
I think they’d sleep in every week or so, or at least turn up to work with really red eyes each week. I’m not bothered about that (you look as you want, as far as The Secret Developer is concerned) but their productivity really suffered.
Sleepy was definitely ‘lazy’. Sure, including their own work they did push a great deal of code but you’d frequently be blocked because they were exhausted, prioritized their own work or just didn’t get on it fast enough.”
Busy
“This particular developer had so many great qualities I’ll pick out just a few:
If you wanted them for something, they’d be instantly available on Slack
They reviewed code super fast. That means within about an hour you’d have a review
When they didn’t know something they’d ask
The proactively made code better, working to refactor classes
Yet since they liked to work this came with its own issues, one of which is that Busy was actually a Jerk. Although it shouldn’t happen with Agile, we often didn’t have refined tickets to pull from the backlog. Busy let people know their dissatisfaction with this. In the end, they got fired because they stopped going to agile ceremonies and playing video games during the day. They spoke truth to power and were quite stringent on code review, and this didn’t go down well from our more senior developers.”
However
“Did you notice the thing about these two developers? Sleepy was much more successful in their role than busy.
I know that lazy programmers can be problematic. Unfortunately so can efficient coders. That means we need to display other qualities than just attitude to coding. Being dedicated to our work can be a good thing, but it is not the ONLY thing.”
The Key Attributes For Excellent Coders
Communication Skills
Coders need to communicate technical concepts. And be available for a fun drink after work. As well as communicate with the business.
“That’s quite the laundry list. It’s easier just to code good, though. ”
Problem-Solving Ability
Effective coders are adept at breaking down complex problems into manageable parts and finding innovative solutions.
“This attribute is directly related to programming but is also useful in life. Like when you need to get all the ingredients for dinner.
Can you tell that I’m hungry?”
Teamwork and Collaboration
Being open to others’ ideas and contributing positively is essential for an efficient coder.
“Playing nice with others? I don’t think I have the energy.”
Time Management
Balancing tasks, deadlines, and making sure you’re ready for work on time? That sounds like you need to be efficient.
“My colleague sleepy was seldom on time at all.”
Continuous Learning
The tech world is ever-changing; thus, a commitment to lifelong learning and staying up-to-date with industry trends is vital.
“Just don’t spend time getting an MBA”
Patience and Persistence
Coding can be challenging, so patience and the ability to persist through difficult problems are important.
“You can say this again”
Empathy
Being able to sympathize and empathize with colleagues is really important. You might even be able to make friends while doing so.
“What do you need friends for again? I’m getting along just fine.”
A User-Centric Mindset
Understanding and empathizing with user needs and experiences can greatly improve the relevance and quality of the software developed.
“The Secret Developer writes perfect code without input from users, thank you very much.”
Conclusion
“It might be good to be lazy, but you should be able to define what you mean by lazy.
That means you should be able to define lazy. In fact, why not define all of the words you use before you use them? That would be incredibly nice.”