Thursday, March 27, 2008

Rights to an accustomed lifestyle?

In an argument for permit allocation, Duke Energy CEO Jim Rogers says:

"But in 25 states, more than 50 percent of the electricity comes from coal; of those 25 states, 21 of them are regulated. There's a reason they never went to deregulation -- because they had low prices."

Seems like a poor argument to me.  The plan is to allocate more pollution permits to states creating the most pollution, and we want to do it because today they have the cheapest electricity around the country and it would somehow be unfair if the worst polluters didn't also have the cheapest electricity?

Having a history of getting something cheap, and doing an enormous amount of damage in the process, whether you knew it or not, does not translate into a right for future advantage.

Wednesday, March 26, 2008

Rewrites and Transitions

Recently, I was forwarded a link to The Worthlessness of Code.  James is right on the principles, i.e. that code is highly overvalued, that there is a another larger source of value largely ignored and the obstacle those misunderstandings place to necessary refactoring.

That said, I've got a few things to add here.  First, the "value" of old code isn't the number one issue preventing rewrites.  The biggest one is the customers, and the length of time rewrites take.  Any reasonably skilled programmer can refactor from the old into the new, but no matter how skilled they are, it will take time.  And in a major piece of software the sum of all those parts may add up to a greater duration than customers are willing to wait from one release to the next. 

Worse yet, if the problem has been building for sometime, and you've lost large amounts of value already through "layoffs and attrition", those durations are even longer.  That is why companies, after they've seen the light continue down the path we all know is wrong.

Advocating complete rewrites as the only solution doesn't solve the problem, you need to be smarter than that.  If you're in a hole, jumping out seems to be a good idea, but what if it's too deep?

There are opportunities for just this situation.  One part of the solution is to remember that there's probably pieces of "value" that really aren't worth anything.  Nobody wants them.  Finding that out can be difficult though so if you start writing from scratch with the goal of dropping a great deal of excess baggage, expect to have a "transition" release.  That's the version that is nice bright and shiny, but everyone hates because it's missing X, or Y doesn't work the way they expect.

If you want to have a transition release and stay in business, you'll need a "keep em happy" path.  Maybe you're lucky enough that the prior version is good enough customers with complaints can be accommodated by just letting them choose, old or new.  But if you're in a hole, and have competitors, likely that's not the case.

So likely you're forced to have parallel tracks.  Personally, my example is Windows 95/NT/98/2000/XP, but I'm sure there are others.  Part of any parallel track strategy is finding ways to bring the distance between the tracks closer together.  Good planning on both sides can make the transition a great deal smoother.

Another opportunity is that large pieces of software often have had so many features added, they're more like 5 applications than one application.  The answer is to decompose.  If you break down a large application into smaller composable pieces, you can create shorter release cycles.  Plus, there lots of other good things to gain from decomposition.  You can still offer the pieces together as a composite application, but the transition can manage each more independently than before.  You'll still get stuck with transitioning and retirement, but in more manageable chunks.

Rewrite sounds so nice and clean, but if jump in that boat you better make your management and customers won't toss a the 2 ton dead weight of "legacy" in with you.  It may just sink you.

Monday, March 03, 2008

Global Cooling - Ptth

Every year, my father and brothers have a "snow bet" tradition.  We each pick a day, and the one closest to the first day with an inch or more (as measured by our official source) wins.  So, in October, before picking my day this year I did some research and found that 2007 was a La Nina year and thus expected to be a colder than average winter. 

So now when I hear the argument from the media, from friends, from family, that 2007's winter "disproves" Global Warming it's irritating.  Disregarding the fact that one year can't disprove decades of data, what 2007's winter supports is that we actually know something about predicting climate change.  If someone tells you the earth is getting warmer in the long term, but the immediate winter will be colder, the occurrence of a cold winter supports the credibility of the warming prediction.

Of course not everyone has the perspective of having looked at predictions back in October, but the data is clearly out there that these predictions were made.  Besides perfect conditions for a very cold winter, truth is 2007's winter was only cold when compared to recent years.  When compared to all historical records, 2007's winter was still warmer than average, 0.32°F to be exact.