5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me...
Transcript of 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me...
![Page 1: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/1.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 1/74
5 Things Developers Do That Drive Me Crazy
And What I Did To Survive
OBUG 2019, AntwerpenOBUG 2019, Antwerpen1
![Page 2: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/2.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 2/74
About MeØyvind Isene
Consultant, work for SYSCO AS in Oslo
Oracle ACE
@OyvindIsene on Twitter
DBA, but haven't restored a database for some
time
Don't miss patching, best reason to embrace the cloud
OBUG 2019, AntwerpenOBUG 2019, Antwerpen2
![Page 3: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/3.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 3/74
The Last 5 YearsDisplaced among developers as a DBA
Optimization aka tuning
Troubleshooting in general
Looking for trouble, before it goes to production
Trying to explain the mindset of DBAs to developers
(unsuccessfully)
OBUG 2019, AntwerpenOBUG 2019, Antwerpen3
![Page 4: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/4.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 4/74
I Actually Like DevelopmentAPEX and PL/SQL is great fun
Python, APIs, ...
Other stuff with focus on the data
Development is not just coding
OBUG 2019, AntwerpenOBUG 2019, Antwerpen4
![Page 5: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/5.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 5/74
Agenda And Goal For This PresentationComplain about developers
Justify the complaints
Show you what to do since they don't care
OBUG 2019, AntwerpenOBUG 2019, Antwerpen5
![Page 6: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/6.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 6/74
Not That I Try To Start A Flame War... but if they could just try to understand how it is to get the
responsibility for some crap when they are all gone.
OBUG 2019, AntwerpenOBUG 2019, Antwerpen6
![Page 7: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/7.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 7/74
Di�erent MindsetToday's development - tomorrow's legacy
Likely to stay there for a long time (∞ ≅ 20 years)
Out of sight, out of mind
OBUG 2019, AntwerpenOBUG 2019, Antwerpen7
![Page 8: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/8.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 8/74
ThemCreative
Like shiny things
Impatient - they've already got a new idea
Wonder if ITIL is the work of the Devil
OBUG 2019, AntwerpenOBUG 2019, Antwerpen8
![Page 9: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/9.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 9/74
A Persistent Storage?Some developers simply refuse to relate to the database
Rambling around about schema-on-read, persistent storage etc.
Tempting to ask them to swim in a data lake
OBUG 2019, AntwerpenOBUG 2019, Antwerpen9
![Page 10: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/10.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 10/74
UsDon't like being called 2 a.m - boring is good
Too many systems and users to please
Little time for manual tasks
Worries about security, scalability, and uptime
OBUG 2019, AntwerpenOBUG 2019, Antwerpen10
![Page 11: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/11.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 11/74
Doesn't Have To Be That WayOperations have something to learn from developers
Focus on one tasks once in a while
Do more coding (shell scripts do count!)
Be more creative - automate!
OBUG 2019, AntwerpenOBUG 2019, Antwerpen11
![Page 12: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/12.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 12/74
Can Developers Learn Something From DBAs?Part of reality is unknown to them
Devs are usually less exposed to the entire architecture
DBAs know more about the nature of databases - what works and
what doesn't
DevOps can be a good idea
OBUG 2019, AntwerpenOBUG 2019, Antwerpen12
![Page 13: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/13.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 13/74
1. No Data Model
Sit Down For A Think First
OBUG 2019, AntwerpenOBUG 2019, Antwerpen13
![Page 14: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/14.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 14/74
What Were They Thinking?Probably not at all
A data model proves that you have spent time understanding
your universe
This is the time to meditate over subjects and connections
Abstract expressions need clarifications
OBUG 2019, AntwerpenOBUG 2019, Antwerpen14
![Page 15: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/15.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 15/74
A Way To CommunicateUse it to communicate with stakeholders normal people
Especially with those who don't share your daily language
If you can't model it, you might not have understood it
Fail early - discover misconceptions early
An important part of documentation
OBUG 2019, AntwerpenOBUG 2019, Antwerpen15
![Page 16: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/16.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 16/74
Love Your DataAvoid crappy data getting in to the database
Less work on data cleansing later
Make sure they are not using the database as a bitbucket
OBUG 2019, AntwerpenOBUG 2019, Antwerpen16
![Page 17: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/17.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 17/74
When ORM Is Not The Best OptionSometimes an object to relational mapping (ORM) tool is not the
best option
If the ORM tools decides the data model what do you get?
"Will it scale?"
"May I write you some PL/SQL?"
OBUG 2019, AntwerpenOBUG 2019, Antwerpen17
![Page 18: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/18.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 18/74
One Persistent MythConstraints lead to bad performance
Not true - the optimizer use extra information to create a better
plan
OBUG 2019, AntwerpenOBUG 2019, Antwerpen18
![Page 19: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/19.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 19/74
SQL Developer Data ModelerNo extra cost
Good investment to make this work
within the team
Templates
Source control
Design rules
OBUG 2019, AntwerpenOBUG 2019, Antwerpen19
![Page 20: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/20.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 20/74
What Can You Do?Simply demand a data model before you do system
acceptance
Look for the usual stuff
Primary, unique, and foreign keys
Other constraints
Decent normalization
Help them with SQL Developer Data Modeler
OBUG 2019, AntwerpenOBUG 2019, Antwerpen20
![Page 21: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/21.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 21/74
2. Forget About Security
Two Things Can Ruin My Day: Talking About Security And Licenses
OBUG 2019, AntwerpenOBUG 2019, Antwerpen21
![Page 22: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/22.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 22/74
SecurityWasn't part of my education either
But has been on the agenda for a
while
Sounds boring to many people
Security is the new HA
OBUG 2019, AntwerpenOBUG 2019, Antwerpen22
![Page 23: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/23.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 23/74
Security Is A FeaturePerhaps a boring subject, but necessary
Does the application collect sensitive data?
This can be identified during data modeling
→ Security must be a proper activity in the project
OBUG 2019, AntwerpenOBUG 2019, Antwerpen23
![Page 24: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/24.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 24/74
AuthenticationBeing authenticated means the system trust who you are, nothing
more
OBUG 2019, AntwerpenOBUG 2019, Antwerpen24
![Page 25: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/25.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 25/74
AuthorizationNow you are allowed to do something...
At minimum agree on a few roles that give access
OBUG 2019, AntwerpenOBUG 2019, Antwerpen25
![Page 26: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/26.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 26/74
SSO / One Single Source For AuthenticationSign-On / login with a password or similar only once
If you authenticate several times against the same user base (e.g.
Active Directory), that is not SSO.
OBUG 2019, AntwerpenOBUG 2019, Antwerpen26
![Page 27: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/27.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 27/74
Sensitive Data And Personally Identifiable InformationGDPR, anyone?
No, you can't have all production data in dev and test
Data masking is easier if you start out with identifying what needs
to be masked
→ identify sensitive data before you start
OBUG 2019, AntwerpenOBUG 2019, Antwerpen27
![Page 28: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/28.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 28/74
Audit LogsVery useful after data theft
Audit only access to the most critical data
→ another reason to identify sensitive data
OBUG 2019, AntwerpenOBUG 2019, Antwerpen28
![Page 29: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/29.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 29/74
EncryptionThis is for data at rest or in transit to avoid data being read by
unauthorized part.
You can't show encrypted data to users, so you have to decrypt it at
some point...
OBUG 2019, AntwerpenOBUG 2019, Antwerpen29
![Page 30: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/30.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 30/74
SQL InjectionJust because they don't want to know about bind variables.
Bonus: If you do this right the database performs better too!
OBUG 2019, AntwerpenOBUG 2019, Antwerpen30
![Page 31: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/31.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 31/74
Sometimes A BurdenYou don't make more friends by denying access
Should not be a burden only for the DBA
Possibly a burden for the proxy aka project manager
But the DBA probably worry more about a security break
OBUG 2019, AntwerpenOBUG 2019, Antwerpen31
![Page 32: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/32.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 32/74
Where To Implement SecurityAs close as possible to the data
Doesn't hurt to implement in layers
But an application can get thrown away
→ Don't hide a wide open database behind fire walls only
OBUG 2019, AntwerpenOBUG 2019, Antwerpen32
![Page 33: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/33.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 33/74
What Can You Do?Again, ask for a data model
Request an assessment about sensitive data
Repeating review during implementation
Be alert when they ask for elevated privileges
Standard procedure to implement security in different projects
Look into Oracle Database Security Assessment Tool
OBUG 2019, AntwerpenOBUG 2019, Antwerpen33
![Page 34: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/34.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 34/74
3. Not Using The Oracle Documentation
RTFM FFS
OBUG 2019, AntwerpenOBUG 2019, Antwerpen34
![Page 35: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/35.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 35/74
It Is OK To Google, But...Googling SELECT and ending up in a manual for another database
is not cool
Usually easier to lookup the syntax in a bookmarked manual
It is about studying - not always getting a short answer
OBUG 2019, AntwerpenOBUG 2019, Antwerpen35
![Page 36: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/36.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 36/74
Database ConceptsAt least the chapters relevant to design and development (Part I,
II, III and VI)
Discover why certain certain patterns do not scale
Understand better critical parts to making the database consistent
OBUG 2019, AntwerpenOBUG 2019, Antwerpen36
![Page 37: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/37.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 37/74
Database Development GuideShould be obvious for developers
Important things in database applications
Correct datatype
Locking
Indexing
PL/SQL
OBUG 2019, AntwerpenOBUG 2019, Antwerpen37
![Page 38: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/38.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 38/74
Database New Features GuideYou can't google what you don't know
Discover new cool stuff that simplifies your application
OBUG 2019, AntwerpenOBUG 2019, Antwerpen38
![Page 39: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/39.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 39/74
PL/SQL Packages And Types ReferenceShows packages that can replace your code
Gives you ideas for utilizing the database better
OBUG 2019, AntwerpenOBUG 2019, Antwerpen39
![Page 40: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/40.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 40/74
SQL Language ReferenceMuch faster then googling and finding the wrong version
Discover all the features in Oracle SQL
A few gems have been around for many years, but not used much
→ using advanced SQL can speed up code by orders of magnitude
OBUG 2019, AntwerpenOBUG 2019, Antwerpen40
![Page 41: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/41.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 41/74
PL/SQL Language ReferenceMaybe you prefer a book?
Useful reference for syntax
OBUG 2019, AntwerpenOBUG 2019, Antwerpen41
![Page 42: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/42.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 42/74
SQL Tuning GuideWhen you want to figure out performance on your own
Performance as a feature - design for it
There is a chapter Designing and Developing for Performance
OBUG 2019, AntwerpenOBUG 2019, Antwerpen42
![Page 43: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/43.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 43/74
Other Specialized GuidesData Warehousing Guide
Data Mining Concepts
JSON Developer's Guide
Spatial and Graph Developer's Guide
OBUG 2019, AntwerpenOBUG 2019, Antwerpen43
![Page 44: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/44.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 44/74
Can You Trust What Google Finds You?Of course not
How can you know if you haven't read the documentation or
learned it from a trustworthy source?
OBUG 2019, AntwerpenOBUG 2019, Antwerpen44
![Page 45: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/45.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 45/74
What Can You Do?Have links ready to send out to the team and new members
docs.google.com is a must
Give short introductions to the documentation set
Explain the most important manuals
Recommend good books, blogs and online training material
OBUG 2019, AntwerpenOBUG 2019, Antwerpen45
![Page 46: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/46.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 46/74
4. Confusing DevOps With Operations
Full Stack Developer?!
OBUG 2019, AntwerpenOBUG 2019, Antwerpen46
![Page 47: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/47.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 47/74
It Takes More Than Building A ContainerAdministration is stressful (sometimes)
Availability
Network
N-tier architecture
End users
Patching & upgrades
Backup & Restore
OBUG 2019, AntwerpenOBUG 2019, Antwerpen47
![Page 48: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/48.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 48/74
DevOps Is...... a software engineering culture and practice that aims at
unifying software development (Dev) and software operation
(Ops). ... to strongly advocate automation and monitoring at
all steps of software construction, from integration, testing,
releasing to deployment and infrastructure management.
(Wikipedia)
If this is done right I'm 90% happy.
But I suspect not all talking about DevOps go the extra mile.
OBUG 2019, AntwerpenOBUG 2019, Antwerpen48
![Page 49: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/49.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 49/74
In Production Usually MeansPeople depend on it - if it's useful
Data being collected - usually has some value, we don't want to
lose it
We discover all the bugs we didn't find by testing before release
OBUG 2019, AntwerpenOBUG 2019, Antwerpen49
![Page 50: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/50.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 50/74
Not Enough TestingLots of tests, but it fails in production because...
OBUG 2019, AntwerpenOBUG 2019, Antwerpen50
![Page 51: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/51.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 51/74
Can They Run Their Own Applications?Small hiccups accumulate over time and causes big problems
We only ask for
No manual intervention in production
Meaningful error messages
Tested for real world scenarios
OBUG 2019, AntwerpenOBUG 2019, Antwerpen51
![Page 52: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/52.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 52/74
Attention Span ReduxA developer can usually forget what is in production
What if he was forced to do a review once a year?
CV-driven development - what is cool this year?
Frameworks
Methods
New buzzwords
Legacy systems usually last for years
OBUG 2019, AntwerpenOBUG 2019, Antwerpen52
![Page 53: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/53.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 53/74
OT: Architects
OBUG 2019, AntwerpenOBUG 2019, Antwerpen53
![Page 54: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/54.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 54/74
5. Little Understanding Of Basic Concepts
Embarrassing Simple Ideas
OBUG 2019, AntwerpenOBUG 2019, Antwerpen54
![Page 55: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/55.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 55/74
LatencyIt starts with late
Simple math
If you repeat a small operation many times it will take a lot of
time
This explains why an index is not always the solution
OBUG 2019, AntwerpenOBUG 2019, Antwerpen55
![Page 56: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/56.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 56/74
Classic Beginner's Latency TrapBeginner learns to execute SELECT in database, retrieves N rows.
For each row, generate a new SQL and send N UPDATES to the
database
At least N + 1 roundtrips
When all can be done with a slightly more complex UPDATE once.
OBUG 2019, AntwerpenOBUG 2019, Antwerpen56
![Page 57: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/57.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 57/74
Speed Of LightAbout 300 000 km/s
1000 km between you and your server; how many round trips in 5
seconds?
OBUG 2019, AntwerpenOBUG 2019, Antwerpen57
![Page 58: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/58.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 58/74
Response TimeThe user wants an answer in 5 seconds or less
How much work can you do in available time?
Sorting 500 GB?
2000 roundtrips between application and database?
OBUG 2019, AntwerpenOBUG 2019, Antwerpen58
![Page 59: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/59.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 59/74
No Such Thing As A Best PracticeIf one solution served everybody we will automate it
Plenty of bad practices
Some good practices
OBUG 2019, AntwerpenOBUG 2019, Antwerpen59
![Page 60: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/60.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 60/74
No Idea About VolumeSorting small data is very fast
Sorting large data spills to disk - slow
Shuffling lots of data between servers take time
OBUG 2019, AntwerpenOBUG 2019, Antwerpen60
![Page 61: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/61.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 61/74
Slightly More Advanced Concepts
But If You Work With Databases...
OBUG 2019, AntwerpenOBUG 2019, Antwerpen61
![Page 62: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/62.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 62/74
TransactionsConsistent answers to queries
Vendors implement this differently
Logical sequence of update that belong together
Brings the database from one state to another
Know when to commit...
OBUG 2019, AntwerpenOBUG 2019, Antwerpen62
![Page 63: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/63.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 63/74
LockingData are locked on row level
Oracle never locks data to read it
Writers never block readers
A writer is only blocked by another writer, on the same row
OBUG 2019, AntwerpenOBUG 2019, Antwerpen63
![Page 64: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/64.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 64/74
Multi-VersioningYour query gets a consistent answer with respect to the time it
started
Queries are never blocked by updates
Oracle can serve many sessions that started at different point in
time
OBUG 2019, AntwerpenOBUG 2019, Antwerpen64
![Page 65: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/65.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 65/74
Redo And UndoIs it too much to ask for that developers learn about undo and
redo?
For large applications they need to know about the role they have
OBUG 2019, AntwerpenOBUG 2019, Antwerpen65
![Page 66: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/66.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 66/74
What Can You Do?Measure everything
Prove where time is spent: outside the database
Locking problems mean they probably don't understand
transactions
Ask them to read the Oracle Concepts Guide and start a
conversation
OBUG 2019, AntwerpenOBUG 2019, Antwerpen66
![Page 67: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/67.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 67/74
An Excellent Book
OBUG 2019, AntwerpenOBUG 2019, Antwerpen67
![Page 68: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/68.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 68/74
Bonus Frustration: Releases
Release To Production And Other Stu� You Shouldn't Do On A Friday.
OBUG 2019, AntwerpenOBUG 2019, Antwerpen68
![Page 69: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/69.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 69/74
What Goes Wrong?Not enough testing
Production ≠ development / QA
OBUG 2019, AntwerpenOBUG 2019, Antwerpen69
![Page 70: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/70.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 70/74
Work TogetherDBA needs to get involved early
...not just wait for scripts to be handed over
Decide on a solution for managing versions and deployment
OBUG 2019, AntwerpenOBUG 2019, Antwerpen70
![Page 71: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/71.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 71/74
LiquibaseIntegration is coming to SQL Developer, check this out
Flybase is an alternative, perhaps easier
OBUG 2019, AntwerpenOBUG 2019, Antwerpen71
![Page 72: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/72.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 72/74
If You Lose It
Why Not Start Coding?
OBUG 2019, AntwerpenOBUG 2019, Antwerpen72
![Page 73: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/73.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 73/74
The World Of Autonomous DatabasesThe database will heal itself
Surely it will deal with developers too
There is a high demand of people who know
Security
Data science / AI / ML
How to brew beer
OBUG 2019, AntwerpenOBUG 2019, Antwerpen73
![Page 74: 5 Things Developers Do That Drive Me Crazy · 2019-02-21 · 5 Things Developers Do That Drive Me Crazy And What I Did To Survive OBUG2019,Antwerpen 1. ... DevOps can be a good idea](https://reader034.fdocuments.in/reader034/viewer/2022042310/5ed89e226714ca7f476841f7/html5/thumbnails/74.jpg)
10.2.2019 Title
http://localhost:8000/5_things_developers_do.html#1 74/74
Cheers
OBUG 2019, AntwerpenOBUG 2019, Antwerpen74