SlideShare a Scribd company logo
1 of 68
Code with Honor
on the
importance
and beauty
of software
programming
DOAG 2020, November 2020
Lucas Jellema, CTO & Architect AMIS | Conclusion
Lucas Jellema
CTO for AMIS | Conclusion
Cloud Solution Architect
DOAG 2020 | Code with Honor
lucas.jellema@amis.nl | technology.amis.nl | @lucasjellema | lucas-jellema
1202
DOAG 2020 | Code with Honor
PR
PRofessionalPRide
PR
PRofessionalPRide
Public Relations
Public Responsibility
PRoof Periodic Review
Pull Request
Peer Review
Production Ready
oPeRate
Put to Re
PuRpose
PR oductive
Push-button Release
PRofessional
DOAG 2020 | Code with Honor
DOAG 2020 | Code with Honor
We are Proud Craftsmen
DOAG 2020 | Code with Honor
DOAG 2020 | Code with Honor
The Business
DOAG 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
MVP and incremental value delivery
DOAG 2020 | Code with Honor
golive
no value!
Lifetime of a software application
DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
Paid Lip Service
• Testing
• QA
• CI/CD
• Automation
• Scalability
• Production-like testing environments
• Security
• Architecture | Design Patterns
DOAG 2020 | Code with Honor
DOAG 2020 | Code with Honor
The Brake System is
powered by Software
The quality of the brake
software is similar to the
code that you (or your team)
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
DOAG 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?
About me
DOAG 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
DOAG 2020 | Code with Honor
DOAG 2020 | Code with Honorsource: https://www.futuristgerd.com/2016/05/my-presentation-at-innotown-2016-in-alesund-the-next-5-years-in-technology-and-innovation/
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
DOAG 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
DOAG 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
DOAG 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?
DOAG 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
DOAG 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
DOAG 2020 | Code with Honor
Productivity as function of time and code quality
DOAG 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.
DOAG 2020 | Code with Honor
DOAG 2020 | Code with Honor
Working Software
• What work does it do?
• How can you tell?
Working Software
DOAG 2020 | Code with Honor
Small step for mankind…
DOAG 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
DOAG 2020 | Code with Honor
ABLE
Case in point
DOAG 2020 | Code with Honor
old
not modern
legacy
business critical
custom software
Case in point
DOAG 2020 | Code with Honor
end of scale
low on expertise
fragile
no tests, no specs, no docs
expensive TCO
high technical debt
no evolution
DOAG 2020 | Code with Honor
Working Software
Working Software
DOAG 2020 | Code with Honor
Working => Professional Software
Working
Software
Professional
Software
DOAG 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
DOAG 2020 | Code with Honor
PRoof
Pull Request
Peer Review
Production Ready
oPeRate
Put to Rest
Working
• according to functional specifications and technical interfaces
• proven
DOAG 2020 | Code with Honor
Working Software
Behavior Test
• The required
behavior as
experienced from
the outside
• specify
• document
• verify
DOAG 2020 | Code with Honor
Functional Specification
Behavior test
Working Software
Team
DoR
DOAG 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
DOAG 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
Test Trophy
DOAG 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
DOAG 2020 | Code with Honor
DOAG 2020 | Code with Honor
Refactoring
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
DOAG 2020 | Code with Honor
Working Software
Professional Code Developer
DoaD
Unit tests & QA
(Behavior Tests)
Refactoring
DOAG 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) ; }
}
DOAG 2020 | Code with Honor
Clean
Code
Guidelines
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
DOAG 2020 | Code with Honor
DOAG 2020 | Code with Honor
Metamorphosis – the miracle of the PR
PR
Pull Request
Peer Review
Production
Ready
Metamorphosis – the miracle of the PR
DOAG 2020 | Code with Honor
Pull Request == Please Review ?!
DOAG 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!
• respond ASAP to Pull Request
• a proper Peer Review takes
real commitment and substantial time!
DOAG 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
DOAG 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
DOAG 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
DOAG 2020 | Code with Honor
Built Software
Deployable Software =
DONE
Professional &
ABLE:
Live Software
(under Ops)
Production
Preparation
DOAG 2020 | Code with Honor
Canary
Observe the canary
DOAG 2020 | Code with Honor
Professional Software – Generating Value for the Business
DOAG 2020 | Code with Honor
DOAG 2020 | Code with Honor
Life Cycle Management – Technical Maintenance
• Ensure the up-date-ness of
the application and all its dependencies
DOAG 2020 | Code with Honor
Periodic Review
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 technical change – proactively monitored by the DevOps Team
DOAG 2020 | Code with Honor
Periodic Review
PR
PRofessional
PRide
Public Relations
Public Responsibility
PRoof Periodic Review
Pull Request
Peer Review
Production Ready
oPeRate
Put to Re
PuRpose
PR oductive
Push-button Release
Thank you
for your attention
I hope
this was
useful
DOAG 2020 | Code with Honor
lucas.jellema@amis.nl | technology.amis.nl | @lucasjellema | lucas-jellema
Slides: github.com/lucasjellema/presentations

More Related Content

What's hot

Raghwinder_ B.Tech IT Software Testing
Raghwinder_ B.Tech IT Software TestingRaghwinder_ B.Tech IT Software Testing
Raghwinder_ B.Tech IT Software TestingRaghwinder Parshad
 
Progton Technologies company profile
Progton Technologies company profileProgton Technologies company profile
Progton Technologies company profileSyed Nooruddin
 
SpiraTest Overview Presentation (2022)
SpiraTest Overview Presentation (2022)SpiraTest Overview Presentation (2022)
SpiraTest Overview Presentation (2022)Inflectra
 
Adaptive innovations digital brochure
Adaptive innovations digital brochureAdaptive innovations digital brochure
Adaptive innovations digital brochureJustin Alber
 
Swasen Introduction
Swasen IntroductionSwasen Introduction
Swasen Introductionswamysenthil
 
DOES16 London - Darren Hague - SAP’s DevOps Journey: From Building an App to ...
DOES16 London - Darren Hague - SAP’s DevOps Journey: From Building an App to ...DOES16 London - Darren Hague - SAP’s DevOps Journey: From Building an App to ...
DOES16 London - Darren Hague - SAP’s DevOps Journey: From Building an App to ...Gene Kim
 
Exploratory testing and Dev Ops - best friends?
Exploratory testing and Dev Ops - best friends?Exploratory testing and Dev Ops - best friends?
Exploratory testing and Dev Ops - best friends?Sven Schirmer
 
SW K-Tec Contract Manufacturing Services
SW K-Tec Contract Manufacturing ServicesSW K-Tec Contract Manufacturing Services
SW K-Tec Contract Manufacturing ServicesHTCS LLC
 
Scaling Agile in Regulated Environments: Addressing the Challenges of Complia...
Scaling Agile in Regulated Environments: Addressing the Challenges of Complia...Scaling Agile in Regulated Environments: Addressing the Challenges of Complia...
Scaling Agile in Regulated Environments: Addressing the Challenges of Complia...Cprime
 
Ion Idea Testing Services Presentation Ver 1 0
Ion Idea Testing Services Presentation Ver 1 0Ion Idea Testing Services Presentation Ver 1 0
Ion Idea Testing Services Presentation Ver 1 0sambitgarnaik
 
Methodologies 1: Managing Agile Projects
Methodologies 1: Managing Agile ProjectsMethodologies 1: Managing Agile Projects
Methodologies 1: Managing Agile ProjectsInflectra
 
Enterprise QA and Application Testing Services
Enterprise QA and Application Testing ServicesEnterprise QA and Application Testing Services
Enterprise QA and Application Testing ServicesHemang Rindani
 
Quality engineering in DevOps... Why? How? (TestBusters Day&Night))
Quality engineering in DevOps... Why? How? (TestBusters Day&Night))Quality engineering in DevOps... Why? How? (TestBusters Day&Night))
Quality engineering in DevOps... Why? How? (TestBusters Day&Night))Rik Marselis
 
Pivot International Introduction
Pivot International IntroductionPivot International Introduction
Pivot International Introductionraustring
 

What's hot (20)

Raghwinder_ B.Tech IT Software Testing
Raghwinder_ B.Tech IT Software TestingRaghwinder_ B.Tech IT Software Testing
Raghwinder_ B.Tech IT Software Testing
 
Progton Technologies company profile
Progton Technologies company profileProgton Technologies company profile
Progton Technologies company profile
 
SpiraTest Overview Presentation (2022)
SpiraTest Overview Presentation (2022)SpiraTest Overview Presentation (2022)
SpiraTest Overview Presentation (2022)
 
Adaptive innovations digital brochure
Adaptive innovations digital brochureAdaptive innovations digital brochure
Adaptive innovations digital brochure
 
Sharada Srinivasamurty_ 6.5yrs_QA
Sharada Srinivasamurty_ 6.5yrs_QASharada Srinivasamurty_ 6.5yrs_QA
Sharada Srinivasamurty_ 6.5yrs_QA
 
Swasen Introduction
Swasen IntroductionSwasen Introduction
Swasen Introduction
 
DOES16 London - Darren Hague - SAP’s DevOps Journey: From Building an App to ...
DOES16 London - Darren Hague - SAP’s DevOps Journey: From Building an App to ...DOES16 London - Darren Hague - SAP’s DevOps Journey: From Building an App to ...
DOES16 London - Darren Hague - SAP’s DevOps Journey: From Building an App to ...
 
Exploratory testing and Dev Ops - best friends?
Exploratory testing and Dev Ops - best friends?Exploratory testing and Dev Ops - best friends?
Exploratory testing and Dev Ops - best friends?
 
SW K-Tec Contract Manufacturing Services
SW K-Tec Contract Manufacturing ServicesSW K-Tec Contract Manufacturing Services
SW K-Tec Contract Manufacturing Services
 
Scaling Agile in Regulated Environments: Addressing the Challenges of Complia...
Scaling Agile in Regulated Environments: Addressing the Challenges of Complia...Scaling Agile in Regulated Environments: Addressing the Challenges of Complia...
Scaling Agile in Regulated Environments: Addressing the Challenges of Complia...
 
Ion Idea Testing Services Presentation Ver 1 0
Ion Idea Testing Services Presentation Ver 1 0Ion Idea Testing Services Presentation Ver 1 0
Ion Idea Testing Services Presentation Ver 1 0
 
Methodologies 1: Managing Agile Projects
Methodologies 1: Managing Agile ProjectsMethodologies 1: Managing Agile Projects
Methodologies 1: Managing Agile Projects
 
Shekhar_Resume SMT
Shekhar_Resume SMTShekhar_Resume SMT
Shekhar_Resume SMT
 
AgileCamp Silicon Valley 2015: An Agile Journey
AgileCamp Silicon Valley 2015: An Agile JourneyAgileCamp Silicon Valley 2015: An Agile Journey
AgileCamp Silicon Valley 2015: An Agile Journey
 
Enterprise QA and Application Testing Services
Enterprise QA and Application Testing ServicesEnterprise QA and Application Testing Services
Enterprise QA and Application Testing Services
 
ETG Global Services, Inc 2020 Overview
ETG Global Services, Inc 2020 OverviewETG Global Services, Inc 2020 Overview
ETG Global Services, Inc 2020 Overview
 
Bpf Workflow
Bpf WorkflowBpf Workflow
Bpf Workflow
 
Blue prism course content
Blue prism course contentBlue prism course content
Blue prism course content
 
Quality engineering in DevOps... Why? How? (TestBusters Day&Night))
Quality engineering in DevOps... Why? How? (TestBusters Day&Night))Quality engineering in DevOps... Why? How? (TestBusters Day&Night))
Quality engineering in DevOps... Why? How? (TestBusters Day&Night))
 
Pivot International Introduction
Pivot International IntroductionPivot International Introduction
Pivot International Introduction
 

Similar to Code with Honor – on the importance and beauty of software programming

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
 
Enhancing the Power of Salesforce with DevOps & Copado Webinar | SoftClouds D...
Enhancing the Power of Salesforce with DevOps & Copado Webinar | SoftClouds D...Enhancing the Power of Salesforce with DevOps & Copado Webinar | SoftClouds D...
Enhancing the Power of Salesforce with DevOps & Copado Webinar | SoftClouds D...SoftClouds LLC
 
Code with Honor – on the importance and beauty of software programming (Oracl...
Code with Honor – on the importance and beauty of software programming (Oracl...Code with Honor – on the importance and beauty of software programming (Oracl...
Code with Honor – on the importance and beauty of software programming (Oracl...Lucas Jellema
 
Software Engineering as the Next Level Up from Programming (Oracle Groundbrea...
Software Engineering as the Next Level Up from Programming (Oracle Groundbrea...Software Engineering as the Next Level Up from Programming (Oracle Groundbrea...
Software Engineering as the Next Level Up from Programming (Oracle Groundbrea...Lucas Jellema
 
Goken Corporate Presentation - Interiors & Seating
Goken Corporate Presentation - Interiors & SeatingGoken Corporate Presentation - Interiors & Seating
Goken Corporate Presentation - Interiors & SeatingAshleyTaylor66055
 
Production-Ready Kubernetes: It's Not About Technology
Production-Ready Kubernetes: It's Not About TechnologyProduction-Ready Kubernetes: It's Not About Technology
Production-Ready Kubernetes: It's Not About TechnologyAntoine Craske
 
Measure and increase developer productivity with help of Severless by Kazulki...
Measure and increase developer productivity with help of Severless by Kazulki...Measure and increase developer productivity with help of Severless by Kazulki...
Measure and increase developer productivity with help of Severless by Kazulki...Vadym Kazulkin
 
DevOps and DevSecOps, Incident Management
DevOps and DevSecOps, Incident ManagementDevOps and DevSecOps, Incident Management
DevOps and DevSecOps, Incident ManagementShriniKulkarni
 
Barcelona global gathering 2020 jan21st
Barcelona global gathering 2020   jan21stBarcelona global gathering 2020   jan21st
Barcelona global gathering 2020 jan21stanimuscrm
 
De-mystifying and Taming the Complexities of WCAG 2.1
De-mystifying and Taming the Complexities of WCAG 2.1De-mystifying and Taming the Complexities of WCAG 2.1
De-mystifying and Taming the Complexities of WCAG 2.1Bill Tyler
 
Mobile Code Optimisation Services
Mobile Code Optimisation ServicesMobile Code Optimisation Services
Mobile Code Optimisation ServicesRaja Nagendra Kumar
 
Avoiding the Pitfalls of Capitalizing Software in an Agile World
Avoiding the Pitfalls of Capitalizing Software in an Agile WorldAvoiding the Pitfalls of Capitalizing Software in an Agile World
Avoiding the Pitfalls of Capitalizing Software in an Agile WorldLeadingAgile
 
Soirée du Test Logiciel - Présentation de Kiuwan (Jack ABDO)
Soirée du Test Logiciel - Présentation de Kiuwan (Jack ABDO)Soirée du Test Logiciel - Présentation de Kiuwan (Jack ABDO)
Soirée du Test Logiciel - Présentation de Kiuwan (Jack ABDO)TelecomValley
 
Technology and Digital Platform | 2019 partner summit
Technology and Digital Platform | 2019 partner summitTechnology and Digital Platform | 2019 partner summit
Technology and Digital Platform | 2019 partner summitAndrew Kumar
 
Dev ops presentation
Dev ops presentationDev ops presentation
Dev ops presentationAhmed Kamel
 
GrayCell Corporate Presentation
GrayCell Corporate PresentationGrayCell Corporate Presentation
GrayCell Corporate PresentationAmit-GrayCell
 
Voxxed days 2015-hakansaglam-codereview
Voxxed days 2015-hakansaglam-codereviewVoxxed days 2015-hakansaglam-codereview
Voxxed days 2015-hakansaglam-codereviewHakan Saglam
 
[Webinar] - Adopt QAD & Progress DBA Global Shared Services to Deliver Cost O...
[Webinar] - Adopt QAD & Progress DBA Global Shared Services to Deliver Cost O...[Webinar] - Adopt QAD & Progress DBA Global Shared Services to Deliver Cost O...
[Webinar] - Adopt QAD & Progress DBA Global Shared Services to Deliver Cost O...JK Tech
 

Similar to Code with Honor – on the importance and beauty of software programming (20)

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...
 
Enhancing the Power of Salesforce with DevOps & Copado Webinar | SoftClouds D...
Enhancing the Power of Salesforce with DevOps & Copado Webinar | SoftClouds D...Enhancing the Power of Salesforce with DevOps & Copado Webinar | SoftClouds D...
Enhancing the Power of Salesforce with DevOps & Copado Webinar | SoftClouds D...
 
Code with Honor – on the importance and beauty of software programming (Oracl...
Code with Honor – on the importance and beauty of software programming (Oracl...Code with Honor – on the importance and beauty of software programming (Oracl...
Code with Honor – on the importance and beauty of software programming (Oracl...
 
Software Engineering as the Next Level Up from Programming (Oracle Groundbrea...
Software Engineering as the Next Level Up from Programming (Oracle Groundbrea...Software Engineering as the Next Level Up from Programming (Oracle Groundbrea...
Software Engineering as the Next Level Up from Programming (Oracle Groundbrea...
 
Goken Corporate Presentation - Interiors & Seating
Goken Corporate Presentation - Interiors & SeatingGoken Corporate Presentation - Interiors & Seating
Goken Corporate Presentation - Interiors & Seating
 
Production-Ready Kubernetes: It's Not About Technology
Production-Ready Kubernetes: It's Not About TechnologyProduction-Ready Kubernetes: It's Not About Technology
Production-Ready Kubernetes: It's Not About Technology
 
Measure and increase developer productivity with help of Severless by Kazulki...
Measure and increase developer productivity with help of Severless by Kazulki...Measure and increase developer productivity with help of Severless by Kazulki...
Measure and increase developer productivity with help of Severless by Kazulki...
 
DevOps and DevSecOps, Incident Management
DevOps and DevSecOps, Incident ManagementDevOps and DevSecOps, Incident Management
DevOps and DevSecOps, Incident Management
 
Barcelona global gathering 2020 jan21st
Barcelona global gathering 2020   jan21stBarcelona global gathering 2020   jan21st
Barcelona global gathering 2020 jan21st
 
Apm andre santos
Apm andre santosApm andre santos
Apm andre santos
 
De-mystifying and Taming the Complexities of WCAG 2.1
De-mystifying and Taming the Complexities of WCAG 2.1De-mystifying and Taming the Complexities of WCAG 2.1
De-mystifying and Taming the Complexities of WCAG 2.1
 
Mobile Code Optimisation Services
Mobile Code Optimisation ServicesMobile Code Optimisation Services
Mobile Code Optimisation Services
 
Avoiding the Pitfalls of Capitalizing Software in an Agile World
Avoiding the Pitfalls of Capitalizing Software in an Agile WorldAvoiding the Pitfalls of Capitalizing Software in an Agile World
Avoiding the Pitfalls of Capitalizing Software in an Agile World
 
Soirée du Test Logiciel - Présentation de Kiuwan (Jack ABDO)
Soirée du Test Logiciel - Présentation de Kiuwan (Jack ABDO)Soirée du Test Logiciel - Présentation de Kiuwan (Jack ABDO)
Soirée du Test Logiciel - Présentation de Kiuwan (Jack ABDO)
 
Technology and Digital Platform | 2019 partner summit
Technology and Digital Platform | 2019 partner summitTechnology and Digital Platform | 2019 partner summit
Technology and Digital Platform | 2019 partner summit
 
Dev ops presentation
Dev ops presentationDev ops presentation
Dev ops presentation
 
GrayCell Corporate Presentation
GrayCell Corporate PresentationGrayCell Corporate Presentation
GrayCell Corporate Presentation
 
Voxxed days 2015-hakansaglam-codereview
Voxxed days 2015-hakansaglam-codereviewVoxxed days 2015-hakansaglam-codereview
Voxxed days 2015-hakansaglam-codereview
 
[Webinar] - Adopt QAD & Progress DBA Global Shared Services to Deliver Cost O...
[Webinar] - Adopt QAD & Progress DBA Global Shared Services to Deliver Cost O...[Webinar] - Adopt QAD & Progress DBA Global Shared Services to Deliver Cost O...
[Webinar] - Adopt QAD & Progress DBA Global Shared Services to Deliver Cost O...
 
Resume (1)
Resume (1)Resume (1)
Resume (1)
 

More from 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
 
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
 
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Lucas Jellema
 

More from 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)
 
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...
 
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
 

Recently uploaded

Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?Watsoo Telematics
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
buds n tech IT solutions
buds n  tech IT                solutionsbuds n  tech IT                solutions
buds n tech IT solutionsmonugehlot87
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningVitsRangannavar
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
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
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 

Recently uploaded (20)

Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
buds n tech IT solutions
buds n  tech IT                solutionsbuds n  tech IT                solutions
buds n tech IT solutions
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
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
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 

Code with Honor – on the importance and beauty of software programming

  • 1. Code with Honor on the importance and beauty of software programming DOAG 2020, November 2020 Lucas Jellema, CTO & Architect AMIS | Conclusion
  • 2. Lucas Jellema CTO for AMIS | Conclusion Cloud Solution Architect DOAG 2020 | Code with Honor lucas.jellema@amis.nl | technology.amis.nl | @lucasjellema | lucas-jellema
  • 3.
  • 4.
  • 6. DOAG 2020 | Code with Honor
  • 7.
  • 8.
  • 10. PR PRofessionalPRide Public Relations Public Responsibility PRoof Periodic Review Pull Request Peer Review Production Ready oPeRate Put to Re PuRpose PR oductive Push-button Release
  • 12. DOAG 2020 | Code with Honor
  • 13. DOAG 2020 | Code with Honor
  • 14. We are Proud Craftsmen DOAG 2020 | Code with Honor
  • 15. DOAG 2020 | Code with Honor The Business
  • 16. DOAG 2020 | Code with Honor Development Production scale, performance, security, stability, recoverability, monitoring
  • 17. 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 MVP and incremental value delivery DOAG 2020 | Code with Honor golive no value!
  • 18. Lifetime of a software application DOAG 2020 | How and why GraalVM is quickly becoming relevant for you
  • 19. Paid Lip Service • Testing • QA • CI/CD • Automation • Scalability • Production-like testing environments • Security • Architecture | Design Patterns DOAG 2020 | Code with Honor
  • 20. DOAG 2020 | Code with Honor The Brake System is powered by Software The quality of the brake software is similar to the code that you (or your team) 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
  • 21. DOAG 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?
  • 22. About me DOAG 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 DOAG 2020 | Code with Honor
  • 24. DOAG 2020 | Code with Honorsource: https://www.futuristgerd.com/2016/05/my-presentation-at-innotown-2016-in-alesund-the-next-5-years-in-technology-and-innovation/
  • 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 DOAG 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 DOAG 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 DOAG 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? DOAG 2020 | Code with Honor
  • 29. 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 DOAG 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 DOAG 2020 | Code with Honor
  • 31. Productivity as function of time and code quality DOAG 2020 | Code with Honor source: https://martinfowler.com/articles/is-quality-worth-cost.html Productivity
  • 32. Productivity as function of % Defects Removed source: The Economics of Software Quality - https://dev.to/bosepchuk/the-one-chart-every-developer-must-understand-2db9. DOAG 2020 | Code with Honor
  • 33. DOAG 2020 | Code with Honor
  • 34. Working Software • What work does it do? • How can you tell? Working Software DOAG 2020 | Code with Honor
  • 35. Small step for mankind… DOAG 2020 | Code with Honor FROM WORKING SOFTWARE TO PROFESSIONAL SOFTWARE
  • 36. Professional Software is ABLE Software • Verifi • Test • Oper • Read • Evolv • Maintain • Observ • Scal • Recover • Prov • Afford • Deploy • Audit • Impenetra DOAG 2020 | Code with Honor ABLE
  • 37. Case in point DOAG 2020 | Code with Honor old not modern legacy business critical custom software
  • 38. Case in point DOAG 2020 | Code with Honor end of scale low on expertise fragile no tests, no specs, no docs expensive TCO high technical debt no evolution
  • 39. DOAG 2020 | Code with Honor
  • 40. Working Software Working Software DOAG 2020 | Code with Honor
  • 41. Working => Professional Software Working Software Professional Software DOAG 2020 | Code with Honor
  • 42. 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 DOAG 2020 | Code with Honor PRoof Pull Request Peer Review Production Ready oPeRate Put to Rest
  • 43. Working • according to functional specifications and technical interfaces • proven DOAG 2020 | Code with Honor Working Software
  • 44. Behavior Test • The required behavior as experienced from the outside • specify • document • verify DOAG 2020 | Code with Honor Functional Specification Behavior test Working Software Team DoR
  • 45. DOAG 2020 | Code with Honor Unit Test • Verify behavior of • APIs & Interfaces • Reusable elements • Algorithms • Aspects • Functionality • Non Functionality • Happy & Non-Happy • not: dependencies
  • 46. Test is many things DOAG 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
  • 47. Test Trophy DOAG 2020 | Code with Honor Live
  • 48. QA: Static Code Analysis • According to coding standards • Consistent • Readable • Maintainable (Code Smells) • Limited complexity • Code Coverage (of tests) • Vulnerabilities (in dependencies) • Automatic improvements DOAG 2020 | Code with Honor
  • 49. DOAG 2020 | Code with Honor Refactoring
  • 50. 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 DOAG 2020 | Code with Honor Working Software Professional Code Developer DoaD Unit tests & QA (Behavior Tests) Refactoring
  • 51. DOAG 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) ; } }
  • 52. DOAG 2020 | Code with Honor Clean Code Guidelines
  • 53. 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 DOAG 2020 | Code with Honor
  • 54. DOAG 2020 | Code with Honor Metamorphosis – the miracle of the PR
  • 55. PR Pull Request Peer Review Production Ready Metamorphosis – the miracle of the PR DOAG 2020 | Code with Honor
  • 56. Pull Request == Please Review ?! DOAG 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
  • 57. 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! DOAG 2020 | Code with Honor Professional Code Developer Team
  • 58. 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 DOAG 2020 | Code with Honor Professional Code Built Software
  • 59. 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 DOAG 2020 | Code with Honor Professional Code Built Software Deployable Software = DONEDoD
  • 60. Deploy • Business decision • Automated – no touch • Smoketest post deployment (and periodically to check on health) • Operations activated DOAG 2020 | Code with Honor Built Software Deployable Software = DONE Professional & ABLE: Live Software (under Ops) Production Preparation
  • 61. DOAG 2020 | Code with Honor Canary
  • 62. Observe the canary DOAG 2020 | Code with Honor
  • 63. Professional Software – Generating Value for the Business DOAG 2020 | Code with Honor
  • 64. DOAG 2020 | Code with Honor
  • 65. Life Cycle Management – Technical Maintenance • Ensure the up-date-ness of the application and all its dependencies DOAG 2020 | Code with Honor 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 technical change – proactively monitored by the DevOps Team DOAG 2020 | Code with Honor Periodic Review
  • 67. PR PRofessional PRide Public Relations Public Responsibility PRoof Periodic Review Pull Request Peer Review Production Ready oPeRate Put to Re PuRpose PR oductive Push-button Release
  • 68. Thank you for your attention I hope this was useful DOAG 2020 | Code with Honor lucas.jellema@amis.nl | technology.amis.nl | @lucasjellema | lucas-jellema Slides: github.com/lucasjellema/presentations

Editor's Notes

  1. https://www.futuristgerd.com/2016/05/my-presentation-at-innotown-2016-in-alesund-the-next-5-years-in-technology-and-innovation/
  2. 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.
  3. Mergeable Granularity/unit of… delivery/build/ Code analysis Structured (declarative)
  4. 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
  5. 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
  6. technical erosion slowly eating away
  7. 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
  8. https://www.tiobe.com/tics/ Tiobe Quality Indicator: https://www.tiobe.com/files/TIOBEQualityIndicator_v4_6.pdf
  9. Caterpillar to Butterfly From personal code to team treasure From branch to trunk From mine to our
  10. Caterpillar to Butterfly From personal code to team treasure From branch to trunk From mine to our
  11. ultimate test is production controlled production roll out is one way to perform (final) test
  12. log analysis (splunk, elastic, azure or OCI log analytics) metrics analysis real time and trends
  13. 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
  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