Wednesday, September 12, 2007

Don't Get Bullied

Building software for a crowd of generic consumers while challenging, operates by some reasonably straightforward rules that can be reasonably understood. For example, simpler is better.

On the other hand, building custom software for an educated user-base to fulfill specialized processing is excruciating because of the unreasonableness of it all.

The closer your users are to the problem, the more ideas they will have on HOW to solve the problem. This naturally leads to a slew of fragmented and disjointed concepts as they attempt to articulate in fits and starts their individual, informed, ideas about how the system should function.

At the other end of the spectrum, having educated and empowered users who will discourse with you about the nature of the problems to be solved, listening with open-minds to potential solutions, providing feedback to perfect the product, this can be hyper-productive.

We like to say, "They know enough to be dangerous."

When you have fragmented and disjoint components that don't subscribe to a cohesive approach to problem resolution you end up with lots of superfluous code that is usually much more complicated then it needs to be. Twice as much code doesn't make the solution twice as complex, more code adds exponential complexity.

This is not to say that you altering the end-goal for the functionality being delivered, you are changing HOW the software will meet the end-goal of functionality. When you subscribe to a cohesive vision, the product isn't just easier to create, it is simpler to test, quicker to validate, more robust in operation, faster to debug, and much easier for a user to adopt. The evidence supporting this is vast and varied across the technology landscape. The simpler answers always have broader adoption.

When you approaching an engagement, ask yourself what kind of user-base is supporting your efforts. Are they generic and uninformed? Keep it simple. Are they educated, pushy, and sure of their solution? Good luck with that (unless you can change the game). Are they empowered but open? Engage them early and often and you'll be really successful.

Friday, September 07, 2007

Is That Your Hand In My Pocket?

Yesterday we heard from our own news sources about a recent release from the US Justice Department about allowing fees for priority routing of internet traffic. Today, courtesy of the BBC, we see a simple restatement.
The US Justice Department has said that internet service providers should be allowed to charge for priority traffic.

The agency said it was opposed to "network neutrality", the idea that all data on the net is treated equally.
-- BBC News
Why can't our news ever spell anything out this simply?

What’s next? An Uber-Elite Network that’s much faster than the current one…oh wait, we already have I2…
Well how about a private network that you have to pay for higher bandwidth…oh wait, all the major carriers already do that…

Hmm…something is fishy about this, I just can’t quite put my finger on it.

Thursday, September 06, 2007

Come On, Jump On

Big projects are great.

Okay, I work in consulting so that seems a little obvious. But hear me out. Big projects aren't just excellent because they usually mean big money. They are also great because of all the intangible benefits and unaccounted for side-effects.

When people are working on big projects, the little inefficiencies and mistakes they are used to compensating for become exaggerated and glaringly obvious. Likewise, those who can really deliver get an opportunity to do so on scale that is unmistakable. Your performance or lack of it is much easier to identify when the magnifying glass that is a large project is applied to it.

Of course, it isn't just personal performance. The demands of your clients, the companies you work with, the policies you have in place for growing people. All these are put under the stress of longer durations, more bodies, and a much wider diversity of insanity.
The meta-lesson for me here is; if you, like me, have the tenacity to jump onto the back of a moving band-wagon then it seems polite to let the guys at the front do the driving.
-- David Ing (From 9 till 2)
One cool thing I really have come to really appreciate is how the gravity well of a big project showcases the motivations, self-sufficiencies, and sometimes even the loyalties of those you work with regularly.

Let's face it, steering a titanic is hard. Really frickin' hard. If it is for only a short time, or when the penalties are small, you can overlook lots of sniping, counter-productive, or selfish behavior. Start stretching the durations or increasing the costs of failure, and watch how the spotlight finds those who act counter to the culture or the company.