uwMike.com

I'm in Waterloo at the moment, and next available to work in September 2008.

Archive for April, 2005

Collaborative Hackers

April 28th, 2005 0

Douglas Bowman has posted a piece about the role of the designer in collaborating with their clients. This same philosophy is as applicable in software design as it is web development and branding.

I’ve recently moved from being a hobby programmer to a hobby programmer who sometimes gets money. Which sort of makes me a ‘professional software developer.’

“Development”

To me, the term software development reflects a distinctly corporate attitude toward the creation of software:

  • The developers’ natural tendency is to Mess Up.
  • We must meticulously document every facet of every feature in order to Prevent This.
  • We will Design It. They will Implement It.
  • We are not interested in a work-in-progress, we will see it when it’s Done.

It’s not hard to see how this pattern of thought may have developed: Hackers speak in programming concepts. How intimidating it must be to hear expressions like ‘referencial integrity’ thrown around the design table!

It should be our job to carefully explain these things as necessary, rather than jumping to conclusions and leaving the client in the dark. After all, when decisions need to be made, how useful is a customer who’s full of buzz-talk but has no basis for understanding the underpinnings of their new software?

The other part of this is that they need to show us the flow of their business. Not what they percieve the flow of the application should be, that can come later, but the actual product process. The more time is spent showing your programmers the big-picture view of what’s going in the company, the better their understanding will be. The more they see where their new application fits into the existing framework, the more ‘little things’ they’ll be able to add to make it that much better.

With all this teaching going on, there’s an upfront time commitment to be made. But it’s a worthwhile one. And it’s time that would have been spent writing a spec, anyways, so instead of just saying what needs to be done, why not persuade each other of what needs doing?

The Risk

What’s the problem here? The problem is that you can end up with a pig-headed hacker who thinks he knows what you need and won’t bother to learn even if you try to persuade.

Fire him.

And when you’re hiring to replace him, look for someone who’s 50% teachable and 50% able-to-teach.

Pick a project from their portfolio and ask them to talk about it. You’re looking for an explanation of the lowest-level and the highest-level. What makes this thing tick under the hood? And what role did it play in the greater scope of the organization? After data left your program, where did it go?

The amount they’ll share about that project is indicative of what they’ll bother to learn about yours… and what they’ll teach you about it.

Mike

Accessible Celebrities

April 21st, 2005 0

Every kid has heros. And we never really lose them, we just start calling them something more mature-sounding, like ’star’ or ‘role-models’.

I amazes me when I step into someone else’s world and see their heros, how frequently they’re incredible people who I’ve never even heard of.

There are heros in every niche. Ever heard of Jeffrey Zeldman? Go out on the street and ask 100 people who Zeldman is. If you’re a web-developer reading this, you know that The Z is like the founder of modern web design. Hundreds of thousands of professionals and followers read his website every week. But who beyond the field knows that?

What about Kurt Browning? Out of a hundred people, how many would remember that he’s even a figure-skater, much less a four-time world champion? I know this because my sister skates, and through her I have a small window of exposure to that world.

Accessibility

Both a skater and a designer create a work that is an extension of their own personality. Neither is direct, but in watching a marvelous performance or seeing classy design, it’s possible to get a glimpse at the character of its creator.

So what’s the difference between a figure-skating celebrity and an Internet celebrity?

It’s the accessibility. Sports heros and movie stars have publicists and managers and all other sorts of nasty tangles that keep them away from their fans. Yes, you can write them a snail-mail letter and they’ll maybe reply once it’s been screened. But you can’t really have a decent conversation.

Contrast this with the communication available through the Internet. When I had a question for Paul Graham about a controversial statement he’d made in an essay, he sent me a thoughtful reply a few days later. When I was curious about re-release possibilities for The Neverhood, I shot off a quick email to its creator, who shortly responded.

Both of these guys a millionaires. They don’t need to talk to a first-year student. But I enjoy the correspondence, and I’m sure they appreciate hearing from a fan.

Visibility

Is there a dark side to all this? Sure. It’s clear that the availability of private contact information on the web is a double-edged sword. What does it mean when Shia Labeouf has a MySpace account? It means he’s suddenly directly accessible to his fans… including the creepy stalkers.

Corporations like Microsoft have discovered the value of having bloggers give them a human face. Perhaps more traditionally aloof figures will make themselves available this way. It won’t be for everyone, but imagine the power as a buzz-machine!

Mike

The Internet Says…

April 13th, 2005 0

There’s a wonderful fallacy that marketing executives never tire of. It’s written right on the sign outside every McDonald’s restaurant: “Billions and billions served.”

How can billions be wrong? If an opinion is popular enough, does that make it somehow correct? How about moral relativism? If enough people believe something, does that make it right? As someone who believes in an ultimate authority, I have to answer an emphatic no to both of these.

But what about those who do believe what’s dictated by the trend? What about questions on quality of a fast food meal, where the Bible is silent?

The Internet offers a frighteningly powerful way to see what people believe. It’s called Google.

The Ultimate Democracy

Google is like a gigantic ballot-box. Each ballot has billions of checkboxes on it, and every time one site links to another site, a vote is cast. One site linking to another site is the former lending credibility to the latter. Sites that already have a lot of credibility have more voting power.

The outcome of this is that some of the highest ranking sites on the Internet are blogs. Blogs are constantly linking to each other. Wonder who the most important Matt is in the world? The top 6 are all high-profile bloggers. Matt Damon’s IMDB page clocks in at #8.

If bloggers have the most Pagerank, what does that make them? It makes them the voters in the vast democracy of Google. As we vote for each other, our Pagerank goes up, and as we vote to non-blogs, their Pagerank rises.

Trouble In Paradise

But what’s the problem here? Suddenly Google isn’t necessarily reflecting what is accurate; it’s reflecting what is believed by the population… of bloggers.

This can have a tremendous amount of impact. So valuable are the opinions of Google that there’s a whole site for them: Googlism.

Case 1: Try googling the travel-planning company Orbitz. What a mixed-bag this is! We’ve got a scathing review by Maddox, a Paul Graham posting on Lisp, a New Architect case study, and a couple pages about the short-lived Orbitz beverage.

How is someone looking to book a flight supposed to process this? Looking at search results isn’t like checking the BBB. But not everyone knows this.

Case 2: Google Paypal. Ouch! How do they stay in business? Links #2 an #3 are both blistering reports on the company’s practices. And not just single pages, as Maddox’s was, they’re whole communities full of mis-treated customers and tattling employees.

How do companies deal with that; knowing that potential customers are viewing this? On the one hand, it’s great that genuinely problematic companies can be strong-armed into cleaning up their act. However, what about embellished or slanderous reports?

I haven’t got the answer; it’s just one more of those new things that the Internet has brought about.

Surfer Beware

What’s the lesson here? Google can tell us many things, but as with any resource, the source must always be subject to scrutiny.

Mike

Programmer’s Euphoria

April 8th, 2005 0

There’s a unique sort of delight to be felt when you know you’ve created something marvelous. It’s likely that artists of all stripes feel similar joy about their best works, but I experience it where I’m most at home: programming.

Programming Problems

I’ve been recently faced with a fiendishly difficult programming problem which shouldn’t even exist but for a bizarre set of circumstances at the client. It’s the sort of problem where there’s no such thing as a clean solution.

No matter what it was, it would be ugly.

Like painting a picture, there’s no perfect way. But the limitations of paint are in their ability to capture the entirety of a scene, whereas there are some behaviours of a program that simply cannot be simulated without an extraordinary amount of non-reusable code.

Inside The Box

Thinking ‘inside the box’ can be one of the biggest enemies in these situations. The ideals of abstraction and data-hiding lead to much more maintainable, bottom-up code. But there are those places where a tool has many purposes. A screwdriver is a screwdriver, but it’s also half a crowbar.

I found it helpful to think in terms of extremeties. Lay out the worst possible approach that would still work, even if it’s too ugly to be feasible. Then lay out the absolute best approach in broad strokes, even if it’s unfathomable how a particular piece of the functionality will be implemented.

Look at the worst-approach picture. Try to grab at anything that can be abstracted, any kind of general case that can be drawn between the different cases.

Impasse

The most successful false start lasted for several days, until I suddenly realised with a sinking heart that would not work. The design was impossible.

What to do then? Go to the water-cooler. Play darts. Cycle home and think about it. Have a shower. Percolate.

In the morning, I’ve got a solution. It’s not perfect, but it will work. And it’s significantly better than the worst-case-scenario. By lunchtime, it’s working, using large pieces of code that was written for the prior attempt.

Teamwork

It’s so important for programmers to work in small teams, and idea-bouncing is one of the many reasons. New eyes can so easily see value in something you’re ambivalent about, or better yet, see the problems with your idea.

Programmer Pride is another reason. When a piece of code just works, it’s so great to be able to show it to others who understand the significance. Like design, the best programming looks easy. The best programs do work for you without even letting you know. Sharing source with others is a way of demonstrating how cool something is under the hood, and sharing a little of the excitement.

Solution

The problem is solved, and development will move forward, spurred on by the knowledge that there’s something nifty in there.

Mike

First-Person Narrative

April 5th, 2005 0

There are some books from my childhood that never seem to leave the radar. If my little brother’s got them out of the library while I’m home, I’ll check out from the conversation and curl up with an old friend.

One such book is Henry Reed, Inc., by Keith Robertson. (and indeed, all five in the Henry Reed series.)

Henry Reed

Henry Reed’s parents are in the diplomatic service. So although he’s travelled worldwide with them, he has yet to experience any kind of normal adolescent lifestyle. He’s sophisticated and eloquent, and extremely dry.

The books are the journal he keeps over the summer, staying with his aunt and uncle in the 5-house town of Grover’s Corner, NJ.

Journal Style

One of the masterful things that Robertson accomplishes with these books is an utmost adherence to the creative writing guideline of “show, don’t tell.”

When writing first person, there’s a tremendous temptation to save on words and fill out sentences with bare moods. After all, it’s a first-person perspective, they can just go ahead and say how they’re feeling, can’t they?

One of the charms of Henry Reed is that no matter how absurd the situation is that he finds himself in, he never admits to it. He simply carries on presenting facts for the digestion of the reader.

Others

I encounted a similar narrative style at home on the weekend, re-discovering Sid Fleischman’s book Humbug Mountain.

One final example that deserves mention is The Chicken Doesn’t Skate, simply because the characters that Korman presents in this instance are all ridiculous caricatures, and yet their own self-righteous opinions of each other are conveyed beautifully through the situations and actions, rather than by talking to the reader.

Mike

© 2004-2008, Mike Purvis, some rights reserved. I'm running Wordpress, and I have an RSS feed.