DBDD: Alway refactor your code

How many times have you not heard someone say: "It works! I don't know why, but it works!", or: "It's not stupid if it works."?

Many times, with a misplaced sense of pride attached to it.

While it can happen for objective reasons such as meeting a short, non-negotiable deadline, it is usually the result of a deeply ingrained habit among developers, that of considering working code, satisfactory code. Ignoring, in their way, readability, maintainabiliy or efficiency making it hard to collaborate and iterate for everyone involved.

The solution is to make refactoring a mandatory part of the development process for you or your team. Strictly adhering to the boy/girl scout rule can also be a good measure to increase one's awereness over own codebase contribution.

DBDD: Inability to learn from past challenges

They usually come time and time again with the same kind of problems:

  • Someone doesn't quite get how the box model works in CSS.
  • Someone never reads the documentation before shooting up a question.
  • Someone doesn't seem to get how reactivity works in their SPA of choice.
  • Some people never seem to find their way around their IDEs.

It's not a deja vu. These are the people for whom you've already solved the problem before. Maybe more than once. Yet they come back to you like they never saw anything like it before.

And in some cases, they haven't. Maybe they were checking social media, leaned back in their chairs, while you were debugging their environment.

In this case it's important to set clear boundaries between what's acceptable and what's not when it comes to asking for help. It is also important to correctly define the process as an act of teaching and not one of delegating one's problems.

Developer-Behavior-Driven Development

I've naively thought, at the beginning of my career, that behavior-driven development, through the prism of my social sciences background, was all about the programmer's personal conduct and professional habits. To my surprise, the practice of BDD refers to a different subject.

Still, the passing of time and a position where I was responsible for recruiting, on-boarding and training new talent confirmed to me that my intuition was right: More than rigid methodology and complex programming practices, habits and attitude can influence the success of a software project just as much as its architecture and management.

In the next few days I'll detail some of the most impactful patterns.

© 2021 Nick Ciolpan