David Xiang
  • About
  • Posts
    • Recent
    • Software
      • Technology
      • Management
    • Life
  • Software Developer Life
    • Introduction
    • Buy on Amazon
  • YouTube
  • 1-on-1 Mentoring
David Xiang
  • About
  • Posts
    • Recent
    • Software
      • Technology
      • Management
    • Life
  • Software Developer Life
    • Introduction
    • Buy on Amazon
  • YouTube
  • 1-on-1 Mentoring
Software

10 Bad Habits For Software Developers

by dxiang 2019-12-05
2019-12-05

Any developer, with any level of experience, can have bad habits. This is the junior developer neglecting the ripple effect of his changes. It could just as easily be the senior engineer rampaging through the codebase with her rewrites.

Bad habits are just habits; they do not define a person or their abilities. When your colleague’s code falls below your expectations, it’s unfair to point fingers and blame them for your company’s growing mountain of tech debt. With large-scale software development, success and failure are never attributable to individuals; success and failure are attributable to teams.

Bad habits can be replaced with good habits. Here are my top 10 bad habits for software developers. Watch out for these—we’ve all been guilty.

Bad Habit #1

You don’t test things.

Solution: Start testing things.


Bad Habit #2

You rewrite a lot of code, without being prompted to, whenever you feel like it.

Solution: There should be a good reason why something needs to be rewritten. If so, communicate your refactor with codeowners and get other engineers to sign off on your changes.


Bad Habit #3

You forcefully extend an existing paradigm to fit your new feature without thinking about how it could be reworked.

Solution: No one is a soothsayer. No one knows the future. What exists today does not take into account what you’re trying to do tomorrow. If you’re shoving a square peg into a round hole, take a moment and rethink your strategy.


Bad Habit #4

You write too much code.

Solution: If you’re writing too much code, it’s probably wrong. Break it up into smaller pieces and get it reviewed.


Bad Habit #5

You create bespoke implementations and deviate from the codebase’s norms. Red flags include forking repos, aggressively deprecating features, and introducing “shared” components that only you are using.

Solution: When in doubt, copy existing patterns as long as they’re reasonable. If they aren’t, what can you do about it? There’s a reason why it’s implemented that way.


Bad Habit #6

Too many things can only be tested in production.

Solution: Aside from emergency incidents, there are very, very few situations where you should be messing around in production.


Bad Habit #7

You find yourself unable to debug a feature you developed. Red flags include excessive copy & paste, spotty domain knowledge, and an inability to explain why something is working.

Solution: Fully understand what you’re building and how to debug it.


Bad Habit #8

You’re unsure how your changes affect the rest of the platform.

Solution: All changes have a ripple effect. If you’re unsure of how your changes affect the broader system, you need to develop slower. Take your time and take an inventory of side-effects. Ask someone if you’re unsure. Maybe your changes don’t have any side-effects, which is wonderful. Maybe your changes are one deploy away from a large-scale incident, not so wonderful.


Bad Habit #9

You write unreadable code. Red flags include single character variable names, long lines, long files, and your inability to understand what you did six months ago.

Solution: Code is communication. Isn’t it annoying when someone mumbles something to you? Optimize for readability, clarity, and simplicity.

Bad Habit #10

You don’t properly monitor and verify your changes in production.

Solution: Don’t hit the Merge Button and run off to a beach. Take responsibility for your code, make sure it safely makes it through the pipeline, and monitor it in production. Be a good citizen!

0 comment
0
FacebookTwitterLinkedinReddit
next post
The 1% House Edge

Related Posts

Raising The Alarm

2022-12-22

Software Project Planning

2022-07-30

Monolith To Microservices Vs. Your Organization

2022-01-24

Leave a Comment Cancel Reply

Save my name, email, and website in this browser for the next time I comment.

About Me

About Me

Hello!

My name is David Xiang. I am a software developer based in New York City.

Search

Keep in touch

Facebook Twitter Instagram Linkedin Youtube Email

Categories

  • Life (5)
  • Management (16)
  • Software (18)
  • Technology (3)

Join The List

Subscribe to my Newsletter for new blog posts, tips, and technology updates. Let's stay updated!

Software

  • Raising The Alarm

    2022-12-22
  • Software Project Planning

    2022-07-30
  • Monolith To Microservices Vs. Your Organization

    2022-01-24
  • Use More 1-1-1s

    2021-12-30

Management

  • Raising The Alarm

    2022-12-22
  • Software Project Planning

    2022-07-30
  • Art or Science?

    2022-04-25
  • Guidelines For Criticism

    2022-03-09

Life

  • Art or Science?

    2022-04-25
  • Guidelines For Criticism

    2022-03-09
  • 5 Mistakes That Damage Your Personal Brand As A Young Professional

    2021-10-27
  • Communication For Leaders — Be Generous

    2021-09-20

Join The List

Subscribe to my Newsletter for new blog posts, tips, and technology updates. Let's stay updated!

  • Facebook
  • Twitter
  • Instagram
  • Linkedin
  • Youtube
  • Email

© David Xiang

Read alsox

Software Engineering Culture Metrics

2021-02-10

The Importance Of Technical Planning

2020-08-10

4 Questions To Ask Yourself

2021-12-17