Articles

« May 10

June 2010

Jul 10 »
"I found this interesting tidbit while making some changes to a .NET application," Tim Kowalski writes.

Pipe Up

2010-06-29
Amit checked his latest code in and turned to more interesting work. It didn't take much to be more interesting than writing a CSV parser. That was kid's stuff, really. With the low-hanging fruit out of the way, Amit could focus on the more mission critical aspects that were on tight deadlines. He had designed the module with a little extra polish; it was generic and should be easy to modify in the future. That was a smart decision, as a few days later the requirements changed. The application also needed to be able to handle pipe (|) separated values data. Since Amit was tied up on more important work, his manager stopped by to ask a few questions.

Warts and All

2010-06-28
"We need to make sure that the new PL/SQL version that runs on Oracle will work exactly as it does on SQL Server," stated the directive given to Andy by his supervisor.

Whoa, Batman!

2010-06-25

Venting Frustration

2010-06-24
It takes ambition and funding to build the "best datacenter in the world". Bi-located on the East and West coast, with multiple fat pipes, doubly-redudant power generation, armed security guards, and a Network Operations Center with giant plasma screens scrolling network statuses that are monitored by a 24/7 staff always looking busy, such a datacenter would serve only the highest-end clients. It takes one more key ingredient though: timing. Building a high-end datacenter in the middle of the deepest recession in decades isn't the recipe for success. Only a handful of clients ever moved in, and they were moving back out when the datacenter decided to shut down operations for good. Nearly everyone had been laid off, which left Ryan as the lone IT guy.

"True" and True

2010-06-23
"We have an old codebase where strings are used as a swiss army knife," writes Jimmi Hested, "almost everything that goes in or out of a function is ends with a .ToString(), even it's already a string... and sometimes even if it already ends with .ToString()."
Beep. .... Beep. .... Beep. .... Peter stared aimlessly at the heart monitor above his wife’s hospital bed, watching the green lines zig... then zag. Then zig... then zag. It was calmingly hypnotic, especially after five long hours of sitting by her side in the cardiac unit, waiting around for test results.
Everyone responds to new requirements on already-behind-schedule projects in a different way.  Many people feel anger, and try to find an innocuous way to show it.  Others, realizing this might finally be their chance to shine, take it as a challenge with a smile.  Still others, like Gary's colleague Steve, find a way to fulfill the requirements without actually fulfilling the requirements.

Benched

2010-06-17
When Sally graduated from college, she had aspirations of finding a career in project management. And much to her delight, she landed a great position with a large, internationally-based consulting firm. In addition to billing out fresh college graduates at obscenely high rates, the company developed obscenely expensive software for large enterprises.

Maximum Pad

2010-06-16
Brian's company needs to track financial information indexed by 100 digit routing numbers. Now, obviously, not all of those digits are significant, so if a user enters "123", the application needs to be smart enough to pad out the other 97 digits with leading zeros. Sane people might think this should be implemented as a one-line call to a built-in method. The more DIY among us might waste time building up a for loop. And, of course, a LISP fan would simply torture future coders with recursion and parentheses.

On the Job Training

2010-06-15
"None of our customers' web servers are online!" was not the kind of thing Ryan wanted to hear in the morning.  Nor was it the kind of question Ryan wanted to hear from the 15 different department heads and administrators all shouting on the conference call that morning.  Luckily (for everyone but Ryan), Ted from Net Operations was on the call. Ted was one of those hands-off system administrators who found that it was far easier to delegate work to someone else and leave early for a bar.

1's and 0's

2010-06-14
Consider "0010000000100000". It's a string filled with nothing but "1" and "0" characters. Now, unless such a string is part of some classroom assignment where the goal is to programmatically convert Based 2 to Base 10 — or, perhaps, existing in some highly-limited and/or perverted language like MUMPS — there is never a good reason for it to exist in a program.
All three of today's Tales from the Interview are from R Huckster.
If Peter Moberg were to give a single criticism of his colleague's work, it would be that it represents a complete and total misunderstanding of the principles of software development.

Secured Typing

2010-06-08
Gary's company has an "enterprise" application, and like any enterprise application, it was built to be all things for all people, by people that didn't have a clear picture of which things it was supposed to be to whom. While a customer could, in theory, install and configure it on their own, pretty much everyone paid for a consultant to handle the setup for them. Gary was one of those consultants.

Well-Formed XML

2010-06-07
Diego was excited. A vendor — one that, for the record, he had no choice but to work with — finally put together a web service. This was big news because it meant that Diego would no longer have to battle proprietary TCP protocols to get data extracts; he could use a simple, well-established protocol to download the data he needed.

The Long Walk

2010-06-04
Jibran turned in some questionable programming code when he was a student in college. Then again, who didn't? It's a student's sacred right to drive instructors to drink. There are no WTFs in student code; everyone has to learn sometime.

The Quotient ID

2010-06-02
To say that the codebase at Andy’s client is sub-optimal would be generous. It’s a kludge on top of a kludge that was cobbled together by countless developers over many years. And as with many large and unwieldy information systems, distilling this beast into an understandable form is a challenge superseded only by the actual maintenance of the code.

Liberal Leave

2010-06-01
It’s hard to believe that it’s almost summer. Actually, that’s not true; summer basically comes at the same time every year, and it’s slowly transitioned to through a period known as “spring.” But what is hard to believe is that just three short months ago, we experienced the most brutal winter ever.
« May 10

June 2010

Jul 10 »