Archive for March, 2008

Design Reminder

Dearest Self,

When designing and building a system, don't just treat the base-level objects as black boxes ("as dumb as they can be, but no dumber"), but the modules they roll up into should be black boxes as well. That way, when you get pulled off progress on one of the modules, you can just tie things off and leave them. If they don't support the few places they interact with others, they're not done yet. Also, documentation never hurts.

God, What Won't You Do?

I'm coming to (near?) the end of what can only charitably be called a "difficult" project. Unfortunately, I don't think I will be working with any of the parties involved in the future. For future readers and my present sanity, this feels like a good time to define what I don't do for a living; sometimes that negative space tells more about a thing than the thing itself.

I don't work without specifications (requirements). Real specs, not three pages of bullet points in Microsoft Word. You don't have to know it all when we start and it's part of my job to get those requirements right, but it is a bad idea to put hands to keyboard before I know exactly what I'm doing. Every development project changes in definition from when it starts. That's the beauty and pain of requirements. You sit down thinking it's stupid to have to tell me what to do and then we start talking about what to do and the conversation chases dozens of tangents. Ratholes appear. Better to find them up front and deal with them (or pour concrete down them) than find out "Later".

I don't put together the requirements without talking to you. I don't know your business, you do. Even if you just got hired last week and this is your first assignment, you still know better. You know who to ask (and who the office gossip says to avoid), you know where to go for answers outside your company and you know how to ask relevant questions that get helpful answers (compare and contrast with my: "So how do you guys ship stuff to people?").

I don't build the system for you. I build it for your customers, your users. It's rare that you're going to be a perfect example of your customer and even then, no. You can't serve two masters (the application vs. career success). This doesn't mean every project has to involve one-way glass, video cameras, white lab coats and a testing facility, but it does mean putting together some kind of test, even if it's just simple hand drawings of screens to show to random folks in the hallway to make sure we haven't missed something glaringly obvious. Oh, and about those paper protoypes: I don't work without some kind of screen mockup. It doesn't need to be the Sistine Chapel. It doesn't even need to look like the final screen. We just need some kind of reference so when I hand in my work, there's an agreed-upon set of things that should be there. This also saves me bugging you in the middle of the night, so invest in your sleep up front.

I don't know anyone that handles scope creep well, but let me define that in my terms: changes or additions to the requirements after they've been fully thrashed out and after work has begun. Even as an hourly contractor, I get skittish. "Hey, it's just more work for you." Sure. But if it affects things that have been finished and vetted, it's A Bad Idea. However, things come up and needs change. My rule of thumb is that if the change would alter how data is stored, then let's suck it up and do it now. Otherwise that means the work has to get done later and data migration will have to be done. Better to do one difficult thing now than one difficult thing and one risky thing later. If it doesn't change the data, we should talk about creating a "Things for the next version" list.

I don't work without a QA person or team. This doesn't have to be anyone with a degree and 100 years of experience in Quality Assurance. It just needs to be someone other than me who can run through the system as a user, spot things that don't match the requirements and tell me about them in a meaningful way, e.g., "Here's what I did, here's what should have happened, here's the big explosion I got instead" as opposed to "COMPUTER BAD!" I've never met a developer who could qa their own work, myself included. After spending weeks or months or years designing the flow of things, we have a bad habit of "testing" the system by using it in the exact fashion it was designed ("Click on this button, then give it a value between 1 and 10 but never a decimal and then wait five minutes") instead of beating on the thing until it can withstand all challenges.

After all that, surprisingly, there are some things I do do*. Email me at if you want me to do them for you.

I know it comes out like "doo-doo" and I know that was a poor way to phrase the fact I know it, which was even more fun.

New All-In-One IM Swiss Army Knife Does Twitter

Digsby shows up just at the right time for me. I like Pidgin fine, but it's not a Windows version of Adium and it feels clunky. While Digsby's Twitter/Facebook/Email integration is nice and I appreciate being able to sync all of my logins so it works on any machine I use (at the price of giving up all my logins to some machine in the sky), some of the subtler features are what sold me (for the 60 seconds more I've been using it than you have). I like being able to only accept IMs from contacts since I get IM spam most of the times I sign into Yahoo. I'm sure Pidgin offers most of the useful features, but well, this is new so it must be better. More useful details at Lifehacker.

I've got to rein in all these windows it's popping up though. It doesn't seem to understand the concept of multiple monitors or when it has focus. I have no idea why I added my Facebook login since all it's going to do is generate a stream of shit aggregated from elsewhere. Facebook feels like a half-assed version of FriendFeed given the way my contacts use it. Oh, there. It just popped up with a status update I don't care about. Hooray for Facebook invading my desktop. Time to live: 2 minutes.


Burying the Hatchet

In the interest of patching up, E from the eels has invited the President to a concert (or three). No word from W's lady-in-waiting yet.

Holden+ C64 = Love

No More of That Then

As part of my personal Moratorium Project, I'm asking all respected, older male authors to immediately cease publication of erotic passages in their works. Future Mailers, I can't have it, you greying literary lions with pot bellies and your remaining hair in the wrong places, striding about the literary world like old guys in the gym bathroom, too pleased in their nakedness, writing things like:

I am a great spurting tower. My manhood:
a white derrick sunk deep in the folds of Mother Earth by prospectors (who plumbed her depths well and took her secrets)

No one wants to see it, so close the kimono, gramps.

There Are No New Stories

The ancient Greeks wrote them all. For example:

"Mr. Spitzer’s suspicious financial transactions at North Fork might never have been discovered were it not for a Suspicious Activity Report filed by HSBC about the shell companies linked to Emperor’s Club V.I.P. in October, according to several people with knowledge of the inquiry, who spoke about the investigation on condition of anonymity.

As it turned out, both the North Fork Bank and HSBC had faced inquiries into their lending practices led by Mr. Spitzer when he was New York attorney general. In the case of North Fork, Mr. Spitzer announced a settlement in 2003 requiring it to refund more than $20,000 to dozens of homeowners and cease what he said was its practice of charging homeowners illegal fees."

Good thing you woke them up, Eliot.

Celtics Coverage: Now with More Scat!

Tommy (re: injury reports): "Now I am told by the truck that good old Greg had the poop!"

Mike: "He did."

Tommy: "He had the poop! But he didn't give it to me!"

Mike: "He's got to share that stuff."

Tommy: "That's it!"

Tommy then sung the words "That is a mis-TAAAAKE" regarding the Sonics' defense of Paul Pierce. I'd like to take editorial license and claim Mike said, "He's gotta spread it around", but alas, it's not true.


SXSW Music Torrent

Literally. Somehow in the course of a year, the online music sampler from SXSW went from 60 songs to 48 hours of songs, so I'd given up hope of finding anything new from this year's SXSW. Fortunately for me, Paul Ford was willing to step in and act as a filter. All via his 6-word limit Twitter feed.

New Gnarls Barkley

Two videos, second one is just ?uestlove doing his best teenage girl on MySpace act while the song plays. Not that I'd know, but the album might be on Soulseek