This slide deck is about the challenges we have to face if we deal with digitization solutions. As this term currently is massively overused, I first introduce a very simple definition to define what I mean with "digitization solution" in the context of the presentation.
Afterwards, I list the challenges - at least the most relevant ones - that arise from moving into the digitzation solution domain. Based on that, I try to examine the trends, prerequisites and limitations that you are confronted with from an IT point of view and you better need to adapt to if you are confronted with digitization in your company. Last, but not least, I try to derive some practical hints for us as individuals, how we can prepare for such an environment.
As always, the voice track is missing, but I hope also the slides on their own bear some value for you.
A Journey Into the Emotions of Software Developers
Digitization solutions - A new breed of software
1. Digitization solutions
A new breed of software
Uwe Friedrichsen (codecentric AG) – W-JAX – Munich, 7. November 2017
2. Uwe Friedrichsen
IT traveller.
Connecting the dots.
Attracted by uncharted territory.
CTO at codecentric.
https://www.slideshare.net/ufried
https://medium.com/@ufried
@ufried
7. Digitization in a nutshell
• IT becomes integral part of business offerings
• Not just supporting the business
• Directly exposed to the customer
• Cross-domain boundaries dissolve and leverage
new – currently still unknown – business models
• Not just another channel in the current business model
• Driven by new technological options
9. Reasons to embrace digitization
• High value reasons
• Leverage new business models
• Build closer relationships with your customers
• Innovate and validate faster
• Medium value reasons
• Respond to explicit customer demands
• Improve existing business models
• Low value reasons
• Reduce costs
• "Because we have to"
12. User experience (UX)
• Default usage patterns must be apparent ad-hoc
• Advanced usage patterns must also be easily learnable
• Trainings or reading user manuals upfront are a no-go
• Help – if needed at all – must be just one step away
• Appealing design is a matter of course
13. Responsiveness
• Fast response times are a matter of course
• Response times > 0.5s create a frown
• Response times > 1s create strong negative feelings
• Still a bit more patience if using mobile connections
• Backend must “just work” – always
14. Multi-device capability
• Availability on the device that fits the particular context
of the user best is expected
• “Mobile first” is a matter of course
• Web frontends are also self-evident
• New devices supporting the users in their
particular contexts need to be picked up
• Smart TV, smart watches, connected car, wearables, ...
15. Availability
• 24/7 availability is expected (“Zero downtime”)
• Maintenance windows are hardly accepted
• Unplanned downtimes are not accepted at all
16. Scalability
• Implicit expectation
• Constant responsiveness and availability expectations
no matter how many users use your solution
• Inappropriate scalability design can be a cost driver
17. Security
• Strong security is expected
• Usually focus on data privacy
• Rest should not compromise convenience (too much)
• Different challenge
• Many uncontrollable users with very diverse preferences
• Many uncontrollable devices
• (Usually) distributed, hard to control backend
19. Short iterations
• “Every new feature is a bet against the market”
• Minimize risk of idle or value-reducing performances
• Release small features often
• Leverage hypothesis-driven development
• Probe, Sense, Respond
• Not only an organizational issue
• Support needed in software design
• Support needed in version control
• Support needed in continuous delivery pipeline
20. Metrics
• Probe, Sense, Respond
• “Base your decisions on data, not gut feelings”
• Focus on business metrics
• Crucial source to understand customer demands better
• Supported by big and fast data technologies
21. A/B-Testing
• Test different implementations of a feature (“Micro-bets”)
• Decide based on measured customer response
• Increases likelihood to meet demands of users better
• Off-the-shelf A/B-testing solutions often limited in scope
• Requires explicit support for A/B-testing in application
• Requires support for smart rollout strategies
22. Smart rollout strategies
• Manage risk related to continuously testing new hypotheses
• Partial/gradual release strategies needed
• By percentage of traffic
• By target groups
• Existing solutions often not sufficient
• Explicit support needs to be implemented
• Often not only affects infrastructure, but also application
24. API
• Participation requires public API
• Effort to design a good API usually massively underrated
• Remember Fred Brooks’ “Rule of 9”
• Be wary of API versioning
27. Poor connectivity
• Need to handle poor or no (mobile) connectivity
• E.g., many areas in Germany with EDGE connectivity or worse
• Requires support for low bandwidth
• Requires offline support
28. Internet of Things (IoT)
• Whole new class of complexities and imponderabilities
• Needs to be considered and handled
• Broad topic – outside the scope of this talk
29. Ambient computing
• New types of user interfaces
• Voice recognition and control
• Video recognition and control (eyes, gestures, etc.)
• Augmented reality and virtual reality
• ...
• Context-aware interface capabilities
• Whole new class of complexities and imponderabilities
• Needs to be considered and handled
• Broad topic – outside the scope of this talk
30. Accessibility
• Not a new requirement
• New options and challenges due to
multitude of devices and technologies
31. Customer expectations
• User experience (UX)
• Responsiveness
• Multi-device capability
• Availability
• Scalability
• Security
Cross-domain solutions
• API
• Platforms
Dealing with uncertainty
• Short iterations
• Metrics
• A/B-Testing
• Smart rollout strategies
Additional requirements
• Poor connectivity
• Internet of Things (IoT)
• Ambient computing
• Accessibility
32. Solution drivers are interrelated ...
... and cannot be handled independently ...
... which leads to different solution approaches
Digitization solutions are different!
38. The magic is in the UI
• UX and UI design are key differentiators
• Expect ambient UI (“mobile first” is just a transient trend)
• Edge and on-device computing are also parts of “IoT UI”
39. Backend becomes commodity
• Understand the ongoing shift of the make-or-buy boundary
• “Everything-as-a-Service”
• Cloud is the default resource provisioning model
• BaaS/SaaS is the new COTS
• Severely reduced vertical integration depth
• “Use ’n’ glue” wherever possible
• Leverage schedulers and service meshes where needed
• Don‘t build and run your own databases, message busses,
monitoring solutions, etc. – high stakes, little value
40. Necessary prerequisites
• Automate everything
• Build, test, deployment, resource provisioning, ...
• Routing, scaling, fault recovery, reconciliation, ...
• Monitoring, threat detection, fraud detection, ...
• Monitor thoroughly
• Monitor business metrics like revenue
• Correlate events for better issue detection
• InfoSec is an integral part of development and operations ...
• ... and not an unloved afterthought
41. “API everything”
• Prerequisite to participate in future business models
• From the outside, a platform is mostly just another API
• API experience becomes a relevant differentiator
• Have in mind that public APIs are basically “immutable”
42. Keep an eye on adequacy
• Be wary of extreme scalability requirements
• Extreme scalability implies extreme solution complexity
• Limited scalability enables a lot simpler solutions
• Build for limited scalability first, re-build if successful
• Be wary of “one size fits all” approaches
• Product ideation and validation need to be very lightweight
• Stars and cash cows need to be robust and reliable
• Carefully balance product lifecycle and solution approach
43. Good functional design is key
• Prerequisite to required solution properties
• Affects understandability, changeability and extensibility
• Affects robustness, availability and scalability
• Not only relevant for service design, but also for API design
• Still a rare skill
• Hard to master
• The “how” is still poorly understood
45. The magic is in the UI
• Learn JavaScript – really!
• Embrace the concepts of UX and UI design
• Understand CSS at least a bit
• Peek into voice UI, video UI, AR/VR, IoT, etc.
46. Backend becomes commodity
• Understand and learn what “cloud” means today!
• Understand FaaS
• Know the relevant BaaS/SaaS offerings
• Or maybe “escape” into AI and machine learning
• (Re-)learn math!
• Understand the concepts of AI and (deep) learning
• Keep track of current research
47.
48. Necessary prerequisites
• Learn automation including tooling
• Understand monitoring needs ...
• ... and what existing solutions offer
• Embrace InfoSec
• Understand the most important attack vectors
• Know at least the OWASP top 10 risks
• Maybe additionally learn how to do threat modeling
50. Keep an eye on adequacy
• Understand your problem domain and focus on value
• This is what turns you into a “ten times developer”
• Speed trumps perfection – Rethink everything!
• Understand the ideas of bets and options
• Understand the difference between output and outcome
• Dismiss cargo-cult Scrum – learn what “Agile” really means
• Learn a light-weight tech stack for prototyping
51. Good functional design is key
• Learn design concepts
• “Loose coupling, high cohesion” & “separation of concerns”
• “Information hiding” especially with respect to API
• Domain-driven design is a good starting point
• Embrace the uncertainty of distributed systems
• “Memory, guesses and apologies” & promise theory
• Understand that infrastructure cannot guarantee robustness
53. Wrap-up
• Digitization solutions are different
• Different mind- and skillset needed
• New challenges, new options
• Exciting opportunities for the curious ...
54. Uwe Friedrichsen
IT traveller.
Connecting the dots.
Attracted by uncharted territory.
CTO at codecentric.
https://www.slideshare.net/ufried
https://medium.com/@ufried
@ufried