SlideShare une entreprise Scribd logo
1  sur  72
Software
Engineering
as the
Next Level Up
from
Programming
Oracle Groundbreakers APAC Virtual Tour 2021
Lucas Jellema, CTO & Architect AMIS | Conclusion
Lucas Jellema
CTO for AMIS | Conclusion
Cloud Solution Architect
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021
lucas.jellema@amis.nl | technology.amis.nl | @lucasjellema | lucas-jellema
2
Programming  Software Engineering
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021
Programming
“Writing code that works”
3
Programming  Software Engineering
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021
Programming Software Engineering
“Writing code that works”
time
“all of the tools and processes an organization uses to build and
maintain that code over time. What practices can a software
organization introduce that will best keep its code valuable over the
long term? How can engineers make a codebase more sustainable
and the software engineering discipline itself more rigorous”
4
Your organization’s codebase
is sustainable when you are able to change all of
the things that you ought to change, safely, and
can do so for
the life of your codebase.
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 5
Time and Change
• Functional Requirements because of new
insights, business evolution and innovation
• Non-Functional requirements because of
growth, costs and regulations
• Technological advances (& deprecations)
and shifts in community and among vendors
• Team members joining and leaving
• Changes in organization structure, scale,
processes
• Memories fading
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 6
Passage of Time
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021
competitive advantage
breakthrough innovation
cutting edge
business critical
high visibility
buzzing with energy
sparkling new
7
Passage of Time
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021
old
not modern
legacy
business critical
custom software
8
Passage of Time
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021
end of scale
low on expertise
fragile
no tests, no specs, no docs
expensive TCO
high technical debt
no evolution
9
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 10
Not all code is created equal
• Demo in presentation or workshop
• Explorative / R&D / Doodles
• Assignment in study or training
• Snippet in a blog-article
• Proof of Concept
• Prototype
• MVP
• Alert Condition evaluation
• Product with a very short time to live (several weeks, not any longer)
• Contribution to open source project
• (internal) Reusable Library
• Operating system for guided nuclear missile/ SpaceX vehicle
• Unit-test for code component
• Healthcheck/smoketest
(potentially) Production : Professional Quality Software
Not Production Ready: not (necessarily) Professional Quality Software
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 11
What is software?
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 12
What is software?
Any instruction executed by a machine!
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 13
Types of code -
with distinctions in test, management, release , monitoring
Application
Platform
Infrastructure
Deploy/Provision
Time
Busines Run
Time
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 14
Tools/Macros/Scripts for
Design & Development
& Test & Process
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021
Everything
is Code
15
Lifetime of a software application
Productivity as function of time
The Legacy Curve
Productivity as function of time and code quality
source: https://martinfowler.com/articles/is-quality-worth-cost.html
Productivity as function of time and code quality
source: https://martinfowler.com/articles/is-quality-worth-cost.html
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 20
Working Software
• What work does it do?
• How can you tell?
Working Software
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 21
Small step for mankind…
FROM WORKING
SOFTWARE
TO PROFESSIONAL
SOFTWARE
Professional Software is ABLE Software
• Verifi
• Test
• Oper
• Read
• Evolv
• Maintain
• Observ
• Scal
• Recover
• Prov
• Afford
• Deploy
• Audit
• Impenetra
ABLE
Working => Professional Software
Working
Software
Professional
Software
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 24
Stages in Software Lifecyle
Functional Specification
Behavior & Unit test
Working Software
Professional Code
Built Software
Deployable Software =
DONE
Professional &
ABLE:
Live Software
(under Ops)
Developer
Team
Production
Preparation
Team
DoR
DoaD
DoD
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021
PRoof
Pull Request
Peer Review
Production Ready
oPeRate
Put to Rest
25
Working
• according to functional specifications and technical interfaces
• proven
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021
Working Software
26
Behavior Test
• The required
behavior as
experienced from
the outside
• specify
• document
• verify
Functional Specification
Behavior test
Working Software
Team
DoR
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 27
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021
Unit Test
• Verify behavior of
• APIs & Interfaces
• Reusable elements
• Algorithms
• Aspects
• Functionality
• Non Functionality
• Happy & Non-Happy
• not: dependencies
28
Test is many things
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021
Functional contract (specification and documentation)
Quick (REPL) feedback cycle for developer
Proof of “working”
Insulator that allows
refactoring and code optimizations
technical upgrades
Regression detector
for things changed
and things unchanged but impacted by changes
Health indicator & Smoke detector
Reference for (re)using code
29
• Who creates the test?
• and at what time?
• Who (or what?) executes the test
• at what moment | trigger?
• what is the outcome
• Who checks on the tests?
• specification coverage
• code coverage
• [real world] condition coverage
• timely execution of test and handling of
result
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 30
Definition
• functional specifications
clear, unambiguous and understood
• boundary conditions, non happy
cases and exceptional situations are
covered in specifications
• non-functional requirements are clear
• business value of feature is defined
• TCO budget is specified
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 31
Test Trophy
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021
Live
32
Breach of Contract – at Dutch Court Systems
(no obvious technical debt)
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021
Court Cases DB
Entity
Service
Composite
Business
Service
eCase
Portal
Team UI
Team Linking Pin
Team On Your Case
a check constraint
was added
users could no
longer submit
court cases
33
Breach of Contract – at Dutch Court Systems
Process Refinement
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021
Court Cases DB
Entity
Service
Composite
Business
Service
eCase
Portal
Team UI
Team Linking Pin
Team On Your Case
Every team prepares test set
for other teams to automatically run
when they roll out any changes
34
QA: Static Code Analysis
• According to coding standards
• Consistent
• Readable (naming, formatting, length, …)
• Maintainable (Code Smells)
• Limited complexity
• Code Coverage (of tests)
• Vulnerabilities (in dependencies)
• Automatic improvements
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 35
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021
Refactoring
36
Application Architecture
Business Logic
API/
Internal
Interface
Frontend
(web, chat,
public API)
Persistence
(of state) – pluggable
persistence providers
Internal &
External
Systems
Systems
Internal
Systems
External
Systems
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 37
Refactoring towards Clean Professional Code
• Compliance with
coding standards
• Reducing complexity
• Increasing readability
• Testable & test coverage
• Operable
• logging
• metrics
• configuration settings
• Life cycle management of technology stack &
technical debt
• Needed: Local build pipeline and runtime environment to quickly and frequently do
code analysis, pull & merge from master, build & automated test
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021
Working Software
Professional Code Developer
DoaD
Unit tests & QA
(Behavior Tests)
Refactoring
38
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021
Clean
Code
Guidelines
39
The Debt Mountain
Functional
Debt
Team Process Debt
Organization
Debt
Community
Debt
Ops Debt
Tech Debt
Product Owner
Architect
Team
Scrum Master
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 40
Technical Debt
• Hard coded styles in web pages
• Low (to no) test coverage
• Complex, deeply nested, large, hard to understand code units
• Meaningless or even confusing variable names
• High degree of coupling
• Low quality documentation
• Magic numbers (hard coded values) in program code
• Use of deprecated òr unsupported technologies
• Use of exotic features that no one understands but Jim
• Manual steps in CI/CD
• Frequent substantial redesign of
architecture/ platform / tech stack
• Libraries with security vulnerabilities
• Use of technologies not known or wanted by team
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021
Ops Debt
Tech Debt
Impact/Risk (Longer Term)
• Changes increasingly become harder
(lengthy, costly, risky) – low agility
• Hard to keep/find & motivate technical
staff
• Drop in Team Productivity (velocity)
• Production incidents
• Increased Vulnerability
Owner: Architect (*
Found during: Dev,
Code QA, Review
41
What to do about debt?
• Identify debt during
• refinement, review, test, Ops intake, retrospective, audit, on boarding
• analysis, development, production usage
• Make debt explicit and visible – in a debt register and the risk log
• what and where
• severity, risk and impact (running cost!)
• resolution: how and effort
• Discuss debt (risks, running cost of not fixing) & plan actions
• in every sprint planning
• in every steering committee session
• …
• Continuously work on reducing debt – in small steps
• boy scout principle (improve everything you touch)
• explicitly set sprint budget aside
• Debt status should be a Team KPI
• Focus on a root cause: Team Process Debt
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021
Functional
Debt
Team Process Debt
Ops Debt
Tech Debt
Organization
Debt
Community
Debt
Debt
Register
Risk
Log
Team
Story
Backlog
42
Prevent or at least Manage Tech Debt
• Design Principles & Reference Architecture
• Reusable Building Blocks
• Architecture Design Decisions
• identify/define
• process for deciding
• prototype
• record
• Application and Feature Portfolio Management
& Technical Life Cycle Management
• usage and state => risk
• effort to upgrade or replace
• Team Process:
• Definition of Ready – include solution design (how & non functionals)
• Definition of Done
• Peer Review
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021
source: Oracle Cloud Reference Architecture
43
Team
• That story is in Janet’s area
• Sorry, Tom is on leave so we cannot work on X
right now
• Our tester is working on running all automated
tests
• Ellen is the only one on our team who can work on
the Python components
• Thomas knows how the CI/CD pipelines work
• I am not sure what business feature Sophie is
working on this sprint
• Bob built it, he knows how to demo it
• This [one year] old code is hard to maintain
because the person who built it has left the team
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 44
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021
Metamorphosis – the miracle of the PR
45
PR
Pull Request
Peer Review
Production
Ready
Metamorphosis – the miracle of the PR
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 46
Pull Request == Please Review ?!
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021
Professional Code Developer
Team
DoaD
Appreciate my work
and learn from it
Help me improve it
and become a better developer
Take co-ownership of this code
47
Peer Review completes the Pull Request
• Peer Review completes (only) when
• Code is ABLE
• and beautiful
• the code is merged from the branch to the trunk
• and the tram may roll in
• because the peer considers the code their own
• Give priority to Peer Review!
• respond ASAP to Pull Request
• a proper Peer Review takes
real commitment and substantial time
(proportional to the complexity of the story)
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021
Professional Code Developer
Team
48
Impostor Syndrome
a psychological pattern in which an
individual doubts their skills, talents, or
accomplishments and has a
persistent internalized fear of being
exposed as a "fraud“
quite common among software developers
psychological safety in the team is crucial to
help members be free
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 49
Definition of Almost Done
• Code on trunk
• ABLE
• Compiles | Can be Built
• Satisfies
• QA
• Test (behavior & code)
• Non-functional characteristics (absolute & trend)
• Vulnerability
• Guidelines and Standards
• Automated CI/CD pipeline
• (covered by) Smoketest
• Technical Debt management
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021
Professional Code
Built Software
50
Deployable == Done (as far as team is concerned)
• Deployable – but not yet deployed
• deploy decision is up to business
• CI/Continuous Delivery =
fully process up to deployability
• Continuous Deployment: automatic roll
out when DONE
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021
Professional Code
Built Software
Deployable Software =
DONE
DoD
51
Deploy
• Business decision
• Automated – no touch
• Fusion of code & environment configuration
• Smoketest post deployment
(and periodically to check on health)
• Operations activated
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021
Built Software
Deployable Software =
DONE
Professional &
ABLE:
Live Software
(under Ops)
Production
Preparation
52
Configuration
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021
Canary
53
Observe the canary
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 54
Fix Forward
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021
Fast Fix is not a special procedure nor a special environment
Tiered roll out
Spot issue [very
quickly]
Assign priority
Define test (to
reproduce and
guard against
regression)
Create fix on
branch
•working code
•professional code
PR and Merge to
trunk => DONE
<business
decision>
Roll Out
55
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 56
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 57
1202
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 58
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 59
60
Software Engineering as the Next Level Up from Programming
| APAC GB Tour 2021
Development
Production
scale,
performance,
security,
stability,
recoverability,
monitoring
61
Software Engineering as the Next Level Up from Programming
| APAC GB Tour 2021
Observing the Monkey
• “fire drills” – in live systems
• Testing Resilience of
• systems & automated procedures
• processes
• people
• By deliberately introducing errors in
runtime environments
• even in production ?!
• To test & prove & enhance measures
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 62
Professional Software – Generating Value for the Business
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 63
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 64
Software Wears Down
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 65
Life Cycle Management –
Functional and Technical Maintenance
• Ensure the up-date-ness of
the application and all its dependencies
• functional: which features are not used (and can be dropped), which are
suboptimal for users and require workarounds
• technical: which tech stack components are deprecated or even
forbidden, for which technology components do we no longer have the
skills?
• cost: which elements are way too
expensive for the value rendered?
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021
Periodic Review
66
Life Cycle Management – Technical Maintenance
• A CEV vulnerability (CVE database https://www.cvedetails.com/)
• Release (or patch) of 3rd party library/framework
• New or deprecated (feature in) PaaS Service
• Custom pricing in used or unused service
• New specification from the business
• New non-functional requirement
• Incident/bug – functional or non-functional
• Technical debt assessment
• New version of platform component:
• e.g. Docker, Kubernetes, Java, Node
• New/custom architecture
choice/guideline
• New/custom coding standard
• New tool, new version of tool
• Law & Regulation, Ethical Insights
• Mere Progression of Time
Triggers for review (and change) – proactively monitored by the DevOps Team
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021
Periodic Review
67
Automation
• Facilitate team members
• Reduce risk through frequent and small
steps
• Increase productivity of (scarce)
resources
• Reduce errors, increase quality
• Increase speed of process step execution
• Increase reaction speed (quicker value)
• Make things actually happen
• Scale up
• Reduce costs
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021
source: https://enterprisersproject.com/article/2021/1/automation-4-trends-2021
68
Platform and Infra = Code
• Software Engineering practices apply to
definitions of Platform and Infrastructure
resources
• Agile team development process
• Source Code Control and Versioning
• Testing
• Code QA & Peer Review
• Automation
• Platform & Infra engineer are
software developers too
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 69
Take, Act On and Manage Design Decisions
• Any decision that has impact on technology stack,
team way of working, application wide requirements, toolset
• Made, shared and recorded in a structured and explicit way
• Record: What has been| is being | will be decided?
• label & title
• what, why & when
• current status (could be superseded)
• context: place in bigger picture, relation with other decisions
• criteria – based on what will we come to a decision
• options to choose from
• decision – what was decided
• why? why not the alternatives?
• who & when
• consequences/impact/actions
• if and when should we evaluate?
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021
source: Fundamentals of Software
Architecture
,Mark Richards, Neal Ford 70
Shift Left
• Start attending to important aspects of the code base as early as possible
(and strive for design and prevention i/o detection & fix)
• security
• testing
• pair programming or
early peer review
• trunk based dev
• team ownership
• build & deploy
• operations
• automation
• TCO
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021
Source: van der Cruijsen 2017
71
Thank you
for your attention
I hope
this was
useful
Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021
lucas.jellema@amis.nl | technology.amis.nl | @lucasjellema | lucas-jellema
72

Contenu connexe

Tendances

Confluent Platform 5.4 + Apache Kafka 2.4 Overview (RBAC, Tiered Storage, Mul...
Confluent Platform 5.4 + Apache Kafka 2.4 Overview (RBAC, Tiered Storage, Mul...Confluent Platform 5.4 + Apache Kafka 2.4 Overview (RBAC, Tiered Storage, Mul...
Confluent Platform 5.4 + Apache Kafka 2.4 Overview (RBAC, Tiered Storage, Mul...Kai Wähner
 
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Lucas Jellema
 
Microservices, DevOps & SRE
Microservices, DevOps & SREMicroservices, DevOps & SRE
Microservices, DevOps & SREAraf Karsh Hamid
 
AMIS Oracle OpenWorld & CodeOne Review - Pillar 2 - Custom Application Develo...
AMIS Oracle OpenWorld & CodeOne Review - Pillar 2 - Custom Application Develo...AMIS Oracle OpenWorld & CodeOne Review - Pillar 2 - Custom Application Develo...
AMIS Oracle OpenWorld & CodeOne Review - Pillar 2 - Custom Application Develo...Lucas Jellema
 
Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...
Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...
Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...Chocolatey Software
 
Confluent Operator as Cloud-Native Kafka Operator for Kubernetes
Confluent Operator as Cloud-Native Kafka Operator for KubernetesConfluent Operator as Cloud-Native Kafka Operator for Kubernetes
Confluent Operator as Cloud-Native Kafka Operator for KubernetesKai Wähner
 
Apache Kafka 2.3 + Confluent Platform 5.3 => What's New?
Apache Kafka 2.3 + Confluent Platform 5.3 => What's New?Apache Kafka 2.3 + Confluent Platform 5.3 => What's New?
Apache Kafka 2.3 + Confluent Platform 5.3 => What's New?Kai Wähner
 
Kakfa summit london 2019 - the art of the event-streaming app
Kakfa summit london 2019 - the art of the event-streaming appKakfa summit london 2019 - the art of the event-streaming app
Kakfa summit london 2019 - the art of the event-streaming appNeil Avery
 
Event streaming: A paradigm shift in enterprise software architecture
Event streaming: A paradigm shift in enterprise software architectureEvent streaming: A paradigm shift in enterprise software architecture
Event streaming: A paradigm shift in enterprise software architectureSina Sojoodi
 
Introducing Events and Stream Processing into Nationwide Building Society
Introducing Events and Stream Processing into Nationwide Building SocietyIntroducing Events and Stream Processing into Nationwide Building Society
Introducing Events and Stream Processing into Nationwide Building Societyconfluent
 
New capabilities for modern data integration in the cloud
New capabilities for modern data integration in the cloudNew capabilities for modern data integration in the cloud
New capabilities for modern data integration in the cloudMicrosoft Tech Community
 
Ibm session tac 2104 - ctg presentation for impact 2013 final
Ibm session tac 2104 - ctg presentation for impact 2013 finalIbm session tac 2104 - ctg presentation for impact 2013 final
Ibm session tac 2104 - ctg presentation for impact 2013 finalElena Nanos
 
IIoT with Kafka and Machine Learning for Supply Chain Optimization In Real Ti...
IIoT with Kafka and Machine Learning for Supply Chain Optimization In Real Ti...IIoT with Kafka and Machine Learning for Supply Chain Optimization In Real Ti...
IIoT with Kafka and Machine Learning for Supply Chain Optimization In Real Ti...Kai Wähner
 
Modernizing your Application Architecture with Microservices
Modernizing your Application Architecture with MicroservicesModernizing your Application Architecture with Microservices
Modernizing your Application Architecture with Microservicesconfluent
 
Achieve Sub-Second Analytics on Apache Kafka with Confluent and Imply
Achieve Sub-Second Analytics on Apache Kafka with Confluent and ImplyAchieve Sub-Second Analytics on Apache Kafka with Confluent and Imply
Achieve Sub-Second Analytics on Apache Kafka with Confluent and Implyconfluent
 
How Uber Reduced AWS Costs 15% in 30 Days
How Uber Reduced AWS Costs 15% in 30 DaysHow Uber Reduced AWS Costs 15% in 30 Days
How Uber Reduced AWS Costs 15% in 30 DaysDevOps.com
 
Qlik and Confluent Success Stories with Kafka - How Generali and Skechers Kee...
Qlik and Confluent Success Stories with Kafka - How Generali and Skechers Kee...Qlik and Confluent Success Stories with Kafka - How Generali and Skechers Kee...
Qlik and Confluent Success Stories with Kafka - How Generali and Skechers Kee...HostedbyConfluent
 
Express Scripts: Driving Digital Transformation from Mainframe to Microservices
Express Scripts: Driving Digital Transformation from Mainframe to MicroservicesExpress Scripts: Driving Digital Transformation from Mainframe to Microservices
Express Scripts: Driving Digital Transformation from Mainframe to Microservicesconfluent
 
Bridge to Cloud: Using Apache Kafka to Migrate to AWS
Bridge to Cloud: Using Apache Kafka to Migrate to AWSBridge to Cloud: Using Apache Kafka to Migrate to AWS
Bridge to Cloud: Using Apache Kafka to Migrate to AWSconfluent
 
Concepts and Patterns for Streaming Services with Kafka
Concepts and Patterns for Streaming Services with KafkaConcepts and Patterns for Streaming Services with Kafka
Concepts and Patterns for Streaming Services with KafkaQAware GmbH
 

Tendances (20)

Confluent Platform 5.4 + Apache Kafka 2.4 Overview (RBAC, Tiered Storage, Mul...
Confluent Platform 5.4 + Apache Kafka 2.4 Overview (RBAC, Tiered Storage, Mul...Confluent Platform 5.4 + Apache Kafka 2.4 Overview (RBAC, Tiered Storage, Mul...
Confluent Platform 5.4 + Apache Kafka 2.4 Overview (RBAC, Tiered Storage, Mul...
 
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
 
Microservices, DevOps & SRE
Microservices, DevOps & SREMicroservices, DevOps & SRE
Microservices, DevOps & SRE
 
AMIS Oracle OpenWorld & CodeOne Review - Pillar 2 - Custom Application Develo...
AMIS Oracle OpenWorld & CodeOne Review - Pillar 2 - Custom Application Develo...AMIS Oracle OpenWorld & CodeOne Review - Pillar 2 - Custom Application Develo...
AMIS Oracle OpenWorld & CodeOne Review - Pillar 2 - Custom Application Develo...
 
Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...
Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...
Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...
 
Confluent Operator as Cloud-Native Kafka Operator for Kubernetes
Confluent Operator as Cloud-Native Kafka Operator for KubernetesConfluent Operator as Cloud-Native Kafka Operator for Kubernetes
Confluent Operator as Cloud-Native Kafka Operator for Kubernetes
 
Apache Kafka 2.3 + Confluent Platform 5.3 => What's New?
Apache Kafka 2.3 + Confluent Platform 5.3 => What's New?Apache Kafka 2.3 + Confluent Platform 5.3 => What's New?
Apache Kafka 2.3 + Confluent Platform 5.3 => What's New?
 
Kakfa summit london 2019 - the art of the event-streaming app
Kakfa summit london 2019 - the art of the event-streaming appKakfa summit london 2019 - the art of the event-streaming app
Kakfa summit london 2019 - the art of the event-streaming app
 
Event streaming: A paradigm shift in enterprise software architecture
Event streaming: A paradigm shift in enterprise software architectureEvent streaming: A paradigm shift in enterprise software architecture
Event streaming: A paradigm shift in enterprise software architecture
 
Introducing Events and Stream Processing into Nationwide Building Society
Introducing Events and Stream Processing into Nationwide Building SocietyIntroducing Events and Stream Processing into Nationwide Building Society
Introducing Events and Stream Processing into Nationwide Building Society
 
New capabilities for modern data integration in the cloud
New capabilities for modern data integration in the cloudNew capabilities for modern data integration in the cloud
New capabilities for modern data integration in the cloud
 
Ibm session tac 2104 - ctg presentation for impact 2013 final
Ibm session tac 2104 - ctg presentation for impact 2013 finalIbm session tac 2104 - ctg presentation for impact 2013 final
Ibm session tac 2104 - ctg presentation for impact 2013 final
 
IIoT with Kafka and Machine Learning for Supply Chain Optimization In Real Ti...
IIoT with Kafka and Machine Learning for Supply Chain Optimization In Real Ti...IIoT with Kafka and Machine Learning for Supply Chain Optimization In Real Ti...
IIoT with Kafka and Machine Learning for Supply Chain Optimization In Real Ti...
 
Modernizing your Application Architecture with Microservices
Modernizing your Application Architecture with MicroservicesModernizing your Application Architecture with Microservices
Modernizing your Application Architecture with Microservices
 
Achieve Sub-Second Analytics on Apache Kafka with Confluent and Imply
Achieve Sub-Second Analytics on Apache Kafka with Confluent and ImplyAchieve Sub-Second Analytics on Apache Kafka with Confluent and Imply
Achieve Sub-Second Analytics on Apache Kafka with Confluent and Imply
 
How Uber Reduced AWS Costs 15% in 30 Days
How Uber Reduced AWS Costs 15% in 30 DaysHow Uber Reduced AWS Costs 15% in 30 Days
How Uber Reduced AWS Costs 15% in 30 Days
 
Qlik and Confluent Success Stories with Kafka - How Generali and Skechers Kee...
Qlik and Confluent Success Stories with Kafka - How Generali and Skechers Kee...Qlik and Confluent Success Stories with Kafka - How Generali and Skechers Kee...
Qlik and Confluent Success Stories with Kafka - How Generali and Skechers Kee...
 
Express Scripts: Driving Digital Transformation from Mainframe to Microservices
Express Scripts: Driving Digital Transformation from Mainframe to MicroservicesExpress Scripts: Driving Digital Transformation from Mainframe to Microservices
Express Scripts: Driving Digital Transformation from Mainframe to Microservices
 
Bridge to Cloud: Using Apache Kafka to Migrate to AWS
Bridge to Cloud: Using Apache Kafka to Migrate to AWSBridge to Cloud: Using Apache Kafka to Migrate to AWS
Bridge to Cloud: Using Apache Kafka to Migrate to AWS
 
Concepts and Patterns for Streaming Services with Kafka
Concepts and Patterns for Streaming Services with KafkaConcepts and Patterns for Streaming Services with Kafka
Concepts and Patterns for Streaming Services with Kafka
 

Similaire à Software Engineering vs Programming

INTERFACE, by apidays - Crossing the low-code and pro-code chasm: a platform...
INTERFACE, by apidays  - Crossing the low-code and pro-code chasm: a platform...INTERFACE, by apidays  - Crossing the low-code and pro-code chasm: a platform...
INTERFACE, by apidays - Crossing the low-code and pro-code chasm: a platform...apidays
 
Crossing the low-code and pro-code chasm: a platform approach
Crossing the low-code and pro-code chasm: a platform approachCrossing the low-code and pro-code chasm: a platform approach
Crossing the low-code and pro-code chasm: a platform approachAsanka Abeysinghe
 
Code with Honor – on the importance and beauty of software programming - RMOU...
Code with Honor – on the importance and beauty of software programming - RMOU...Code with Honor – on the importance and beauty of software programming - RMOU...
Code with Honor – on the importance and beauty of software programming - RMOU...Lucas Jellema
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as CodePrasant Kumar
 
Enter the mind of an Agile Developer
Enter the mind of an Agile DeveloperEnter the mind of an Agile Developer
Enter the mind of an Agile DeveloperBSGAfrica
 
Improving Development Productivity: Static Analysis and Continuous Integration
Improving Development Productivity: Static Analysis and Continuous IntegrationImproving Development Productivity: Static Analysis and Continuous Integration
Improving Development Productivity: Static Analysis and Continuous IntegrationKlocwork
 
Functional verification techniques EW16 session
Functional verification techniques  EW16 sessionFunctional verification techniques  EW16 session
Functional verification techniques EW16 sessionSameh El-Ashry
 
Technical debt management strategies
Technical debt management strategiesTechnical debt management strategies
Technical debt management strategiesRaquel Pau
 
MongoDB World 2019: Building Flexible and Secure Customer Applications with M...
MongoDB World 2019: Building Flexible and Secure Customer Applications with M...MongoDB World 2019: Building Flexible and Secure Customer Applications with M...
MongoDB World 2019: Building Flexible and Secure Customer Applications with M...MongoDB
 
Module 1_software engineering.pptx
Module 1_software engineering.pptxModule 1_software engineering.pptx
Module 1_software engineering.pptxadityab33
 
5 Ways to Accelerate Standards Compliance with Static Code Analysis
5 Ways to Accelerate Standards Compliance with Static Code Analysis 5 Ways to Accelerate Standards Compliance with Static Code Analysis
5 Ways to Accelerate Standards Compliance with Static Code Analysis Perforce
 
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech UpdateAdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Updatejamieayre
 
Continuous delivery from the trenches
Continuous delivery from the trenchesContinuous delivery from the trenches
Continuous delivery from the trenchesMichael Medin
 
Moving to Agile Methods and DevOps on IBM i with ARCAD Pack for Rational 1479...
Moving to Agile Methods and DevOps on IBM i with ARCAD Pack for Rational 1479...Moving to Agile Methods and DevOps on IBM i with ARCAD Pack for Rational 1479...
Moving to Agile Methods and DevOps on IBM i with ARCAD Pack for Rational 1479...Philippe Krief
 

Similaire à Software Engineering vs Programming (20)

INTERFACE, by apidays - Crossing the low-code and pro-code chasm: a platform...
INTERFACE, by apidays  - Crossing the low-code and pro-code chasm: a platform...INTERFACE, by apidays  - Crossing the low-code and pro-code chasm: a platform...
INTERFACE, by apidays - Crossing the low-code and pro-code chasm: a platform...
 
Crossing the low-code and pro-code chasm: a platform approach
Crossing the low-code and pro-code chasm: a platform approachCrossing the low-code and pro-code chasm: a platform approach
Crossing the low-code and pro-code chasm: a platform approach
 
P4 Branching Overview
P4 Branching OverviewP4 Branching Overview
P4 Branching Overview
 
Donna PetersonPMVBA
Donna PetersonPMVBADonna PetersonPMVBA
Donna PetersonPMVBA
 
Code with Honor – on the importance and beauty of software programming - RMOU...
Code with Honor – on the importance and beauty of software programming - RMOU...Code with Honor – on the importance and beauty of software programming - RMOU...
Code with Honor – on the importance and beauty of software programming - RMOU...
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code
 
Resume July 2015
Resume July 2015Resume July 2015
Resume July 2015
 
Enter the mind of an Agile Developer
Enter the mind of an Agile DeveloperEnter the mind of an Agile Developer
Enter the mind of an Agile Developer
 
Improving Development Productivity: Static Analysis and Continuous Integration
Improving Development Productivity: Static Analysis and Continuous IntegrationImproving Development Productivity: Static Analysis and Continuous Integration
Improving Development Productivity: Static Analysis and Continuous Integration
 
Functional verification techniques EW16 session
Functional verification techniques  EW16 sessionFunctional verification techniques  EW16 session
Functional verification techniques EW16 session
 
Technical debt management strategies
Technical debt management strategiesTechnical debt management strategies
Technical debt management strategies
 
MongoDB World 2019: Building Flexible and Secure Customer Applications with M...
MongoDB World 2019: Building Flexible and Secure Customer Applications with M...MongoDB World 2019: Building Flexible and Secure Customer Applications with M...
MongoDB World 2019: Building Flexible and Secure Customer Applications with M...
 
Module 1_software engineering.pptx
Module 1_software engineering.pptxModule 1_software engineering.pptx
Module 1_software engineering.pptx
 
codEnforcer 2013
codEnforcer 2013codEnforcer 2013
codEnforcer 2013
 
5 Ways to Accelerate Standards Compliance with Static Code Analysis
5 Ways to Accelerate Standards Compliance with Static Code Analysis 5 Ways to Accelerate Standards Compliance with Static Code Analysis
5 Ways to Accelerate Standards Compliance with Static Code Analysis
 
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech UpdateAdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
 
Continuous delivery from the trenches
Continuous delivery from the trenchesContinuous delivery from the trenches
Continuous delivery from the trenches
 
Resume
ResumeResume
Resume
 
Moving to Agile Methods and DevOps on IBM i with ARCAD Pack for Rational 1479...
Moving to Agile Methods and DevOps on IBM i with ARCAD Pack for Rational 1479...Moving to Agile Methods and DevOps on IBM i with ARCAD Pack for Rational 1479...
Moving to Agile Methods and DevOps on IBM i with ARCAD Pack for Rational 1479...
 
Ramesh gupta cv
Ramesh gupta cvRamesh gupta cv
Ramesh gupta cv
 

Plus de Lucas Jellema

Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Lucas Jellema
 
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Lucas Jellema
 
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lucas Jellema
 
Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...Lucas Jellema
 
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...Lucas Jellema
 
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...Lucas Jellema
 
Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!Lucas Jellema
 
IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)Lucas Jellema
 
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Lucas Jellema
 
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Lucas Jellema
 
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...Lucas Jellema
 
Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Lucas Jellema
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...Lucas Jellema
 
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Lucas Jellema
 
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Lucas Jellema
 
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...Lucas Jellema
 
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Lucas Jellema
 
Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)Lucas Jellema
 
Triple C - Centralize, Cloudify and Consolidate Dozens of Oracle Databases (O...
Triple C - Centralize, Cloudify and Consolidate Dozens of Oracle Databases (O...Triple C - Centralize, Cloudify and Consolidate Dozens of Oracle Databases (O...
Triple C - Centralize, Cloudify and Consolidate Dozens of Oracle Databases (O...Lucas Jellema
 
Who Wants to Become an IT Architect? A Look at the Bigger Picture (Oracle Gro...
Who Wants to Become an IT Architect? A Look at the Bigger Picture (Oracle Gro...Who Wants to Become an IT Architect? A Look at the Bigger Picture (Oracle Gro...
Who Wants to Become an IT Architect? A Look at the Bigger Picture (Oracle Gro...Lucas Jellema
 

Plus de Lucas Jellema (20)

Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...
 
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
 
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
 
Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...
 
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
 
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
 
Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!
 
IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)
 
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
 
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
 
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
 
Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
 
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
 
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
 
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
 
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
 
Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)
 
Triple C - Centralize, Cloudify and Consolidate Dozens of Oracle Databases (O...
Triple C - Centralize, Cloudify and Consolidate Dozens of Oracle Databases (O...Triple C - Centralize, Cloudify and Consolidate Dozens of Oracle Databases (O...
Triple C - Centralize, Cloudify and Consolidate Dozens of Oracle Databases (O...
 
Who Wants to Become an IT Architect? A Look at the Bigger Picture (Oracle Gro...
Who Wants to Become an IT Architect? A Look at the Bigger Picture (Oracle Gro...Who Wants to Become an IT Architect? A Look at the Bigger Picture (Oracle Gro...
Who Wants to Become an IT Architect? A Look at the Bigger Picture (Oracle Gro...
 

Dernier

Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Software Coding for software engineering
Software Coding for software engineeringSoftware Coding for software engineering
Software Coding for software engineeringssuserb3a23b
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 

Dernier (20)

Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Software Coding for software engineering
Software Coding for software engineeringSoftware Coding for software engineering
Software Coding for software engineering
 
Odoo Development Company in India | Devintelle Consulting Service
Odoo Development Company in India | Devintelle Consulting ServiceOdoo Development Company in India | Devintelle Consulting Service
Odoo Development Company in India | Devintelle Consulting Service
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 

Software Engineering vs Programming

  • 1. Software Engineering as the Next Level Up from Programming Oracle Groundbreakers APAC Virtual Tour 2021 Lucas Jellema, CTO & Architect AMIS | Conclusion
  • 2. Lucas Jellema CTO for AMIS | Conclusion Cloud Solution Architect Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 lucas.jellema@amis.nl | technology.amis.nl | @lucasjellema | lucas-jellema 2
  • 3. Programming  Software Engineering Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 Programming “Writing code that works” 3
  • 4. Programming  Software Engineering Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 Programming Software Engineering “Writing code that works” time “all of the tools and processes an organization uses to build and maintain that code over time. What practices can a software organization introduce that will best keep its code valuable over the long term? How can engineers make a codebase more sustainable and the software engineering discipline itself more rigorous” 4
  • 5. Your organization’s codebase is sustainable when you are able to change all of the things that you ought to change, safely, and can do so for the life of your codebase. Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 5
  • 6. Time and Change • Functional Requirements because of new insights, business evolution and innovation • Non-Functional requirements because of growth, costs and regulations • Technological advances (& deprecations) and shifts in community and among vendors • Team members joining and leaving • Changes in organization structure, scale, processes • Memories fading Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 6
  • 7. Passage of Time Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 competitive advantage breakthrough innovation cutting edge business critical high visibility buzzing with energy sparkling new 7
  • 8. Passage of Time Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 old not modern legacy business critical custom software 8
  • 9. Passage of Time Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 end of scale low on expertise fragile no tests, no specs, no docs expensive TCO high technical debt no evolution 9
  • 10. Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 10
  • 11. Not all code is created equal • Demo in presentation or workshop • Explorative / R&D / Doodles • Assignment in study or training • Snippet in a blog-article • Proof of Concept • Prototype • MVP • Alert Condition evaluation • Product with a very short time to live (several weeks, not any longer) • Contribution to open source project • (internal) Reusable Library • Operating system for guided nuclear missile/ SpaceX vehicle • Unit-test for code component • Healthcheck/smoketest (potentially) Production : Professional Quality Software Not Production Ready: not (necessarily) Professional Quality Software Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 11
  • 12. What is software? Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 12
  • 13. What is software? Any instruction executed by a machine! Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 13
  • 14. Types of code - with distinctions in test, management, release , monitoring Application Platform Infrastructure Deploy/Provision Time Busines Run Time Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 14 Tools/Macros/Scripts for Design & Development & Test & Process
  • 15. Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 Everything is Code 15
  • 16. Lifetime of a software application
  • 17. Productivity as function of time The Legacy Curve
  • 18. Productivity as function of time and code quality source: https://martinfowler.com/articles/is-quality-worth-cost.html
  • 19. Productivity as function of time and code quality source: https://martinfowler.com/articles/is-quality-worth-cost.html
  • 20. Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 20
  • 21. Working Software • What work does it do? • How can you tell? Working Software Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 21
  • 22. Small step for mankind… FROM WORKING SOFTWARE TO PROFESSIONAL SOFTWARE
  • 23. Professional Software is ABLE Software • Verifi • Test • Oper • Read • Evolv • Maintain • Observ • Scal • Recover • Prov • Afford • Deploy • Audit • Impenetra ABLE
  • 24. Working => Professional Software Working Software Professional Software Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 24
  • 25. Stages in Software Lifecyle Functional Specification Behavior & Unit test Working Software Professional Code Built Software Deployable Software = DONE Professional & ABLE: Live Software (under Ops) Developer Team Production Preparation Team DoR DoaD DoD Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 PRoof Pull Request Peer Review Production Ready oPeRate Put to Rest 25
  • 26. Working • according to functional specifications and technical interfaces • proven Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 Working Software 26
  • 27. Behavior Test • The required behavior as experienced from the outside • specify • document • verify Functional Specification Behavior test Working Software Team DoR Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 27
  • 28. Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 Unit Test • Verify behavior of • APIs & Interfaces • Reusable elements • Algorithms • Aspects • Functionality • Non Functionality • Happy & Non-Happy • not: dependencies 28
  • 29. Test is many things Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 Functional contract (specification and documentation) Quick (REPL) feedback cycle for developer Proof of “working” Insulator that allows refactoring and code optimizations technical upgrades Regression detector for things changed and things unchanged but impacted by changes Health indicator & Smoke detector Reference for (re)using code 29
  • 30. • Who creates the test? • and at what time? • Who (or what?) executes the test • at what moment | trigger? • what is the outcome • Who checks on the tests? • specification coverage • code coverage • [real world] condition coverage • timely execution of test and handling of result Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 30
  • 31. Definition • functional specifications clear, unambiguous and understood • boundary conditions, non happy cases and exceptional situations are covered in specifications • non-functional requirements are clear • business value of feature is defined • TCO budget is specified Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 31
  • 32. Test Trophy Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 Live 32
  • 33. Breach of Contract – at Dutch Court Systems (no obvious technical debt) Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 Court Cases DB Entity Service Composite Business Service eCase Portal Team UI Team Linking Pin Team On Your Case a check constraint was added users could no longer submit court cases 33
  • 34. Breach of Contract – at Dutch Court Systems Process Refinement Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 Court Cases DB Entity Service Composite Business Service eCase Portal Team UI Team Linking Pin Team On Your Case Every team prepares test set for other teams to automatically run when they roll out any changes 34
  • 35. QA: Static Code Analysis • According to coding standards • Consistent • Readable (naming, formatting, length, …) • Maintainable (Code Smells) • Limited complexity • Code Coverage (of tests) • Vulnerabilities (in dependencies) • Automatic improvements Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 35
  • 36. Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 Refactoring 36
  • 37. Application Architecture Business Logic API/ Internal Interface Frontend (web, chat, public API) Persistence (of state) – pluggable persistence providers Internal & External Systems Systems Internal Systems External Systems Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 37
  • 38. Refactoring towards Clean Professional Code • Compliance with coding standards • Reducing complexity • Increasing readability • Testable & test coverage • Operable • logging • metrics • configuration settings • Life cycle management of technology stack & technical debt • Needed: Local build pipeline and runtime environment to quickly and frequently do code analysis, pull & merge from master, build & automated test Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 Working Software Professional Code Developer DoaD Unit tests & QA (Behavior Tests) Refactoring 38
  • 39. Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 Clean Code Guidelines 39
  • 40. The Debt Mountain Functional Debt Team Process Debt Organization Debt Community Debt Ops Debt Tech Debt Product Owner Architect Team Scrum Master Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 40
  • 41. Technical Debt • Hard coded styles in web pages • Low (to no) test coverage • Complex, deeply nested, large, hard to understand code units • Meaningless or even confusing variable names • High degree of coupling • Low quality documentation • Magic numbers (hard coded values) in program code • Use of deprecated òr unsupported technologies • Use of exotic features that no one understands but Jim • Manual steps in CI/CD • Frequent substantial redesign of architecture/ platform / tech stack • Libraries with security vulnerabilities • Use of technologies not known or wanted by team Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 Ops Debt Tech Debt Impact/Risk (Longer Term) • Changes increasingly become harder (lengthy, costly, risky) – low agility • Hard to keep/find & motivate technical staff • Drop in Team Productivity (velocity) • Production incidents • Increased Vulnerability Owner: Architect (* Found during: Dev, Code QA, Review 41
  • 42. What to do about debt? • Identify debt during • refinement, review, test, Ops intake, retrospective, audit, on boarding • analysis, development, production usage • Make debt explicit and visible – in a debt register and the risk log • what and where • severity, risk and impact (running cost!) • resolution: how and effort • Discuss debt (risks, running cost of not fixing) & plan actions • in every sprint planning • in every steering committee session • … • Continuously work on reducing debt – in small steps • boy scout principle (improve everything you touch) • explicitly set sprint budget aside • Debt status should be a Team KPI • Focus on a root cause: Team Process Debt Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 Functional Debt Team Process Debt Ops Debt Tech Debt Organization Debt Community Debt Debt Register Risk Log Team Story Backlog 42
  • 43. Prevent or at least Manage Tech Debt • Design Principles & Reference Architecture • Reusable Building Blocks • Architecture Design Decisions • identify/define • process for deciding • prototype • record • Application and Feature Portfolio Management & Technical Life Cycle Management • usage and state => risk • effort to upgrade or replace • Team Process: • Definition of Ready – include solution design (how & non functionals) • Definition of Done • Peer Review Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 source: Oracle Cloud Reference Architecture 43
  • 44. Team • That story is in Janet’s area • Sorry, Tom is on leave so we cannot work on X right now • Our tester is working on running all automated tests • Ellen is the only one on our team who can work on the Python components • Thomas knows how the CI/CD pipelines work • I am not sure what business feature Sophie is working on this sprint • Bob built it, he knows how to demo it • This [one year] old code is hard to maintain because the person who built it has left the team Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 44
  • 45. Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 Metamorphosis – the miracle of the PR 45
  • 46. PR Pull Request Peer Review Production Ready Metamorphosis – the miracle of the PR Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 46
  • 47. Pull Request == Please Review ?! Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 Professional Code Developer Team DoaD Appreciate my work and learn from it Help me improve it and become a better developer Take co-ownership of this code 47
  • 48. Peer Review completes the Pull Request • Peer Review completes (only) when • Code is ABLE • and beautiful • the code is merged from the branch to the trunk • and the tram may roll in • because the peer considers the code their own • Give priority to Peer Review! • respond ASAP to Pull Request • a proper Peer Review takes real commitment and substantial time (proportional to the complexity of the story) Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 Professional Code Developer Team 48
  • 49. Impostor Syndrome a psychological pattern in which an individual doubts their skills, talents, or accomplishments and has a persistent internalized fear of being exposed as a "fraud“ quite common among software developers psychological safety in the team is crucial to help members be free Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 49
  • 50. Definition of Almost Done • Code on trunk • ABLE • Compiles | Can be Built • Satisfies • QA • Test (behavior & code) • Non-functional characteristics (absolute & trend) • Vulnerability • Guidelines and Standards • Automated CI/CD pipeline • (covered by) Smoketest • Technical Debt management Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 Professional Code Built Software 50
  • 51. Deployable == Done (as far as team is concerned) • Deployable – but not yet deployed • deploy decision is up to business • CI/Continuous Delivery = fully process up to deployability • Continuous Deployment: automatic roll out when DONE Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 Professional Code Built Software Deployable Software = DONE DoD 51
  • 52. Deploy • Business decision • Automated – no touch • Fusion of code & environment configuration • Smoketest post deployment (and periodically to check on health) • Operations activated Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 Built Software Deployable Software = DONE Professional & ABLE: Live Software (under Ops) Production Preparation 52 Configuration
  • 53. Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 Canary 53
  • 54. Observe the canary Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 54
  • 55. Fix Forward Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 Fast Fix is not a special procedure nor a special environment Tiered roll out Spot issue [very quickly] Assign priority Define test (to reproduce and guard against regression) Create fix on branch •working code •professional code PR and Merge to trunk => DONE <business decision> Roll Out 55
  • 56. Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 56
  • 57. Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 57
  • 58. 1202 Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 58
  • 59. Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 59
  • 60. 60 Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021
  • 62. Observing the Monkey • “fire drills” – in live systems • Testing Resilience of • systems & automated procedures • processes • people • By deliberately introducing errors in runtime environments • even in production ?! • To test & prove & enhance measures Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 62
  • 63. Professional Software – Generating Value for the Business Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 63
  • 64. Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 64
  • 65. Software Wears Down Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 65
  • 66. Life Cycle Management – Functional and Technical Maintenance • Ensure the up-date-ness of the application and all its dependencies • functional: which features are not used (and can be dropped), which are suboptimal for users and require workarounds • technical: which tech stack components are deprecated or even forbidden, for which technology components do we no longer have the skills? • cost: which elements are way too expensive for the value rendered? Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 Periodic Review 66
  • 67. Life Cycle Management – Technical Maintenance • A CEV vulnerability (CVE database https://www.cvedetails.com/) • Release (or patch) of 3rd party library/framework • New or deprecated (feature in) PaaS Service • Custom pricing in used or unused service • New specification from the business • New non-functional requirement • Incident/bug – functional or non-functional • Technical debt assessment • New version of platform component: • e.g. Docker, Kubernetes, Java, Node • New/custom architecture choice/guideline • New/custom coding standard • New tool, new version of tool • Law & Regulation, Ethical Insights • Mere Progression of Time Triggers for review (and change) – proactively monitored by the DevOps Team Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 Periodic Review 67
  • 68. Automation • Facilitate team members • Reduce risk through frequent and small steps • Increase productivity of (scarce) resources • Reduce errors, increase quality • Increase speed of process step execution • Increase reaction speed (quicker value) • Make things actually happen • Scale up • Reduce costs Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 source: https://enterprisersproject.com/article/2021/1/automation-4-trends-2021 68
  • 69. Platform and Infra = Code • Software Engineering practices apply to definitions of Platform and Infrastructure resources • Agile team development process • Source Code Control and Versioning • Testing • Code QA & Peer Review • Automation • Platform & Infra engineer are software developers too Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 69
  • 70. Take, Act On and Manage Design Decisions • Any decision that has impact on technology stack, team way of working, application wide requirements, toolset • Made, shared and recorded in a structured and explicit way • Record: What has been| is being | will be decided? • label & title • what, why & when • current status (could be superseded) • context: place in bigger picture, relation with other decisions • criteria – based on what will we come to a decision • options to choose from • decision – what was decided • why? why not the alternatives? • who & when • consequences/impact/actions • if and when should we evaluate? Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 source: Fundamentals of Software Architecture ,Mark Richards, Neal Ford 70
  • 71. Shift Left • Start attending to important aspects of the code base as early as possible (and strive for design and prevention i/o detection & fix) • security • testing • pair programming or early peer review • trunk based dev • team ownership • build & deploy • operations • automation • TCO Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 Source: van der Cruijsen 2017 71
  • 72. Thank you for your attention I hope this was useful Software Engineering as the Next Level Up from Programming | APAC GB Tour 2021 lucas.jellema@amis.nl | technology.amis.nl | @lucasjellema | lucas-jellema 72

Notes de l'éditeur

  1. TITLE Software Engineering as the Next Level Up from Programming     DESCRIPTION Software engineering is programming with the added dimension of time: programs that can evolve and scale, be maintained and be operated by multiple people over a longer period of time. What does it take to do software engineering in a professional manner - beyond mere programming? As programmers, our main goal is to make IT work. To translate functional specification into executable code. And sure, that is the least we can do. But we have more responsibility than this. We have to produce software that is robust and will reliably handle expected and unexpected cases. Software that is scalable and can handle expected and somewhat unexpected load gracefully. With minimal operating costs and in the greenest way possible. Software that is observable and manageable and that can be evolved with changing and new functional requirements and with changing technology. Software that will be legacy in the original, positive meaning of the word. That does not depend on the one big brain in our team or on the guy that has been around for three decades. Software that we know is good and can comfortably be modified in a controlled and productive way. We have to grow from excellent programmers to professional software engineers. This session talks about what it takes to create our code with honor. It discusses automation at every level in the build, rollout and monitoring of infrastructure (as code), platform and application, using CI/CD pipelines and DevOps procedures and tools. The session talks about testing – before and during development as well as after each change anywhere in the system and for both functional and non-functional aspects. Test driven development, regression testing and smoke testing are among the concepts discussed. The term ‘clean code’ refers to code that is readable, testable and maintainable. Through code analysis and peer reviews and by performing refactoring we constantly refine our software to be collectively adaptable. The session demonstrates the concepts discussed with code samples in the context of cloud native programming. As software engineers, we have an obligation to society, to our peers and to ourselves to not only write software that does the job, but to create code that is good. Ours is a great and meaningful line of work, especially if we raise our game professionally to code with honor.     DATE 11/24/2021 13:00-13:45
  2. not extraordinary! Old, not modern 5TB in RDBMS, 50 applications, 2000 components/programs, 1.5M “lines of custom code” fragile/issues end of scale stagnant / no innovation or evolution (SoR) Expensive TCO Critical to business No test sets, no specifications, no documentation Low on expertise: with tech stack, functionality, development and ops pile of tech debt – business always in a hurry, IT caved in; no budget to technical upgrades/maintenance Vulnerable
  3. not extraordinary! Old, not modern 5TB in RDBMS, 50 applications, 2000 components/programs, 1.5M “lines of custom code” fragile/issues end of scale stagnant / no innovation or evolution (SoR) Expensive TCO Critical to business No test sets, no specifications, no documentation Low on expertise: with tech stack, functionality, development and ops pile of tech debt – business always in a hurry, IT caved in; no budget to technical upgrades/maintenance Vulnerable
  4. technical erosion slowly eating away
  5. Mergeable Granularity/unit of… delivery/build/ Code analysis Structured (declarative)
  6. Test can only be created when story is ready DoR functional specifications clear, unambiguous and understood boundary conditions, non happy cases and exceptional situations are covered in specifications Non Functional Requirements are clear Business Value of feature is defined TCO budget Reference architecture Design & implementation guidelines Technical Debt
  7. lijst van design decisions die gaan komen, nu spelen en recent genomen zijn per beslissing wat (waar in het grotere solution design van de Data Market) waarom & wanneer eventueel samenhang met andere Design Decisions overwegingen/criteria - op basis waarvan gaan we de keuze maken/alternatieven beoordelen welke opties/alternatieven onderkennen we keuze plus motivatie (en wie waren betrokken) moet er een PoC vooraf of evaluatie achteraf worden gedaan?
  8. Caterpillar to Butterfly From personal code to team treasure From branch to trunk From mine to our
  9. Caterpillar to Butterfly From personal code to team treasure From branch to trunk From mine to our
  10. ultimate test is production controlled production roll out is one way to perform (final) test
  11. log analysis (splunk, elastic, azure or OCI log analytics) metrics analysis real time and trends
  12. https://www.slideserve.com/ayala/se-3910-real-time-systems
  13. expired certificate Product Owner cannot be reached Wiki is down Storage inaccessible Critical vulnerability in library DDOS attack detected Ransomware alert Data Corruption (human error) failing DNS server Azure availability zone is down team tech lead falls ill P1 bug in recent production release Edge connectivity lost Power outage
  14. Elk event leidt tot technical debt en/of actie/user story DevOps team houdt status bij van applicatie-componenten en platform-onderdelen en tools (functioneel, non-functioneel en technisch
  15. Elk event leidt tot technical debt en/of actie/user story DevOps team houdt status bij van applicatie-componenten en platform-onderdelen en tools (functioneel, non-functioneel en technisch
  16. Software Engineering at Google By Titus Winters, Tom Manshreck, Hyrum Wright