Book Series Increasing Productivity of Software Development, Part 2: Management Model, Cost Estimation and KPI Improvement - Stefan Luckhaus - E-Book

Book Series Increasing Productivity of Software Development, Part 2: Management Model, Cost Estimation and KPI Improvement E-Book

Stefan Luckhaus

0,0

Beschreibung

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:

Android
iOS
von Legimi
zertifizierten E-Readern

Seitenzahl: 85

Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:

Android
iOS
Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Stefan Luckhaus

Book Series

Increasing Productivity of Software Development

Part 2

Management Model, Cost Estimation and KPI Improvement

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

Contents

Contents

Figures

Tables

Introduction: Factories – from Manufactures to Software Production

The potential of productivity improvements

The manufacture – software as a handcraft

Development standards

Automated production processes

Standardization and reuse of functional components

A management model for optimizing productivity

I. KPIs and Measuring Methods

Measuring productivity

Measuring quality

Cycles of measurement, evaluation and optimization

II. Application of Measuring Methods

Measuring delivery- and new-development productivity

Measuring further-development productivity

Deriving quality indicators

Calculating the costs of planned development projects

Step 1: Determining the size of functional requirements

Step 2: Finding an empirical value for the own productivity

Step 3: Interpreting the result

Step 4: Identifying additional effort

Step 5: Identifying and mitigating risks

III. Evaluation

Analyzing the course of productivity over time

Internal benchmarks

External benchmarks

Reference values

Comparing quality with productivity

Anomaly #1: The impact of neglected analytical quality assurance

Anomaly #2: The impact of technical debts

Root cause analyses

IV. Optimization

Key Performance Areas

Application specification

Application architecture

System architecture

System operation

Development architecture

Quality management

Project management

Human resources management

Calculating the effectiveness of improvement measures

Adjusting and calibrating measuring methods

V. Conclusion

Glossary

Bibliography

About the Author

Book Recommendations

Figures

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)

Tables

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

Introduction: Factories – from Manufactures to Software Production

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?

The potential of productivity improvements

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

The manufacture – software as a handcraft

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.

Development standards

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.

Automated production processes

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)