Uncategorized
Workarounds
This morning we are fighting with a bug in the Microsoft MSI installer, that deletes part of the bundled JRE from our app after an upgrade, as described Here. There is a workaround listed on the Microsoft knowledgebase site for this bug.
A workaround is a “temporary” solution to a bug, that is created in lieu of fixing the bug and re-distributing the software. This happens when a manager sees the cost of fixing the problem as higher than the cost of creating the workaround. The problem, as all software engineers know, is that there is an under-appreciated hidden cost – the quotes around the word “temporary”. It’s not temporary, it will always be there and will always suck, because once the software works, it’s too risky to change it.
My last government client was a great case study for how repeated use of workarounds can literally box you into a corner. We used the full Oracle J2EE stack, which is pretty buggy, especially if you’re using the off-in-the-weeds use cases that the Oracle QA department didn’t get around to. For every bug, another workaround from the on-site consultant. Management didn’t see a problem with this, because a workaround appears to offer the same value as a fix, except for that pesky “temporary” bit – but hopefully that will be someone else’s problem. In the end, workarounds on top of workarounds left the system fragile and unstable.
In contrast, look at the Mac OSX Save As… dialog. Apple recently posted on their propaganda blog about the keyboard shortcuts you can use in the dialog. It occurred to me that this tip applies to all applications, which makes the user trust that if they learn this behaviour, they’ll be able to apply it whenever they encounter this dialog. That consistency is an attribute of quality software, and it’s possible because Mac software (generally) uses the system-provided functionality to do lots of stuff.
If this were a Microsoft OS, when a problem was found in the Save As… dialog, rather than fix it, there would be a workaround. Each programmer can just make their own dialog box, that looks the same, but has the extra flag or modified data structure or whatever avoids the bug. And now, each of those developers can introduce differences, like being lazy and leaving out the keyboard shortcuts. Now the user can’t trust that anything is consistent, so they avoid learning faster ways to use the “computer” as a whole.
To be fair, it’s not realistic to expect workarounds to disappear. As a lead, sometimes you find yourself in a situation where a proper fix pushes out the schedule, and you weigh the costs and benefits, including how bad the workaround will be if it lives forever, and what implications it could have on the design. And you feel dirty.
Some people feel so dirty that they won’t go along with it. There’s a spectrum of developer reactions, from indignation that leads to an indefinite delay of the release, to an irresponsible lack of concern. But even if they’re forced to give up their ideals and do some messy hack, ultimately, developers know that quality software has zero workarounds, period.
SO, I think perhaps the best metric for how bad your software is: how many workarounds it contains. Repeatedly leaving bugs in the software is a bad practice that not many managers really understand. There’s a good reason for programmers to get out the resume paper when they see a culture of accepting workarounds on their project.
Professional blog
Since I post so frequently (once every four months?), I think I need to start a second blog.
Actually, it’s just that computer people need blogs lately as a sort of networking tool. I mean networking in the people-sense, except that in this case we do it online. Like an online-form of networking. And everyone knows that you have to have a different online presence for each role of your life. Which is complicated… I am so overwhelmed all the time.
Also, I’m feeling peer pressure like in the days of LiveJournal to blog more, so maybe I will. Once I have the new one looking ok, I’ll divulge where it is.
Adium 1.0 is out today!
What a great feeling – I see a notification from a feed that Adium 0.89.1 is out – and I end up getting Adium 1.0 from the site! It says it was released today… they haven’t even updated the changelog yet. Sweet.
Learning Ruby
Thanks to a lightning crash-course from Gabe, and some magical tools, I am getting started on Ruby on Rails. On a Mac, apparently Locomotive plue TextMate, plus the code generation tools that come with RoR, basically write the application themselves. Getting an app up and running not just from scratch, but from knowing absolutely nothing about what you’re doing, in about five minutes… it feels like magic.
Getting things done
I’m kind of excited at the moment about this GTD productivity methodology. So far I have been much more successful at accomplishing things, the sort of things I would have left for “later” previously. I’ve only read the first part of Allen’s book, with some of the theory, and am starting into the mechanics of the system now.
The problem is that it’s easy to be productive and stick to a new regime while it’s new and exciting. I’m reminded of the Hawthorne Effect which suggests that any change to your working environment can make you more productive, regardless of the change. Perhaps this means that if my productivity goes down, I should just stop doing GTD, and it will go back up!
No, first try what the expert says, then make up something stupid. Not the other way around. Have to remember that…
I’m back
I suffered a miserable failure when I tried to embed a picture of the Jimmy Dean microwaveable chocolate-chip pancake-based pigs in a blanket ona stick, the worlds greatest late nite munchie food. I dragged it into my blogger dashboard widget, and it appeared in that view, but I was expecting a little too much for it to html that up to the original location of the image…
I’m trying GTD (“Getting things done”, a book by David Allen) lately – see 43 Folders. We’ll see if I get more things done. One of them might be blogging more, who knows?
That looks so delicious. It’s making me hungry.
Yes, it embedded like this:
applewebdata://B92F2CF8-F77E-43DB-8109-869E06590D38/image.tiff
Oops.
Turns out it was on the daily show too… Eating Liberally
Update 11/1/07 I finally had some at the cabin last weekend. Couldn’t find the choc chip ones, actually… but the normal ones were still somewhere in between yummy and not-food.
Here I am!
No excuses about not posting in forever.
I am pissed off at Cingular! They have been dropping calls and getting increasingly spotty signal, and apparently denying it. But here’s the funny thing. I also hate my phone and today I finally get to upgrade with a discount. But I only get the discount by signing up for a new contract. I was in the middle of explaining to the lady that if I wanted a new contract, I could just go to another carrier and get the discounted phone. This was going to be my nice transition into asking why calls are getting dropped. Then, RIGHT THEN, the call gets garbled and dropped. I had 2 bars of signal. So screw Cingular.
Do any of the other carriers suck any less?
About Me
Tweets
- @LaChilangringa thank you, he will be called Walter and might like trains or frogs. You were at the rally? What did your sign say? in reply to LaChilangringa 2010-11-06
- It says I'm not eligible to get a payout in the Buzz settlement. I'll have to settle for juggling with the Buzz developers. :) 2010-11-03
- It's Movember and you can sponsor my mustache. http://goo.gl/Z1O4 I miss the beard; It's very drafty on my face today. 2010-11-02
- Can 4 guys make themselves look enough like Mount Rushmore to fool Google Goggles image search? Love the demo slam. http://demoslam.com 2010-10-20
- Saw Dalai Lama on Thurs, running last 6mi of SF women's marathon with Peggy today. Too many crazy crowds this week! 2010-10-17
- Attn: people of the future. We wanted to avoid all that litter! It was our 2nd priority, right after annoying noises. http://bit.ly/cJzkGT 2010-10-09
- Headed to Hardly Strictly bluegrass in GG park. Elvis Costello free! 2010-10-03
- I vote that @TCooganPlants is having a rough week and deserves nachos. Who's with me? 2010-09-29
- More updates...
Powered by Twitter Tools

