Software Engineering Matters
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
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 Engineering involves a lot more than just programming and testing your code. According to Wikipedia, it 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.