SlideShare a Scribd company logo
Code with Honor
on the
importance
and beauty
of software
programming
Oracle Groundbreakers APAC Virtual Tour 2020, 21st October
Lucas Jellema, CTO & Architect AMIS | Conclusion
Lucas Jellema
CTO for AMIS | Conclusion
Cloud Solution Architect
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
lucas.jellema@amis.nl | technology.amis.nl | @lucasjellema | lucas-jellema
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
We are Proud Craftsmen
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
The Business
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
New Development costs
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Development
Production
scale,
performance,
security,
stability,
recoverability,
monitoring
0
1
2
3
4
5
6
7
3 months 2 months 1 month 0 months minus 1 month minus 2
months
Value of Software vs Production Date
Cost Value
Value and Cost of Software
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
golive
no value!
Dev  Ops
One team to
• build
• run
• fix
• evolve
the product
to really own the product
throughout its life cycle
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Dev
Ops
Paid Lip Service
• Testing
• QA
• CI/CD
• Automation
• Scalability
• Production-like testing environments
• Security
• Architecture | Design Patterns
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
The Brake System is
powered by Software
The quality of the brake
software is similar to the code
that you committed last week
Your mother-in-law is
about to get into the car
Your mother-in-law is
about to get into the car
Your kids are about to
get into the car
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
why not?
what is your software good enough for?
for a demo, a PoC or a striclty controlled
prototype?
good enough to go to ACC (and let them find the
bugs)?
how do you know?
how do you know for sure what your
software does and how it deals with real
life?
What would you prefer:
 We have no failing tests
 We have some failing tests
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
What would you prefer:
 We have no failing tests
 We have some failing tests
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
What would you prefer:
 We have 10% failing tests
 We have 17.61 % failing tests
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
About me
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
• About you as well?
• A software professional who wants to
be proud
of the professional software
that you craft
take responsibility
towards society
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
My awakening
• So much software
• So much dependency in society
• health and safety, basic needs,
education, climate, business success &
failure, fun and comfort
• Are we professionals? Can we be
entrusted? Do we trust ourselves?
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
My Central Heating Guy
• Functioning system: heating and shower get water with requested
temperature (fast enough and in sufficient volume)
• Within reasonable boundary conditions (-20° to 30° outside
temperature)
• Safe & According to regulations
• Limited noise production, limited gas
• Lasts a while (10-20 years) – robust, limited wear & tear
• Not often failures, after failure system can be started again
quickly
• Can be adapted to (small) changes in circumstances
such as renovation of the house
• Maintenance: not too often and not too expensive
• CV technicians that can work with the system are widely
available, as well as spare parts: the system is not very outlandish
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
My Central Heating Guy
• Functioning system: heating and shower get water with
requested temperature (fast enough and in sufficient volume)
• Within reasonable boundary conditions (-20° to 30° outside
temperature)
• Safe & According to regulations
• Limited noise production, limited gas
• Lasts a while (10-20 years) – robust, limited wear & tear
• Not often failures, after failure system can be started again
quickly
• Can be adapted to (small) changes in circumstances
such as renovation of the house
• Maintenance: not too often and not too expensive
• CV technicians that can work with the system are widely
available, as well as spare parts: system is not very outlandish
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
*) We expect a professional to offer
suggestions and bring up relevant items
that I am unaware off as a layman
My Software Guy
• Functioning system: proof of working according to
specifications – under all foreseeable conditions
• Satisfies non-functional requirements
(performance, availability, recovery of data & service)
• Safe & According to regulations
• Known and reasonable TCO
• Lasts a while (10-20 years) – robust, limited wear & tear
• with regular technical maintenance at normal costs
• Can be adapted to changes in functional and non-functional
requirements (scale, availability, performance, security, …)
• Maintenance: not too often and not too expensive
• Software can be operated and maintained by regular IT staff
• no rare super specialists need to be flow in
• support and upgrades are easily available
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
*) We expect a professional to offer
suggestions and bring up relevant items
that I am unaware off as a layman
Do most systems live up to these
expectations?
Does your software?
Does mine?
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
My Resolution
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Code with Honor
• Be proud
• Take responsibility
• Hone skills and craftmanship
• Focus on longevity
• Be honest
• Be productive
• Realize value
• Team up
• Step up
• No concessions to my professionalism
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Code with Honor
• Be proud
• Take responsibility
• Hone skills and craftmanship
• Focus on longevity
• Be honest
• Be productive
• Realize value
• Team up
• Step up
• No concessions to my professionalism
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Productivity as function of time and code quality
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
source: https://martinfowler.com/articles/is-quality-worth-cost.html
Productivity
Productivity as function of % Defects Removed
source: The Economics of Software Quality - https://dev.to/bosepchuk/the-one-chart-every-developer-must-understand-2db9.
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Working Software
• What work does it do?
• How can you tell?
Working Software
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Small step for mankind…
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
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
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
ABLE
What is software?
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
What is software?
Any instruction executed by a machine!
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Everything
is Code
Case in point
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
old
not modern
legacy
business critical
custom software
Case in point
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
end of scale
low on expertise
fragile
no tests, no specs, no docs
expensive TCO
high technical debt
no evolution
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Working Software
Working Software
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Working => Professional Software
Working
Software
Professional
Software
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
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
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Working
• according to functional specifications and technical interfaces
• proven
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Working Software
Behavior Test
• The required
behavior as
experienced from
the outside
• specify
• document
• verify
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Functional Specification
Behavior test
Working Software
Team
DoR
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Unit Test
• Verify behavior of
• APIs & Interfaces
• Reusable elements
• Algorithms
• Aspects
• Functionality
• Non Functionality
• Happy & Non-Happy
• not: dependencies
Test is many things
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
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
• 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
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
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
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Test Trophy
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Live
QA: Static Code Analysis
• According to coding standards
• Consistent
• Readable
• Maintainable (Code Smells)
• Limited complexity
• Code Coverage (of tests)
• Vulnerabilities (in dependencies)
• Automatic improvements
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Refactoring
Refactoring
• 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
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Working Software
Professional Code Developer
DoaD
Unit tests & QA
(Behavior Tests)
Refactoring
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
private void calculatePayroll (SpecialList<Employee> employeeGroup) {
while (employeeGroup.HasMore()) {
Employee employee = employeeGroup.getNext(true) ;
employee.updateSalary() ;
Payroll.distributeCheck(employee) ;
}
}
private void process (SpecialList
g) { while (g.
HasMore()) { e =
g.getNext(true) ; e.
updSal
() ; /* discard check for temp workers */ Prl.
disChk(e) ; }
}
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
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Metamorphosis – the miracle of the PR
PR
Pull Request
Peer Review
Production
Ready
Metamorphosis – the miracle of the PR
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Pull Request == Please Review ?!
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Professional Code Developer
Team
DoaD
Appreciate my work
Help me improve it
and become a better developer
Take co-ownership of this code
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!
• this takes real commitment and substantial time!
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Professional Code Developer
Team
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
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Professional Code
Built Software
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
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Professional Code
Built Software
Deployable Software =
DONEDoD
Deploy
• Business decision
• Automated – no touch
• Smoketest post deployment
(and periodically to check on health)
• Operations activated
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Built Software
Deployable Software =
DONE
Professional &
ABLE:
Live Software
(under Ops)
Production
Preparation
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Canary
Observe the canary
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Fix Forward
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
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
Professional Software – Generating Value for the Business
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Software Wears Down
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
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:
• eg 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 technical change – proactively monitored by the DevOps Team
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
What Time can Do…
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Some Suggested Tools – by no means exhaustive
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
Technology SpecificGeneric
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Working
Software
Professional
Code
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
Working
Software
Professional
Code
Thank you
for your attention
I hope
this was
useful
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
lucas.jellema@amis.nl | technology.amis.nl | @lucasjellema | lucas-jellema
Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor

More Related Content

What's hot (20)

PDF
20201012 - Serverless Architecture Conference - Deploying serverless applicat...
Marcia Villalba
 
PDF
用Serverless技術快速開發line聊天機器人
Kevin Luo
 
PDF
20150623 IEEE ASQ Conf Teaching An Old Dog New Tricks: Agile For Legacy Systems
Craeg Strong
 
PDF
Itb 2021 - Bulding Quick APIs by Gavin Pickin
Gavin Pickin
 
PPTX
Oracle Developer Meetup March 2018
Phil Wilkins
 
PPTX
API Description Languages: Which is the Right One for Me?
Akana
 
PDF
Design and Develop Serverless Applications as Set-Pieces
SheenBrisals
 
PDF
20211028 ADDO Adapting to Covid with Serverless Craeg Strong Ariel Partners
Craeg Strong
 
PDF
E fw b4rbr62uiizvvipyb_cannell_lowcodelowdown_apex_vbcs
Mohamedcpcbma
 
PDF
Serverless Meetup - 12 gennaio 2017
Luca Bianchi
 
PPTX
Artificial Intelligence & Machine learning foundation topic in AWS
Varun Manik
 
PDF
Design & Deploy a data-driven Web API in 2 hours
Restlet
 
PDF
Creating a Comprehensive Social Media App Using Ionic and Phone Gap
FITC
 
PDF
Nils Rhode - Does it always have to be k8s - TeC Day 2019
Haufe-Lexware GmbH & Co KG
 
PDF
Crafting ColdFusion Applications like an Architect
ColdFusionConference
 
PDF
Declaring Server App Components in Pure Java
Atlassian
 
PPTX
AWS DevDay Cologne - CI/CD for modern applications
Cobus Bernard
 
PPTX
API Platform Cloud Service best practice - OOW17
Phil Wilkins
 
PDF
Implementing Enterprise Identity and Access Management in a microservices wor...
Judy Breedlove
 
PDF
Build a serverless web app for a theme park
James Beswick
 
20201012 - Serverless Architecture Conference - Deploying serverless applicat...
Marcia Villalba
 
用Serverless技術快速開發line聊天機器人
Kevin Luo
 
20150623 IEEE ASQ Conf Teaching An Old Dog New Tricks: Agile For Legacy Systems
Craeg Strong
 
Itb 2021 - Bulding Quick APIs by Gavin Pickin
Gavin Pickin
 
Oracle Developer Meetup March 2018
Phil Wilkins
 
API Description Languages: Which is the Right One for Me?
Akana
 
Design and Develop Serverless Applications as Set-Pieces
SheenBrisals
 
20211028 ADDO Adapting to Covid with Serverless Craeg Strong Ariel Partners
Craeg Strong
 
E fw b4rbr62uiizvvipyb_cannell_lowcodelowdown_apex_vbcs
Mohamedcpcbma
 
Serverless Meetup - 12 gennaio 2017
Luca Bianchi
 
Artificial Intelligence & Machine learning foundation topic in AWS
Varun Manik
 
Design & Deploy a data-driven Web API in 2 hours
Restlet
 
Creating a Comprehensive Social Media App Using Ionic and Phone Gap
FITC
 
Nils Rhode - Does it always have to be k8s - TeC Day 2019
Haufe-Lexware GmbH & Co KG
 
Crafting ColdFusion Applications like an Architect
ColdFusionConference
 
Declaring Server App Components in Pure Java
Atlassian
 
AWS DevDay Cologne - CI/CD for modern applications
Cobus Bernard
 
API Platform Cloud Service best practice - OOW17
Phil Wilkins
 
Implementing Enterprise Identity and Access Management in a microservices wor...
Judy Breedlove
 
Build a serverless web app for a theme park
James Beswick
 

Similar to Code with Honor – on the importance and beauty of software programming (Oracle Groundbreaker APAC Virtual Tour 2020) (20)

PPTX
Code with Honor – on the importance and beauty of software programming
Lucas Jellema
 
PPTX
Code with Honor – on the importance and beauty of software programming - RMOU...
Lucas Jellema
 
PPTX
Software Engineering as the Next Level Up from Programming (Oracle Groundbrea...
Lucas Jellema
 
PDF
It's a wrap - closing keynote for nlOUG Tech Experience 2017 (16th June, The ...
Lucas Jellema
 
PDF
Acquia Insight – the Ultimate Drupal Management Suite
Acquia
 
PDF
[db tech showcase Tokyo 2018] #dbts2018 #B33 『DBA 18.0 - Life after 18c』
Insight Technology, Inc.
 
PPTX
ECO 2022 - OCI and HashiCorp Terraform
Bobby Curtis
 
PPTX
2019 - GUOB Tech Day / Groundbreakers LAD Tour - Database Migration Methods t...
Marcus Vinicius Miguel Pedro
 
PPTX
Test Smarter Not Harder - how to design tests for continuous delivery
Melissa Benua
 
PDF
How To Be a Java Automated Testing Superstar
VMware Tanzu
 
PDF
DevOps in an Embedded World
Sajeewa Dayaratne
 
PDF
Coding Together - A Dev Workflow
Peter Chester
 
PPTX
SUGCON: The Agile Nirvana of DevSecOps and Containerization
Vasiliy Fomichev
 
DOCX
Shyama Sasidharan_CV
Shyama Sasidharan
 
PDF
Using Automated Code Reviews to Achieve Continuous Quality (ASQF Agile Night ...
Peter Kofler
 
PDF
AdaCore Paris Tech Day 2016: Jamie Ayre - Market Perspective
jamieayre
 
PPTX
Automated testing made easy for start ups
Damien Knox
 
PDF
Voxxed days 2015-hakansaglam-codereview
Hakan Saglam
 
PDF
Sharing is Caring
Petri Kallberg
 
PDF
Parnents training
sunil kumar
 
Code with Honor – on the importance and beauty of software programming
Lucas Jellema
 
Code with Honor – on the importance and beauty of software programming - RMOU...
Lucas Jellema
 
Software Engineering as the Next Level Up from Programming (Oracle Groundbrea...
Lucas Jellema
 
It's a wrap - closing keynote for nlOUG Tech Experience 2017 (16th June, The ...
Lucas Jellema
 
Acquia Insight – the Ultimate Drupal Management Suite
Acquia
 
[db tech showcase Tokyo 2018] #dbts2018 #B33 『DBA 18.0 - Life after 18c』
Insight Technology, Inc.
 
ECO 2022 - OCI and HashiCorp Terraform
Bobby Curtis
 
2019 - GUOB Tech Day / Groundbreakers LAD Tour - Database Migration Methods t...
Marcus Vinicius Miguel Pedro
 
Test Smarter Not Harder - how to design tests for continuous delivery
Melissa Benua
 
How To Be a Java Automated Testing Superstar
VMware Tanzu
 
DevOps in an Embedded World
Sajeewa Dayaratne
 
Coding Together - A Dev Workflow
Peter Chester
 
SUGCON: The Agile Nirvana of DevSecOps and Containerization
Vasiliy Fomichev
 
Shyama Sasidharan_CV
Shyama Sasidharan
 
Using Automated Code Reviews to Achieve Continuous Quality (ASQF Agile Night ...
Peter Kofler
 
AdaCore Paris Tech Day 2016: Jamie Ayre - Market Perspective
jamieayre
 
Automated testing made easy for start ups
Damien Knox
 
Voxxed days 2015-hakansaglam-codereview
Hakan Saglam
 
Sharing is Caring
Petri Kallberg
 
Parnents training
sunil kumar
 
Ad

More from Lucas Jellema (20)

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

Recently uploaded (20)

PDF
advancepresentationskillshdhdhhdhdhdhhfhf
jasmenrojas249
 
PPTX
GALILEO CRS SYSTEM | GALILEO TRAVEL SOFTWARE
philipnathen82
 
PDF
WatchTraderHub - Watch Dealer software with inventory management and multi-ch...
WatchDealer Pavel
 
PDF
Supabase Meetup: Build in a weekend, scale to millions
Carlo Gilmar Padilla Santana
 
PPTX
Explanation about Structures in C language.pptx
Veeral Rathod
 
PDF
New Download FL Studio Crack Full Version [Latest 2025]
imang66g
 
PDF
How to Download and Install ADT (ABAP Development Tools) for Eclipse IDE | SA...
SAP Vista, an A L T Z E N Company
 
PDF
Step-by-Step Guide to Install SAP HANA Studio | Complete Installation Tutoria...
SAP Vista, an A L T Z E N Company
 
PDF
SAP GUI Installation Guide for Windows | Step-by-Step Setup for SAP Access
SAP Vista, an A L T Z E N Company
 
PPT
Activate_Methodology_Summary presentatio
annapureddyn
 
PDF
AWS_Agentic_AI_in_Indian_BFSI_A_Strategic_Blueprint_for_Customer.pdf
siddharthnetsavvies
 
PPT
Why Reliable Server Maintenance Service in New York is Crucial for Your Business
Sam Vohra
 
PDF
Enhancing Security in VAST: Towards Static Vulnerability Scanning
ESUG
 
PPTX
ASSIGNMENT_1[1][1][1][1][1] (1) variables.pptx
kr2589474
 
PPTX
Presentation about variables and constant.pptx
kr2589474
 
PDF
Using licensed Data Loss Prevention (DLP) as a strategic proactive data secur...
Q-Advise
 
PDF
Infrastructure planning and resilience - Keith Hastings.pptx.pdf
Safe Software
 
PDF
Salesforce Implementation Services Provider.pdf
VALiNTRY360
 
PPTX
Role Of Python In Programing Language.pptx
jaykoshti048
 
PDF
Enhancing Healthcare RPM Platforms with Contextual AI Integration
Cadabra Studio
 
advancepresentationskillshdhdhhdhdhdhhfhf
jasmenrojas249
 
GALILEO CRS SYSTEM | GALILEO TRAVEL SOFTWARE
philipnathen82
 
WatchTraderHub - Watch Dealer software with inventory management and multi-ch...
WatchDealer Pavel
 
Supabase Meetup: Build in a weekend, scale to millions
Carlo Gilmar Padilla Santana
 
Explanation about Structures in C language.pptx
Veeral Rathod
 
New Download FL Studio Crack Full Version [Latest 2025]
imang66g
 
How to Download and Install ADT (ABAP Development Tools) for Eclipse IDE | SA...
SAP Vista, an A L T Z E N Company
 
Step-by-Step Guide to Install SAP HANA Studio | Complete Installation Tutoria...
SAP Vista, an A L T Z E N Company
 
SAP GUI Installation Guide for Windows | Step-by-Step Setup for SAP Access
SAP Vista, an A L T Z E N Company
 
Activate_Methodology_Summary presentatio
annapureddyn
 
AWS_Agentic_AI_in_Indian_BFSI_A_Strategic_Blueprint_for_Customer.pdf
siddharthnetsavvies
 
Why Reliable Server Maintenance Service in New York is Crucial for Your Business
Sam Vohra
 
Enhancing Security in VAST: Towards Static Vulnerability Scanning
ESUG
 
ASSIGNMENT_1[1][1][1][1][1] (1) variables.pptx
kr2589474
 
Presentation about variables and constant.pptx
kr2589474
 
Using licensed Data Loss Prevention (DLP) as a strategic proactive data secur...
Q-Advise
 
Infrastructure planning and resilience - Keith Hastings.pptx.pdf
Safe Software
 
Salesforce Implementation Services Provider.pdf
VALiNTRY360
 
Role Of Python In Programing Language.pptx
jaykoshti048
 
Enhancing Healthcare RPM Platforms with Contextual AI Integration
Cadabra Studio
 

Code with Honor – on the importance and beauty of software programming (Oracle Groundbreaker APAC Virtual Tour 2020)

  • 1. Code with Honor on the importance and beauty of software programming Oracle Groundbreakers APAC Virtual Tour 2020, 21st October Lucas Jellema, CTO & Architect AMIS | Conclusion
  • 2. Lucas Jellema CTO for AMIS | Conclusion Cloud Solution Architect Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor [email protected] | technology.amis.nl | @lucasjellema | lucas-jellema
  • 3. Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 4. Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 5. Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 6. Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 7. Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 8. We are Proud Craftsmen Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 9. Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 10. Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 11. Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor The Business
  • 12. Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor New Development costs
  • 13. Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor Development Production scale, performance, security, stability, recoverability, monitoring
  • 14. 0 1 2 3 4 5 6 7 3 months 2 months 1 month 0 months minus 1 month minus 2 months Value of Software vs Production Date Cost Value Value and Cost of Software Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor golive no value!
  • 15. Dev  Ops One team to • build • run • fix • evolve the product to really own the product throughout its life cycle Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor Dev Ops
  • 16. Paid Lip Service • Testing • QA • CI/CD • Automation • Scalability • Production-like testing environments • Security • Architecture | Design Patterns Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 17. Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor The Brake System is powered by Software The quality of the brake software is similar to the code that you committed last week Your mother-in-law is about to get into the car Your mother-in-law is about to get into the car Your kids are about to get into the car
  • 18. Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor why not? what is your software good enough for? for a demo, a PoC or a striclty controlled prototype? good enough to go to ACC (and let them find the bugs)? how do you know? how do you know for sure what your software does and how it deals with real life?
  • 19. What would you prefer:  We have no failing tests  We have some failing tests Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 20. What would you prefer:  We have no failing tests  We have some failing tests Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 21. What would you prefer:  We have 10% failing tests  We have 17.61 % failing tests Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 22. About me Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 23. • About you as well? • A software professional who wants to be proud of the professional software that you craft take responsibility towards society Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 24. My awakening • So much software • So much dependency in society • health and safety, basic needs, education, climate, business success & failure, fun and comfort • Are we professionals? Can we be entrusted? Do we trust ourselves? Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 25. My Central Heating Guy • Functioning system: heating and shower get water with requested temperature (fast enough and in sufficient volume) • Within reasonable boundary conditions (-20° to 30° outside temperature) • Safe & According to regulations • Limited noise production, limited gas • Lasts a while (10-20 years) – robust, limited wear & tear • Not often failures, after failure system can be started again quickly • Can be adapted to (small) changes in circumstances such as renovation of the house • Maintenance: not too often and not too expensive • CV technicians that can work with the system are widely available, as well as spare parts: the system is not very outlandish Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 26. My Central Heating Guy • Functioning system: heating and shower get water with requested temperature (fast enough and in sufficient volume) • Within reasonable boundary conditions (-20° to 30° outside temperature) • Safe & According to regulations • Limited noise production, limited gas • Lasts a while (10-20 years) – robust, limited wear & tear • Not often failures, after failure system can be started again quickly • Can be adapted to (small) changes in circumstances such as renovation of the house • Maintenance: not too often and not too expensive • CV technicians that can work with the system are widely available, as well as spare parts: system is not very outlandish Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor *) We expect a professional to offer suggestions and bring up relevant items that I am unaware off as a layman
  • 27. My Software Guy • Functioning system: proof of working according to specifications – under all foreseeable conditions • Satisfies non-functional requirements (performance, availability, recovery of data & service) • Safe & According to regulations • Known and reasonable TCO • Lasts a while (10-20 years) – robust, limited wear & tear • with regular technical maintenance at normal costs • Can be adapted to changes in functional and non-functional requirements (scale, availability, performance, security, …) • Maintenance: not too often and not too expensive • Software can be operated and maintained by regular IT staff • no rare super specialists need to be flow in • support and upgrades are easily available Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor *) We expect a professional to offer suggestions and bring up relevant items that I am unaware off as a layman
  • 28. Do most systems live up to these expectations? Does your software? Does mine? Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 29. My Resolution Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 30. Code with Honor • Be proud • Take responsibility • Hone skills and craftmanship • Focus on longevity • Be honest • Be productive • Realize value • Team up • Step up • No concessions to my professionalism Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 31. Code with Honor • Be proud • Take responsibility • Hone skills and craftmanship • Focus on longevity • Be honest • Be productive • Realize value • Team up • Step up • No concessions to my professionalism Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 32. Productivity as function of time and code quality Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor source: https://martinfowler.com/articles/is-quality-worth-cost.html Productivity
  • 33. Productivity as function of % Defects Removed source: The Economics of Software Quality - https://dev.to/bosepchuk/the-one-chart-every-developer-must-understand-2db9. Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 34. Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 35. Working Software • What work does it do? • How can you tell? Working Software Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 36. Small step for mankind… Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor FROM WORKING SOFTWARE TO PROFESSIONAL SOFTWARE
  • 37. Professional Software is ABLE Software • Verifi • Test • Oper • Read • Evolv • Maintain • Observ • Scal • Recover • Prov • Afford • Deploy • Audit • Impenetra Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor ABLE
  • 38. What is software? Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 39. What is software? Any instruction executed by a machine! Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 40. Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor Everything is Code
  • 41. Case in point Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor old not modern legacy business critical custom software
  • 42. Case in point Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor end of scale low on expertise fragile no tests, no specs, no docs expensive TCO high technical debt no evolution
  • 43. Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 44. Working Software Working Software Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 45. Working => Professional Software Working Software Professional Software Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 46. 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 Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 47. Working • according to functional specifications and technical interfaces • proven Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor Working Software
  • 48. Behavior Test • The required behavior as experienced from the outside • specify • document • verify Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor Functional Specification Behavior test Working Software Team DoR
  • 49. Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor Unit Test • Verify behavior of • APIs & Interfaces • Reusable elements • Algorithms • Aspects • Functionality • Non Functionality • Happy & Non-Happy • not: dependencies
  • 50. Test is many things Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor 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
  • 51. • 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 Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 52. 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 Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 53. Test Trophy Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor Live
  • 54. QA: Static Code Analysis • According to coding standards • Consistent • Readable • Maintainable (Code Smells) • Limited complexity • Code Coverage (of tests) • Vulnerabilities (in dependencies) • Automatic improvements Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 55. Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor Refactoring
  • 56. Refactoring • 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 Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor Working Software Professional Code Developer DoaD Unit tests & QA (Behavior Tests) Refactoring
  • 57. Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor private void calculatePayroll (SpecialList<Employee> employeeGroup) { while (employeeGroup.HasMore()) { Employee employee = employeeGroup.getNext(true) ; employee.updateSalary() ; Payroll.distributeCheck(employee) ; } } private void process (SpecialList g) { while (g. HasMore()) { e = g.getNext(true) ; e. updSal () ; /* discard check for temp workers */ Prl. disChk(e) ; } }
  • 58. 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 Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 59. Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor Metamorphosis – the miracle of the PR
  • 60. PR Pull Request Peer Review Production Ready Metamorphosis – the miracle of the PR Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 61. Pull Request == Please Review ?! Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor Professional Code Developer Team DoaD Appreciate my work Help me improve it and become a better developer Take co-ownership of this code
  • 62. 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! • this takes real commitment and substantial time! Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor Professional Code Developer Team
  • 63. 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 Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor Professional Code Built Software
  • 64. 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 Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor Professional Code Built Software Deployable Software = DONEDoD
  • 65. Deploy • Business decision • Automated – no touch • Smoketest post deployment (and periodically to check on health) • Operations activated Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor Built Software Deployable Software = DONE Professional & ABLE: Live Software (under Ops) Production Preparation
  • 66. Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor Canary
  • 67. Observe the canary Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 68. Fix Forward Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor 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
  • 69. Professional Software – Generating Value for the Business Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 70. Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 71. Software Wears Down Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 72. 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: • eg 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 technical change – proactively monitored by the DevOps Team Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 73. What Time can Do… Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 74. Some Suggested Tools – by no means exhaustive 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 Technology SpecificGeneric Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 75. Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 76. Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor
  • 77. Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor Working Software Professional Code
  • 78. Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor Working Software Professional Code
  • 79. Thank you for your attention I hope this was useful Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor [email protected] | technology.amis.nl | @lucasjellema | lucas-jellema
  • 80. Oracle Groundbreakers APAC Virtual Tour 2020 | Code with Honor

Editor's Notes

  • #34: https://dev.to/bosepchuk/the-one-chart-every-developer-must-understand-2db9 Capers Jones with co-author, Olivier Bonsignour titled The Economics of Software Quality.
  • #41: Mergeable Granularity/unit of… delivery/build/ Code analysis Structured (declarative)
  • #43: 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
  • #44: 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
  • #45: technical erosion slowly eating away
  • #55: 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
  • #65: Caterpillar to Butterfly From personal code to team treasure From branch to trunk From mine to our
  • #66: Caterpillar to Butterfly From personal code to team treasure From branch to trunk From mine to our
  • #73: ultimate test is production controlled production roll out is one way to perform (final) test
  • #74: log analysis (splunk, elastic, azure or OCI log analytics) metrics analysis real time and trends
  • #79: 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
  • #80: technical erosion slowly eating away
  • #81: https://angiejones.tech/writing-good-gherkin-enables-good-test-automation/
  • #83: Code with Honor Professional Software Able Software readable , maintainable, refactorable, testable (and tested), buildable and deployable (automatically), operable, evolvable team owned Be proud look anyone (especially your mother) in the eye and declare “our software is high quality” Have fun coding and experience purpose from the outcome Definition of Ready & Done Automation of CI/CD Automation of Testing – behavior, functional, non-functiona;l TD management tools for source code control (incl PR/MR), Test, QA, Build, Artifact Mgt, Deploy, Log, Monitor Peer Review
  • #84: Code with Honor Professional Software Able Software readable , maintainable, refactorable, testable (and tested), buildable and deployable (automatically), operable, evolvable team owned Be proud look anyone (especially your mother) in the eye and declare “our software is high quality” Have fun coding and experience purpose from the outcome Definition of Ready & Done Automation of CI/CD Automation of Testing – behavior, functional, non-functiona;l TD management tools for source code control (incl PR/MR), Test, QA, Build, Artifact Mgt, Deploy, Log, Monitor Peer Review
  • #85: Code with Honor Professional Software Able Software readable , maintainable, refactorable, testable (and tested), buildable and deployable (automatically), operable, evolvable team owned Be proud look anyone (especially your mother) in the eye and declare “our software is high quality” Have fun coding and experience purpose from the outcome Definition of Ready & Done Automation of CI/CD Automation of Testing – behavior, functional, non-functiona;l TD management tools for source code control (incl PR/MR), Test, QA, Build, Artifact Mgt, Deploy, Log, Monitor Peer Review