Software has several characteristics that distinguish it from other goods. These include, that it is not subject to any laws of nature, is easy to change, theoretically infinitely replicable and largely invisible. This culminates in a special kind of complexity that makes it difficult even for experienced software developers and architects to lead their projects to success. In this talk, we will therefore look deeper into the effects that the described characteristics have and how they affect any software system, be it the small mobile app or the enterprise cloud cluster.
2. Why (most) software projects fail silently
The Speaker
12. September 2022
ZEISS 2
Hendrik Lösch
Management Consultant
@HerrLoesch
hendrik.loesch@zeiss.com
hendrik-loesch.de
slideshare.net/HendrikLsch1
https://www.linkedin.com/learning/instructors/hendrik-losch
3. Why (most) software projects fail silently
Digital Innovation
12. September 2022
ZEISS 3
Medical Technology
Industry Quality &
Research
Semiconductor
Manufacturing
Technology
Consumer Markets
Innovative digitization projects for ZEISS as well as our synergy customers
Synergy Customers
Industry /
Manufacturing
Digital
Health
Retail /
Logistics
Public
Infrastructure
12. Why (most) software projects fail silently
Maintainability vs. Business Value
12 September 2022
ZEISS 13
Maintainability
Business Value
Feature development
with low quality focus
Feature Development
with high time pressure
Removal of
errorprone
parts
Start of
Developmet
13. Why (most) software projects fail silently
Translators
12. September 2022
ZEISS 15
External
Perspective
Internal
Perspective
Product Owner
Support
Software User
Sales
Management
Developer
Architect
Tester
14. Why (most) software projects fail silently
Perspectives on Software
Maintainability
Business Value
Feature Development
with low quality focus
Feature Development
with high time pressure
Removal of
errorprone
parts
Restructuring
with new features
Refactorings &
Boy-Scout-Rule
Start of
Developmet
15. Why (most) software projects fail silently
Architecture exists allways!
12. September 2022
ZEISS 17
unplanne
d
planned
16. Why (most) software projects fail silently
Result of missing strategies
12. September 2022
ZEISS 18
17. Why (most) software projects fail silently
The four horsemen of unstable software…
12. September 2022
ZEISS 19
Requirements
Debt
Documentation
Debt
Technical
Debt
Test Debt
18. Why (most) software projects fail silently
Value adding vs. value preserving investments
12. September 2022
ZEISS 20
Based on: Softwareevolution Erhaltung und Fortschreibung bestehender Softwaresysteme, Harry M. Sneed, Richard Seidl
Initial
Developmen
t
Developmen
t
Developmen
t
Developmen
t
Stabilization
Optimization
Redevelop-
ment
Stabilization
Stabilization
Optimization
t in years
Value preserving
Value adding
19. Phase Out
Why (most) software projects fail silently
Software Lifecycle
12. September 2022
ZEISS 21
t
0
Value preserving
Value adding
Investments
Initial
Development
Evolution
Close
Down
Servicing
20. Why (most) software projects fail silently
Costs
12. September 2022
ZEISS 22
t
0
Development
Costs
Costs
Initial
Development
Operating Costs
Close
Down
Evolution Phase Out
Servicing
21. Why (most) software projects fail silently
Translators
12. September 2022
ZEISS 23
External
Perspective
Internal
Perspective
Product Owner
Support
Software User
Sales
Management
Developer
Architect
Tester
22. Why (most) software projects fail silently
Issue vs. Impact
12. September 2022
ZEISS 24
Ask:
1. What is the issue?
2. How does it impact you?
Issue Impact Stakeholder
24. Why (most) software projects fail silently
The QA-Octant
12. September 2022
ZEISS 26
First Round
Select the most important
attribute.
Second Round
Select two attributes on the
second level.
Third Round
Select at least on attribute with the
least importance.
25. Why (most) software projects fail silently
Quality Scenarios & Quality Tree
12. September 2022
ZEISS 27
ISO
25010
Security
Confidentiality
S1
Authenticity
S2
Integrity
S3
Reliability
Maturity
S4
Recoverability
S5
Fault tolerance
S6
Maintainability
Modularity
S7
Modifiability
S8
Testability
S9
Analysability
S10
Functionality
Appropriateness
S11
Completeness
S12
Compatibility
Interoperability
S13
Usability
User error
protection
S14
Portability
Installability
S15
Efficiency
Time behaviour
S16
S3 Integrity Extensions to the system, such as plugins, must be checked during startup for authenticity so that only
officially permitted extensions can be introduced into the system.
S10 Analyzability New developers can be productive within four work weeks. This includes a functioning development
environment as well as the necessary understanding of the basic software structures.
S13 Interoperability If a new hardware component must be addressed by the software, only a new software adapter needs
to be implemented as far as no further workflow changes from a business perspective are associated
with this hardware.
https://iso25000.com/index.php/en/iso-25000-standards/iso-25010
26. Why (most) software projects fail silently
Finding a solution
12. September 2022
ZEISS 28
Micro
Services
Modulith
SOA Monolith
Scalability
Availablilty
Time Behavior
27. Why (most) software projects fail silently
Selection Bias
Selection bias is the bias introduced by the selection of
individuals, groups, or data for analysis in such a way that proper
randomization is not achieved, thereby failing to ensure that the
sample obtained is representative of the population intended to be
analyzed.
Wikipedia
12. September 2022
ZEISS 29
28. Why (most) software projects fail silently
Confirmation Bias
Confirmation bias is the tendency to search for, interpret, favor,
and recall information in a way that confirms or supports one's prior
beliefs or values.
Wikipedia
12. September 2022
ZEISS 30
29. Why (most) software projects fail silently
Survivorship Bias
Survivorship bias is the logical error of concentrating on the
people or things that made it past some selection process and
overlooking those that did not, typically because of their lack of
visibility.
Wikipedia
12. September 2022
ZEISS 31
30. Why (most) software projects fail silently
Finding an appropriate solution
12. September 2022
ZEISS 32
Micro
Services
Modulith
SOA Monolith
Scalability
Efficency
Availablilty
Time Behavior
Degree to which a software
system can be operated
simultaneously by
independent teams and in
independent runtime
environments.
Performance relative to the
amount of resources used
under stated conditions.
Degree to which a system is
operational and accessible
when required for use.
Degree to which the
processing times and
throughput rates of a system
meet requirements
31. Why (most) software projects fail silently
How to make decissions and document them
12. September 2022
ZEISS 33
https://adr.github.io/
Decision Matrix
https://blogs.zeiss.com/digital-innovation/en/the-perfect-decision-
matrix/
Architecture(al) Decision
Record
• Title
Short summary of what is decided
• Status
Is the decision proposed, accepted,
postponed, obsolete …
• Context
What do I need to know to understand
the decision?
• Decision
What is the end result?
• Consequences
What impact will the decision have &
what actions must be taken?
32. Why (most) software projects fail silently
Levels of Architecture
12. September 2022
ZEISS 34
Based on: https://www.omg.org/events/va-18/special-events/modern-sum/Ulrich.pdf
Solution Architecture
Business Architecture
Application
Architecture
Data
Architecture
Technical
Architecture
Enterprise
Architecture
IT
Architecture
33. Why (most) software projects fail silently
Easy to start, hard to succeed
Entusiasm starts a project,
discipline finishes it successful.
12. September 2022
ZEISS 35
34. Why do most software projects fail (silently)?
insufficent communication
wrong incentives
missing long term strategy
12. September 2022
ZEISS 36
35. ZEISS Digital Innovation
12. September 2022
ZEISS Seite 37
Welcome to #teamZEISS
Your career – Your future at ZEISS
Software Architecture & Software Development
Cloud (AWS, Azure, Kubernetes), Web, Java and .NET/C#
DevOps / System Engineering
Cloud, Java and .NET/C#
Scrum Master, Agile Project Management or Business Analysis
Quality Assurance
Test Automation, Test Analysis and Test Management
Internship – Working student – Thesis
Editor's Notes
Juicero – 120 million $ venture capital
Asking price of 700$, later 400$.
Eachs juce pack costed 5$ to 8$ with a lifespan of maximum 8 days.
Perfectly crafted inside.
Replicability
It seems like you can just copy and reuse software or its components. In fact, a certain standardization of the interfaces is necessary, and the deployment effort must not be underestimated.
Complexity
Handfull of elements combined to an enormous number of functionality.
Development are not reproducable but an R & D effort.
Conformity
Does not follow natural laws.
The tolerance of interfaces is usualy binary.
Software can break on bit level.
Invisibility
Is invisbile to the user during runtime, except the UI.
code is just an abstraction, the actual behavior can only be observed during execution.
Changeability
Can easily be changed.
Complexity, conformity and invisibilty may lead to undesired side effects.
Regression tests are vital!
Maintainibility affects costs of change directly.
Valu
How to we tell the external team that it is important?
We as developers have to push the communication if it is unsuficcient from our perspektive.
If we get not enought feedback then we have at least to show the possible impacts a decission will have