Are you a Professional Debuggerer?

500x_programmer[1]

Intro

Are you a professional developer or a professional debuggerer?

Find out by answering the following questions:

o    Do you spend most of your time building software or debugging it?

o    Do you spend a significant amount of time stabilizing the software that you wrote when a build is requested or is your code typically ready at a moment’s notice?

o    Do you spend most of your time debugging your code by launching an application and then putting the application into a state just to test your logic?

If you have answered yes to any of these questions, then perhaps you are a professional debuggerer.

Professional Debuggerers

I have recognized a problem with the vast majority of programmers within the software industry today. They have limited effectiveness in building lasting software. I think that this breed of programmer should not be called a developer based on a developer’s definition. Hence, they don’t spend a company’s budget actively developing software. However, they do spend a considerable amount of time debugging it. As a result, I hereby declare these set of programmers “Professional Debuggerers”. These programmers are the source to why the majority of software takes so long to build and extend, and are also the prime reason why software gets rejected by the end-user based on quality concerns. This is because they’re not building software at all. Instead they’re routinely spending their company’s budget debugging code instead of developing it.

As a consultant, I have worked in a number of software shops and have recognized this anti-pattern. Professional Debuggerers are programmers who have not yet developed the ability to write proven code. It’s kind of ironic how they are fluent in a programming language. However, they are unable to use their programming ability to automate checks and balances in order to validate their code’s integrity. As a result, these programmers tend to spend most of their time debugging code instead of developing it.

Professional Developers

Even though professional debuggerers make up the majority of the industry, there are a limited number of professional developers. These programmers do not spend the majority of their time debugging. Instead, they spend the majority of their time building software. These programmers have grown their ability to write effective automated tests so that they can ensure their codes’ integrity as it evolves. Professional Developers have cultivated a skill to identify breaking changes immediately, within seconds of introducing new code. In addition, they have developed a ritual for writing an automated test for each bug that’s found in their code. As a result, bugs within their software are exposed only one time throughout the software development life cycle or are otherwise caught and handled immediately after resurfacing. This quality control reduces development time and expenses significantly.

Professional Developers are not inclined to first launch an application and then put the application into a state to debug it. Instead, these professionals first attempt to reproduce an anomaly by first writing an automated test to expose the issue. They can then identify the issue and resolve it with confidence that their resolution does not inflict breaking changes to other parts of the system based on existing test automation. If a new unit test that targets an anomaly does not flush out the bug, then developers can resort to launching their application in an effort to identify the root cause of an anomaly.

Professional developers understand that automating checks and balances for their code saves both them and their client frustration, and at the same time, reduces the cost of building and maintaining software. Hence, this is why this breed of programmer is called a professional. They acknowledge that they can write error-prone code and therefore exercise professionalism in implementing checks and balances so that anomalies are identified within milliseconds of introducing new code instead of several minutes, days, weeks, or months. Again, this is what separates professional developers from professional debuggerers.

Conclusion

In conclusion, are you a professional developer or a professional debuggerer?

o    Do you spend most of your time building software or debugging it?

o    Do you spend a significant amount of time stabilizing the software that you write when a build is requested or is your code typically ready at a moment’s notice?

o    Do you spend most of your time debugging your code by launching an application and then putting the application into a state just to test your logic?

If you have answered yes to any of these questions, then perhaps you are…

NOTE:

Scott Nimrod is fascinated with Software Craftsmanship.

He loves responding to feedback and encourages people to share his articles.

He can be reached at scott.nimrod @ bizmonger.net

Advertisements
8 comments
  1. Jia Ji said:

    Hi mate, thanks. One another great article I can refer to when I talk to junior or professional debuggers.

    • Hey, thanks for your support. Sadly, I wrote this article in response to some senior developers that I had to worked with.

      Are you guys hiring?
      =)

  2. Paul Graves said:

    Great article, came here from hearing you speak on DNR

    • Thanks Paul. Which part of the show did you really take interest in?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: