Monday, October 11, 2010

The Quality Continuum

Software quality, unlike beauty, can be measured and quantified. There are basic tenets in place - like maintainability, portability, scalability and so on. Somehow that notion has been completely replaced by over emphasizing on the form rather than the substance. What do I mean by this?

I was recently involved in a project executed by a CMMi level 5 company. The code was written in 2008/9 and the project went live in June 2009. In March this year the client wanted to do some enhancement work on the system. I was asked to come and look at the overall architecture of the system.

What was startling was that this project was executed by one of the largest and most prestigious IT vendors from where I am from. To start with, the program was delivered in 2009 with many bugs, had 13 *.sln files within a single system, 7 databases and 17 web-service solutions. My first reaction was - what is going on?

Soon I realized what the true problem was, the Internal QA was obsessed with the Project Management Plan ("PMP"), the Project Manager was scrutinizing the schedule to the last detail and the users were obsessing over the specification and nobody actually bothered with the real fundamentals - building software solutions that actually work.

While it is great to have a quality process in place - it is an unforgivable sin to compromise on the basics - code quality and design principals. The lesson learnt is that improvements in the maturity models such as CMM or CMMi's without corresponding improvements in the software quality assurance process can be counter productive.

Ironically, improving the process of poor coding standards makes the software quality unbearably lousy.

One of my first year University books was entitled, "The Arts and Science of Programming." Now, would you put Da Vinci through the CMMi process? I guess not....

Friday, May 21, 2010

Migration from legacy systems

I was recently on the panel of judges for the Itanium Solutions Award 2010. I was pleasantly surprised by the quality of submissions for the Data Center Modernization award this year.

As all the finalist were of very high standards, and since all brought out the value of their Itanium deployment, I was looking out for a differentiator that would set them apart. Generally, I used the additional guidelines below:

- Improvements in processing power
- Reduction in CPU utilization running the same apps on the legacy vs the Itanium
- Reduction in the number of CPUs running the same apps on the legacy vs the Itanium
- Direct cost savings as a result (licenses, etc)
- Improvements in the management of the data center
- Ease of partitioning
- Ability to scale the database efficiently.
- Ability to migrate / upgrade the servers without impacting the business through minimal downtime.

I congratulate all the Finalists and Winners of ISA Award 2010