|
competitor1-5

A Report on the Global Software Competitiveness Studies
Vol. 1 No. 5
May 1998
Software Maintenance... Essential to
Global Software Competitiveness
Critical Questions
- What is the role of software maintenance in achieving or impacting global software competitiveness?
- What are the leading software indicators of software maintenance?
- What are the expert software maintenance practices?
Global Software Competitiveness Studies
Sponsored by the
National Software Council
Center for National Software Studies
http://CNsoftware.org
Conducted by Don ONeill
ONeillDon@aol.com
(301) 990-0377
@Copyright Don ONeill, 1997,
used by the NSC with permission
Software Maintenance Problem
Over the past forty years a trillion lines of code have been written. Software usage is increasing with more industries becoming dependent on software and dependency within each industry deepening. These applications were produced for industries of all kinds including telecommunications, transportation, financial, manufacturing, medical systems, and utilities and energy.
While these systems were being developed, no one expected them to be operating and maintained for ten, twenty, and thirty years. They were not produced with maintenance in mind. They were not engineered and designed for long term maintenance.
Consequently the legacy systems that provide the backbone of the nations critical industries do so without traceability from the code to the requirements, without compliance to programmer standards, with dead code, with extra code, and with commented out code. Some of this is due to lack of good practice, some to neglect. This is the nations legacy in software engineering.
The result is a software industry that now dedicates seventy percent (70%) of its workforce to the maintenance of its products. At the same time, software skills are in short supply.
Expert Software Maintenance Essential
Expert software maintenance practice is essential to achieving global software competitiveness. The increasing dependency on software and the shortage of software skills combine to demand an increase in span of responsibilty within the software maintenance operation.
Span of Responsibility
span of responsibilty (lines of code per person) is the essential metric to be controlled in achieving global competitiveness. Span of responsibilty determines the cost of software ownership. It is the size of the code depended on by the enterprise divided by the number of people who support it.
Span of responsibilty can be increased by improving product traceability and semantic correspondence among life cycle artifacts. In fact an order of magnitude increase in Span of responsibilty may be needed to ensure competitiveness. Some organizations report a span of responsibilty of 35,000 lines; others, 175,000.
Reseach Needed
This will require government, university, and industry research programs to evolve improvements in semantic correspondence among life cycle artifacts and product traceability among these artifacts.
The View of the Programmer
A programmer with software maintenance responsibility is likely to be at work on a Saturday morning charged with detecting and correcting a critical defect impacting customer operations.
Like a detective, the programmer pours over the program looking for clues. There could be a clue If the code is traceable to the design, specification, and requirements artifacts. But it is not traceable. In fact these artifacts are produced to initiate the project and may not be maintained after initial deployment.
There could be a clue in the comments embedded in the code. But there are few comments, and those that are there cannot be trusted.
As the programmer steps through sequences of code looking for clues, the hard fact of software maintenance practice is apparent. The code does what the code does. Without traceability and without trusted comments, software maintenance becomes a crap shoot.
Strategic Software Maintenance
Strategic software maintenance manages Span of responsibilty by distinguishing software products along the lines of value add and commodity. Value add components are retained in house while commodity software may be purchased off the shelf or outsourced either domestic or offshore.
The leading indicators of globally competitive software maintenance and the measured results of defect type frequencies are used to suggest improvements in software maintenance tactics.
The Penalty for Neglect
The software industry with this maintenance burden is positioned to dictate the rules of global competitiveness and national prosperity.
At the same time, competitive wage structures and highly trained personnel resources abroad eagerly await the offshore outsource workload from those enterprises unable to manage span of responsibilty.
Leading Indicators of Software Maintenance
The Global Software Competitiveness Studies has identified the leading indicators of global software competitiveness. Some of these leading indictors apply to maintenance. The leading indicators contributing to maintenance are grouped below under engineering, management, personnel, product, customer, and government. Each leading indicator is described, and a comment on the state of each indicator is provided.

Engineering
Measure Critical Aspects The enterprise understands that it must measure the critical aspects of current practice. Even as Deming points out the need for profound knowledge and Lord Kelvin cites the lack of measurement results in meager and unsatisfactory knowledge, the practice of measurement in software is immature. Capable measurement is associated with SEI CMM level 4, achieved by only 2.1% of those assessed.
Modern Software Engineering The enterprise understands that it must apply modern software engineering practice in the production and maintenance of its software products. Based on capable commitment management, modern software engineering yields products that produce the right answers on time every time and features processes that are predictable with respect to cost, schedule, and quality. Capable modern software engineering is associated with SEI CMM level 3, achieved by only 15.2% of those associated.
Reuse Technology Practice The enterprise understands that it must practice software reuse in order to increase span of responsibilty. The enterprise with a capable reuse technology practice is able to roll out products and features on very short and predictable cycle times. Reuse practice is dependent on capable domain architecture practice and benefits from capable requirements determination and specification practice. These practices are in short supply.
Statistical Process Control The enterprise understands that it must apply statistical process control in the management and engineering of its software operations. Capable statistical process control is obtained at SEI CMM level 4, achieved by less than 2.1% of those assessed.
Management
Commodity View The enterprise assesses its view of software operations along a spectrum ranging from commodity to critical resource. Unenlightened enterprises continue to view programming as a commodity while in reality programmers are in very short supply, and demand is increasing faster than supply. The Information Technology Association of America (ITAA) reports 200,000 unfilled, open requisitions for information technology personnel.
Competitive Wage Structure The enterprise maintains a competitive wage structure for its software personnel and understands the tradeoffs of outsourcing both domestic and offshore. Foreign wage structures may be dramatically lower than domestic. Where well trained programmers are in supply, these competitive wage structures are an attraction to offshore outsourcing. India has 1.2M programmers and one-third of the worlds PHDs half of whom were educated in the US.
Domestic Outsource The enterprise considers engaging in some level of domestic outsourcing in order to obtain and sustain this capability. The enterprise that understands what its customers need most aligns its best capabilities and core competencies to provide that. Operations that fall outside of these core competencies are being outsourced. Outsource vendor demand is growing substantially.
Management Ignorance The enterprise understands that it must select capable software managers who are boundary spanners among disciplines including management, technology, process, and application domain. Neglect and malpractice on software projects occur regularly as 63% of the organizations assessed remain at SEI CMM level 1 below the level of management of commitment.
Offshore Outsource The enterprise considers engaging in some level of offshore outsourcing in order to obtain and sustain this capability. The shortage of skilled programmers, competitive wage scale differentials, and the enterprise retrenchment into core competencies are fueling offshore outsourcing. Where the enterprise has a capable software requirements determination and specification practice, the offshore outsource is highly effective. Industry requirements determination and specification practice is not well developed.
Personnel Resources
Employee Morale enterprise measures the employee morale of software personnel and establishes a policy with upper and lower control limits for its management and control. Software may be the enterprises most precious resource. Programmers are the enterprises most critical skill. Employee morale for programmers is coupled with technical challenges faced on the project ... the higher the difficulty, the higher the morale.
Key Employee Status The enterprise provides key employee status and special benefits and compensation to strategically essential software engineering managers and programmers. The enterprise is permitted to identify key employees considered critically essential to current operations, future prospects, and competitiveness. Key employee status brings with it special benefits, such as, stock option retirement accounts taxed at capital gains rates. Key employee status is only infrequently assigned to software personnel. A 1997 Price Waterhouse ranked retaining key employees as the 8th most pressing concern, up from 14th a year ago.
Off-the-Clock Effort The enterprise measures the off-the-clock effort of software personnel and establishes a policy with upper and lower control limits for its management and control. With the demand for programmers outstripping supply, with the fierce competition for new products and features to protect and extend market share, and with the falling margins caused by increased competition, the enterprise places demands and expectations on programmers that increase the practice of off the clock effort. Supplying employees with company lap top computers and at home work stations furthers this trend.
Personnel Certification The enterprise establishes and applies the training and experience criteria for each software skill type and level of achievement. Although programmer certification programs are established, they are not in widespread use. There is not an industry consensus on the knowledge, skills, and behaviors in the engineering, management, and operation of software systems. The professional and ethical foundations of software engineering are immature and require upgrading.
Personnel Overtime The enterprise measures the overtime of software personnel and establishes a policy with upper and lower control limits for its management and control. The baseline work week for programmers on projects with deadlines is 60-75 hours. Work weeks in excess of 100 hours are not uncommon. Programmers are usually exempt from mandatory overtime pay and may or may not receive it.
Software Productivity The enterprise measures the productivity of its software personnel and understands the upper and lower control limits for tasks of various types and difficulties. With demand exceeding supply, project and programmer productivity are the focus of improvement. Productivity measurement depends on the persistent measurement of size (function points or lines of code) and effort (labor hours) organized by life cycle activity (requirements, specification, design, code, test, and operations). Size, effort, and productivity measurements are generally not taken.
Software Skills The enterprise understands the software skills it needs and the software skills it possesses. Industry software skills are in short supply. Enterprise personnel recruiting programs are unable to staff current projects Openings for programming position go unfilled. The Information Technology Association of America (ITAA) reported that 200,000 open requisitions for information technology positions are unfilled.
Span of Responsibility The enterprise measures the total number of lines of code which its product lines and operation depends upon and the total number of personnel involved in its production, maintenance, and operation. The enterprise maintaining legacy code needs to sustain an ever increasing volume of code with a level head count. The span of responsibilty (lines of code per programmer) must increase. span of responsibilty is not measured and managed in practice.
Staff Churn The enterprise understands the increasing risk of staff churn, its impact on current operations, and the personnel practices needed to counter it. As the pull of new challenges and increased financial rewards are combined with the push of low employee morale, excessive overtime, and off the clock time, the rate of programming staff turnover increases. The result is increased costs for hiring and training, impact to current commitments, and loss of knowledge and information to the competition. In high turnover skill areas, employees are required to sign non-compete covenants.
Product
Conformance to Requirements
The enterprise understands that it must deliver software products that conform to the requirements of the customer and the industry. Conformance to requirements is a long term indicator of software quality and strongly institutionalized in the culture of software engineering.
Defect Free The enterprise understands that it must operate and deliver defect free software products.Industry software practice experiences 3-4 defects per thousand lines of code in operation (3-sigma). The total quality management goal for defect-free is 6-sigma. Times ten improvement programs are generally successful in moving to 4-sigma by plucking low hanging fruit. Successive times ten improvement programs are occasionally successful in moving to 5-sigma. No software operation has reported 6-sigma.
Domain Architecture The enterprise understands that it must obtain a profound knowledge of its application domain and architecture. Capable domain architecture practice provides the foundation for software reuse. This practice is generally not available.
Product Traceability The enterprise establishes and sustains product traceability among life cycle artifacts including requirements, specifications, designs, code, and test procedures.The National Software Quality Experiment reveals that over 44% of the defects detected in software inspections results from lack of product traceability.
Customer
Customer Satisfaction The enterprise measures customer satisfaction in the context of its software operations and products and establishes upper and lower limits for its management and control. Software products and features provide economic value add to the enterprise driving improved customer satisfaction.
Deliver Value The enterprise assesses the degree to which its products and services deliver value to its customers and the degree to which software is essential.
The enterprise may have software products and processes that are strategically essential to the competitiveness of the business. These value points deliver substantial economic value add.
Software Failure The enterprise takes active steps to guard against software failure and to restore operations in the event of failure and provides oversight for their effectiveness. People make mistakes sometimes. Creating software is labor intensive, and there is an increasing amount of software in every industry sector. In addition, the practice of trustworthy software engineering is immature. Consequently there is the prospect for software failure.
Government
Government Research The enterprise understands the scope of government research and how to obtain its results for the benefit of the enterprise. Government research and development has fallen from from 2.8% to 2.2% of GDP over the past ten years.
|