Voice to Internet

June 5, 2008

I just noticed Dial2Do. They offer a voice to SMS/Email/Twitter/you-name-it service. But like SpinVox before them they employ human operators.

Voice recognition & speech generation is one of those areas that just seems to lag behind our expectations. Now, I know there are lots of voice recognition systems out there that work surprisingly well once trained. But few of us speak to our computer at home, nor do they talk back. And I doubt we will for many years to come.

The reasons is; speech is hard, and so it should be, since it’s our only advantage over chimps and you don’t see many of them running fortune 500 companies. (I might be being naive here…)

Anyhoo I doubt I’ll use Dail2Do unless they add features like; organize dinner or clean my house.

Don’t annoy Michael Arrington

June 5, 2008

Michael Arrington recently posted a (bad) review of the new Flip Mino without even using it! And no-one said a word! In fact, he even got quoted. Now that’s web cred!

(Scott Hanselman has a video review.)

Are Microsoft over confident?

May 27, 2008

Just caught this little peice on tools by Ballmer. It captures Microsoft’s attitude to software; which is very much like Wallmart’s attitude to consumables. Cut out the costs, sell it cheap and use loss-leaders to push out the high end competition.

Problem is that as prices for services approach zero on the Internet, can cheap compete with free (as in beer)?

Features that Suck!

May 21, 2008

Features come in many types: only one type really matters. The rest suck!

The one that matters is the User Requested Feature. Sadly its apparent that this type of feature never crosses the mind of many of the folks that build applications and web sites. And even more sadly these features tend to be complex so get dropped first when projects enter Phase 3.Designed by someone who likes tetris

The first type of feature that does not matter is the Developer Feature. These can range from outright bugs to messy APIs that can only be used if you know what going on behind the scenes. Diabolical UI Crimes also belong in this category. These confusion inducing features come from a lack of User Requested Features.

The second type of feature that does not matter is the generic spec feature. These usually come about due to BAs  guessing what users would like from their application. “Well we have a list of things… so… we’ll definitely need to sort by every column, …bound to be important”

Outlook is a perfect example, you can sort and group (slowly) all your email but what you really want to do is search, which you can’t do. Contrast that with GMail. Give people what they want not what you think they want. Lookout did just that and Microsoft bought them to hide their shame. Again this type of feature comes from a lack of User Requested Features.

When the owners wife adds a feature...The third type of feature that is not important is the old technical expert feature. These come in the form of ropey architectural decisions like “we’ll use technology blah” from technologists that are now above programming so just deal out great wisdom… yawn. If you can’t code it, don’t suggest it.

The fourth (be certainly not final) type of feature that doesn’t matter is the infinite configurability feature. Whenever a decision point comes; you go both ways and then let the user configure which behavior they ‘want’. Let me tell you a secret: users don’t care, and being asked just angers them. Take as many decisions as possible, use intelligent defaults and don’t make users think!

User Requested Features are almost the only type of feature your software should have. The problem is that they can be complex, tricky to implement and usually require some creativity to solve. But they’re so neglected there is always some low hanging fruit.

So… if you’re a developer, try asking your users for a small feature they would like and …just add it. If you work for BigCo you’ll start making powerful friends and if you work on the Internet you’ll drive more traffic!

And who knows you might just enjoy it…

(Short && Simple) == Sweet

May 20, 2008

There’s quote attributed to Blaise Pascal that goes:

“The present letter is a very long one, simply because I had no leisure to make it shorter.”

It’s an observation that brevity is more difficult to produce that verbosity.

However, modern programming ideologies encourage you to write your solutions in a verbose framework or with an X-first methodology (pick an X) or with restrictive rules to help you “be a better programmer”.

It\'s all very complex you see

There are plenty of (typically aggressive) ideology pundits that will rattle off the usual straw-man arguments about using their strict set of rules: the power of sameness, easier maintainance, easily understood code… etc. etc. You can usually spot these people because conversations with them feel like you’re playing an old skool text-based adventure game …and you’re probably stuck in a loop.

The truth is that only Deliberate Practice will make you a better programmer. Only loose coupling and simple architecture will make a system maintainable. And the ONLY way to make good software is to build it for the people that will use it, with their feedback.

Having 7 classes where you could have had 2 is gold-plating. Building everything to an interface is gold-plating. Having more than 1 factory is gold-plating.

So the next time your tempted to build a system of abstractions think of the words of Seneca:

“Love of bustle is not industry”

Aside: In Pascal’s day letters cam in iterations because there were word processors, perhaps a good thing we’ve lost…

Markets are not Efficient

May 18, 2008

The Freakenomics blog over at the NY Times website recently did a piece on Chrysler offering $2.99 petrol for 3 years with a new Chrysler. Steven Levitt thinks this is a great idea because peak oil is just hot air.

The general gist of his piece is that no matter what happens, a free market economy can smoothly and cleanly handle it, and transition to a new stable mode of operation without resources that were previously plentiful… Pretty hopeful eh?

He praises Chrysler for having a brilliant idea; insulating consumers (for a short period at least) from the very price pressure that is the lifeblood of an efficient market. But there is a larger problem…

The truth is that markets can only find local minimums. Market forces do not create global improvements in efficiency because these require a move toward more expense in the short term. This is why government’s build roads (expensive, low return) and business’ build houses to line them (cheap, high return).

A good example of market induced inefficiency is in the area of car engines: turbine engines which can be used to propel cars have operational efficiencies of 40% where as internal combustion engines have a maximum theoretical efficiency of 38% and a typically operate at about 20%.

With a large proportion of consumer spending being on Veblen Goods anyway, price sensitivity only effects the very poorest, for the raw essentials of survival. While the rest of us consume as many expensive products are we can afford.

Another way that markets are not globally helpful is that not one pound from the FTSE-100 is spent on the common good unless it’s tax deductible or not really that common at all. And without this kind of spending all you get is cash-flow maximization for existing lines of mass-market business.

There are a few disruptors, but with the size of the modern global economy it requires so much money, time and risk to change our consumption of a major resource like oil that few have the will and the means to try. That doesn’t mean that we wont run out, just that we wont wean ourselves off until we have run out. And there won’t be a smooth transition…

Suboptimal Voluntary Software

May 12, 2008

For most of us software can be broken down into two rough categories; software we have to use and software we choose to use.

I’ll leave software we choose to use for another time. But when you look at the software you have to use it becomes apparent that there is a whole spectrum of quality and, possibly, room for some innovation.
There are lots of reasons we have to use certain software. Often it’s part of our job and the software, at best, does something boring but does it well. But more likely it does something boring very very badly. This kind of software could be home-grown or built by the CEO’s golf partner’s hair-dresser’s software consultancy. If this type of software is a large part of you work day; despair!
Achievement eh?
Other times we’re tied into something like iTunes or Hotmail. There may be better alternatives out there buy the hassle/danger of changing is too great so we just stick with something that ‘does the job’. This type of software benefits from an incumbent bias which can give it clout long after it has gone stale.
But the most interesting category (if you’re looking to build a start-up anyway!) is the type of software that falls short but does not deliver. Lets call it Suboptimal Voluntary Software (SVS). The First S could stand for something else too. There are obvious examples of SVS like flight booking sites, food ordering sites, your bank’s online banking site (which doesn’t have RSS) etc.
There are companies moving into the example areas but the category of SVS is vast. Often innovation in this area is tarred with the “build a better mouse-trap” brush. But there is a lot more to it than that; often replacing the existing mouse-trap is not possible, not enough people are ready for change or the technology is too fiddly. An elegant example of a clever innovator in this space is TripIt. Check ’em out!

…anyhoo, if you’re a programmer and want to be an entrepenuer, try and improve the SVS you have to use.