Software managers and developers give lip service to quality while customers grow accustomed to buggy software.
The term "quality" is used (or rather misused) frequently in the arena of software development: It is preached but not practiced; rules are drawn but not followed. Despite "concentrated" efforts to deliver high quality software, most software products are riddled with bugs, so much so that they are a regular "feature"! (The expected number of bugs in 1,000 lines of code is around 40.) Software makers get away with this because either there are no alternatives to their products, or their customers are satisfied with a product's basic capabilities.
The arena of EDA (electronic design automation) software stands in stark contrast to the commercial software products domain. Customer requirements must be strictly adhered to and any lapse in this regard is met with a vociferous objection. Quality is a requirement. The metrics of quality itself are more rigorous and comprehensive compared to a "pure" software product. The guidelines of good software must be followed almost verbatim in an EDA software tool. Hence the obvious question: What separates commercial or "pure" software from EDA software?
The primary difference between the EDA and commercial software domains is the market that each product targets. An EDA vendor sells tools and products to a player in the semiconductor industry, whereas commercial software is aimed at the general public. An error in an EDA tool could translate to an unrectifiable hardware defect. A bug in a chip is costly as we know from the experience of the floating-point error (the probability of which is one in a million) in the Intel Pentium Chip. In contrast, commercial software patch releases are quite common. Releases are frequent and upgrades almost continuous.
Commercial software users are more tolerant than the users of EDA software. EDA software users are power users compared to the novice users of the former. As there is a minimum margin of error in hardware design, power users want the best EDA solutions. They are quite willing to shift to different products that are more accurate. In contrast, the commercial software market is determined more by customer loyalties. This is partly due to the fact that novice users do not switch products easily because of the "learning" impediment. EDA software vendors are always on their toes trying to push their USPs in a very difficult market. Also, compatibility is one of the major issues in the commercial software market. Once a customer purchases a product from X company, he or she will likely continue to use other products of X company because they are compatible. Piggybacking of software products ensures that quality takes a backseat.
Leading the Way
Clear leaders in various segments govern the commercial software market. EDA software on the other hand has various vendors who do not have a clear-cut dominance in the market. Oracle with its databases and Microsoft Windows are leaders in commercial software, whereas, to give one example, not much separates the simulators from Verilog-XL, Modelsim and VCS. This being the case, competition is severe and products must have distinction in order to survive in a limited but cutthroat market. Any lethargy with respect to quality announces the doomsday of a product. On the contrary, users of commercial software are, in a manner of speaking, "addicted" to their software products and less concerned about quality.
The role of standards cannot be undermined in the rapid development of products in the field of commercial software. Consider the field of networking. Standards like WAP and BGP were formulated in very short times and their application development was rapid. Even in the case of data representation, there are standards like XML that all software developers can use for their products.
On the other hand, standards, or rather the lack of them has affected EDA software tools. There is no business standard for representation of cell data. STIL is still in the incubator after years of debate and consultations. EDA software tools deal with a variety of proprietary formats and hence their quality must be validated. This takes time. With shorter cycle times the order of the day, the quality of EDA software becomes crucial.
Do they want to do it?
One of the controversial, if not highly debatable, issues with reference to quality in commercial software is the commitment of the companies that produce the software. A sample survey of the breakup of revenues of a software product company reveals that the revenue from maintenance and support can be as much as 40-70 percent. It is often debated whether companies really strive for a "bug-free" product.
On the other hand, if an EDA software vendor does not commit to quality guidelines, then the vendor is more likely to be ignored in the market. Tool users cannot afford to have bugs in software that they use as with each translation of the bug, the cost shoots up by a factor of 10. The tools used in the arena of EDA are time-tested, reliable and robust.
Where do you want to go today?
With so much emphasis required on an EDA software tool, what does the future beckon? The future is challenging for all EDA vendors and quality will be the key. Commercial software products will have fewer system constraints while EDA vendors will face more and more restrictions. For example, with memory and speed no more an issue on personal computers, the applications being developed have more freedom and almost unlimited system resources at their disposal. On the other hand, with technology rapidly advancing in the silicon arena, the margin of error for EDA tools is further reduced.
EDA software must catch up with silicon technology without compromising quality. This will determine the future path of EDA software.
R. Raghuraman works in the VLSI Test Team of the ASIC organization in Texas Instruments (India) Ltd, Bangalore.