« Alistair Croll on Ajax | Home | Managing RIA's [7]: Developing Usable RIA's »

Software Engineering Matters

Illustration: Leaning Tower of Pisa

With the obvious exception of a few bloggers like Markos Moulitsas ZĂșniga, whose blog Daily Kos receives over a million visits per day, I think most bloggers are happy just to know that someone cares enough to read what they write. In my own case, having spent my career working on software performance, I learned long ago that only a small fraction of the population is actually interested in Performance Matters. So I don't expect a lot of feedback.

All the same it's nice to hear from a reader occasionally, and yesterday was one of those days -- I received a comment from Damith C. Rajapakse.

Curious about why a post on Waterfall Methods would be the one to generate a response, I did some digging. For readers who would like to hear about interesting stuff for the serious software engineer, Damith's blog -- Another Day in Mythical Man Month -- is worth a look. In particular, his recent post on maintaining future web applications (subtitled 'it's time to brace ourselves') is very relevant to my current focus on Rich Internet Applications. Damith notes that while ...

rapid development of Web apps is receiving the lion's share of attention, maintainability of Web apps (is) hardly receiving a thought.

He warns about three trends that are likely to make Web applications hard to maintain:

  • The rush towards visual programming
  • Overuse of frameworks
  • Overdoing that AJAX thing

While it's good just to know that someone is reading what I write, it's even better when they have something useful to contribute to the discussion. And in this case I agree completely with Damith's perspective on the issues. Ten years ago, on the very first page of the introduction to my book about client/server performance, I wrote:

In today's world of visual programming, rapid development, and out-of-the-box solutions ... performance is one area of software design that is frequently misunderstood, forgotten, ignored, or postponed, often with disastrous results.

The same can be said of maintainability -- which, like performance, is always less interesting to software developers than creating new application function. That is why your software development process must ensure that characteristics like performance and maintainability are designed and engineered into applications from the beginning. In other words, it is important to realize that good software engineers do a lot more than just writing and testing code. According to Wikipedia, Software Engineering is ...

... the practice of creating and maintaining software applications by applying technologies and practices from engineering, computer science, project management, application domains and other fields... Like traditional engineering disciplines, it deals with issues of cost and reliability ...

As I have noted previously, the complexity of Rich Internet Applications makes it essential to actually practice rigorous software engineering, and not just crank out code.

[This post was first published on blogger on April 16, 2006.
Damith's blog has been quiet lately.]

PrintView Printer Friendly Version

EmailEmail Article to Friend

Reader Comments

There are no comments for this journal entry. To create a new comment, use the form below.

PostPost a New Comment

Enter your information below to add a new comment.
Author Email (optional):
Author URL (optional):
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>