Smart Software Should Get Out Of Your Way

1/7/2009 2:23:05 AM

Smart Software Should Get Out Of Your Way

Nick Bradbury, author of several successful software products, writes that "Smart Software Should Get Out of Your Way."

If you believe the tech pundits, “smart” software should predict what we’ll do so it can perform the next action faster.  “Smart” software should automatically correct our mistakes.  And “smart” software should adjust its user interface based on the features we’ve used in the past.

Sounds nice enough, but I’ve rarely seen software do these things without causing even more frustration than it attempts to solve.  It ends up being less like a helpful coworker and more like that annoying braniac every office is plagued with who constantly interrupts you with advice on working smarter by doing things his way.

The trouble with existing "smart" software is that they rarely incorporate genuine smarts. Rarely is there any actual intelligence underneath the actions, but rather a set of crude heuristics like pattern matching.

At the low end of the scale is Windows Explorer, for instance, with the lengthy pre-scans that occur when inserting a flash drive or performing a file operation: A single picture among diverse files selects the Picture view with a "Date Taken" column in the folder, for instance. Slightly better is Microsoft Word, which all too often misses with its "Auto" features, which are based on raw document text. Towards the higher end of the scale is the Visual Studio IDE, which maintains a dynamic internal representation of the code base. Even higher along the scale are products like JetBrain's Resharper, which incorporates substantial code analysis.

Then he seems to take a dig on me.

We all know that guy – he’s textbook smart but socially inept.  Which is a good description of much of today’s software.

Comments

 

Navigation

Categories

About

Net Undocumented is a blog about the internals of .NET including Xamarin implementations. Other topics include managed and web languages (C#, C++, Javascript), computer science theory, software engineering and software entrepreneurship.

Social Media