Define one or two aspects of IT product quality that should be considered when planning software project activities. How can they be measured? What are the foreseeable consequences of poor quality from your example(s)? How can the negative consequences be avoided?
Interesting question. Some of the most important software quality aspects are – Scope aspect of quality that points to requirement analysis issues, Usability (extensive training required and slow response times), Correctness (defects, 1 in 5 transactions) and Integrity aspect of IT product quality that is related to privacy and security.
Since above metrics of quaity surrounding ‘Correctness’ metric of IT product quality is very always discussed and trivial, I shall focus on two other commonly used metrics for software quality namely – Maintainability and Availability.
Maintainability: Maintainability refers to the degree in which software can be modified to correct an error or adapted if the operating platform is changed or enhanced when the user requirement changes. The most common method to measure maintainability is to calculate the mean time to change (MTTC) which is the total time required to analyze a change request (defect, enhancement), design and implement the required change, conduct testing and deliver the change to users. Highly maintainable software products have minimum MTTC and have high quality as far as maintainability is concerned. The major consequence for a software product that is built less maintainable is that it leads to more time, effort and cost to implement a change. Consider the case of Linux kernel – it is built collaboratively through open source communities and is highly maintainable. Aspects such as object oriented programming, constant community support and the free source code makes the software easily maintainable when a change is required.
Availability:Availability is defined as the probability that the software is operating fine as per requirements at any given point of time. Software Consider the case of pace maker chipset. The chipset programming should be 100% available to save the life of the person who uses it. Poor availability can endanger life. Software availability can be increased by reducing the defects to minimum.
Other related articles that you might be interested in –
1. Factors Affecting Software Cost
2. Programming Team Structures
3. Software Cost Estimation
4. Factors Affecting Software Quality and Developer Productivity
5. Managerial Issues of Software Engineering
6. Connecting Traditional Water Fall Software Life Cycle Model with Agile Models
7. Software Engineering
8. Software Engineering then and now
9. Project size driving Project risk
10. Software Development Team Structures