SlideShare a Scribd company logo
11 Goals
A portrait of a highly functioning SQL Server development shop
Ike Ellis, MVP
Crafting Bytes
A San Diego Software Studio
#SQLintheCityUS
Two pairs of eye on all SQL code,
minimum – sometimes 3 or 4
• They pair minimum
• Sometimes they mob
• This allows for someone to do the right
thing
• And they can slack and work
They don’t give estimates
• They work off of a prioritized list and
deliver a piece of value every day to the
organization
• They let the organization change anything
on the list, except the first three things
• You get it when it’s ready
They test all of the time…mostly test first
Write a line of code Deliver Code to Users
#SQLintheCityUS
#SQLintheCityUS
They never code with production data
on a dev server
1. Save Schema
2. Restore Database
3. Reset security
4. Restore Schema
#SQLintheCityUS
Why do they do this?
• Bugs in production are not reproducible in development
• They like seeing mock data because it gives them better
testing of user interfaces and other things
• They like to be able to quickly answer questions
#SQLintheCityUS
What’s the downside?
• Break tests because of old data
• Production data shouldn’t be seen by developers
• If development environments are on laptops, laptops
get stolen and the company has lost production data
• Development servers are not usually backed up or
secured properly
--And the development database is way too large---
#SQLintheCityUS
What do they do instead?
• All development data is mocked
– Tests are repeatable
– They use MOQ/Xunit
– But you can easily use tSQLt/RedGate SQL Test, instead
• Thread the buggy data, back through the development process
• Write a test that will fail with the new data
• Solve the issue
• Watch the test pass
• Check the test into source control
• Run the tests all the time
• Bug never happens again
I’m
mocking
your data
#SQLintheCityUS
The dev environment
database is stays very small
• Why is it large?
• 15 years of data
• 75% of blob storage
– (PDFs, DOCs, AVIs)
• Lots of temp files, ETL imports, etc
Huge Bloated Database
#SQLintheCityUS
Tiny Dev
Database
What’s wrong with data
bloat?
• Database is not portable
• Multiple database environments are difficult to setup
• Hard to backup
• Hard to restore
• Hard to rebuild
• Hard to obfuscate
• Hard to query
• Development takes a really long time
• Big data costs money to store – big SANs – big developer laptops
#SQLintheCityUS
They never update production
outside of their development
pipeline
• Changes are fast
• Bugs are fixed quickly
• All because they’re release pipeline is very
fast
#SQLintheCityUS
What’s wrong with updating
production servers?
• Changes don’t get tested
• Changes don’t go back into the development
environment
• Changes can cause table and schema locks
and cause unexpected downtime
• These changes are often not peer reviewed
#SQLintheCityUS
They avoid three part
database names
I like to
reference
you!
Oooo, I like
to reference
you, too!
#SQLintheCityUS
Let’s get married!
#SQLintheCityUS
But not all marriages are
happy…
• Creates a tight coupling
• Moved together
– To a new server
• Have to be tested together
• Have to be integrated together
• Have to change together
• Have to be upgraded to a new version
• Have to be backed up together
• Have to be restored together
#SQLintheCityUS
They avoid four part
database names
I like to
reference
you!
Oooo, I like
to reference
you, too!
#SQLintheCityUS
Why is this bad?
• Servers are now anchored together
• It complicates building a test, QA, integration,
or canary environment
• Security concerns
#SQLintheCityUS
Developers have their own
database
• Source control history
– Generation 0 – Visual Source Safe
– Generation 1 – Subversion, TFS
– Generation 2- GIT, Mercurial
• Sharing databases is like going back to
generation 0.
#SQLintheCityUS
They avoid rollback plans. Instead, they keep
changes inside of their development pipeline
• You can’t unbake this turkey
• You have to fix it
• Those fixes need to be tested – run it through again!
#SQLintheCityUS
They obfuscate production data
in all of their environments
I was your data,
but now you
don’t recognize
me
They use a canary
If I die, you
better not
deploy!
#SQLintheCityUS
They never let more than one
application touch a transactional
database
• Microservices
• One application to one database
• Change together in the same pipeline
• Decouple everything, and I mean everything,
else
They build their databases
and they fix compile errors
• Lots of processes, including RedGate CI Server, will do
this
• Show bad bindings
• Show bad columns
• Show sprocs that just won’t run
• Show tight-coupling
#SQLintheCityUS
They write never write SQL Statements against
tables
• More coupling
#SQLintheCityUS
Ike Ellis
• Crafting Bytes
– Small San Diego Software Studio
– Modern web, mobile, Azure, SQL Server
– Looking for future teammates!
• Book: Developing Azure Solutions
• Podcast Guest:
– Talk Python to Me – Dec 2015
– .NET Rocks – Sept 2015
• www.craftingbytes.com
• blog.ikeellis.com
• www.ikeellis.com
• SDTIG – www.sdtig.com
Ike Ellis, MVP
@ike_ellis
619.922.9801
ike@craftingbytes.com
#SQLintheCityUS

More Related Content

Similar to 11 Goals of High Functioning SQL Developers

Case study: 13 Common Mistakes Organizations Make With DLM and How to Solve Them
Case study: 13 Common Mistakes Organizations Make With DLM and How to Solve ThemCase study: 13 Common Mistakes Organizations Make With DLM and How to Solve Them
Case study: 13 Common Mistakes Organizations Make With DLM and How to Solve Them
Red Gate Software
 
The Future of Database Development
The Future of Database DevelopmentThe Future of Database Development
The Future of Database Development
Steve Jones
 
Why retail companies can't afford database downtime
Why retail companies can't afford database downtimeWhy retail companies can't afford database downtime
Why retail companies can't afford database downtime
DBmaestro - Database DevOps
 
Best Practices for Database Deployments
Best Practices for Database DeploymentsBest Practices for Database Deployments
Best Practices for Database Deployments
Red Gate Software
 
Performance Tuning in the Trenches
Performance Tuning in the TrenchesPerformance Tuning in the Trenches
Performance Tuning in the Trenches
Donald Belcham
 
Road to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.comRoad to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.com
Aviran Mordo
 
The Challenges & Pitfalls of Database Continuous Delivery
The Challenges & Pitfalls of Database Continuous DeliveryThe Challenges & Pitfalls of Database Continuous Delivery
The Challenges & Pitfalls of Database Continuous Delivery
Perforce
 
DevOps Days Ohio
DevOps Days OhioDevOps Days Ohio
DevOps Days Ohio
Kelly Looney
 
DBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro's State of the Database Continuous Delivery Survey- Findings RevealedDBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro - Database DevOps
 
Continuous database deployment
Continuous database deploymentContinuous database deployment
Continuous database deployment
Mike (Michael) Acord
 
Gartner Infrastructure and Operations Summit Berlin 2015 - DevOps Journey
Gartner Infrastructure and Operations Summit Berlin 2015 - DevOps JourneyGartner Infrastructure and Operations Summit Berlin 2015 - DevOps Journey
Gartner Infrastructure and Operations Summit Berlin 2015 - DevOps Journey
Kelly Looney
 
Ten query tuning techniques every SQL Server programmer should know
Ten query tuning techniques every SQL Server programmer should knowTen query tuning techniques every SQL Server programmer should know
Ten query tuning techniques every SQL Server programmer should know
Kevin Kline
 
The Hard Problems of Continuous Deployment
The Hard Problems of Continuous DeploymentThe Hard Problems of Continuous Deployment
The Hard Problems of Continuous DeploymentTimothy Fitz
 
Continuous integration sql in the city
Continuous integration sql in the cityContinuous integration sql in the city
Continuous integration sql in the city
Ike Ellis
 
Bringing DevOps to the Database
Bringing DevOps to the DatabaseBringing DevOps to the Database
Bringing DevOps to the Database
Michaela Murray
 
Geek Sync I In Database Automation We Trust
Geek Sync I In Database Automation We TrustGeek Sync I In Database Automation We Trust
Geek Sync I In Database Automation We Trust
IDERA Software
 
Devoxx 2014 michael_neale
Devoxx 2014 michael_nealeDevoxx 2014 michael_neale
Devoxx 2014 michael_neale
Michael Neale
 
Scaling a High Traffic Web Application: Our Journey from Java to PHP
Scaling a High Traffic Web Application: Our Journey from Java to PHPScaling a High Traffic Web Application: Our Journey from Java to PHP
Scaling a High Traffic Web Application: Our Journey from Java to PHP
120bi
 
Scaling High Traffic Web Applications
Scaling High Traffic Web ApplicationsScaling High Traffic Web Applications
Scaling High Traffic Web Applications
Achievers Tech
 

Similar to 11 Goals of High Functioning SQL Developers (20)

Case study: 13 Common Mistakes Organizations Make With DLM and How to Solve Them
Case study: 13 Common Mistakes Organizations Make With DLM and How to Solve ThemCase study: 13 Common Mistakes Organizations Make With DLM and How to Solve Them
Case study: 13 Common Mistakes Organizations Make With DLM and How to Solve Them
 
The Future of Database Development
The Future of Database DevelopmentThe Future of Database Development
The Future of Database Development
 
Why retail companies can't afford database downtime
Why retail companies can't afford database downtimeWhy retail companies can't afford database downtime
Why retail companies can't afford database downtime
 
Best Practices for Database Deployments
Best Practices for Database DeploymentsBest Practices for Database Deployments
Best Practices for Database Deployments
 
Performance Tuning in the Trenches
Performance Tuning in the TrenchesPerformance Tuning in the Trenches
Performance Tuning in the Trenches
 
Road to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.comRoad to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.com
 
The Challenges & Pitfalls of Database Continuous Delivery
The Challenges & Pitfalls of Database Continuous DeliveryThe Challenges & Pitfalls of Database Continuous Delivery
The Challenges & Pitfalls of Database Continuous Delivery
 
DevOps Days Ohio
DevOps Days OhioDevOps Days Ohio
DevOps Days Ohio
 
DBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro's State of the Database Continuous Delivery Survey- Findings RevealedDBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
 
Continuous database deployment
Continuous database deploymentContinuous database deployment
Continuous database deployment
 
Let's get along
Let's get alongLet's get along
Let's get along
 
Gartner Infrastructure and Operations Summit Berlin 2015 - DevOps Journey
Gartner Infrastructure and Operations Summit Berlin 2015 - DevOps JourneyGartner Infrastructure and Operations Summit Berlin 2015 - DevOps Journey
Gartner Infrastructure and Operations Summit Berlin 2015 - DevOps Journey
 
Ten query tuning techniques every SQL Server programmer should know
Ten query tuning techniques every SQL Server programmer should knowTen query tuning techniques every SQL Server programmer should know
Ten query tuning techniques every SQL Server programmer should know
 
The Hard Problems of Continuous Deployment
The Hard Problems of Continuous DeploymentThe Hard Problems of Continuous Deployment
The Hard Problems of Continuous Deployment
 
Continuous integration sql in the city
Continuous integration sql in the cityContinuous integration sql in the city
Continuous integration sql in the city
 
Bringing DevOps to the Database
Bringing DevOps to the DatabaseBringing DevOps to the Database
Bringing DevOps to the Database
 
Geek Sync I In Database Automation We Trust
Geek Sync I In Database Automation We TrustGeek Sync I In Database Automation We Trust
Geek Sync I In Database Automation We Trust
 
Devoxx 2014 michael_neale
Devoxx 2014 michael_nealeDevoxx 2014 michael_neale
Devoxx 2014 michael_neale
 
Scaling a High Traffic Web Application: Our Journey from Java to PHP
Scaling a High Traffic Web Application: Our Journey from Java to PHPScaling a High Traffic Web Application: Our Journey from Java to PHP
Scaling a High Traffic Web Application: Our Journey from Java to PHP
 
Scaling High Traffic Web Applications
Scaling High Traffic Web ApplicationsScaling High Traffic Web Applications
Scaling High Traffic Web Applications
 

More from Ike Ellis

Storytelling with Data with Power BI
Storytelling with Data with Power BIStorytelling with Data with Power BI
Storytelling with Data with Power BI
Ike Ellis
 
Storytelling with Data with Power BI.pptx
Storytelling with Data with Power BI.pptxStorytelling with Data with Power BI.pptx
Storytelling with Data with Power BI.pptx
Ike Ellis
 
Build a modern data platform.pptx
Build a modern data platform.pptxBuild a modern data platform.pptx
Build a modern data platform.pptx
Ike Ellis
 
Data Modeling on Azure for Analytics
Data Modeling on Azure for AnalyticsData Modeling on Azure for Analytics
Data Modeling on Azure for Analytics
Ike Ellis
 
Migrate a successful transactional database to azure
Migrate a successful transactional database to azureMigrate a successful transactional database to azure
Migrate a successful transactional database to azure
Ike Ellis
 
Data modeling trends for analytics
Data modeling trends for analyticsData modeling trends for analytics
Data modeling trends for analytics
Ike Ellis
 
Data modeling trends for Analytics
Data modeling trends for AnalyticsData modeling trends for Analytics
Data modeling trends for Analytics
Ike Ellis
 
Relational data modeling trends for transactional applications
Relational data modeling trends for transactional applicationsRelational data modeling trends for transactional applications
Relational data modeling trends for transactional applications
Ike Ellis
 
Power bi premium
Power bi premiumPower bi premium
Power bi premium
Ike Ellis
 
Move a successful onpremise oltp application to the cloud
Move a successful onpremise oltp application to the cloudMove a successful onpremise oltp application to the cloud
Move a successful onpremise oltp application to the cloud
Ike Ellis
 
Azure Databricks is Easier Than You Think
Azure Databricks is Easier Than You ThinkAzure Databricks is Easier Than You Think
Azure Databricks is Easier Than You Think
Ike Ellis
 
Pass 2018 introduction to dax
Pass 2018 introduction to daxPass 2018 introduction to dax
Pass 2018 introduction to dax
Ike Ellis
 
Pass the Power BI Exam
Pass the Power BI ExamPass the Power BI Exam
Pass the Power BI Exam
Ike Ellis
 
Slides for PUG 2018 - DAX CALCULATE
Slides for PUG 2018 - DAX CALCULATESlides for PUG 2018 - DAX CALCULATE
Slides for PUG 2018 - DAX CALCULATE
Ike Ellis
 
Introduction to DAX
Introduction to DAXIntroduction to DAX
Introduction to DAX
Ike Ellis
 
60 reporting tips in 60 minutes - SQLBits 2018
60 reporting tips in 60 minutes - SQLBits 201860 reporting tips in 60 minutes - SQLBits 2018
60 reporting tips in 60 minutes - SQLBits 2018
Ike Ellis
 
14 Habits of Great SQL Developers
14 Habits of Great SQL Developers14 Habits of Great SQL Developers
14 Habits of Great SQL Developers
Ike Ellis
 
14 Habits of Great SQL Developers
14 Habits of Great SQL Developers14 Habits of Great SQL Developers
14 Habits of Great SQL Developers
Ike Ellis
 
Dive Into Azure Data Lake - PASS 2017
Dive Into Azure Data Lake - PASS 2017Dive Into Azure Data Lake - PASS 2017
Dive Into Azure Data Lake - PASS 2017
Ike Ellis
 
A lap around microsofts business intelligence platform
A lap around microsofts business intelligence platformA lap around microsofts business intelligence platform
A lap around microsofts business intelligence platform
Ike Ellis
 

More from Ike Ellis (20)

Storytelling with Data with Power BI
Storytelling with Data with Power BIStorytelling with Data with Power BI
Storytelling with Data with Power BI
 
Storytelling with Data with Power BI.pptx
Storytelling with Data with Power BI.pptxStorytelling with Data with Power BI.pptx
Storytelling with Data with Power BI.pptx
 
Build a modern data platform.pptx
Build a modern data platform.pptxBuild a modern data platform.pptx
Build a modern data platform.pptx
 
Data Modeling on Azure for Analytics
Data Modeling on Azure for AnalyticsData Modeling on Azure for Analytics
Data Modeling on Azure for Analytics
 
Migrate a successful transactional database to azure
Migrate a successful transactional database to azureMigrate a successful transactional database to azure
Migrate a successful transactional database to azure
 
Data modeling trends for analytics
Data modeling trends for analyticsData modeling trends for analytics
Data modeling trends for analytics
 
Data modeling trends for Analytics
Data modeling trends for AnalyticsData modeling trends for Analytics
Data modeling trends for Analytics
 
Relational data modeling trends for transactional applications
Relational data modeling trends for transactional applicationsRelational data modeling trends for transactional applications
Relational data modeling trends for transactional applications
 
Power bi premium
Power bi premiumPower bi premium
Power bi premium
 
Move a successful onpremise oltp application to the cloud
Move a successful onpremise oltp application to the cloudMove a successful onpremise oltp application to the cloud
Move a successful onpremise oltp application to the cloud
 
Azure Databricks is Easier Than You Think
Azure Databricks is Easier Than You ThinkAzure Databricks is Easier Than You Think
Azure Databricks is Easier Than You Think
 
Pass 2018 introduction to dax
Pass 2018 introduction to daxPass 2018 introduction to dax
Pass 2018 introduction to dax
 
Pass the Power BI Exam
Pass the Power BI ExamPass the Power BI Exam
Pass the Power BI Exam
 
Slides for PUG 2018 - DAX CALCULATE
Slides for PUG 2018 - DAX CALCULATESlides for PUG 2018 - DAX CALCULATE
Slides for PUG 2018 - DAX CALCULATE
 
Introduction to DAX
Introduction to DAXIntroduction to DAX
Introduction to DAX
 
60 reporting tips in 60 minutes - SQLBits 2018
60 reporting tips in 60 minutes - SQLBits 201860 reporting tips in 60 minutes - SQLBits 2018
60 reporting tips in 60 minutes - SQLBits 2018
 
14 Habits of Great SQL Developers
14 Habits of Great SQL Developers14 Habits of Great SQL Developers
14 Habits of Great SQL Developers
 
14 Habits of Great SQL Developers
14 Habits of Great SQL Developers14 Habits of Great SQL Developers
14 Habits of Great SQL Developers
 
Dive Into Azure Data Lake - PASS 2017
Dive Into Azure Data Lake - PASS 2017Dive Into Azure Data Lake - PASS 2017
Dive Into Azure Data Lake - PASS 2017
 
A lap around microsofts business intelligence platform
A lap around microsofts business intelligence platformA lap around microsofts business intelligence platform
A lap around microsofts business intelligence platform
 

Recently uploaded

AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
Google
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
QuickwayInfoSystems3
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Nidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, TipsNidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, Tips
vrstrong314
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 

Recently uploaded (20)

AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Nidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, TipsNidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, Tips
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 

11 Goals of High Functioning SQL Developers

  • 1. 11 Goals A portrait of a highly functioning SQL Server development shop Ike Ellis, MVP Crafting Bytes A San Diego Software Studio #SQLintheCityUS
  • 2. Two pairs of eye on all SQL code, minimum – sometimes 3 or 4 • They pair minimum • Sometimes they mob • This allows for someone to do the right thing • And they can slack and work
  • 3.
  • 4.
  • 5. They don’t give estimates • They work off of a prioritized list and deliver a piece of value every day to the organization • They let the organization change anything on the list, except the first three things • You get it when it’s ready
  • 6. They test all of the time…mostly test first Write a line of code Deliver Code to Users #SQLintheCityUS
  • 8. They never code with production data on a dev server 1. Save Schema 2. Restore Database 3. Reset security 4. Restore Schema #SQLintheCityUS
  • 9. Why do they do this? • Bugs in production are not reproducible in development • They like seeing mock data because it gives them better testing of user interfaces and other things • They like to be able to quickly answer questions #SQLintheCityUS
  • 10. What’s the downside? • Break tests because of old data • Production data shouldn’t be seen by developers • If development environments are on laptops, laptops get stolen and the company has lost production data • Development servers are not usually backed up or secured properly --And the development database is way too large--- #SQLintheCityUS
  • 11. What do they do instead? • All development data is mocked – Tests are repeatable – They use MOQ/Xunit – But you can easily use tSQLt/RedGate SQL Test, instead • Thread the buggy data, back through the development process • Write a test that will fail with the new data • Solve the issue • Watch the test pass • Check the test into source control • Run the tests all the time • Bug never happens again I’m mocking your data #SQLintheCityUS
  • 12. The dev environment database is stays very small • Why is it large? • 15 years of data • 75% of blob storage – (PDFs, DOCs, AVIs) • Lots of temp files, ETL imports, etc Huge Bloated Database #SQLintheCityUS Tiny Dev Database
  • 13. What’s wrong with data bloat? • Database is not portable • Multiple database environments are difficult to setup • Hard to backup • Hard to restore • Hard to rebuild • Hard to obfuscate • Hard to query • Development takes a really long time • Big data costs money to store – big SANs – big developer laptops #SQLintheCityUS
  • 14. They never update production outside of their development pipeline • Changes are fast • Bugs are fixed quickly • All because they’re release pipeline is very fast #SQLintheCityUS
  • 15. What’s wrong with updating production servers? • Changes don’t get tested • Changes don’t go back into the development environment • Changes can cause table and schema locks and cause unexpected downtime • These changes are often not peer reviewed #SQLintheCityUS
  • 16. They avoid three part database names I like to reference you! Oooo, I like to reference you, too! #SQLintheCityUS
  • 18. But not all marriages are happy… • Creates a tight coupling • Moved together – To a new server • Have to be tested together • Have to be integrated together • Have to change together • Have to be upgraded to a new version • Have to be backed up together • Have to be restored together #SQLintheCityUS
  • 19. They avoid four part database names I like to reference you! Oooo, I like to reference you, too! #SQLintheCityUS
  • 20. Why is this bad? • Servers are now anchored together • It complicates building a test, QA, integration, or canary environment • Security concerns #SQLintheCityUS
  • 21. Developers have their own database • Source control history – Generation 0 – Visual Source Safe – Generation 1 – Subversion, TFS – Generation 2- GIT, Mercurial • Sharing databases is like going back to generation 0. #SQLintheCityUS
  • 22. They avoid rollback plans. Instead, they keep changes inside of their development pipeline • You can’t unbake this turkey • You have to fix it • Those fixes need to be tested – run it through again! #SQLintheCityUS
  • 23. They obfuscate production data in all of their environments I was your data, but now you don’t recognize me
  • 24. They use a canary If I die, you better not deploy! #SQLintheCityUS
  • 25. They never let more than one application touch a transactional database • Microservices • One application to one database • Change together in the same pipeline • Decouple everything, and I mean everything, else
  • 26. They build their databases and they fix compile errors • Lots of processes, including RedGate CI Server, will do this • Show bad bindings • Show bad columns • Show sprocs that just won’t run • Show tight-coupling #SQLintheCityUS
  • 27. They write never write SQL Statements against tables • More coupling #SQLintheCityUS
  • 28. Ike Ellis • Crafting Bytes – Small San Diego Software Studio – Modern web, mobile, Azure, SQL Server – Looking for future teammates! • Book: Developing Azure Solutions • Podcast Guest: – Talk Python to Me – Dec 2015 – .NET Rocks – Sept 2015 • www.craftingbytes.com • blog.ikeellis.com • www.ikeellis.com • SDTIG – www.sdtig.com Ike Ellis, MVP @ike_ellis 619.922.9801 ike@craftingbytes.com #SQLintheCityUS