In: Computer Science
Question 5
a) The quality of software process is connected to the quality of the software process. This is because the technology, business environment and company circumstances are changing all the time, there is a need for improving the software process. Explain how software process evolution can affect technical debt.
b) “The electric light did not come from continuous improvement of candles” – Oren Harari. Explain what continuous improvement is and quote some outstanding products/apps that were created under this process.
Ans 1:-
The Effects of Software Process Evolution to Technical Debt
The software industry struggles with increasing competition and time-to- market requirements in delivering new solutions to customers. Companies must be able to deliver their solutions faster than competitors to receive a share of the market. In order to be fast, companies should enhance their software development processes and practices to achieve the best ways to produce quality software on time, within budget and for the right market. However, software development processes are not easy to change or manage. If the new processes do not align to the organization and its way of working, serious consequences may follow. Decreasing quality and productivity can be the result of new software development processes if they do not align with the company’s way of working. When omitted quality and productivity issues start to have effect on a software development project, it can be a sign of ‘technical debt’. The technical debt metaphor is related to shortcuts and workarounds in meeting urgent demands. Implementing shortcuts to the system architecture incur ‘debt’ that must be eventually paid back. If this debt is not properly managed, it might accumulate as ‘interest,’ affecting the overall quality of the developed software systems. Although technical debt has negative consequences in a long-term, it can be used as a competitive advantage in a short-term. Time-to-market and constant customer feedback through releasing software faster than competitors allow companies to gain a bigger market share. This describes a qualitative study that had a purpose to explore and understand how software process evolution affects technical debt. We investigated three large software development projects with a long development history with the aim to understand how software processes had evolved during the life cycle and how this evolution affected technical debt. We observed how companies had changed their software processes as well as the reasons, benefits and consequences of these changes on the technical debt.
The term ‘technical debt’ was first introduced in 1992 by Ward Cunningham as a situation where a long-term code quality is traded for a short-term gain. Technical debt can be compared to finance debt [9]. Similar to finance debt, technical debt incurs interest, which come in the form of the extra effort that we have to pay back in the future . Often technical debt is related to the source code of the software, where a shortcut or a workaround is taken in order to save time. However, taking shortcuts and workarounds can happen in multiple stages of software development life cycle. In the requirements phase the lack of documentation or lack of requirements can cause requirements debt. Architectural flaws in the design phase can also increase design debt and structural debt.
Both software process evolution and technical debt were caused by business reasons and decreased productivity. The business needs often force companies to change their software development processes, even though the level of productivity and quality in the current processes might been satisfying. The quality of the software process is connected to the quality of the software process. Because the technology, business environment and company circumstances are chancing all the time, there is a need for improving also software processes. In our study we observed situations where time-to-market, customer demand or technology change forced companies to make a change in the current software processes to be more efficient. Business needs also increase technical debt. Multiple other studies have shown that when companies were acquiring time-to-market benefits by delivering faster the product to the customer, it required shortcuts and workarounds to the product. Shortcuts and workarounds were not necessarily dangerous to take in short-term, because they could advance the product release and therefore increase the time-to-market and customer satisfaction. However, if companies never fix these shortcuts and workarounds, it can lead to extra costs, productivity issues and omitted quality, because the code base turns overcomplicated. Another reason for software process evolution and technical debt to happen was decreased productivity. Often when companies were experiencing that current software processes were not producing enough results and the quality of the product started to go down, there was a need to make a process change. Decreasing productivity forces companies to take shortcuts to keep up the release window that increases technical debt.
In this study we explored how software process evolution affects technical debt. We used qualitative case study approach recommended by Yin to understand how software processes have evolved in the selected three large case companies. We conducted 17 interviews with professionals from both technical and business background to see the reasons, benefits and consequences of software process evolution to technical debt. We found that often the reason for software process evolution can be business related, where the company has to improve their current software processes in order to gain more advantage over competition and time-to-market. Overall, software process evolution is often considered as a positive thing towards better development processes. However, companies rarely think of its negative consequences and resistance to change. Our inquiry into the practice of three large development organizations revealed that the evolution of software processes affects technical debt accumulated in the code base and can decrease the software quality in short-term. However, if the company takes no steps to manage the technical debt, it may finally have a dramatic effect to the software development and maintenance processes.
Ans 2:-
A continual improvement process, also often called a continuous improvement process (abbreviated as CIP or CI), is an ongoing effort to improve products, services, or processes. These efforts can seek "incremental" improvement over time or "breakthrough" improvement all at once. Delivery (customer valued) processes are constantly evaluated and improved in the light of their efficiency, effectiveness and flexibility.
Some see CIPs as a meta-process for most management systems (such as business process management, quality management, project management, and program management). W. Edwards Deming, a pioneer of the field, saw it as part of the 'system' whereby feedback from the process and customer were evaluated against organisational goals. The fact that it can be called a management process does not mean that it needs to be executed by 'management'; but rather merely that it makes decisions about the implementation of the delivery process and the design of the delivery process itself.
A broader definition is that of the Institute of Quality Assurance who defined "continuous improvement as a gradual never-ending change which is: '... focused on increasing the effectiveness and/or efficiency of an organisation to fulfil its policy and objectives. It is not limited to quality initiatives. Improvement in business strategy, business results, customer, employee and supplier relationships can be subject to continual improvement. Put simply, it means ‘getting better all the time’.' "
Some successful implementations use the approach known as kaizen (the translation of kai (“change”) zen (“good”) is “improvement”). This method became famous from Imai's 1986 book Kaizen: The Key to Japan's Competitive Success.
Key features of kaizen include:
The elements above are the more tactical elements of CIP. The more strategic elements include deciding how to increase the value of the delivery process output to the customer (effectiveness) and how much flexibility is valuable in the process to meet changing needs.
definitions from experts that have been in the field much longer
than we have.
1. “Continuous Improvement is the seeking of small
improvements in processes and products, with the objective of
increasing quality and reducing waste.”
2. “What is continuous improvement? Continuous
Improvement is an ongoing cycle of positive change and employee
involvement. “
3. “Continuous Improvement, often known as Kaizen,
is essentially a small step-by-step incremental improvement
strategy. It is based upon a belief that continual improvement can
be brought about by a never-ending series of small changes. Even in
the face of enormous innovative improvement strategies, there will
always be the need and opportunity to supplement such strategies
and initiatives with continual small step changes.”
4. “A structured measurement driven process that
continually reviews and improves performance.“
5. “Continuous Improvement (CI) is an ongoing
effort to make incremental improvements to products, services or
processes over time. Processes are constantly audited and modified
based on their sustainability, efficiency and effectiveness.”
6. “Continuous improvement is a long-term business
strategy to improve your business in terms of customer value and
satisfaction, quality, speed to market, flexibility and reduced
cost.“
7. “A continuous improvement process (CIP or CI)
is an ongoing effort to improve products, services, or
processes. …. processes are constantly evaluated and improved in
the light of their efficiency, effectiveness and
flexibility”.
8. “It is defined as an ongoing effort to improve
products, services, or processes. These efforts can seek
"incremental" improvement over time or "breakthrough" improvement
all at once. Delivery (customer valued) processes are constantly
evaluated and improved in the light of their efficiency,
effectiveness and flexibility.“
Conclusion
As you can see, each quote was taken from a larger source and it
wouldn’t hurt to visit each site in turn to investigate the
knowledge and wisdom a bit further. By understanding the field of
continuous improvement for yourself – not just relying on what
others have to say – you’ll be better equipped to make necessary
changes for yourself and add your own unique insight to this
all-important aspect of every business’ operation.