June 2007 Entries

Good News First

Three Windows Mobile developers, Mort, Elvis, and Einstein, are sitting at the lunch table when their project manager bursts into the room. PM: "Guys, I have some good news and some bad news." Mort: "Tell us the good news first!" Elvis: "Wait! I need to grab my laptop and take copious notes." Einstein: "I have a theory about what you are going to tell us." PM: "Be quiet and listen. The good news is that we bought iPhones for all the software developers". Mort: "iPhones? But the product only targets Smartphones!" Elvis: "Cool! Where is the SDK?" Einstein: "You should've waited for an updated iPhone...

Bravest Face

One of my first evaluated public speaking events was a disaster. In high school, my teacher filled a basket with index cards. Each card had a "topic" printed on it. One by one, we had to go to the front of the room and pick a random card from the basket. We then had 60 seconds to prepare a 5-minute presentation on the topic we selected.  When it was my turn, I went to the front of the room and picked out a card. I looked, and my card said, "Break on through to the other side". I put the...

Faithless

I respect faith, but doubt is what gets you an education. - Wilson Mizner Everyone starting a new software development project needs to have some faith. You might have faith in a particular tool, or programming language, or development process, or all the above. I hope you also have faith in yourself, and your colleagues, too, because that kind of faith gives your project a greater chance to succeed than any faith based in methodologies or silicon. At least this is what I believe. Blind faith can be bad. It's good to occasionally look around with an open...

Hope

Back in the old days (just last year, in fact), the stock disk defragmenter in Windows looked something like this: If you had no choice but to defragment a drive immediately, then at least you could entertain yourself by watching little green and red stripes bounce around inside the window. A quick glance could tell you if the defragmentation was nearing completion. Along comes Vista, with a new defragmenter interface: The defragmenter takes more of a Hollywood "don't call us - we'll call you" approach. I haven't found any red, green, and blue bars moving around to pass the time. All I...

The Way The Wind Blows

You don't need a weatherman to know which way the wind blows – Bob Dylan, Subterranean Homesick Blues. What direction does the wind blow in your software? It's easy to feel the direction of the wind when standing outside, but software is subtle. One of the guiding rules in interface design is the Principle of Least Surprise (POLS). This principle states that developers should choose sensible defaults and implement behaviors that don't surprise or astonish users. We can use the rule as a guide when implementing a user interface, or building an API / library / framework. POLS is more of...

The Main Monkey Business

I want to ask you a question about ethics. Let's pretend you've been working under contract to write a handful of components for some larger project. Nobody told you what the larger project really is, but the contract pays well and you've been given all the information you need to finish your work. About the time you've reached the halfway point in your work, you uncover the goal of the larger project. The project is an application that will email thousands and thousands of phishy messages and collect information from users through a website. The website will try to trick unwitting...

Spindrift

Once you've worked in as many software startups as I have, then you'll know there can be a Dilbertesque relationship between engineering and sales/marketing. If you use a microscope to examine the brain of an engineer, and the brain of a marketing person, then you'll find obvious biological differences - the brains are wired differently. The two brain types tend to blurt out dissimilar and conflicting ideas when sitting in front of potential customers, and thus we have plenty of stories to laugh about after the pain subsides. When you return to the office from a "sales" meeting, all of...

The Larger Bowl (a pantoum)

Let's start a blog - we'll build a community. We'll throw out ideas for a world of diversity We'll build a community -attract like-minded thought. For a world of diversity - they all need to be taught. We'll throw out ideas if they refuse to adhere. Let's start a blog - is that an echo I hear?

Workin' Them Angels

Does Microsoft have a set of guardian angels? Think of all the killer threats they've seen over the years.Threats came from Ashton-Tate, IBM, Lotus, and Novell Then free software, open source, and the viral GPL Oracle, Google, Sun, and Job's Apple All four of them fought, and are still here to grapple. There was AOL, Sony, Netscape, Nintendo Palm and Symbian both reached a crescendo. There are Linuxes and Unixes - NeXT and OS/X. Some even say Vista is a suicide hex. Bay Staters and Iowans both had their day. So did the EU, Real Player, and the American DOJ. People included Ellison, McNealy, and...

Armor and Sword

We hold many beliefs in software development. We believe the tools we use are better than the tools "someone else" uses. We believe our process is better than the process "someone else" uses. Too often I see technical people use their beliefs as a sword to attack someone else. Attacks rarely persuade the other party. More often than not, the attack puts the other party into attack mode. They have their own set of beliefs. Use your beliefs as armor to strengthen your own position. Don’t tell me what’s wrong with my approach- show me what works with your...

Far Cry

The Days Of Old In December of 1998, I joined an Internet startup and dove into web development. This was also my first contact with Microsoft tools. I was a stranger in a strange land, having come from the world of embedded systems programming. Although I had written two Windows applications previously, I wrote the applications using Borland tools, and followed the Document-View architecture of Borland's OWL framework. The startup put together a great team of hardcore C++ programmers, and we built a rich domain model. We didn't use the term "domain model" at the time, but a domain model it...

Now For Something Completely Different

For years, I've owned a note pad where I jot down thoughts. My note pad is electronic now, but the purpose is the same – capture an idea before the current of the day sweeps the idea away. Keeping an idea journal isn't a new concept. Comedians, scientists, writers, professors, inventors, and others have found inspiration in their notes for centuries. My notes have certainly provided stimulation for this blog. I have a section in my notebook to store "blog-able thoughts". Over the last year, however, many of these blog-able thoughts haven't seen the light of day. I have time...