News on Monday
more>>
SharePoint Tech Report
more>>


   

 
 
Download Current Issue
ISSUE 3/15/2010 PDF

Need Back Issues?
DOWNLOAD HERE

Receive the print Edition?


 
blogs tab
Windows Phone 7 will not support HTML 5
Windows Phone 7 will not support HTML 5.
03/15/2010 05:51 PM EST

ASP.NET MVC 2 Ships
ASP.NET MVC 2 has shipped.
03/12/2010 10:26 AM EST

Microsoft plans 'open' Silverlight analytics framework
Microsoft is going to announce a multipurpose analytics framework for Silverlight at MIX.
03/11/2010 09:51 AM EST

 

Events calendar tab
3/14/2010 to 3/18/2010
Seattle, Wa.
SHARE

3/15/2010 to 3/18/2010
Santa Clara, Calif.
TechWeb

3/16/2010 to 3/19/2010
Las Vegas
Penton Media

3/17/2010 to 3/19/2010
Las Vegas
TechTarget

3/22/2010 to 3/25/2010
Santa Clara, Calif.
The Eclipse Foundation


 
Most Read Latest News Blog Resources

Larry in Real Life




December 15, 2007 — 
You know those cartoons of the frustrated worker? Red cheeks, check valves for his pupils, popped-out collar stays and steam coming out of his ears? That’s me. I can’t ask anyone else for advice; only you can help me. You see, I am a bit of an advice-giver myself: I write a column for a software development newspaper. Nothing fancy, just a few hundred words on trends, practices that have proven to be worthy, and probably more references to Prolog than are strictly necessary. Now, though, the only thing that I can think to write is “Software cannot be developed without testing!” and then cutting and pasting 100 times. And you know how editors are about “stunt” columns.

But as you know, the form demands a certain presentation—if every story is not a success, than at least problems are recognized before they get out of hand. Mistakes, when discussed, are either those of others or those of the distant past (the foolish things I did with Prolog).

Let me give you some background. I engaged with a small company about rapidly developing some features for clients unhappy about the overall speed of system development. Pretty typical stuff: Pick some low-dangling fruit that’s never been given high priority, get some easy “wins” to take the pressure off.

What was supposed to be a simple automation task turned out to require not only supervision but also a large amount of “manual overrides” of this and that parameter. Who gave the client the impression that the system had “manual overrides”? Me! When I was developing it and a funky input value created an erroneous output, I said, “I can manually override that,” and then inserted a “magic number” into my code. I’m so ashamed! But it gets even worse, as the next month’s run showed funky values to be a regular occurrence, which, of course, I should have known since funky values are like cockroaches: If you see one, you’ve got a hundred.

Rather than step back and evaluate the dramatically changed context, I plowed forward. I began working with “Bob,” a Web programmer charged with creating the supervisory UI. I use the word “programmer” provisionally. I’ve never worked with someone as anti-productive. I think he’s a refugee from the "Dilbert" mirror universe, in which he’s a pointy-haired programmer, a perversion of all I hold dear. The only time he’s used version control (only time, I swear) was when he gave up working on a buggy Web page, and I said to give it to me to fix—he checked in the buggy version. And when I say buggy Web page, I’m not talking about a CSS problem. (Not that Bob uses CSS. Once he gets an effect he likes, he just cuts and pastes that <td> until he’s done). The bug related to the way the Web page looped over its database access. Bob uses ColdFusion, a system that can be very productive and professional, but in the hands of a perverse pointy-haired programmer can create unimaginably nasty code hairballs.

Yesterday morning, the on-site client said that while a certain page allowed her to override funky values, she couldn’t add a value when the funk was NULL. I glanced at the page and saw the “Add value” was inside a <cfloop> that was iterating over yet more database access (SQL Injection? Bob’s never heard of it). I asked Bob to move the button outside the loop and began a daylong coding session trying to reverse-funk the inputs.

Before finishing, I asked him what the status of the fix was (he ignores the task-management software). He said he’d uploaded it to the test server. “But did [ital]you[end] test it?” I asked. “Works fine,” he assured me, before admitting that it hadn’t appeared on the actual test site because of a caching issue. When I voiced my doubts, he insisted and I actually called the sysadmin at home to reboot the system.

As you will guess, when I checked this morning, the Web page was still broken and when I checked the file itself, I could see it was the original. After a 20-minute “conversation” of increasing volume, Bob said, “Oh, I see! You were looking at /TestSite. I uploaded it to a brand-new /TestSiteNew.” When I shared my view of that decision, he said, “Control your temper, man.”

Here’s my question: Should I walk away? The youngish manager (my client) is a good guy, he’s got the right tools in place, and he’s got some good developers. But like many small shops, they don’t have whip-crack discipline and are, for whatever reason, willing to tolerate Bob’s antics. I contributed to the quagmire with flawed task selection and, even more important, bulling forward when the task changed its nature. What should I do? Walk or try to be a change agent?

Signed,

KonaKoder

P.S. Bob “fixed” the problem not by moving the button outside the loop, but by deleting the loop. Is he just jerking my chain?

Larry O'Brien is a technology consultant, analyst and writer. Read his blog at www.knowing.net.


Share this link: http://www.sdtimes.com/link/31418
 

Add comment


Name*
Email*  
Country     


  • Comment
  • Preview
Loading