Saturday, March 03, 2007

The State of software

There's a thought provoking discussion on pragprog on the current state of software. The discussion was really insightful, and I can't disagree with the group that, quality of softwares has gone bad.

These days, People comfortably accept existence of bugs in most software, which is a fact not acceptable at all but it seems the expectation from software is being relaxed and hence limited existence of better software, is this the failure on our part?

Even after almost fifty years, people are still writing code in historical languages, and are happy with it, this is very questionable compared to other disciplines. If we compare software crafting with other domains, it's quite frustratingly slower in improving, this rant is quite valid. Although few of us have started picking up the lessons from domain, lean software development being one of them.

On optimistic fronts, there are few good news also (note that 73.5% of all stats. are made up ;) ). According to these news there are few outright software project failures and look at the bloody success ratios! they are marginally good in comparison!

Of course, there are few world class development in open source, which have outperformed most traditional stuff (e.g. managed environments), but they are not in sufficiently large number.

IMO, all this deserves evolutionary development, and yes Agile helps, not a silver bullet but helps; quite a lot in controlling four essential aspects of four variables.

And this pragprog topic is worth a read...

1 comment:

Nawal Kishore Lodha said...

"These days, People comfortably accept existence of bugs in most software"
It's not actually these days but the software industry has always been like that; and as you suggested the real problem lies in the fact that industry has become used to it. We take it for granted.
Reason is - we close our eyes and do not want to see the costs incurred in fixing issues and all the rework. While in other engineering streams, say manufacturing, rework costs are more tangible in the form of raw material and processing costs and cannot just be ignored.
Strange are our practices!
Historical languages might not be the problem.
The way out is definitely using the best tools, best practices and technologies and to shed off our inefficiencies. Reusability is the saviour.
And this can be achieved only through componentization.
Some 15 years back, lot of people in domain industries had to take VRS (voluntary retirement). It happened because of the inflow of viable and efficient tools and technologies. May the software industry see such a day soon enuff!
Let people be more efficient without considering bugs and rework for granted, enabling them to become knowledge workers rather than laborers.