Erhalten Sie Zugang zu diesem und mehr als 300000 Büchern ab EUR 5,99 monatlich.
Book Series: "Increasing Productivity of Software Development": In software development, productivity is a measure of how much functionality can be developed in a given time and in compliance with specified quality criteria. If an increase in productivity succeeds, this increases the scope of the developed functionality and reduces the required time. Both features are desirable because software is the stuff innovations are made of. IT has changed almost all areas of life thanks to fundamental innovations. Our future will be dominated by virtualization and smart helpers, that is, devices equipped with intelligence. This makes software development a key competence. Today, for companies that develop software, productivity as well as time and quality, are critical success factors. By introducing standards and automation, productivity in software development has been demonstrably increased by a factor of 20. The reutilization of functional and technical components has already enabled measurements of a factor of 100. Such performance differences are only reproducible by measurements and the consistent use of measurement results within a management model designed for continuous optimization. Part 2: Management Model, Cost Estimation and KPI Improvement: This book describes a model based on three key performance indicators: productivity (measured using the measurement methods described in the first book), cost and quality. It explains their cyclical collection, analytical evaluation and indicators that lead to improvement measures in important areas of influence. In order to be able to assess the benefits of the measures in advance, it provides empirical values as well as a method for calculating their effectiveness. The model described above serves as a navigation tool for the management, enabling them to constantly view both direction and speed of its key performance indicators.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 85
Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:
Stefan Luckhaus
Internet: www.pass-consulting.com
All rights reserved
© PASS IT-Consulting
Dipl.-Inf. G. Rienecker GmbH & Co. KG, Aschaffenburg, Germany
This work, including all its parts, is protected by copyright.
Any use outside the narrow limits of copyright law is prohibited and punishable without the publisher‘s written permission. This applies in particular to reproductions, translations, microfilming and storage and processing in electronic systems or similar processes.
Editing & Proofreading:
Heidrun Fernau-Rienecker, Anelka Dudaczy
Cover Design & Typesetting:
Antje Schwarzbauer
Cover Graphic & Photos:
Shutterstock Images LLC
Production & Distribution:
PASS IT-Consulting Dipl. Inf. G. Rienecker GmbH & Co. KG
Heidrun Fernau-Rienecker
Print:
tredition
June 2018
ISBN:
Hardcover:
978-3-9819565-2-8
Paperback:
978-3-9819565-5-9
e-Book:
978-3-9819565-3-5
Figure 1:
Empirical values of software development productivity
Figure 2:
Modeling of a process with the PASS Software Factory (example)
Figure 3:
Sample marketplace for software components
Figure 4:
Management model for increasing productivity in software development
Figure 5:
Measuring methods are the basis of the management model
Figure 6:
Application of measuring methods
Figure 7:
KPIs of a development project with a high degree of reusability (case example)
Figure 8:
Evaluation of KPIs and root cause analysis
Figure 9:
Course of productivity over several months (example)
Figure 10:
Internal productivity benchmark (example)
Figure 11:
Reference value derived from the average of all measurements from January to August (example)
Figure 12:
Reference value derived from the average of all measurements from January to September (example)
Figure 13:
Time course of the new development productivity of PASS Consulting Group
Figure 14:
Regular time course of defect density and productivity (example)
Figure 15:
Regular time course of defect density and productivity in a XY diagram (example)
Figure 16:
Regular time course of defect density and productivity in case of neglected analytical QA (example)
Figure 17:
Regular time course of defect density and productivity in case of neglected analytical QA shown in a XY diagram (example)
Figure 18:
Regular time course of defect density and productivity in case of technical debt (example)
Figure 19:
Regular time course of defect density and productivity in case of technical debt shown in a XY diagram (example)
Figure 20:
Summary of the results of a code analysis by SonarQube (example)
Figure 21:
Schema of standardized error causes (extract, example)
Figure 22:
Planning and implementing improvement measures
Figure 23:
Impact of different KPAs on KPIs (empirical values)
Figure 24:
Effect of an individual improvement measure (example)
Figure 25:
Effect of two complementary improvement measures (example)
Figure 26:
Impact of two improvement measures consecutively implemented in identical sub-processes (example)
Table 1:
Model calculation for development effort using different paradigms
Table 2:
Further development productivity by summarizing a period of four months (example)
Table 3:
Example for a root cause analysis inspired by the 5-Why method
For software developing companies an increase of their productivity has the following effects [Wallmüller 1990]:
• Developing software products in shorter periods of time;
• Developing software products in order to achieve a higher return on invest;
• Developing software products with higher quality.
There is no doubt that these are desirable, in some cases even essential goals. For start-ups in their first rounds of financing, for example, exactly these aspects are crucial for the development of a digital business model and its rating by investors. The first question this book wants to answer is: To what extent can productivity be increased? In other words: Which improvements regarding these effects can be expected in practice?
Today, a wide range of productivity values can be measured in the practice of software development. This is due to the fact that, compared to ohter industrial areas this sector is still lagging behind. Figure 1 shows measurements of PASS Consulting Group for different development paradigms, which have been calculated on the basis of the relationship of output to input. The output has been measured with the Data Interaction Point method (unit: DIP), the input in man-days (unit: MD) [Luckhaus 2014].
Figure 1: Empirical values of software development productivity
In the context of software development the term manufacture stands for a software producer with the following characteristics: software is created from scratch as a unique product, where the development process as well as the implemented functionality is unique and individual. The development process makes use of existing programming languages, compilers, environments, tools, and so on, but otherwise it is characterized by manual work – craftsmanship. Product and process quality highly depend on the experience and the skills of the developers.
PASS has experience with and productivity measurements from their own as well as from customer projects, where software has been developed in a manufacturelike manner. Usually, their productivity is just a little over 1 DIP/MD. Projects performing poorly can even have a productivity of less than 1 DIP/MD, while the best in class can reach a value of 2. A higher productivity cannot be expected of this type of software development.
Productivity in software development increases if technical and process standards are defined and applied, for example:
• Programming guidelines and design patterns, supported by development environments which are integrated with version control systems, code analysis tools, and so on.
• Development frameworks with reusable technical components.
• Standard architectures which provide proven system components and facilitate the integration of the developed software with these system components as well as a subsequent exchange.
• Modern development paradigms which save implementation effort for new code by delegating tasks to the underlying platform and combine the strengths of, for example, object oriented and functional programming concepts.
• Process models determining processes and methods for all competence areas of software development, including templates for all documents that need to be created.
One advantage of standards is that some requirements can be fulfilled without having to implement or test individual code. Additionally, standards protect the investment in the software product because process and product meet predefined quality criteria and are independent of the experience and the skills of individual process participants. In case of industry standards, frameworks such as Hibernate, Spring, PrimeFaces, and so on, the developing company can benefit from industrywide experience, making it far easier to recruit additional, qualified specialists for maintenance and further development tasks.
Productivity measurements of projects applying technical and process standards without automating sub-processes of software development, which have been performed by PASS Consulting Group, show values between 2 and 4 DIP/MD. Thus, compared to a project which, due to its handcrafted way of working, has a productivity of 1 DIP/MD, development standards can increase productivity by a factor of four. One advantage of this could be to generate the same output at a quarter of the costs, another to multiply functionality by four at the same costs.
Development standards are a first step from a manufacture to a factory and an important basis for the next milestone: increasing automation within the production process.
Model-based development with automated code generation allows the implementation of software on the abstract level of a model instead of using a programming language. An example for this is the PASS Software Factory, where this paradigm is applied in commercial software development for about 20 years, under continual optimization based on productivity and quality measurements. It is based on models for dialogs, processes, workflows, data structures, interfaces and tools for the creation and modification of objects in these areas, for example ,graphical user interfaces, data models, models of business objects, simple process flows, workflows with multiple user interactions, and so on. The developer can link the different models such as workflows with dialogs, buttons in dialogs with processes, input fields with data elements, and so on. Based on models and templates specifying language, style and commentation, a code generator creates executable code which is automatically enriched, for example, by technical validation checks. Later changes are performed on model level, while related code is generated automatically.
An empirical value derived from the development of individual software solutions with the PASS Software Factory states that about 80% of the code is generated code based on the models whereas about 20% need to be programmed individually. Productivity measured in different projects lies between 3 and 8 DIP/MD.
There is even more potential in standardization. Examples are a unified dialog layout where search dialogs with a result list and subsequent detail views are automatically generated from business objects or generated workflows with unified 4-eye or 6-eye approval procedures for selected business objects. This type of standardization does not exclude the consideration of individual requirements, but it simplifies their implementation. With standardized, model-driven and generative development, productivity values between 20 and 25 DIP/MD are possible.
Figure 2: Modeling of a process with the PASS Software Factory (example)