Six Easy Ways To Earn Technical Interest

Steve Watts recently made a excellent blogpost about Technical Accounting. If you don’t follow Steve’s blog you definitely should. In this particular article, he coined the terms Technical Debt, Technical Investments, Technical Assets, and Technical Tax. Steve’s talk of Technical Investments, got me thinking about Technical Interest.

Here is a list of Technical Investments that you can make and how they can pay you Technical Interest in the future. These are all things you can start taking advantage of today. You don’t have to take my word for it. I’ve included comments from some friends on how they found these investments useful.

1. SCC

Source Code Control is a must. Not using it is simply irresponsible. You only have to have one issue before realizing its value. Corrupt files? Machine crashed and won’t boot? Somehow introduced a nasty bug and can’t figure out why or how to undo it? Source Code Control can save you from all these issues and more.

Don’t believe me. Ask Allen.

2. Templates and Scripting Tools

This one should be obvious. It’s all about not reinventing the wheel and not wasting time doing repetitive things. This gives us more time to focus on solving our customers’ problems, which means we can deliver solutions faster, get paid sooner, etc.

Think your time is valuable? Then stop wasting it doing repetitive things and reinventing the wheel.

3. VI Analyzer

If you have ever tried to untangle a spaghetti mess it probably became obvious pretty quickly that style is important. Yet how can we enforce that? Well VI Analyzer is the answer. Who wants to spend their valuable time debugging? Using VI Analyzer regularly may not reduce the number of bugs (although there are some it can catch), but it certainly makes them easier to spot and fix, when you don’t have to move all the spaghetti out of the way first.

Want to know just how useful VI Analyzer can be? Check out Chris’ presentation at NI Week.

4. Code Reviews

Obscure or cryptic comments. Complicated algorithms and logic with no explanation. These may slip by VI Analyzer but are generally pretty easy to catch in a code review. Plus when your star programmer disappears (and he will eventually – nobody lives forever), do you really want him to be the only one who has a clue as to how your code base works? Share the knowledge and maybe you will get lucky and catch some bugs along the way.

This caption is a caption.

5. Unit Testing

How do you know your code works? Can you prove it? Your code interacts with some other code module but the interaction isn’t working as expected. Whose code is at fault? There’s a bug in your code, how do you track it down? Building your code takes a long time. How can you make sure there are no bugs before you build it? A good Unit Test Suite can answer all these questions and more.

Unit Testing just might help you make it to Happy Hour on time!

6. Continuous Integration

Imagine this scenario: You check out some code fresh from the repository. You immediately know it works because the last commit ran all your tests and they all passed. You make a handful of small changes to fix a bug and push them back to the server. Ten seconds later your computer beeps and you notice you have a new mail. You open it up and sure enough, its the server notifying you that your Unit Tests have failed. How long do you think it takes to find the bug you introduced?

Contrast that with: The last time you ran the tests was a month ago. They passed then, but they are failing now. Now you’ve got to sort through a month’s worth of changes to find the problem. Which scenario seems more efficient?

Who doesn’t like an email telling them that everything is working?

But I don’t have time…

You don’t have the time not to. It’s never too late to get started. If you need extra help, setup an appointment to talk about how we can help you implement any of these best practices. Stop accruing technical debt and start earning technical interest today!

Leave a Reply

Your email address will not be published. Required fields are marked *

*