I'm Keyvan Nayyeri, a 25 years old Ph.D. student at
the Computer Science department of
the University of Texas at San Antonio.
I'm also
a Software Architect and Developer and previously held a B.Sc.
degree in Applied Mathematics.
This is my blog where I publish content about various topics specifically Programming Languages and Compilers, Software
Engineering and Programming.
Most likely you have heard about the recent debate on technical blogosphere about the importance of software quality in software development cycle. There are many posts written to contribute to this discussion so it’s difficult to point to one, but Simone has a good wrap up with his own opinions on this topic.
I’m not going to write one of those lengthy N-page blog posts on this topic because for my regular readers it’s clear that I’m with quality band, and I have supported my opinions in good details in the past few months with several posts covering different aspects of quality and its influence on software projects. So there is no doubt that I definitely like the idea of investing in the area of quality when building the software projects.
But what made me curious about this case was the fact that as time goes on, more and more people become interested in building fast software than building high quality software or at least this is the feeling that I have. This may be something related to the current economic crisis which has forced some people to think about money rather than quality which makes sense to some extent.
Having this said, I think that these years are the worst time to buy something or get a service because not only software projects but also almost everything in this world is affected by this crisis and it looks like that companies are lowering their quality to a reasonable extent. Contrasting this with the software companies, there is a high chance that companies try to reduce their work force and/or hire lower level developers to keep everything on track. Besides, people and other companies are not very interested to invest much money in software projects and this can automatically influence the response that they get from software teams. In addition, software developers may become lazy in learning and improving their skills because they see that it is not such an important factor in their career. All these parameters can damage the software quality.
On the other hand, the growth in the number of rapid software supporters may be also something related to the progress of the software development. The more we face with complex software projects, the more we move toward lower quality projects which is the reverse progress as what we expect. In my opinion this is somehow related to the nature of human that tries to choose easier options when facing with something difficult. Unfortunately it looks like that software development industry is returning more superficial works as it matures.
However, I just want to add one more point to this discussion and that is, I think that rapid software development as is supported by some people in today’s debates is only possible for the field of commonplace data-in/data-out systems. This field, which is somehow the primary field of software, is saturated with lots of automated tools, methods, and techniques which really allow you to build software projects in a shorter time even with a comparatively satisfactory quality. But if you want to build software for other purposes, you’re compelled to know the principles, have the knowledge, and build high quality projects.
All in all, these days it’s proven that those who work in the area of these uncommon software projects have better jobs that are safer than others. Therefore, I can simply conclude that with knowledge and knowing the principles you don’t miss anything, but without them you’re walking on a dead end!
The Curious Case of Software Quality
Feb 14, 2009 3:16 PM
#
You've been kicked (a good thing) - Trackback from DotNetKicks.com
Arjan`s World » LINKBLOG for February 14, 2009
Feb 14, 2009 5:04 PM
#
Pingback from Arjan`s World » LINKBLOG for February 14, 2009
Dew Drop - February 14, 2009 | Alvin Ashcraft's Morning Dew
Feb 14, 2009 7:21 PM
#
Pingback from Dew Drop - February 14, 2009 | Alvin Ashcraft's Morning Dew
phat shatnz
Feb 15, 2009 9:58 AM
#
There exists a concomitant antagonism between highly-engineered software (what you call quality) and domain-centric software which is often produced by experts in the business domain but amateurs in engineering. The results are either 1) quality software that won't do what the business wants or 2) poor-quality software that helps business, at least in the short-run.
I don't infer that good software cannot be simultaneously well-designed for the task and the problem domain, but it doesn't happen often.
After a decade or so of experience, many business leaders are making the choice between the company or consultant that makes poorly-built software that does something useful rather than the software engineers who make well-built software that doesn't.
It is your own bed you've made.
Software Quality Digest - 2009-02-18 | No bug left behind
Feb 18, 2009 12:03 PM
#
Pingback from Software Quality Digest - 2009-02-18 | No bug left behind
T Ashok
May 27, 2009 6:58 AM
#
I agree with your view that in these times speed wins over quality. Low quality means we produce waste. Software being an invisible commodity does not allow us 'see the waste". So who cares? What we can see is progress , hence the constant improvement to speed.
Quality to management is a nice philosophical and politically correct word, we shall talk and act when we get into trouble. I hate this thinking, but majority seems have gravitated towards this thinking.
I am glad that a small band of people like you are thinking on this.
Have a good day!
Ashok
Leave a Comment