jump to navigation

Are We Not Building Software Right, or Not Building the Right Software? January 7, 2010

Posted by Peter Varhol in Software development, Strategy.
trackback

This past weekend Tim Bray made an interesting point regarding how we develop large software systems in enterprises versus in entrepreneurial environments.  He first makes the observation that:

“The community of developers whose work you see on the Web, who probably don’t know what ADO or UML or JPA even stand for, deploy better systems at less cost in less time at lower risk than we see in the Enterprise.”

With that provocative statement, Tim goes on to say that Web entrepreneurs must be doing something right in order to get from concept to deployment of a successful applications, and at the same time development teams in enterprises are not.  He believes that something right is developing iteratively and with far less systems analysis, specification, and documentation in general than you typically see in enterprise development.

I agree in part.  The obvious comeback is that we have to have more formal development processes in place in the enterprise, because we are building software for a specific purpose.  However, the fact that enterprises come to recognize many entrepreneurial projects on the Internet as having some value to their business operations seems to argue against their being a fundamental difference between enterprise applications and successful commercial Web applications.  Wikis, Twitter, and IM are all valuable communications tools in many enterprises.

A more relevant criticism of his argument is that we only hear about the commercial product and website successes, not the failures.  For every Facebook and Twitter that is conceived of, developed, and launched in a matter of months, there have to be dozens or even hundreds of failed efforts.  Comparing commercial Internet successes to all enterprise projects may be interesting, but it isn’t fair.  It may not even be relevant.

Still, Tim makes a good point that it is possible to develop great applications fast, and his prescriptions for doing so are worthwhile.  He first encourages us to pick our battles; if packaged software exists that can be made to serve, we should use it.

Second, decide what it is that your company needs to do better in order to gain a competitive advantage, and put your development efforts into those projects.  And start coding right away, working with domain experts and users to get regular feedback and feature ideas.  We used to call this agile, but apparently as the term goes mainstream, it is almost assumed to be the case.

Agile techniques don’t work in all situations, but they should work in most user-facing enterprise applications.  Oddly, they almost certainly would not have worked with Twitter or other paradigm-changing Web applications, where those who conceived and built the initial application have to make a leap of faith about what an unknown user may want for an unnamed purpose.  That sounds a lot riskier than what most enterprises do, and I would guess that the failure rate is a lot higher.

Advertisements

Comments»

No comments yet — be the first.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: