Coding Style

Writing

One of the most important skills for any team of engineers is to develop a consistent coding style. Without it, development and debugging times increase and productivity decreases. Coding style is much like the rules of writing a story. Sentences start with a capital letter and end in a period. New ideas are started in new paragraphs. Spaces exist between letters of words. If someone were to write a book without following those conventions, it would be substantially more difficult to read. Coding style works the same way.

One of the projects I worked for years was a complicated telephony system. It included low-level code for interfacing with the phone boards as well as high-level code for displaying data to the user. This was a lengthy project that took substantial time to develop. During development, John and I worked to develop a consistent coding style. A mentor on the team, Mark, would review our code, provide feedback, and fanatically insist on standard coding conventions and style.

At first, this seemed silly to me. I’m a developer, let me do what I do! But, as time went on, it became increasingly apparent how valuable it was. After a while, I was unable to tell the code I wrote from what John wrote. While this may seem silly, this meant that when bugs were found, either of us could feel equally comfortable understanding and changing the code.

Today, when I learn a new language, one of the first things I try to do is learn standard coding conventions for that language. Some languages, like Java, have well established and followed conventions. Unfortunately, many other languages do not. When that happens, the team needs to determine what conventions they will follow for their team. If not, expect bugs to take longer and development to be slower.

Electronic Check Payment

Money

Like many small businesses across America, I use QuickBooks to manage my accounting. While it’s sometimes buggy, overall it’s a great application. So, when I got a message to setup online payments for my customers, I thought it sounded like a win. Customer’s wouldn’t have to deal with writing a check, and I’d get my money quicker. Or would I?

I typically bill customers at the end of the month. So, when October 31’s rolled around, I sent bills to all my customers. It was the first time I enabled electronic payment services, and one of my customer decided to take advantage of that service. In fact, he had paid me within 2 hours of receiving the invoice! I was excited, and eagerly waiting for the money to appear in my bank account. And I would be waiting for an entire week. That’s right. In a world where I can email someone in China within minutes, or call someone in Australia right now, it takes a week for money to electronically transfer to a bank across the city.

This isn’t the fault of QuickBooks. When I went back to their terms, I found out that 5 business days was the expected turnaround time. But for the $10 fee they charged me, I actually waited longer for the check to clear than I would have if the customer mailed me the check to manually deposit in the bank.

How is this even possible today? How is it that banks – where I can withdraw money at an ATM anywhere in the world, won’t let me move money electronically in the same time period?

Well, as it turns out, I actually received an email from QuickBooks today – their new service will offer next-day payments. Thank you, QuickBooks, for bringing payment services into the 21st century!