Current Articles | RSS Feed RSS Feed

Soft Landing for Evolvable Apps

Posted by Andy Singleton on Fri, Oct 12, 2007 @ 08:00 AM
Digg digg it | Reddit reddit | del.icio.us del.icio.us | StumbleUpon StumbleUpon 
Evolutionary product development is a technique that will dramatically increase the speed of software development. It's already happening. We see it in the form of “soft apps”, which have changing and unpredictable behavior.

As programmers, we are used to building “hard apps”. Hard apps do what we tell them to do. The layout is fixed. The product is released when we know that it is going to work as intended. As users, we are accustomed to hard apps. Hard apps work in a predictable way. Hard apps give us options. Hard apps force us to learn intricate rules and menus. Browser, editors, and blog applications are hard apps.

Soft apps do not work in a predictable way. Instead, they try to interpret what the user wants, and they change their output in mysterious ways.  Maybe it's a response to new statistics and user behavior, or maybe it's a random experiment. For an example, try this query at Microsoft live search, and hit "Search" a few times.

Search engines are pretty soft.  Many online advertising and marketing systems are soft. They change the ads and offers that are presented to a user based on some combination of historical response, user behavior, bids from advertisers and sellers, media rates, and random experimentation. Companies like Optimost and Offermatica provide systems that rearrange not only the offers, but also the layout and the available options. The Internet itself, the great global system of routers, is a soft app. It has“weather”. You can't route a packet through the Internet with on an exact schedule. On the other hand, you don't have to give it an exact route.  Soft apps don’t do exactly what you say, but on the other hand, they don’t force you to say exactly what you want.

The distinction between hard apps and soft apps is important because hard apps cannot evolve. They are brittle. A random change to a hard app breaks it. A random change to a hard app is a bug, not a tolerable experiment. On the other hand, we expect and tolerate variations in a soft app. Bend, and you will never break.  Soft apps can mutate. They can improve without our ticketing processes and QA procedures.

Tags: , ,

COMMENTS

Interesting point, Thank you!

posted @ Tuesday, October 23, 2007 11:45 PM by IPv6


Post Comment
Name
 *
Email
 *
Website (optional)
Comment
 *

Allowed tags: <a> link, <b> bold, <i> italics

Receive email when someone replies.

Blog Navigator

Navigate By : 
[Article Index]

Subscribe by Email

Your email:

About This Blog

Accelerating Software Development with Agile, open-source style processes, distributed teams, on-demand teams, new product launches, Web 2.0 strategies, startups.  Author Andy Singleton builds new products fast.

About Us

Assembla offers services for building software with agile, distributed teams.