Software Maintenance Implications on Cost and Schedule

Abstract The dictionary defines maintenance as, “The work of keeping something in proper order.” However, this definition does not necessarily fit for software. Software maintenance is different from hardware maintenance because software doesn’t physically wear out, but often gets less useful with age. Software is typically delivered with undiscovered flaws. Therefore, software maintenance is: “The process of modifying existing operational software while leaving its primary functions intact.” Maintenance typically exceeds fifty percent of the systems’ life cycle cost . While software maintenance can be treated as a level of effort activity, there are consequences on quality, functionality, reliability, cost and schedule that can be mitigated through the use of parametric estimation techniques.1. INTRODUCTION One of the greatest challenges facing software engineers is the management of change control. It has been estimated that the cost of change control can be between 40% and 70% of the life cycle costs . Software engineers have hoped that new languages and new process would greatly reduce these numbers; however this has not been the case. Fundamentally this is because software is still delivered with a significant number of defects. Capers Jones estimates that there are about 5 bugs per Function Point created during Development . Watts Humphrey found “… even experienced software engineers normally inject 100 or more defects per KSLOC . Capers Jones says, “A series of studies the defect density of software ranges from 49.5 to 94.5 errors per thousand lines of code .” The purpose of this article is to first review the fundamentals of software maintenance and to present alternative approaches to estimating software maintenance. A key element to note is that development and management decisions made during the development process can significantly affect the developmental cost and the resulting maintenance costs.2. SOFTWARE MAINTENANCE Maintenance activities include all work carried out post-delivery and should be distinguished from block modifications which represent significant design and development effort and supersede a previously released software package. These maintenance activities can be quite diverse, and it helps to identify exactly what post-delivery activities are to be included in an estimate of maintenance effort. Maintenance activities, once defined, may be evaluated in a quite different light than when called simply “maintenance”. Software maintenance is different from hardware maintenance because software doesn’t physically wear out, but software often gets less useful with age and it may be delivered with undiscovered flaws. In addition to the undiscovered flaws, it is common that some number of known defects pass from the development organization to the maintenance group. Accurate estimation of the effort required to maintain delivered software is aided by the decomposition of the overall effort into the various activities that make up the whole process.3. APPROACHING THE MAINTENANCE ISSUE Maintenance is a complicated and structured process. In his textbook, Estimating Software Intensive Systems, Richard Stuzke outlines the typical software maintenance process. It is apparent that the process is more than just writing new code.The following checklist can be used to explore the realism and accuracy of maintenance requirements.o Which pieces of software will be maintained?o How long will the system need to be maintained?o Are you estimating the entire maintenance problem, or just incremental maintenance?o What level of maintenance is required?o Is that which is being called maintenance in fact a new development project?o Who will do the maintenance? Will it be done organically by the original developer? Will there be a separate team? Will there be a separate organization?o Will maintainers be using the same tools used during development? Are any proprietary tools required for maintenance?o How much Commercial-Off-The-Shelf (COTS) is there? How tightly coupled are the interfaces?o Some follow-on development may be disguised as maintenance. This will either inflate maintenance figures, or else cause shortfalls if basic maintenance gets pushed aside. These questions will help you ask whether maintenance is being honestly represented.o Is the activity really an incremental improvement?o Are healthy chunks of the original code being rewritten or changed?o Will additional staff be brought in to perform the upgrade?o Is the maintenance effort schedule regular and fairly flat, or does it contain staffing humps that look like new development?4. SANITY CHECKS Although sanity checks should be sought on a year-by-year basis, they should not be attempted for overall development. The reason for this is that maintenance activities can be carried on indefinitely, rendering any life-cycle rules useless. As an example, consider Grady (p. 17):We spend about 2 to 3 times as much effort maintaining and enhancing software as we spend creating new software.This and similar observations apply at an organizational level and higher, but not for a specific project. Any development group with a history will be embroiled in the long tail ends of their many delivered projects, still needing indefinite attention. Here are a few quick sanity checks:o One maintainer can handle about 10,000 lines per year.o Overall life-cycle effort is typically 40% development and 60% maintenance.o Maintenance costs on average are one-sixth of yearly development costs.o Successful systems are usually maintained for 10 to 20 years.Finally, as in development, the amount of code that is new versus modified makes a difference. The effective size, that is, the equivalent effort if all the work were new code, is still the key input for both development and maintenance cost estimation.5. FIVE ALTERNATIVE APPROACHES All software estimation techniques must be able to model the theory and the likely real world result. The real world scenario is that over time, the overlay of changes upon changes makes software increasingly difficult to maintain and thus less useful. Maintenance effort estimation techniques range from the simplistic level of effort method, through more thoughtful analysis and development practice modifications, to the use of parametric models in order to use historical data to project future needs.5.1 Level of Effort As is sometimes the case in the development environment, software maintenance can be modeled as a level of effort activity. Given the repair category activities and the great variance that they show, this approach clearly has deficiencies. In this approach, a level of effort to maintain software is based on size and type.5.2 Level of Effort Plus Stuzke proposed that software maintenance starts with basic level of effort (minimum people needed to have a core competency and then that that basic core staff must be modified by assessing three additional factors; configuration management, quality assurance, and project management. His process addressed some of the additional factors affecting software maintenance.5.3 Maintenance Change Factor Software Cost Estimation with COCOMO II (Boehm 2000) proposes a deceivingly simple, but also quite useful methodology for determining annual maintenance. Maintenance is one of the menu selections in the menu bar. In COCOMO II Maintenance encompasses the process of modifying existing operational software while leaving its primary functions intact. This process excludes:o Major re-design and re-development (more than 50% new code) of a new software product performing substantially the same functions.o Design and development of a sizeable (more than 20% of the source instructions comprising the existing product) interfacing software package which requires relatively little redesigning of the existing product.o Data processing system operations, data entry, and modification of values in the database.The maintenance calculations are heavily based upon the Maintenance Change Factor (MCF) and the Maintenance Adjustment Factor (MAF). The MCF is similar to the Annual change Traffic in COCOMO81, except that maintenance periods other than a year can be used. The resulting maintenance effort estimation formula is the same as the COCOMO II Post Architecture development model.As stated previously, three cost drivers for maintenance differ from development. Those cost drivers are software reliability, modern programming practices, and schedule. COCOMO II assumes that increased investment in software reliability and use of modern programming practices during software development has a strong positive effect upon the maintenance stage.Annual Maintenance Effort = (Annual Change Traffic) * (Original Software Development Effort)The quantity Original Software Development Effort refers to the total effort (person-months or other unit of measure) expended throughout development, even if a multi-year project.The multiplier Annual Change Traffic is the proportion of the overall software to be modified during the year. This is relatively easy to obtain from engineering estimates. Developers often maintain change lists, or have a sense of proportional change to be required even before development is complete.5.4 Managing Software Maintenance Costs by Developmental Techniques and Management Decisions During DevelopmentWhen it comes to maintenance, “a penny spent is a pound saved.” Better development practices (even if more expensive) can significantly reduce maintenance effort, and reduce overall life cycle cost. The more effort put into development, the less required in maintenance. As an example, the software development cost and schedule can be significantly impacted (reduced) by letting the number of defects delivered grow. This cost and schedule reduction is more than offset by the increase in maintenance cost. The following discussion is an example of how management decision can significantly affect/reduce software maintenance costs.Lloyd Huff and George Novak of Lockheed Martin Aeronautics in their paper “Lockheed Martin Aeronautics Performance Based Software Sustainment for the F-35 Lightning II” propose a series of development and management decision designed to impact and reduce software maintenance costs. They propose an eight step process to estimate and control software maintenance . Their proposed steps are:1. Strive for Commonality2. Apply Industrial Engineering Practices to Software3. Engage4. Adopt a Holistic Approach to Sustainment5. Develop Highly Maintainable Systems and Software6. Manage the Off-the-Shelf Software7. Plan for the Unexpected8. Analyze and Refine the Software Sustainment Business Case (use Parametric software sustainment cost estimates)5.5 A Parametric Assessment of Software MaintenanceParametric models like SEER for Software allow maintenance to be modeled in either of two ways:Estimating maintenance as a part of the total lifecycle cost. Choosing the appropriate Maintenance category parameters will include an estimate of maintenance effort with the development estimate for the individual software program. Several reports and charts show breakdowns of development vs. maintenance effort. This method is best used to evaluate life cycle costs for each individual software program.Estimating maintenance as a separate activity. Using the appropriate maintenance parameters for the software to be maintained you can model the maintenance effort as a separate activity. This method will allow you to fine tune your maintenance estimate by adjusting parameters. Maintenance size should be the same as development size, but should be entered as all pre-existing code. This method can also be useful in breaking out total project maintenance costs from project development costs.A good parametric estimate for maintenance includes a wide range of information. Critical information for completing a software maintenance estimate is the size or amount of software that will be maintained, the quality of that software, the quality and availability of the documentation, and the type or amount of maintenance that will be done. Many organizations don’t actually estimate maintenance costs; they simply have a budget for software maintenance. In this case, a parametric model should be used to compute how much maintenance can actually be performed with the given budget.Estimating and planning for maintenance are critical activities if the software is required to function properly throughout its expected life. Even with a limited budget, a plan can be made to use the resources available in the most efficient, productive manner. Looking at the diagram above, you can see that not only are the multiple inputs that impact the maintenance, but there are several key outputs that provide the information necessary to plan a successful maintenance effort.6. Conclusion The conclusions of this article are:o Software maintenance can be modeled using a simplistic method like Level of Effort Staffing, but this technique has significant drawbacks.o Software maintenance costs can be significantly affected by management decisions during the developmental process.o Software maintenance can be accurately estimated using parametric processes.o Software maintenance is best modeled when development and management decisions are coupled with parametric cost estimation techniques.REFERENCES [1] Software Maintenance Concepts and Practices (second Edition) by Penny Grubb and Armstrong Takang, World Scientific, 2005.[2] Estimating Software Intensive Systems; Richard Stuzke, 2005, Addison-Wesley.[3] Lloyd Huff, George Novak; Lockheed Martin Aeronautics; Lockheed Martin Aeronautics Performance Based Software Sustainment for the F-35 Lightning II.[4] G. Edward Bryan, “CP-6: Quality and Productivity Measures in the 15-Year Life Cycle of an Operating System,” Software Quality Journal 2, 129-144, June 1993.[5] Software Sizing, Estimation, and Risk Management; Daniel D. Galorath, Michael W. Evans, 2006, Auerbach Publications.

Why Good Nutrition and Physical Fitness Is Vital to Good Health?

Health, nutrition and fitness are the three interrelated areas that determine an individual’s sense of happiness and well being.

Health
Health involves the physical, mental and spiritual levels of the individual. A physically healthy person is one who can carry out normal daily physical activities and respond to emergencies with out undo fatigue or pain. The health part of health, nutrition and fitness is achieved through a balanced program of good nutrition, healthy physical activity, continuous education and mental activities, and social and spiritual activities. Your choices of the food you eat and your physical activities affect both your short term and long term health (how you feel now and in the future). You may be getting plenty to eat, but if it is not a proper balance of choices from all five of the basic food groups you may be adding fat to your body without generating the energy to burn the calories and energy to the cells to carry out their functions. Healthy physical activity helps burn off any excess calories you consume, and keeps muscles and joints flexible and strong. Your efforts of continued education (reading, attending seminars, as well as attending formal education classes), and spiritual activities (social activities, attending devotional services, meditation, etc) provides you with a sense of accomplishment and well being. An important part of good health is being physically fit and maintaining proper body weight. Maintaining good health requires following a nutritional diet, and exercising to build and maintain muscles, and to burn of any excess calories.

Nutrition
The nutritional health part of health, nutrition and fitness deals with the food we consume to maintain our health and provide energy to carry on our daily lives. Nutrition is the process of nurturing or being nourished; the total of all the processes that a plant or animal uses to take in and process food substances to maintain a healthy life. A healthy nutrition life style requires a balanced diet of food selected from the five basic food groups, fruits, vegetables, naturally calcium rich dairy products or calcium enriched products, whole grains, and protein (lean meat fish, peas and beans). Other nutritional factors should also be considered. Most fruits and vegetables are better if they are consumed raw because heating destroys some of the healthy nutrients. Steaming and broiling food is better than boiling or frying foods. Preparing fresh fruits and vegetables is better than processed or prepared foods.

The prepared foods generally contain more salt (sodium) than necessary and other flavor enhancing substances. Some of these additives do not add any nutritional value to the food and may even be harmful to your health. More nutritional factors to consider are the variety of the fruits and vegetables in our diet. Nutritional data shows that dark green vegetables (romaine lettuce, kale, broccoli, etc.), and orange vegetables (carrots, sweet potatoes, pumpkin and summer squash) provides more nutritional value than some of the less colorful vegetables. Here are even more nutrition facts. Some foods contribute to burning fat. Green tea contributes to fat burning by increasing the body’s metabolism and increasing energy level. Foods high in protein are more difficult to digest so they require more calories in the digestive process. Good nutrition practices may not be sufficient for some people they may require unique supplements such as CoEnzimeQ10 or others.

Physical Fitness
Physical fitness part of fitness, health and nutrition is the ability to carry out daily activities, enjoy leisure activities and have a healthy immune system to resist disease and infection. Developing and maintaining good physical fitness requires a balance of good nutrition and varied physical exercise. There are there elements to physical fitness: specific fitness the ability to perform daily functions related to work or recreation, general fitness the ability to enjoy leisure time and a sense of peace with the environment, preparedness the ability to over come or avoid emergencies.

There also three factors in achieving good physical fitness good nutrition, physical exercise and restful (sleep). The nutrition maintains the health of the cells and provides the energy to perform the exercises. Physical exercise may be used to accomplish work to earn a living, participate in athletic events, develop and maintain healthy cardiovascular system, or control body weight. Physical fitness and how physical fitness is achieved varies depending on individual. If a person is involved in an occupation that requires vigorous activity and has good nutrition possibly no other exercise is needed to maintain a fit body.

However, even people who are who work hard at their occupation may need additional cardiovascular exercise to keep their heart and blood vessels in optimum condition. People whose profession does not require vigorous physical exercise special effort is required to achieve and maintain physical fitness. A good nutritional diet is the obvious starting point. Some easy things are use stairs rather than elevators, park a little farther from the office or store entrance, throw away the television remote, change channels the old fashion way, and walk to near by offices or neighbors rather than using the telephone. These efforts will help, but more vigorous physical exercise is needed for good physical fitness.

For cardiovascular health a routine of physical exercise over a period a minimum of 20 minutes three times per week is required. The best and generally most convenient cardiovascular exercise is walking. Another good cardiovascular exercise is swimming. Swimming will also help in building and toning muscles. The other factor in developing and maintaining physical fitness is strength exercise to build and tone muscle and to burn fat. Strength exercises are good for weight management because they stimulate muscle growth even after the exercise has been completed. This means that the body continues to burn fat for an extended period of time.

Mental Health
Mental health, as it applies to health nutrition and fitness, is the way we think, how we feel and how we act as we interact with our surroundings. Our mental health contributes to our relations with other people, how we make decision, make choices and how we cope with stress. People with good mental health are able to control their emotions, feelings and behavior. Keeping the mind active through reading, playing games, and an active social life contributes to good mental health.

Spiritual Health Spirituality can be defined as sensitivity or attachment to religion, or as a state condition of being spiritual. Some people ignore or overlook the importance of spirituality in relation to health nutrition and fitness, because they relate spirituality only to religion. Through out history man has struggled with the concept of spirituality. Basically spirituality is the struggle to become the most perfect person or individual. The path to achieve this goal may be through seeking external help through religion of some form, or internal through meditation and study of both present and past human interactions. The above is based on personal study, experiences and observations through out my life.

Evolving Healthcare Trends

The model trends in the healthcare system have been changing over the period of time. The old trend gave importance to the individual patients and the emphasis was on treating illness. The goal of the hospitals was to do inpatient admissions, fill up the beds and more emphasis was given to acute inpatient care. The role of managers in the old paradigm was to run the organization and coordinate services. In the old system, all providers were essentially the same. The hospitals, physicians and health plans were separate and not integrated.The newer trends that evolved gave importance to the population as a whole. It not only treated illness, but emphasized on promoting the wellness of the people. The goals of the healthcare system after being transformed over the years is to provide care at all levels which is continued. The role of managers in the new paradigm is more broad. They see the market and help in quality and continued improvement. They not only run the organization, but also go beyond the organizational boundaries. In the evolving system, the providers are differentiated according to their ability. The hospitals, physicians and health plans have formed an integrated delivery system.One of the current trend in the healthcare delivery model is that continued care is emphasized. The key professionals are not only treating patients for their illness, but they are promoting and managing quality of health. For example, a patient with high cholesterol visits a doctor. He is not only given one-on-one medical treatment, but he is also offered to attend a group session where information is provided on how lifestyle and behavioral change can help. The patients learn from the clinicians and also from each other. Another current trend is to take care of the health of the defined population and not only individual patients. All the health needs of the population as a whole are identified and served. It is emphasized that the community uses the health and social services provided. Healthcare has become more population-based. Another trend that has evolved is that the hospitals, physicians and health plans have got connected and have formed an integrated delivery system. More investments are being made with a goal of providing services to the customers and retaining them.There is a beneficial impact in the transformation of healthcare towards emphasizing continued health. The way healthcare has been viewed in the past has been changing. The shifting of care from treating acute illnesses to providing continued care is resulting in enhancement of the health of the people. The only appropriate and feasible model is to provide a continuum of care with the emphasis firmly on the family and community. The health of the population and community is considered as a whole. This is advantageous as it creates value in the healthcare delivery system. The healthcare providers work with the community as a whole and consider to improve the health of the general population. Even though this requires new kinds of ways of organizing and managing healthcare services, it helps in understanding the health needs of the target population. By studying their needs, the right health and social services could be provided to them. Examples of promoting wellness of the whole community are organizing health campaigns and providing preventive education to the people in general. Another example is providing awareness about flu vaccines and encouraging people to get the vaccination.Integrating the healthcare delivery system has led to certain advantages to the patients. For example, they can be offered alternative sites of care depending on their convenience. It helps in meeting the needs of the customers and their preferences which is taken into account. The number of providers are expanded and the patients get to have a choice. The relationship between providers and health plans are organized in the current trend and this ensures that the right care is provided in a convenient way to the customers.There are defined budgets and expenditure targets for the populations which implies that there is a need to be efficient and productive. The formation of strategic alliances, networks, systems and physician groups can also add value. There are capitated payments and budgets allotted to the healthcare organizations. These are used to provide care to the defined population. The organization might like to improve on the payments and budgets as the expenditures of the companies increase. This results in the management to make decisions like forming strategic alliances with other organizations and increase the total resources. The growth of such networks will help in providing better care to the customers. Financial resources greatly influence the efficiency and productivity of the organization.The aging population is influencing the healthcare delivery. There is increased demand for primary care of people over 65 years and for chronic care of people over 75. The ethnic and cultural diversity is also influencing the healthcare delivery. This provides a challenge in meeting patient expectations on one hand and diverse workforce on the other. Biological and clinical sciences have met with technological advances and have led to new treatment modalities. This has led to open new treatment sites and manage across the organization. External forces change the supply of certain areas of health professionals like physical therapy and some areas of nursing. The management needs to compensate for such shortages and they need to develop different teams of caregivers at different work sites. Changes in education of health professionals implies that the management be more creative in offering healthcare services. With an increase in diseases like AIDS and morbidity from drugs and violence, there is more and more need to work with community agencies, form social support systems and there is a need for more chronic care management. Advances in information technology is another area where there is a need to train the healthcare employees in new advances. They also need to manage issues of confidentiality and rapid information transfer. Increasing expansion of world economy has led to more competitive management of strategic alliances, care of patients across the nations and of different cultures.Current environmental trends impact the healthcare delivery model. Organization’s success depends on its external and internal environment. The complex environments made up of uncertainties and heterogeneity of components leads to different organizational designs. The current environmental trends influence managerial and organizational decision making. The unique challenges facing the healthcare delivery organizations should be analyzed in order to develop and implement new and effective operational processes and strategies. As an impact of current environmental trends, the healthcare delivery system needs to improve individual, team, and organizational accountability and performance. The impact of advances in medical knowledge and information technology on the process of healthcare delivery should also be examined, and it should be leveraged to improve quality of care, process and cost controls, and revenue. New strategies would need to be identified and implemented for learning and performance improvement to create a culture that supports accountability, safety, and high-quality care. Innovative models in healthcare delivery would also be required in order to develop and implement strategies that promote organizational success and competitiveness.Due to the current environmental trends, more emphasis is given to the customers and there is more of a patient-focused care. The healthcare delivery model has been shifting to the community based care. There has been an increased modification in care processes. The traditional ways are being challenged and more experiments are being performed to fulfill the demands to improve the quality of care. Due to the shift in the environmental trends in the healthcare delivery model, more emphasis is given to quality improvement. This will help improve the performance levels of key processes in the organization. The performance levels are being measured, the defects are eliminated and new features are being added to meet the customer’s need efficiently.There is a new emerging contemporary trend in the U.S. healthcare system. Presently, the management research and assessment have been offered increased recognition. The emerging trend seen is that this is slowly forming an integral part of managerial and organizational effectiveness. With the emerging efforts in information management, it is leading towards clinical and financial networking. The trend seen among the physicians and nurses is that they are being increasingly involved in managerial activities. The managerial trends are also changing with respect to role performance and changing values. The managers role is getting more and more recognized in managing finance and human resources. Management training, lifelong and distance learning is being offered in preparing future managers.The healthcare executives and managers will be faced with the major responsibility and challenge in the years ahead. They will be working with other healthcare providers and will be creating a competitive future for their organizations. They will not only be managing organizations but also a network of markets, services and joint ventures. Formation of more and more strategic alliances and partnerships will lead the management to manage across boundaries. The management will change from managing a department to managing the continuum of care. The management will be following a community-based approach. Trend in management is also shifting from just coordinating services to providing improvements in quality.As the demands in healthcare are increasing, the management is responsible for forming performance standards. The management is also challenged to maximize the productivity and quality to serve the health needs of the community. The management is looking after the demands of the external environment as well as attending to the performance of the internal environment. The management is responsible for the performance of the organization.Healthcare organization leadership will be responding to new trends and competitive forces. It will respond to continuum of care, overall health status of the population and more complex organizational structures. These emerging trends in the healthcare system will effect the organization’s leadership. The future managers would need leadership skills and vision to integrate the organizations and help in providing the best care. The managers will have to be committed to leadership and work on giving their organizations the best place and help their organizations adapt to the changing circumstances. More value will be given to leaders who will be able to lead the change process. As changes are inevitable for the betterment of the organization, the leaders should be able to identify how the change is to be received and how it is to be communicated at all levels of the organization without damaging the implementation process. The leaders might have to deal with increased pressures due to organizational complexity.The leader in the organization provides strategic direction to the organization, manages diverse stakeholders, becomes mentors for management, is willing to take risks, helps the organization interact with the external environment and attends to the internal needs as well. Where required the leader will involve physicians in governance process and align physician and organizational interests. There will be a need for formation of learning organizations. Transformational leadership will create the required vision for the organization. Leaders will have a greater role complexity and they themselves will have to adjust rapidly to new situations. The healthcare organization leadership will have to live up to the values of the organization and will help in fulfilling the mission of the organization.Individuals and groups within the healthcare organizations require more and more competencies. An enhanced lifelong learning is required due to the fast, changing environment. The individuals and groups within the healthcare organizations will be benefitted as there will be rapidly developing medical technologies which will result in increased services. More sophisticated health services will be provided to the consumers. The range and quality of services provided will be regulated for the benefit of people requiring home care, long term care and ambulatory care. The anticipated future development will also result in the increased competition among the health services organization. The individuals and groups will be involved more and more with the community for issues like drug abuse, teenage pregnancy and violence.Individuals and groups will be faced with increased strategic planning and management in the healthcare organizations as there will be ever increasing involvement by the trustees and physicians. As the future environment in the organizations will be more complex, the individuals and groups in the healthcare organizations might feel more pressurized. They will need to serve the changing demands of the community as the population of elderly patients will increase. These individuals will require more professional training, increased levels of education and should be taking part in continuing education programs.Due to the anticipated future development in the healthcare organizations, those individuals and groups will be valued, who are adaptable, committed, are able to add value and embrace change. These individuals will be required to experiment more and help in redefining the mission and goals of the healthcare organizations.