The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
Software Development in Uncertain Times (VoxxedDays Athens 2022)
1. 1
Dealing with uncertainty in Software Development
Lessons Learned – Fallacies because of uncertainty
October 1st 2022
Michalis ARGYRIOU, BU Deputy Director /
Head of Development & Architecture
3. 3
Sword Group – Company Profile at a glance
Digital
Services
Digital
Transformation
Data & AI
Managed
Services
Information
Management
Software
Platform &
Security
Digital
Workspace
4. 4
Sword Greece – Compnay Profile at a glance
280
staff
EUR 10.3 M.
revenue 2021
1 office
Athens
SWORD Services Greece S.A is part of the Belgium, Luxembourg, Spain, Greece
entity and was founded in 2016
10. 10
Presentation thesis in one slide
Software projects are threatened by late
unexpected complexity introduced due to
uncertainty and conjunction fallacies.
-
Complexity must be embraced. Fallacies must be
identified and avoided.
11. 11
Y-axis: Requirements Uncertainty
X-axis: Technology Uncertainty
(hidden axis): People Uncertainty
Increased Accidental Complexity due to Uncertainty
Requirements, Technology and People
Uncertainty should be minimized in order
to minimize Complexity.
Complexity assessment graph
(Ken Schwaber 2009)
Complexity =
Essential Complexity +
Accidental Complexity (fallacies)
16. 16
There is a deadline to meet due to EC
regulation/UN treaty agreement and the
client has spined the ADM max one time
(Architecture Vision or HLD).
Insight
The client knows more-or-less what
(requirements) should be built but not the
details (business use cases) and how (design)
it fits into the Enterprise Architecture.
17. 17
Cone of uncertainty Stacey Complexity Model
Insight
Uncertainty is reduced with time
http://www.agilenutshell.com/cone_of_uncertainty https://www.agile-minds.com/when-to-use-waterfall-when-agile/
18. 18
• Baseline (BUC and
HLD)
• Cut-off dates for
dependencies
Waterfall Analysis
• MUST-
requirements
Identify what can
be delivered on-
time
• MVP
• Prioritize backlog
(Technical US,
Mock Integration
Points, Happy
Paths)
Agile (Scrum)
Construction
Proposal:
Development Method
Agile-Waterfall Hybrid Model
19. 19
Early decisions have higher impact Good architecture
should enable agility (change) Defer decisions or
decisions should be able to be reverted (“second-system
effect”) Build Evolutionary/Evolvable Architecture:
Fitness function;
Incremental change;
Architectural coupling;
Evolutionary data.
Some things cannot change – for example, architectural
style (microservices / functions) But some architectural
styles allow easier changes
Choose standard (“boring”) technology according to the
principle of Run less software
Proposal:
Architecture
Second-system
effect
Just enough architecture
2010 2017 1975
“one of an architect’s most
important tasks is to eliminate
irreversibility in software
designs.” [Martin Fowler, 2003]
24. 24
Teams need to be long-lived to become
performant. Teams are more productive during
the Performing phase (Tuckman's stages). Team
structure may change.
Insight
“Adding manpower to a late software
project makes it later”
[The Mythical Man Month]
https://www.weforum.org/agenda/2022/01/the-great-resignation-in-numbers-record/
26. 26
Example
Droppable local environment
Peer developers
Self-service documentation
Developer Portal
Culture of freedom, responsibility and accountability
Team agreement
Surgical Team
Avoid meetings fatigue
Use a dedicated Scrum Master
Client
30. 30
There is no one silver bullet: "there is no single
development, in … technology …, which by itself
promises even one order of magnitude [tenfold]
improvement within a decade … in simplicity."
Insight
31. 31
“Combination of tools are the Silver Bullet in
Software Development but don’t use multiple
equivalent tools.”
Proposal
36. 36
“Low chances to switch cloud provider. The cost of
portability may be more that its value.”
-
“Low risk if a technology is supported by a big vendor.”
Insight
Proposal
Embrace the Cloud as much as possible but
use Open Standards.
39. 39
“You cannot become
expert in a polyglot
stack. It is not easy to
maintain such systems
(staffing). New
technologies may
(unexpectedly) soon
reach EOL.“
Insight
Gartner hype cycle
40. 40
“Choose a boring
technology (Run less
software). Wait for a
technology to mature
(Plateau of Productivity)
before learning it and
becoming expert.”
Proposal
Gartner hype cycle
43. 43
1. Network is reliable
2. Latency is zero
3. Bandwidth is infinite
4. Network is secure
5. Topology doesn't change
6. There is one administrator
7. Transport cost is zero
8. The network is homogeneous
The 8-Fallacies of
distributed computing
52. 52
Example
A B C
Region 1
Source Sink
Process
A B C
Region 2
Source Sink
Process
Replication
Geographically co-located
components
Geographically co-located
components
Client
58. 58
Example Encryption
B
Processing Level (Intel SGX)
Process
Security in use
Enclave
Asylo
IBM Data
Cloud Shield
Ego
Fortanix
Graphene
Project OAK
Anjuna
Enarx
Occlum
Conclave
SCONE
Client
Flink and idempotent write to RDBMS:
https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/connectors/table/jdbc/#idempotent-writes
Flink and idempotent writes to Elasticsearch:
https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/connectors/table/elasticsearch/ Table API Connector
https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/connectors/datastream/elasticsearch/ DataStream API Connector