Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
Code

Code for Psychopaths, Report Issues for Friends

featured-collage

How often do you think about the people upstream and downstream from you in the software development lifecycle? The following is some lighthearted advice in the area of soft skills for software developers.

When you write code you get bugs [insert test driven development argument here]. It takes time to test and fix those bugs, but realistically you can never be sure the code is bug free. Not to say that the lack of bug-free perfection is a justification for all imperfection, but it is realistic to understand that bugs are part of the software experience. Many development teams track code churn (feature work) as an indicator of how many bugs they should expect to find.

Bug Free by MonkeyUser.com

As a pragmatist, you understand the opportunity costs of each feature, improvement, and fix. Fixing bugs is important, but so is new features and shipping a release (some would argue that shipping is a feature). As a software developer, you know that you cannot always add all the features and fix all the bugs. Each feature adds bugs, and feature requests come faster than you can implement them. Even if all the developers in the world were working on one project, that project would still never be done (beyond the limitations of Brooks’s law). Sure, you would have releases from time to time, but as long as there are users there are feature requests. If nothing else then potential improvements in response to changes in platforms, APIs, and the State of the Art.

Who Maintains Your Code?

There is a famous quote about writing code and thinking about who will be maintaining it …

Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.

― John Woods, September 1991 in the comp.lang.c++ newsgroup
“Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live” -John Woods

Now maybe not only does your psychopath know where you live, but lives with you too (i.e. it is you!). I know if I see code I wrote more than a couple days ago I get pretty violent. The advice is still good even if you are maintaining your code, because when you are writing the code, you you are at peek understanding of it, but when so your understanding will always be lower when maintaining it. Successful code spends more time in maintenance (i.e. legacy) where it is read, then it did when initially written.

Who Reads Your Bug Reports?

When filing bug reports I suggest taking a different approach, always file bug reports as if you care for the person who reads them.

File bug reports with compassion and empathy, as if you cared for the reader.

Thinking of Everyone

In practice both of these combined are the robustness principle or Postel’s law, after Jon Postel who defined it in an early specification of TCP.

Be conservative in what you send, be liberal in what you accept.

Robustness Principle / Postel’s law
Be Conservative in what you sent, Be liberal in what you accept. Postel's Law / Robustness Principle

Summary

Be excellent to each other!

-William “Bill” S. Preston Esq. and Ted “Theodore” Logan
(Often attributed to Abraham Lincoln)
"Be excellent to each other!"
-William "Bill" S. Preston Esq. and Ted "Theodore" Logan (often attributed to Abraham Lincoln)

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

Get some love as Delphi turns 26
About author

Chief Developer Advocate for Embarcadero Technologies.
Related posts
DelphiShowcase

PlanMinder: A Remarkable Project Planning Tool Shows Delphi Flexibility

DelphiRAD Studio

Learn How To Do Unit Testing In Delphi With The Powerful DUnitX Framework

DelphiRAD Studio

Learn About Delphi Continuous Integration With SVN, Jenkins, And DUnitX

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

IN THE ARTICLES