SlideShare a Scribd company logo
1 of 33
Team-based Database Development
with Version Control
Steve Jones
Editor in Chief
SQL Server Central, Red Gate Software
#sqlinthecity
Goals
• Understand why version control is important?
• Learn some standards, patterns and best
practices
• See flow in a team
Getting started with databases in VCS
DemoDemo
If it’s not in source
control, it doesn’t exist.
…your database should always be
under source control right next to your
application code.
Reducing Risk
The Best Reason
Use source control because
neither you nor your team are
perfect
Use Something
Automation is Best
Agenda
• Why Version Control?
• Standards, Patterns and Best Practices
• Flow in a Team
Database Code
• Object DDL
• Assembly code
• Security code
• Configuration settings
• Jobs
• Lookup data
Standards
• Three types of standards
– Naming
– Style
– Process
• All important
Naming Standards
• Usually vary by company
• ISO 1179
• Be consistent
• Use tools for enforcement (SQLCop)
• Document these lightly and JIT
Style Standards
• Vary by individual
• Make code more readable.
• Use tools to re-format code to your liking.
– SQL Prompt
– SSMS Tools Pack
– Others
Rules for Database Development
• Never use a shared database for development
• Always Have a Single, Authoritative Source For
Your Schema
• Always Version Your Database
Best Practices
• Use Version Control for all code
• Commit early, commit often (various references
for this one)
• Use tools – If it’s hard, people don’t do it
• Train people
• Build often
The Holy Grail
Developer Efficiency
Demo
Agenda
• Why Version Control?
• Standards, Patterns and Best Practices
• Flow in a Team
Teamwork
Teamwork
• Communication
– Team members need to be aware of (easily)
what others are doing.
• Coordination
– Teams need to work in a way that
complements each other.
Automation
• Development systems and tools need to work for
the team, not against them.
• Many IDEs and tools work well in team
environments, if you configure them.
The flow within teams.
Demo
Goals
• Understand why version control is important?
• Learn some standards, patterns and best
practices
• See flow in a team
The End
• The next step is Automated Test and Build (next
session)
• Questions?
• Please fill out your feedback forms
• sqlinthecity.red-gate.com
• www.voiceofthedba.com.talks
• Focus Group on migrations for complex
database changes at 13:30
References
• http://stackoverflow.com/questions/115369/do-you-use-source-control-for-your-database-
items
• http://www.codinghorror.com/blog/archives/001050.html
• http://www.codinghorror.com/blog/2008/02/get-your-database-under-version-control.html
• http://www.ssw.com.au/ssw/Standards/Rules/RulesToBetterSQLServerDatabases.aspx
• http://odetocode.com/blogs/scott/archive/2008/01/30/three-rules-for-database-work.aspx
• Check in early, check in often - http://www.codinghorror.com/blog/2008/08/check-in-early-
check-in-often.html
Images
• http://northernalberta.rims.org/NorthernAlbertaChapter/H
ome/
• http://indianajones.wikia.com/wiki/Holy_Grail
• http://www.youtube.com/watch?v=RG0ochx16Dg
• http://www.flickr.com/photos/lumaxart/2137737248/

More Related Content

What's hot

The Works 2019 - Breakout Session: Security Clearance
The Works 2019 - Breakout Session: Security Clearance The Works 2019 - Breakout Session: Security Clearance
The Works 2019 - Breakout Session: Security Clearance David Dourgarian
 
Nemetschek Bulgaria @ Java2Days - IT shops driving the innovation
Nemetschek Bulgaria @ Java2Days - IT shops driving the innovationNemetschek Bulgaria @ Java2Days - IT shops driving the innovation
Nemetschek Bulgaria @ Java2Days - IT shops driving the innovationAnna Ioceva
 
Reducing inertia in organizations is the key to a successful DevOps transition
Reducing inertia in organizations is the key to a successful DevOps transitionReducing inertia in organizations is the key to a successful DevOps transition
Reducing inertia in organizations is the key to a successful DevOps transitionJoep Piscaer
 
Remote Mob Programming
Remote Mob ProgrammingRemote Mob Programming
Remote Mob ProgrammingCamille Bell
 
The Works 2019 - General Session: Beyond Base Camp
The Works 2019 - General Session: Beyond Base Camp The Works 2019 - General Session: Beyond Base Camp
The Works 2019 - General Session: Beyond Base Camp David Dourgarian
 
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 TrustIDERA Software
 
Kata Your Way to SW Craftsmanship
Kata Your Way to SW CraftsmanshipKata Your Way to SW Craftsmanship
Kata Your Way to SW CraftsmanshipCamille Bell
 
Software Architecture
Software ArchitectureSoftware Architecture
Software ArchitectureYoav Avrahami
 
Iasi code camp 20 april 2013 marian chicu - database unit tests in the sql se...
Iasi code camp 20 april 2013 marian chicu - database unit tests in the sql se...Iasi code camp 20 april 2013 marian chicu - database unit tests in the sql se...
Iasi code camp 20 april 2013 marian chicu - database unit tests in the sql se...Codecamp Romania
 
Software Development
Software DevelopmentSoftware Development
Software DevelopmentBasil Bibi
 
The art of architecture
The art of architectureThe art of architecture
The art of architectureADDQ
 
Xray for Jira - How to automate your QA process
Xray for Jira - How to automate your QA processXray for Jira - How to automate your QA process
Xray for Jira - How to automate your QA processXpand IT
 
Quality Assurance Made Easy in JIRA - Xpand IT & Atlassian JAM Sessions 2017
Quality Assurance Made Easy in JIRA - Xpand IT & Atlassian JAM Sessions 2017Quality Assurance Made Easy in JIRA - Xpand IT & Atlassian JAM Sessions 2017
Quality Assurance Made Easy in JIRA - Xpand IT & Atlassian JAM Sessions 2017Xpand IT
 
How our Team Collaborates with Atlassian Tools - Xpand IT & Atlassian JAM Ses...
How our Team Collaborates with Atlassian Tools - Xpand IT & Atlassian JAM Ses...How our Team Collaborates with Atlassian Tools - Xpand IT & Atlassian JAM Ses...
How our Team Collaborates with Atlassian Tools - Xpand IT & Atlassian JAM Ses...Xpand IT
 
Webinar: "DBMaestro: Database Enforced Change Management (DECM) tool"
Webinar: "DBMaestro: Database Enforced Change Management (DECM) tool"Webinar: "DBMaestro: Database Enforced Change Management (DECM) tool"
Webinar: "DBMaestro: Database Enforced Change Management (DECM) tool"Emerasoft, solutions to collaborate
 
Application Lifecycle Management with Team Foundation Server
Application Lifecycle Management with Team Foundation ServerApplication Lifecycle Management with Team Foundation Server
Application Lifecycle Management with Team Foundation ServerJozua Velle
 
Carl shaulis agile_td2014
Carl shaulis agile_td2014Carl shaulis agile_td2014
Carl shaulis agile_td2014Carl Shaulis
 
Agile Testing in Enterprise: Way to transform - SQA Days 2014
Agile Testing in Enterprise: Way to transform - SQA Days 2014Agile Testing in Enterprise: Way to transform - SQA Days 2014
Agile Testing in Enterprise: Way to transform - SQA Days 2014Andrey Rebrov
 

What's hot (20)

The Works 2019 - Breakout Session: Security Clearance
The Works 2019 - Breakout Session: Security Clearance The Works 2019 - Breakout Session: Security Clearance
The Works 2019 - Breakout Session: Security Clearance
 
Nemetschek Bulgaria @ Java2Days - IT shops driving the innovation
Nemetschek Bulgaria @ Java2Days - IT shops driving the innovationNemetschek Bulgaria @ Java2Days - IT shops driving the innovation
Nemetschek Bulgaria @ Java2Days - IT shops driving the innovation
 
Reducing inertia in organizations is the key to a successful DevOps transition
Reducing inertia in organizations is the key to a successful DevOps transitionReducing inertia in organizations is the key to a successful DevOps transition
Reducing inertia in organizations is the key to a successful DevOps transition
 
Remote Mob Programming
Remote Mob ProgrammingRemote Mob Programming
Remote Mob Programming
 
The Works 2019 - General Session: Beyond Base Camp
The Works 2019 - General Session: Beyond Base Camp The Works 2019 - General Session: Beyond Base Camp
The Works 2019 - General Session: Beyond Base Camp
 
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
 
Kata Your Way to SW Craftsmanship
Kata Your Way to SW CraftsmanshipKata Your Way to SW Craftsmanship
Kata Your Way to SW Craftsmanship
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Iasi code camp 20 april 2013 marian chicu - database unit tests in the sql se...
Iasi code camp 20 april 2013 marian chicu - database unit tests in the sql se...Iasi code camp 20 april 2013 marian chicu - database unit tests in the sql se...
Iasi code camp 20 april 2013 marian chicu - database unit tests in the sql se...
 
Software Development
Software DevelopmentSoftware Development
Software Development
 
The art of architecture
The art of architectureThe art of architecture
The art of architecture
 
Agile methodologies
Agile methodologiesAgile methodologies
Agile methodologies
 
Xray for Jira - How to automate your QA process
Xray for Jira - How to automate your QA processXray for Jira - How to automate your QA process
Xray for Jira - How to automate your QA process
 
Quality Assurance Made Easy in JIRA - Xpand IT & Atlassian JAM Sessions 2017
Quality Assurance Made Easy in JIRA - Xpand IT & Atlassian JAM Sessions 2017Quality Assurance Made Easy in JIRA - Xpand IT & Atlassian JAM Sessions 2017
Quality Assurance Made Easy in JIRA - Xpand IT & Atlassian JAM Sessions 2017
 
How our Team Collaborates with Atlassian Tools - Xpand IT & Atlassian JAM Ses...
How our Team Collaborates with Atlassian Tools - Xpand IT & Atlassian JAM Ses...How our Team Collaborates with Atlassian Tools - Xpand IT & Atlassian JAM Ses...
How our Team Collaborates with Atlassian Tools - Xpand IT & Atlassian JAM Ses...
 
Webinar: "DBMaestro: Database Enforced Change Management (DECM) tool"
Webinar: "DBMaestro: Database Enforced Change Management (DECM) tool"Webinar: "DBMaestro: Database Enforced Change Management (DECM) tool"
Webinar: "DBMaestro: Database Enforced Change Management (DECM) tool"
 
Application Lifecycle Management with Team Foundation Server
Application Lifecycle Management with Team Foundation ServerApplication Lifecycle Management with Team Foundation Server
Application Lifecycle Management with Team Foundation Server
 
Carl shaulis agile_td2014
Carl shaulis agile_td2014Carl shaulis agile_td2014
Carl shaulis agile_td2014
 
Agile Testing in Enterprise: Way to transform - SQA Days 2014
Agile Testing in Enterprise: Way to transform - SQA Days 2014Agile Testing in Enterprise: Way to transform - SQA Days 2014
Agile Testing in Enterprise: Way to transform - SQA Days 2014
 

Similar to Steve Jones - Team-based Version Control

Part of the DLM story: Get your Database under Source Control - SQL In The City
Part of the DLM story: Get your Database under Source Control - SQL In The City Part of the DLM story: Get your Database under Source Control - SQL In The City
Part of the DLM story: Get your Database under Source Control - SQL In The City Red Gate Software
 
Get Your Database Under Control
Get Your Database Under ControlGet Your Database Under Control
Get Your Database Under ControlGrant Fritchey
 
Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersSPC Adriatics
 
Making security-agile matt-tesauro
Making security-agile matt-tesauroMaking security-agile matt-tesauro
Making security-agile matt-tesauroMatt Tesauro
 
Introduction to Automated Testing
Introduction to Automated TestingIntroduction to Automated Testing
Introduction to Automated TestingLars Thorup
 
Introduction to-automated-testing
Introduction to-automated-testingIntroduction to-automated-testing
Introduction to-automated-testingBestBrains
 
Software product development process
Software product development processSoftware product development process
Software product development processSri Kanajan
 
Best practices for implementing and rolling out a memoQ server in an organiz...
Best practices for implementing and rolling out  a memoQ server in an organiz...Best practices for implementing and rolling out  a memoQ server in an organiz...
Best practices for implementing and rolling out a memoQ server in an organiz...Loctimize GmbH
 
Geek Sync | Top 5 Tips to Keep Always On Always Humming and Users Happy
Geek Sync | Top 5 Tips to Keep Always On Always Humming and Users HappyGeek Sync | Top 5 Tips to Keep Always On Always Humming and Users Happy
Geek Sync | Top 5 Tips to Keep Always On Always Humming and Users HappyIDERA Software
 
1 Information Systems Analysis & Design,.pptx
1 Information Systems Analysis & Design,.pptx1 Information Systems Analysis & Design,.pptx
1 Information Systems Analysis & Design,.pptxMadhusudhanaSubraman
 
Tools for Software Testing
Tools for Software TestingTools for Software Testing
Tools for Software TestingMohammed Moishin
 
Continuous Integration and Quality Development
Continuous Integration and Quality DevelopmentContinuous Integration and Quality Development
Continuous Integration and Quality DevelopmentGareth Davies
 
ALM with TFS: From the Drawing Board to the Cloud
ALM with TFS: From the Drawing Board to the CloudALM with TFS: From the Drawing Board to the Cloud
ALM with TFS: From the Drawing Board to the CloudJeremy Likness
 
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!Richard Robinson
 
Integration strategies best practices- Mulesoft meetup April 2018
Integration strategies   best practices- Mulesoft meetup April 2018Integration strategies   best practices- Mulesoft meetup April 2018
Integration strategies best practices- Mulesoft meetup April 2018Rohan Rasane
 
Why the database is at the heart of DevOps success
Why the database is at the heart of DevOps successWhy the database is at the heart of DevOps success
Why the database is at the heart of DevOps successRed Gate Software
 

Similar to Steve Jones - Team-based Version Control (20)

Part of the DLM story: Get your Database under Source Control - SQL In The City
Part of the DLM story: Get your Database under Source Control - SQL In The City Part of the DLM story: Get your Database under Source Control - SQL In The City
Part of the DLM story: Get your Database under Source Control - SQL In The City
 
Get Your Database Under Control
Get Your Database Under ControlGet Your Database Under Control
Get Your Database Under Control
 
Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill Ayers
 
Making security-agile matt-tesauro
Making security-agile matt-tesauroMaking security-agile matt-tesauro
Making security-agile matt-tesauro
 
Introduction to Automated Testing
Introduction to Automated TestingIntroduction to Automated Testing
Introduction to Automated Testing
 
Introduction to-automated-testing
Introduction to-automated-testingIntroduction to-automated-testing
Introduction to-automated-testing
 
Software product development process
Software product development processSoftware product development process
Software product development process
 
Best practices for implementing and rolling out a memoQ server in an organiz...
Best practices for implementing and rolling out  a memoQ server in an organiz...Best practices for implementing and rolling out  a memoQ server in an organiz...
Best practices for implementing and rolling out a memoQ server in an organiz...
 
Sdlc model
Sdlc modelSdlc model
Sdlc model
 
Geek Sync | Top 5 Tips to Keep Always On Always Humming and Users Happy
Geek Sync | Top 5 Tips to Keep Always On Always Humming and Users HappyGeek Sync | Top 5 Tips to Keep Always On Always Humming and Users Happy
Geek Sync | Top 5 Tips to Keep Always On Always Humming and Users Happy
 
Software Standards
Software StandardsSoftware Standards
Software Standards
 
Enterprise PHP
Enterprise PHPEnterprise PHP
Enterprise PHP
 
1 Information Systems Analysis & Design,.pptx
1 Information Systems Analysis & Design,.pptx1 Information Systems Analysis & Design,.pptx
1 Information Systems Analysis & Design,.pptx
 
Tools for Software Testing
Tools for Software TestingTools for Software Testing
Tools for Software Testing
 
Continuous Integration and Quality Development
Continuous Integration and Quality DevelopmentContinuous Integration and Quality Development
Continuous Integration and Quality Development
 
Manual Software testing - software development life cycle
Manual Software testing - software development life cycleManual Software testing - software development life cycle
Manual Software testing - software development life cycle
 
ALM with TFS: From the Drawing Board to the Cloud
ALM with TFS: From the Drawing Board to the CloudALM with TFS: From the Drawing Board to the Cloud
ALM with TFS: From the Drawing Board to the Cloud
 
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!
 
Integration strategies best practices- Mulesoft meetup April 2018
Integration strategies   best practices- Mulesoft meetup April 2018Integration strategies   best practices- Mulesoft meetup April 2018
Integration strategies best practices- Mulesoft meetup April 2018
 
Why the database is at the heart of DevOps success
Why the database is at the heart of DevOps successWhy the database is at the heart of DevOps success
Why the database is at the heart of DevOps success
 

More from Red Gate Software

The future of DevOps: fully left-shifted deployments with version control and...
The future of DevOps: fully left-shifted deployments with version control and...The future of DevOps: fully left-shifted deployments with version control and...
The future of DevOps: fully left-shifted deployments with version control and...Red Gate Software
 
Embracing DevOps through database migrations with Flyway
Embracing DevOps through database migrations with FlywayEmbracing DevOps through database migrations with Flyway
Embracing DevOps through database migrations with FlywayRed Gate Software
 
Database DevOps for Managed Service Providers
Database DevOps for Managed Service ProvidersDatabase DevOps for Managed Service Providers
Database DevOps for Managed Service ProvidersRed Gate Software
 
Mizuho Financial: Launching our Database DevOps journey
Mizuho Financial: Launching our Database DevOps journeyMizuho Financial: Launching our Database DevOps journey
Mizuho Financial: Launching our Database DevOps journeyRed Gate Software
 
7 steps to effective SQL Server monitoring
7 steps to effective SQL Server monitoring7 steps to effective SQL Server monitoring
7 steps to effective SQL Server monitoringRed Gate Software
 
Level up your deployments for SQL Source Control
Level up your deployments for SQL Source Control Level up your deployments for SQL Source Control
Level up your deployments for SQL Source Control Red Gate Software
 
Key findings from the 2020 state of database dev ops report
Key findings from the 2020 state of database dev ops reportKey findings from the 2020 state of database dev ops report
Key findings from the 2020 state of database dev ops reportRed Gate Software
 
Extend DevOps to Your SQL Server Databases
Extend DevOps to Your SQL Server DatabasesExtend DevOps to Your SQL Server Databases
Extend DevOps to Your SQL Server DatabasesRed Gate Software
 
What we learned at PASS Summit in 2019
What we learned at PASS Summit in 2019What we learned at PASS Summit in 2019
What we learned at PASS Summit in 2019Red Gate Software
 
Quality in Software Development: Anglia Ruskin University
Quality in Software Development: Anglia Ruskin UniversityQuality in Software Development: Anglia Ruskin University
Quality in Software Development: Anglia Ruskin UniversityRed Gate Software
 
How SQL Change Automation helps you deliver value faster
How SQL Change Automation helps you deliver value fasterHow SQL Change Automation helps you deliver value faster
How SQL Change Automation helps you deliver value fasterRed Gate Software
 
DevOps essentials from Abel Wang and Steve Jones
DevOps essentials from Abel Wang and Steve JonesDevOps essentials from Abel Wang and Steve Jones
DevOps essentials from Abel Wang and Steve JonesRed Gate Software
 
Successfully migrating existing databases to Azure
Successfully migrating existing databases to AzureSuccessfully migrating existing databases to Azure
Successfully migrating existing databases to AzureRed Gate Software
 
The Ultimate Guide to Choosing and Implementing the Right Monitoring Tool
The Ultimate Guide to Choosing and Implementing the Right Monitoring ToolThe Ultimate Guide to Choosing and Implementing the Right Monitoring Tool
The Ultimate Guide to Choosing and Implementing the Right Monitoring ToolRed Gate Software
 
Everything You Need to Know About the 2019 DORA Accelerate State of DevOps Re...
Everything You Need to Know About the 2019 DORA Accelerate State of DevOps Re...Everything You Need to Know About the 2019 DORA Accelerate State of DevOps Re...
Everything You Need to Know About the 2019 DORA Accelerate State of DevOps Re...Red Gate Software
 
Using Redgate, AKS and Azure to bring DevOps to your database
Using Redgate, AKS and Azure to bring DevOps to your databaseUsing Redgate, AKS and Azure to bring DevOps to your database
Using Redgate, AKS and Azure to bring DevOps to your databaseRed Gate Software
 
Using Redgate, AKS and Azure to bring DevOps to your Database
Using Redgate, AKS and Azure to bring DevOps to your DatabaseUsing Redgate, AKS and Azure to bring DevOps to your Database
Using Redgate, AKS and Azure to bring DevOps to your DatabaseRed Gate Software
 
How to Pitch a Software Development Initiative and Ignite Culture Change
How to Pitch a Software Development Initiative and Ignite Culture ChangeHow to Pitch a Software Development Initiative and Ignite Culture Change
How to Pitch a Software Development Initiative and Ignite Culture ChangeRed Gate Software
 

More from Red Gate Software (20)

The future of DevOps: fully left-shifted deployments with version control and...
The future of DevOps: fully left-shifted deployments with version control and...The future of DevOps: fully left-shifted deployments with version control and...
The future of DevOps: fully left-shifted deployments with version control and...
 
Embracing DevOps through database migrations with Flyway
Embracing DevOps through database migrations with FlywayEmbracing DevOps through database migrations with Flyway
Embracing DevOps through database migrations with Flyway
 
Database DevOps for Managed Service Providers
Database DevOps for Managed Service ProvidersDatabase DevOps for Managed Service Providers
Database DevOps for Managed Service Providers
 
Mizuho Financial: Launching our Database DevOps journey
Mizuho Financial: Launching our Database DevOps journeyMizuho Financial: Launching our Database DevOps journey
Mizuho Financial: Launching our Database DevOps journey
 
7 steps to effective SQL Server monitoring
7 steps to effective SQL Server monitoring7 steps to effective SQL Server monitoring
7 steps to effective SQL Server monitoring
 
Level up your deployments for SQL Source Control
Level up your deployments for SQL Source Control Level up your deployments for SQL Source Control
Level up your deployments for SQL Source Control
 
Key findings from the 2020 state of database dev ops report
Key findings from the 2020 state of database dev ops reportKey findings from the 2020 state of database dev ops report
Key findings from the 2020 state of database dev ops report
 
Extend DevOps to Your SQL Server Databases
Extend DevOps to Your SQL Server DatabasesExtend DevOps to Your SQL Server Databases
Extend DevOps to Your SQL Server Databases
 
2019 year in review slides
2019 year in review slides2019 year in review slides
2019 year in review slides
 
What we learned at PASS Summit in 2019
What we learned at PASS Summit in 2019What we learned at PASS Summit in 2019
What we learned at PASS Summit in 2019
 
Quality in Software Development: Anglia Ruskin University
Quality in Software Development: Anglia Ruskin UniversityQuality in Software Development: Anglia Ruskin University
Quality in Software Development: Anglia Ruskin University
 
How SQL Change Automation helps you deliver value faster
How SQL Change Automation helps you deliver value fasterHow SQL Change Automation helps you deliver value faster
How SQL Change Automation helps you deliver value faster
 
DevOps essentials from Abel Wang and Steve Jones
DevOps essentials from Abel Wang and Steve JonesDevOps essentials from Abel Wang and Steve Jones
DevOps essentials from Abel Wang and Steve Jones
 
Successfully migrating existing databases to Azure
Successfully migrating existing databases to AzureSuccessfully migrating existing databases to Azure
Successfully migrating existing databases to Azure
 
The Ultimate Guide to Choosing and Implementing the Right Monitoring Tool
The Ultimate Guide to Choosing and Implementing the Right Monitoring ToolThe Ultimate Guide to Choosing and Implementing the Right Monitoring Tool
The Ultimate Guide to Choosing and Implementing the Right Monitoring Tool
 
Everything You Need to Know About the 2019 DORA Accelerate State of DevOps Re...
Everything You Need to Know About the 2019 DORA Accelerate State of DevOps Re...Everything You Need to Know About the 2019 DORA Accelerate State of DevOps Re...
Everything You Need to Know About the 2019 DORA Accelerate State of DevOps Re...
 
Using Redgate, AKS and Azure to bring DevOps to your database
Using Redgate, AKS and Azure to bring DevOps to your databaseUsing Redgate, AKS and Azure to bring DevOps to your database
Using Redgate, AKS and Azure to bring DevOps to your database
 
Using Redgate, AKS and Azure to bring DevOps to your Database
Using Redgate, AKS and Azure to bring DevOps to your DatabaseUsing Redgate, AKS and Azure to bring DevOps to your Database
Using Redgate, AKS and Azure to bring DevOps to your Database
 
How to Pitch a Software Development Initiative and Ignite Culture Change
How to Pitch a Software Development Initiative and Ignite Culture ChangeHow to Pitch a Software Development Initiative and Ignite Culture Change
How to Pitch a Software Development Initiative and Ignite Culture Change
 
Taming the Wild West
Taming the Wild West Taming the Wild West
Taming the Wild West
 

Recently uploaded

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 

Recently uploaded (20)

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 

Steve Jones - Team-based Version Control

Editor's Notes

  1. Understand why version control is important?Learn some standards, patterns and best practices - demo – show tracking without version control - demo - set up vcsSee flow in a team - demo - show objects being moved from person to person in separate databases - demo – show tests
  2. In most jobs you want to be able to rollback if you make a mistake. You can't sometimes, but we often can in software development. In software we aren’t usually working in areas quite this critical, but the lack of having a safety net for your application can be a problem.http://www.flickr.com/photos/spinneyhead/3616976884/
  3. How hard is it to set up source control? Let’s lookShow how to start using VCS manually with a database and scripting (file open/close)Create SimpleTalkDev_Steve and SimpleTalkDev_Manual.Script out _ManualAdd to subversionLink _Steve to SOC to show the differenceChange a proc in _Manual, save, check in.Change a proc in _Steve, commit change.
  4. There are plenty of developers with this attitude, though I’m not sure it’s the majority. As software development matures, however slowly, I suspect this will become more and more commonplace. Professionals should work professionally.http://programmers.stackexchange.com/questions/122150/how-can-i-convince-cowboy-programmers-to-use-source-controlhttp://www.makeuseof.com/tag/git-version-control-youre-developer/http://www.mactech.com/articles/mactech/Vol.14/14.06/VersionControlAndTheDeveloper/index.htmlhttp://drupal.org/node/299067grammers.stackexchange.com/questions/122150/how-can-i-convince-cowboy-programmers-to-use-source-control
  5. Version control isn’t that hard.http://programmers.stackexchange.com/questions/122150/how-can-i-convince-cowboy-programmers-to-use-source-controlhttp://www.makeuseof.com/tag/git-version-control-youre-developer/http://www.mactech.com/articles/mactech/Vol.14/14.06/VersionControlAndTheDeveloper/index.htmlhttp://drupal.org/node/299067
  6. VCS should be used everywhere, all the time.http://programmers.stackexchange.com/questions/122150/how-can-i-convince-cowboy-programmers-to-use-source-controlhttp://www.makeuseof.com/tag/git-version-control-youre-developer/http://www.mactech.com/articles/mactech/Vol.14/14.06/VersionControlAndTheDeveloper/index.htmlhttp://drupal.org/node/299067
  7. There are no excuses where you should not use it.http://programmers.stackexchange.com/questions/122150/how-can-i-convince-cowboy-programmers-to-use-source-controlhttp://www.makeuseof.com/tag/git-version-control-youre-developer/http://www.mactech.com/articles/mactech/Vol.14/14.06/VersionControlAndTheDeveloper/index.htmlhttp://drupal.org/node/299067
  8. Your version control, or source control system, should be the last word in what code is included in your application. Source control provides you this central repository that helps everyone be aware of what changes have been made.http://www.troyhunt.com/2011/05/10-commandments-of-good-source-control.html
  9. Many of the better developers out there, whether working with application code or database code, believe in this process. In terms of databases, the code should be a peer with your application code.From: http://www.codinghorror.com/blog/2006/12/is-your-database-under-version-control.html
  10. VCS isn’t just for rolling back changes. There are any number of benefits to a shared VCS environment.You can see there a variety of reasons why you should use source control, but…http://betterexplained.com/articles/a-visual-guide-to-version-control/
  11. they all come down to reducing risk. Reducing the risk of problems in your code, conflicts, the chance you cannot build your application to add a feature, apply a patch, or grow your team.Many of the things we talk about at SitC are all about reducing risk. Continuous integration, continuous deployment, processes made easier with tooling, all are about reducing risk.How many of you would code your entire project and only build it at the end? That’s what not using version control, testing, practicing, having a known process is really like.
  12. You use source control because neither you nor your team is perfect. http://stackoverflow.com/questions/559332/why-should-my-team-adopt-source-control
  13. If you don't like the idea of using a server based system, or your company doesn't have one, please use something. If nothing else, back up your code each day.
  14. However we prefer automation. We want to use some sort of tooling to make this process easier. Most IDEs integrate with VCS systems, though SSMS is not one. However there are different ways to do this, as we saw in the demo.http://www.youtube.com/watch?v=RG0ochx16Dg
  15. Your code consists of a number of objects. The things we talk about should apply to all of these.
  16. In terms of standards, we have two types: naming and style.
  17. Naming standards have to do with how we identify things. From servers, to databases, to tables to programming structures, we want consistent naming so all members of the team understand quickly and easily, what they are working with. These can include well known standards (ISO), but they do not have to. The important thing is they are defined, even loosely defined, in your company. You should use tools and automation to enforce them. I would not define everything up front and right away, but define things as needed.
  18. Style standards often vary by individual. These have to do with the formatting and layout of code to enhance readability and understanding. However it doesn't make sense these days to have strict standards for formatting of code. Instead, the IDE should be able to reformat code for the developer as needed. This might include things like spacing, comma placement, etc. Tooling can handle many of these issues. There are a number of add-ins and editors for SQL Server code. Learn to use them.
  19. In team development, we should have a number of rules. The best list I have seen is from K. Scott Allen, with three rules. - Never used a shared database for development - Always have an authoritative source - version your databaseAll three are important. You don't want a shared database because when testing change and trying out new enhancemnents, especially in database work, you do not want one developer to interfere with others. This is especially problemativ for database work where the structure you are dealing with must be able to work well across time. You always need a source for your database any point in time if you hae to rebuild things. This means you may have create scripts or alter scripts, but whatever combination you have must work to rebuild a database to match a point in time. The last thing is that your database state should be known at different points in time, espeically as you may deploy changes out of order in which they are built. These versions usually correspond to release points, and they are important for building upgrade scripts for altering objects.From: http://odetocode.com/blogs/scott/archive/2008/01/30/three-rules-for-database-work.aspx (K. Scott Allen)
  20. The best practices for database development are:- Use version control. It's important for a variety of reasons, not the least of which is reducing your risk of problems.- Commit often. Better sooner than later.- Use tools to help you work better. These can be bespoke or bought, but use them to make things work easier. Your tools should be able to build a database ona new machine quickly and easily. Backup and restore can work, but this isn't always practical.- Train your people. Don't assume they know how to use VCS, or they have the habits. It doesn't take long, and it's worth the investment.- Build often. This will help you catch mistake and issues early, which means it is less costly in terms of resources to fix things.
  21. The holy grail of all of this is to be able to release at any point in time, if you need to, with confidence. If you have a problem, an urgent request, a deadline, being able to build your applicatin (and database) with confidence, test it quickly, and deploy changes. Continuous Integration, Continuous Deployment, and the automation that goes with them is what w should all shoot for.http://indianajones.wikia.com/wiki/Holy_Grail
  22. DemoSet up new database for new developer (link new db, get Latest)Create SimpleTalkDev_GrantLink to SSC and get latest codeOpen procSee reformatting of code (change formatting from Prompt)Save proc, show appearing as a changed item in the list, commitShow change appearing in get latest for the _Steve database.
  23. Ultimately what we want to do is ensure that everyone in our team, however big or small, works together in a coordinated fashion. We won't all work the same way, but we don't want to create friction and inefficiencies with our differences.Teamwork requires coordination and communication to be efficient. Whatever process you choose needs to work for the team. It should allow them to easily work in the way they want, while still allowing each team member’s work to be easily integrated into every other team members.http://www.flickr.com/photos/lumaxart/2137737248/
  24. The big things are communication and coordination. Communication betwen members as well as with the application. Knowing when you have code that changes, that works (or doesn't work) and what items people are working on. Coordination has to do with meshing the different ways we all work together.In terms of communiction, talk to each other (or email, IM, chat, etc.). Don't set very hard and fast rules that are unbreakable, but discuss issues and make reasonable decisions that fit in your environment. If things make sense and help you develop faster and at a higher level of quality, do them. If they don't, then change.
  25. Automation and tooling is definitely the key to good teamwork. The tools should help not only enable, but foster good teamwork. Configure your IDEs to help you. Share knowledge and configuration while allowing diversity in things like personal preferences.
  26. Show changes moving from one developer to another. Show tests-- Demo changes to code, with comments, appearing in source control and using those.- David A’s TDD scenario. Create test, allow to flow to the other user.
  27. Understand why version control is important?Learn some standards, patterns and best practices - demo – show tracking without version control - demo - set up vcsSee flow in a team - demo - show objects being moved from person to person in separate databases - demo – show tests