SlideShare a Scribd company logo
1 of 52
Download to read offline
Agile Database development
     (with Visual Studio)
        Jose Luis Soria
         Göteborg, April 2012
Jose Luis Soria
• ALM Team Lead at
  Plain Concepts
• Professional Scrum
  Trainer at scrum.org

    jlsoria@plainconcepts.com

    http://geeks.ms/blogs/jlsoria

    @jlsoriat
Agenda
•   Database development
•   Agile development
•   Agile database development
•   Practices and tools
Database development
How databases work
• Databases are different from
  application code
  – Application code is not changed while
    running (even in dynamic languages, changes are not
    persisted)
  – Databases are changed while running
     • Changes in data or database objects, made
       while the database is online, have to be taken
       into account while developing
Databases are changed while running




  Take running database changes into
       account while developing.
Have a proper policy for changes in place
Databases across environments
• We have to deal with several
  environments while developing
• Each environment has its own
  database
• These databases are used for different
  things
• These databases are in different states
  and versions, and contain different
  data
Databases are different
        across environments




Be prepared to change different things
        in different databases
Applying changes to databases
• Most times, any particular change can
  only be made one time. Once the
  change has been made, it is not
  possible to make it again
• Changes are difficult to be undone
Changes to databases are lasting
        and hard to be undone




Have a proper policy for changes in place.
    Have a proper policy for undoing
           changes in place.
Agile development
Agile?
Twelve principles of Agile
Our highest priority is to satisfy the customer   Working software is the primary measure of
through early and continuous delivery of          progress.
valuable software.
Welcome changing requirements, even late          Agile processes promote sustainable
in development. Agile processes harness           development. The sponsors, developers, and
change for the customer's competitive             users should be able to maintain a constant
advantage.                                        pace indefinitely.
Deliver working software frequently, from a       Continuous attention to technical excellence
couple of weeks to a couple of months, with       and good design enhances agility.
a preference to the shorter timescale.
Business people and developers must work          Simplicity--the art of maximizing the amount
together daily throughout the project.            of work not done--is essential.
Build projects around motivated individuals.      The best architectures, requirements, and
Give them the environment and support they        designs emerge from self-organizing teams.
need, and trust them to get the job done.
The most efficient and effective method of        At regular intervals, the team reflects on how
conveying information to and within a             to become more effective, then tunes and
development team is face-to-face                  adjusts its behavior accordingly.
conversation.
Twelve principles of Agile
Our highest priority is to satisfy the customer   Working software is the primary measure of
through early and continuous delivery of          progress.
valuable software.
Welcome changing requirements, even late          Agile processes promote sustainable
in development. Agile processes harness           development. The sponsors, developers, and
change for the customer's competitive             users should be able to maintain a constant
advantage.                                        pace indefinitely.
Deliver working software frequently, from a       Continuous attention to technical excellence
couple of weeks to a couple of months, with       and good design enhances agility.
a preference to the shorter timescale.
Business people and developers must work          Simplicity--the art of maximizing the amount
together daily throughout the project.            of work not done--is essential.
Build projects around motivated individuals.      The best architectures, requirements, and
Give them the environment and support they        designs emerge from self-organizing teams.
need, and trust them to get the job done.
The most efficient and effective method of        At regular intervals, the team reflects on how
conveying information to and within a             to become more effective, then tunes and
development team is face-to-face                  adjusts its behavior accordingly.
conversation.
Agile database development
Early and continuous delivery of   Working software is the primary
valuable software.                 measure of progress.
Welcome changing requirements.     Sustainable development, constant
                                   pace.
Deliver working software           Continuous attention to technical
frequently.                        excellence and good design.

Business people and developers     Simplicity.
must work together.
Build projects around motivated    The best architectures,
individuals. Give them the         requirements, and designs emerge.
environment and support they
need.
What does it mean?
Early and continuous delivery of
          valuable software




Ability to deliver in a simple and quick
                    way
Welcome changing requirements




  Ability to introduce changes
          at any moment
Deliver working software frequently




Ability to deliver in a simple and quick
                    way
Business people and developers
       must work together




Development depends on business
Build projects around motivated individuals.
  Give them the environment they need




       Proper environment and tools
Working software
is the primary measure of progress




Development depends on business.
           Keep always
a functional version of the software
Sustainable development.
      Constant pace




Ability to introduce changes
        at any moment
Continuous attention to technical
  excellence and good design




Best practices: CI, refactoring, TDD…
Simplicity




       Reuse.
Work in small chunks
The best architectures, requirements
       and designs emerge




   Ability to introduce changes
           at any moment
Agile database development
Agile database development
• Be able to deliver database changes in a simple and quick
  way
• Be able to introduce database changes at any moment
• Make database development dependent on business
• Set up a proper environment and tools
• Keep always a functional version of the database
• Use best practices: CI, refactoring, TDD…
• Reuse
• Work in small chunks
• Take running database changes into account while
  developing
• Have a proper policy for changes in place
• Have a proper policy for undoing changes in place
• Be prepared to change different things in different databases
How to do it?: practices & tools
Practices and tools
• Are going to help us to do database
  development properly
• Tools and demos for this session deal with
  relational databases (SQL Server). But
  principles are the same for other
  scenarios:
  – NoSQL (MongoDB, Azure Storage…)
  – ORMs (Entity Framework, NHibernate…)
• Most things will also work with VS 11 and
  SQL Server Data Tools
Version control
• Treat database code like any other source
  code
  – Enable several people to work on the same
    code base
  – Make modifications available to the rest of the
    team in a controlled way
  – Make it possible to set up Continuous Integration
  – Use versioning features: compare, restore old
    version, combine…
• Use the same code, schema or approach to
  migrate any database in your environment
Demo
Version control for databases
Coding aids
• Visual Studio provides several aids for
  working with database code
  – Intellisense
  – Tracking and resolving dependencies
  – Static analysis
  – Refactoring
Demo
Coding aids
Isolated development
           environment
• Have each developer work in his own
  environment, which includes the
  database
  – Self-contained
  – Resembling production environment
  – Automated (deployment, testing, etc.)
Demo
Isolated development
environment
Unit tests
• Sometimes, database code can contain
  logic
• Database code can benefit from
  automated unit testing the same way as
  application code
  –   Find problems early
  –   Facilitate change
  –   Simplify integration
  –   Self-document
  –   Drive the design
Demo
Database unit testing
Continuous Integration
• Early warning of conflicting changes
• Immediate unit testing of all changes
• Constant availability of a "current"
  build for testing, demo, or release
  purposes
• Immediate feedback
• Modular, less complex code
• Quality code
Continuous Integration
               principles
•   Maintain a code repository
•   Automate the build
•   Make the build self-testing
•   Everyone commits to the baseline every day
•   Every commit (to baseline) should be built
•   Keep the build fast
•   Test in a clone of the production environment
•   Make it easy to get the latest deliverables
•   Everyone can see the results of the latest build
•   Automate deployment
Continuous Integration
               principles
•   Maintain a code repository
•   Automate the build
•   Make the build self-testing
•   Everyone commits to the baseline every day
•   Every commit (to baseline) should be built
•   Keep the build fast
•   Test in a clone of the production environment
•   Make it easy to get the latest deliverables
•   Everyone can see the results of the latest build
•   Automate deployment
Demo
Database continuous
integration
Requirements drive changes
• Make changes in small chunks
• Changes are originated by
  requirements
• Make different changes for different
  requirements
Continuous deployment to any
        environment
• Automating database migrations to
  any environment helps us:
  – Easily roll forward or back
  – Minimize disruption for changes
  – Maximize reliability of deployment process
  – Work incrementally (including DBAs)
Continuous deployment process
• Obtain the correct version of the
  database
• Prepare the environment
• Initialize database and instance
• Initialize schema
• Initialize user credentials
• Populate database with reference data
• Have a rollback mechanism in place
Demo
Continuous deployment
Database sync vs. delta scripts
• Syncing databases can lead to
  uncontrolled changes across
  environments
• It’s better to make changes the same
  way for all the environments
• We can use numerated delta scripts
  and tools like DBDeploy
Database sync vs. delta scripts
• Delta scripts
   – Great for greenfield development and Continuous
     Integration
• Database sync
   –   For legacy databases
   –   For non-agile, non-CI projects
   –   For changing data
   –   When you don’t have database under version control
• Other options
   – ORMs usually have their own mechanism to deal with
     database changes. For example, migrations in Entity
     Framework
Dealing with data
• Reference data can be scripted
• Changes (delta scripts) should deal
  with existing data
• There are several ways to obtain data
  for testing
  – Using the application API
  – Using backups
  – Using data comparison tools
  – Using data generation tools
Have we covered everything?
• Be able to deliver database changes in a simple and quick
  way
• Be able to introduce database changes at any moment
• Make database development dependent on business
• Set up a proper environment and tools
• Keep always a functional version of the database
• Use best practices: CI, refactoring, TDD…
• Reuse
• Work in small chunks
• Take running database changes into account while
  developing
• Have a proper policy for changes in place
• Have a proper policy for undoing changes in place
• Be prepared to change different things in different databases
Any questions?
•   Visual Studio Database tools http://bit.ly/dyN3wv
•   VSDBCMD http://bit.ly/vB6G1
•   Database changes done right http://bit.ly/wTOY01
•   Continuous delivery http://continuousdelivery.com/




       jlsoria@plainconcepts.com

       @jlsoriat

More Related Content

What's hot

When agility meets software quality
When agility meets software qualityWhen agility meets software quality
When agility meets software qualityBabak Khorrami
 
Introduction to scrum
Introduction to scrumIntroduction to scrum
Introduction to scrumSemen Arslan
 
Agile Software Development and DevOps 21092019
Agile Software Development and DevOps 21092019Agile Software Development and DevOps 21092019
Agile Software Development and DevOps 21092019Ahmed Misbah
 
Agile software development
Agile software developmentAgile software development
Agile software developmentRajesh Piryani
 
Applying both of waterfall and iterative development
Applying both of waterfall and iterative developmentApplying both of waterfall and iterative development
Applying both of waterfall and iterative developmentDeny Prasetia
 
What do the "Cool Kids" know about DevOps?
What do the "Cool Kids" know about DevOps?What do the "Cool Kids" know about DevOps?
What do the "Cool Kids" know about DevOps?Bill Holtshouser
 
Sustainable SW Development
Sustainable SW DevelopmentSustainable SW Development
Sustainable SW DevelopmentSam Hwang
 
DevOps Services Offerings from Rational Lab Services
DevOps Services Offerings from Rational Lab ServicesDevOps Services Offerings from Rational Lab Services
DevOps Services Offerings from Rational Lab ServicesIBM Rational software
 
Agile and Lean Software Development
Agile and Lean Software DevelopmentAgile and Lean Software Development
Agile and Lean Software DevelopmentTathagat Varma
 
DevOps Primer : Presented by Uday Kumar
DevOps Primer : Presented by Uday KumarDevOps Primer : Presented by Uday Kumar
DevOps Primer : Presented by Uday KumaroGuild .
 
Agile Methodology Vs. Others by Sara Berrada
Agile Methodology Vs. Others by Sara BerradaAgile Methodology Vs. Others by Sara Berrada
Agile Methodology Vs. Others by Sara BerradaAgile ME
 
Agile methodologiesvswaterfall
Agile methodologiesvswaterfallAgile methodologiesvswaterfall
Agile methodologiesvswaterfallMuthu Natarajan
 
Introduction to Agile Values & Principles
Introduction to Agile Values & PrinciplesIntroduction to Agile Values & Principles
Introduction to Agile Values & PrinciplesAndreea Visanoiu
 
DCSUG - Finding Lean in Agile
DCSUG - Finding Lean in AgileDCSUG - Finding Lean in Agile
DCSUG - Finding Lean in AgileExcella
 
Sgin2013 scrum accomplished-industrialagilecasestudy-avinashrao
Sgin2013 scrum accomplished-industrialagilecasestudy-avinashraoSgin2013 scrum accomplished-industrialagilecasestudy-avinashrao
Sgin2013 scrum accomplished-industrialagilecasestudy-avinashraoIndia Scrum Enthusiasts Community
 
1221 raise expectations_for_the_ always_on_enterprise
1221 raise expectations_for_the_ always_on_enterprise1221 raise expectations_for_the_ always_on_enterprise
1221 raise expectations_for_the_ always_on_enterpriseScott Simmons
 

What's hot (20)

When agility meets software quality
When agility meets software qualityWhen agility meets software quality
When agility meets software quality
 
Introduction to scrum
Introduction to scrumIntroduction to scrum
Introduction to scrum
 
The Agile Movement
The Agile MovementThe Agile Movement
The Agile Movement
 
Agile Software Development and DevOps 21092019
Agile Software Development and DevOps 21092019Agile Software Development and DevOps 21092019
Agile Software Development and DevOps 21092019
 
Agile software development
Agile software developmentAgile software development
Agile software development
 
Applying both of waterfall and iterative development
Applying both of waterfall and iterative developmentApplying both of waterfall and iterative development
Applying both of waterfall and iterative development
 
What do the "Cool Kids" know about DevOps?
What do the "Cool Kids" know about DevOps?What do the "Cool Kids" know about DevOps?
What do the "Cool Kids" know about DevOps?
 
Sustainable SW Development
Sustainable SW DevelopmentSustainable SW Development
Sustainable SW Development
 
DevOps Services Offerings from Rational Lab Services
DevOps Services Offerings from Rational Lab ServicesDevOps Services Offerings from Rational Lab Services
DevOps Services Offerings from Rational Lab Services
 
Agile and Lean Software Development
Agile and Lean Software DevelopmentAgile and Lean Software Development
Agile and Lean Software Development
 
DevOps Primer : Presented by Uday Kumar
DevOps Primer : Presented by Uday KumarDevOps Primer : Presented by Uday Kumar
DevOps Primer : Presented by Uday Kumar
 
Agile Methodology Vs. Others by Sara Berrada
Agile Methodology Vs. Others by Sara BerradaAgile Methodology Vs. Others by Sara Berrada
Agile Methodology Vs. Others by Sara Berrada
 
Agile methodologiesvswaterfall
Agile methodologiesvswaterfallAgile methodologiesvswaterfall
Agile methodologiesvswaterfall
 
Introduction to Agile Values & Principles
Introduction to Agile Values & PrinciplesIntroduction to Agile Values & Principles
Introduction to Agile Values & Principles
 
Agile
AgileAgile
Agile
 
Are you Agile enough?
Are you Agile enough?Are you Agile enough?
Are you Agile enough?
 
Finding Lean in Agile by Adam Parker
Finding Lean in Agile by Adam ParkerFinding Lean in Agile by Adam Parker
Finding Lean in Agile by Adam Parker
 
DCSUG - Finding Lean in Agile
DCSUG - Finding Lean in AgileDCSUG - Finding Lean in Agile
DCSUG - Finding Lean in Agile
 
Sgin2013 scrum accomplished-industrialagilecasestudy-avinashrao
Sgin2013 scrum accomplished-industrialagilecasestudy-avinashraoSgin2013 scrum accomplished-industrialagilecasestudy-avinashrao
Sgin2013 scrum accomplished-industrialagilecasestudy-avinashrao
 
1221 raise expectations_for_the_ always_on_enterprise
1221 raise expectations_for_the_ always_on_enterprise1221 raise expectations_for_the_ always_on_enterprise
1221 raise expectations_for_the_ always_on_enterprise
 

Similar to Agile Database Development - SDC2012

Scrum Bangalore 18th Meetup - October 15, 2016 - Agile Architecture - Deepak ...
Scrum Bangalore 18th Meetup - October 15, 2016 - Agile Architecture - Deepak ...Scrum Bangalore 18th Meetup - October 15, 2016 - Agile Architecture - Deepak ...
Scrum Bangalore 18th Meetup - October 15, 2016 - Agile Architecture - Deepak ...Scrum Bangalore
 
Introduction to Agile Software Development Process
Introduction to Agile Software Development ProcessIntroduction to Agile Software Development Process
Introduction to Agile Software Development ProcessSoftware Park Thailand
 
Heart of agile by Pierre Hervouet
Heart of agile by Pierre HervouetHeart of agile by Pierre Hervouet
Heart of agile by Pierre HervouetAgile ME
 
Introduction To Agile Refresh Savannah July20 2010 V1 4
Introduction To Agile Refresh Savannah July20 2010 V1 4Introduction To Agile Refresh Savannah July20 2010 V1 4
Introduction To Agile Refresh Savannah July20 2010 V1 4Marvin Heery
 
Agile Overview Session
Agile Overview SessionAgile Overview Session
Agile Overview SessionBahaa Farouk
 
10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust
10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust
10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_custdennisn129
 
DevOps Online Training
DevOps Online Training DevOps Online Training
DevOps Online Training VijayVijji8
 
DevOps Online Training
DevOps Online TrainingDevOps Online Training
DevOps Online TrainingVijayVijji8
 
Agile Development Overview
Agile Development OverviewAgile Development Overview
Agile Development OverviewMark Kovacevich
 
Agile Software Development Approaches
Agile Software Development ApproachesAgile Software Development Approaches
Agile Software Development Approachesdcsunu
 
Agile Development Overview
Agile Development OverviewAgile Development Overview
Agile Development Overviewguestb4c770
 
Dev ops online training pdf
Dev ops online training pdfDev ops online training pdf
Dev ops online training pdfSayyedYusufali
 
Devops training and placement in hyderabad
Devops training and placement in hyderabadDevops training and placement in hyderabad
Devops training and placement in hyderabadVamsiNihal
 

Similar to Agile Database Development - SDC2012 (20)

module I.pptx
module I.pptxmodule I.pptx
module I.pptx
 
Scrum Bangalore 18th Meetup - October 15, 2016 - Agile Architecture - Deepak ...
Scrum Bangalore 18th Meetup - October 15, 2016 - Agile Architecture - Deepak ...Scrum Bangalore 18th Meetup - October 15, 2016 - Agile Architecture - Deepak ...
Scrum Bangalore 18th Meetup - October 15, 2016 - Agile Architecture - Deepak ...
 
Introduction to Agile Software Development Process
Introduction to Agile Software Development ProcessIntroduction to Agile Software Development Process
Introduction to Agile Software Development Process
 
Agile 101
Agile 101 Agile 101
Agile 101
 
Web engineering
Web engineeringWeb engineering
Web engineering
 
Heart of agile by Pierre Hervouet
Heart of agile by Pierre HervouetHeart of agile by Pierre Hervouet
Heart of agile by Pierre Hervouet
 
Devops Mindset Essentials
Devops Mindset EssentialsDevops Mindset Essentials
Devops Mindset Essentials
 
Introduction To Agile Refresh Savannah July20 2010 V1 4
Introduction To Agile Refresh Savannah July20 2010 V1 4Introduction To Agile Refresh Savannah July20 2010 V1 4
Introduction To Agile Refresh Savannah July20 2010 V1 4
 
Lect7
Lect7Lect7
Lect7
 
Lect7
Lect7Lect7
Lect7
 
Agile Overview Session
Agile Overview SessionAgile Overview Session
Agile Overview Session
 
10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust
10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust
10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust
 
DevOps Online Training
DevOps Online Training DevOps Online Training
DevOps Online Training
 
DevOps Online Training
DevOps Online TrainingDevOps Online Training
DevOps Online Training
 
Agile Development Overview
Agile Development OverviewAgile Development Overview
Agile Development Overview
 
Agile Software Development Approaches
Agile Software Development ApproachesAgile Software Development Approaches
Agile Software Development Approaches
 
Agile Development Overview
Agile Development OverviewAgile Development Overview
Agile Development Overview
 
A Software Engineer
A Software EngineerA Software Engineer
A Software Engineer
 
Dev ops online training pdf
Dev ops online training pdfDev ops online training pdf
Dev ops online training pdf
 
Devops training and placement in hyderabad
Devops training and placement in hyderabadDevops training and placement in hyderabad
Devops training and placement in hyderabad
 

More from Jose Luis Soria

Project Portfolio Management with Kanban in an international company
Project Portfolio Management with Kanban in an international companyProject Portfolio Management with Kanban in an international company
Project Portfolio Management with Kanban in an international companyJose Luis Soria
 
Lean Kanban at Ria - Lean Kanban Southern Europe 2015
Lean Kanban at Ria - Lean Kanban Southern Europe 2015Lean Kanban at Ria - Lean Kanban Southern Europe 2015
Lean Kanban at Ria - Lean Kanban Southern Europe 2015Jose Luis Soria
 
Things to do with the time you’ll save thanks to VSO
Things to do with the time you’ll save thanks to VSO Things to do with the time you’ll save thanks to VSO
Things to do with the time you’ll save thanks to VSO Jose Luis Soria
 
Jose Luis Soria - Codemotion 2014 - Designing a release pipeline
Jose Luis Soria - Codemotion 2014 - Designing a release pipelineJose Luis Soria - Codemotion 2014 - Designing a release pipeline
Jose Luis Soria - Codemotion 2014 - Designing a release pipelineJose Luis Soria
 
Jose Luis Soria - XP2014 - Designing a Release Pipeline
Jose Luis Soria - XP2014 - Designing a Release PipelineJose Luis Soria - XP2014 - Designing a Release Pipeline
Jose Luis Soria - XP2014 - Designing a Release PipelineJose Luis Soria
 
Jose Luis Soria - Microsoft Plataforma Empresarial 2014 - ALM como factor dif...
Jose Luis Soria - Microsoft Plataforma Empresarial 2014 - ALM como factor dif...Jose Luis Soria - Microsoft Plataforma Empresarial 2014 - ALM como factor dif...
Jose Luis Soria - Microsoft Plataforma Empresarial 2014 - ALM como factor dif...Jose Luis Soria
 
Alm Forum 2014 - Jose Luis Soria - Patterns and anti-patterns for (Continuous...
Alm Forum 2014 - Jose Luis Soria - Patterns and anti-patterns for (Continuous...Alm Forum 2014 - Jose Luis Soria - Patterns and anti-patterns for (Continuous...
Alm Forum 2014 - Jose Luis Soria - Patterns and anti-patterns for (Continuous...Jose Luis Soria
 
Proyectos ágiles con Team Foundation Server - COITT
Proyectos ágiles con Team Foundation Server - COITTProyectos ágiles con Team Foundation Server - COITT
Proyectos ágiles con Team Foundation Server - COITTJose Luis Soria
 
ALM Tour 2013 - Responderá mi aplicación en el mundo real?
ALM Tour 2013 - Responderá mi aplicación en el mundo real?ALM Tour 2013 - Responderá mi aplicación en el mundo real?
ALM Tour 2013 - Responderá mi aplicación en el mundo real?Jose Luis Soria
 
ALM Tour 2013 - Proyectos bajo control - asegurando la entrega de valor
ALM Tour 2013 - Proyectos bajo control - asegurando la entrega de valorALM Tour 2013 - Proyectos bajo control - asegurando la entrega de valor
ALM Tour 2013 - Proyectos bajo control - asegurando la entrega de valorJose Luis Soria
 
ALM Tour 2013 - Entregar a tiempo y sin errores
ALM Tour 2013 - Entregar a tiempo y sin erroresALM Tour 2013 - Entregar a tiempo y sin errores
ALM Tour 2013 - Entregar a tiempo y sin erroresJose Luis Soria
 
Bcn devcon jose luis soria - patterns & antipatterns for delivery
Bcn devcon   jose luis soria - patterns & antipatterns for deliveryBcn devcon   jose luis soria - patterns & antipatterns for delivery
Bcn devcon jose luis soria - patterns & antipatterns for deliveryJose Luis Soria
 
Real World Agile Roadshow 2013 - Planificación y Arquitectura Ágil
Real World Agile Roadshow 2013 - Planificación y Arquitectura ÁgilReal World Agile Roadshow 2013 - Planificación y Arquitectura Ágil
Real World Agile Roadshow 2013 - Planificación y Arquitectura ÁgilJose Luis Soria
 
ALM Summit 3 - Setting up a Continuous Delivery Deployment Pipeline with TFS
ALM Summit 3 - Setting up a Continuous Delivery Deployment Pipeline with TFSALM Summit 3 - Setting up a Continuous Delivery Deployment Pipeline with TFS
ALM Summit 3 - Setting up a Continuous Delivery Deployment Pipeline with TFSJose Luis Soria
 
Roadshow ALM Calidad 2013 - Infraestructura de pruebas - Jose Luis Soria
Roadshow ALM Calidad 2013 - Infraestructura de pruebas - Jose Luis SoriaRoadshow ALM Calidad 2013 - Infraestructura de pruebas - Jose Luis Soria
Roadshow ALM Calidad 2013 - Infraestructura de pruebas - Jose Luis SoriaJose Luis Soria
 
Jose Luis Soria - Visual Studio Tour Plain Concepts - DevOps
Jose Luis Soria - Visual Studio Tour Plain Concepts - DevOpsJose Luis Soria - Visual Studio Tour Plain Concepts - DevOps
Jose Luis Soria - Visual Studio Tour Plain Concepts - DevOpsJose Luis Soria
 
Visual Studio Tour Plain Concepts - ALM para Windows 8
Visual Studio Tour Plain Concepts - ALM para Windows 8Visual Studio Tour Plain Concepts - ALM para Windows 8
Visual Studio Tour Plain Concepts - ALM para Windows 8Jose Luis Soria
 
Jose Luis Soria - CAS2012 - Cargo cult Agile training & coaching
Jose Luis Soria - CAS2012 - Cargo cult Agile training & coachingJose Luis Soria - CAS2012 - Cargo cult Agile training & coaching
Jose Luis Soria - CAS2012 - Cargo cult Agile training & coachingJose Luis Soria
 
Cargo Cult Agile training & coaching
Cargo Cult Agile training & coachingCargo Cult Agile training & coaching
Cargo Cult Agile training & coachingJose Luis Soria
 
Destino la Nube 2012 - ALM para Azure
Destino la Nube 2012 - ALM para AzureDestino la Nube 2012 - ALM para Azure
Destino la Nube 2012 - ALM para AzureJose Luis Soria
 

More from Jose Luis Soria (20)

Project Portfolio Management with Kanban in an international company
Project Portfolio Management with Kanban in an international companyProject Portfolio Management with Kanban in an international company
Project Portfolio Management with Kanban in an international company
 
Lean Kanban at Ria - Lean Kanban Southern Europe 2015
Lean Kanban at Ria - Lean Kanban Southern Europe 2015Lean Kanban at Ria - Lean Kanban Southern Europe 2015
Lean Kanban at Ria - Lean Kanban Southern Europe 2015
 
Things to do with the time you’ll save thanks to VSO
Things to do with the time you’ll save thanks to VSO Things to do with the time you’ll save thanks to VSO
Things to do with the time you’ll save thanks to VSO
 
Jose Luis Soria - Codemotion 2014 - Designing a release pipeline
Jose Luis Soria - Codemotion 2014 - Designing a release pipelineJose Luis Soria - Codemotion 2014 - Designing a release pipeline
Jose Luis Soria - Codemotion 2014 - Designing a release pipeline
 
Jose Luis Soria - XP2014 - Designing a Release Pipeline
Jose Luis Soria - XP2014 - Designing a Release PipelineJose Luis Soria - XP2014 - Designing a Release Pipeline
Jose Luis Soria - XP2014 - Designing a Release Pipeline
 
Jose Luis Soria - Microsoft Plataforma Empresarial 2014 - ALM como factor dif...
Jose Luis Soria - Microsoft Plataforma Empresarial 2014 - ALM como factor dif...Jose Luis Soria - Microsoft Plataforma Empresarial 2014 - ALM como factor dif...
Jose Luis Soria - Microsoft Plataforma Empresarial 2014 - ALM como factor dif...
 
Alm Forum 2014 - Jose Luis Soria - Patterns and anti-patterns for (Continuous...
Alm Forum 2014 - Jose Luis Soria - Patterns and anti-patterns for (Continuous...Alm Forum 2014 - Jose Luis Soria - Patterns and anti-patterns for (Continuous...
Alm Forum 2014 - Jose Luis Soria - Patterns and anti-patterns for (Continuous...
 
Proyectos ágiles con Team Foundation Server - COITT
Proyectos ágiles con Team Foundation Server - COITTProyectos ágiles con Team Foundation Server - COITT
Proyectos ágiles con Team Foundation Server - COITT
 
ALM Tour 2013 - Responderá mi aplicación en el mundo real?
ALM Tour 2013 - Responderá mi aplicación en el mundo real?ALM Tour 2013 - Responderá mi aplicación en el mundo real?
ALM Tour 2013 - Responderá mi aplicación en el mundo real?
 
ALM Tour 2013 - Proyectos bajo control - asegurando la entrega de valor
ALM Tour 2013 - Proyectos bajo control - asegurando la entrega de valorALM Tour 2013 - Proyectos bajo control - asegurando la entrega de valor
ALM Tour 2013 - Proyectos bajo control - asegurando la entrega de valor
 
ALM Tour 2013 - Entregar a tiempo y sin errores
ALM Tour 2013 - Entregar a tiempo y sin erroresALM Tour 2013 - Entregar a tiempo y sin errores
ALM Tour 2013 - Entregar a tiempo y sin errores
 
Bcn devcon jose luis soria - patterns & antipatterns for delivery
Bcn devcon   jose luis soria - patterns & antipatterns for deliveryBcn devcon   jose luis soria - patterns & antipatterns for delivery
Bcn devcon jose luis soria - patterns & antipatterns for delivery
 
Real World Agile Roadshow 2013 - Planificación y Arquitectura Ágil
Real World Agile Roadshow 2013 - Planificación y Arquitectura ÁgilReal World Agile Roadshow 2013 - Planificación y Arquitectura Ágil
Real World Agile Roadshow 2013 - Planificación y Arquitectura Ágil
 
ALM Summit 3 - Setting up a Continuous Delivery Deployment Pipeline with TFS
ALM Summit 3 - Setting up a Continuous Delivery Deployment Pipeline with TFSALM Summit 3 - Setting up a Continuous Delivery Deployment Pipeline with TFS
ALM Summit 3 - Setting up a Continuous Delivery Deployment Pipeline with TFS
 
Roadshow ALM Calidad 2013 - Infraestructura de pruebas - Jose Luis Soria
Roadshow ALM Calidad 2013 - Infraestructura de pruebas - Jose Luis SoriaRoadshow ALM Calidad 2013 - Infraestructura de pruebas - Jose Luis Soria
Roadshow ALM Calidad 2013 - Infraestructura de pruebas - Jose Luis Soria
 
Jose Luis Soria - Visual Studio Tour Plain Concepts - DevOps
Jose Luis Soria - Visual Studio Tour Plain Concepts - DevOpsJose Luis Soria - Visual Studio Tour Plain Concepts - DevOps
Jose Luis Soria - Visual Studio Tour Plain Concepts - DevOps
 
Visual Studio Tour Plain Concepts - ALM para Windows 8
Visual Studio Tour Plain Concepts - ALM para Windows 8Visual Studio Tour Plain Concepts - ALM para Windows 8
Visual Studio Tour Plain Concepts - ALM para Windows 8
 
Jose Luis Soria - CAS2012 - Cargo cult Agile training & coaching
Jose Luis Soria - CAS2012 - Cargo cult Agile training & coachingJose Luis Soria - CAS2012 - Cargo cult Agile training & coaching
Jose Luis Soria - CAS2012 - Cargo cult Agile training & coaching
 
Cargo Cult Agile training & coaching
Cargo Cult Agile training & coachingCargo Cult Agile training & coaching
Cargo Cult Agile training & coaching
 
Destino la Nube 2012 - ALM para Azure
Destino la Nube 2012 - ALM para AzureDestino la Nube 2012 - ALM para Azure
Destino la Nube 2012 - ALM para Azure
 

Recently uploaded

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
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
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
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
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
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
 

Recently uploaded (20)

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
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
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
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
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
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
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
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
 

Agile Database Development - SDC2012

  • 1. Agile Database development (with Visual Studio) Jose Luis Soria Göteborg, April 2012
  • 2. Jose Luis Soria • ALM Team Lead at Plain Concepts • Professional Scrum Trainer at scrum.org jlsoria@plainconcepts.com http://geeks.ms/blogs/jlsoria @jlsoriat
  • 3. Agenda • Database development • Agile development • Agile database development • Practices and tools
  • 5. How databases work • Databases are different from application code – Application code is not changed while running (even in dynamic languages, changes are not persisted) – Databases are changed while running • Changes in data or database objects, made while the database is online, have to be taken into account while developing
  • 6.
  • 7. Databases are changed while running Take running database changes into account while developing. Have a proper policy for changes in place
  • 8. Databases across environments • We have to deal with several environments while developing • Each environment has its own database • These databases are used for different things • These databases are in different states and versions, and contain different data
  • 9. Databases are different across environments Be prepared to change different things in different databases
  • 10. Applying changes to databases • Most times, any particular change can only be made one time. Once the change has been made, it is not possible to make it again • Changes are difficult to be undone
  • 11. Changes to databases are lasting and hard to be undone Have a proper policy for changes in place. Have a proper policy for undoing changes in place.
  • 14. Twelve principles of Agile Our highest priority is to satisfy the customer Working software is the primary measure of through early and continuous delivery of progress. valuable software. Welcome changing requirements, even late Agile processes promote sustainable in development. Agile processes harness development. The sponsors, developers, and change for the customer's competitive users should be able to maintain a constant advantage. pace indefinitely. Deliver working software frequently, from a Continuous attention to technical excellence couple of weeks to a couple of months, with and good design enhances agility. a preference to the shorter timescale. Business people and developers must work Simplicity--the art of maximizing the amount together daily throughout the project. of work not done--is essential. Build projects around motivated individuals. The best architectures, requirements, and Give them the environment and support they designs emerge from self-organizing teams. need, and trust them to get the job done. The most efficient and effective method of At regular intervals, the team reflects on how conveying information to and within a to become more effective, then tunes and development team is face-to-face adjusts its behavior accordingly. conversation.
  • 15. Twelve principles of Agile Our highest priority is to satisfy the customer Working software is the primary measure of through early and continuous delivery of progress. valuable software. Welcome changing requirements, even late Agile processes promote sustainable in development. Agile processes harness development. The sponsors, developers, and change for the customer's competitive users should be able to maintain a constant advantage. pace indefinitely. Deliver working software frequently, from a Continuous attention to technical excellence couple of weeks to a couple of months, with and good design enhances agility. a preference to the shorter timescale. Business people and developers must work Simplicity--the art of maximizing the amount together daily throughout the project. of work not done--is essential. Build projects around motivated individuals. The best architectures, requirements, and Give them the environment and support they designs emerge from self-organizing teams. need, and trust them to get the job done. The most efficient and effective method of At regular intervals, the team reflects on how conveying information to and within a to become more effective, then tunes and development team is face-to-face adjusts its behavior accordingly. conversation.
  • 16. Agile database development Early and continuous delivery of Working software is the primary valuable software. measure of progress. Welcome changing requirements. Sustainable development, constant pace. Deliver working software Continuous attention to technical frequently. excellence and good design. Business people and developers Simplicity. must work together. Build projects around motivated The best architectures, individuals. Give them the requirements, and designs emerge. environment and support they need.
  • 17. What does it mean?
  • 18. Early and continuous delivery of valuable software Ability to deliver in a simple and quick way
  • 19. Welcome changing requirements Ability to introduce changes at any moment
  • 20. Deliver working software frequently Ability to deliver in a simple and quick way
  • 21. Business people and developers must work together Development depends on business
  • 22. Build projects around motivated individuals. Give them the environment they need Proper environment and tools
  • 23. Working software is the primary measure of progress Development depends on business. Keep always a functional version of the software
  • 24. Sustainable development. Constant pace Ability to introduce changes at any moment
  • 25. Continuous attention to technical excellence and good design Best practices: CI, refactoring, TDD…
  • 26. Simplicity Reuse. Work in small chunks
  • 27. The best architectures, requirements and designs emerge Ability to introduce changes at any moment
  • 29. Agile database development • Be able to deliver database changes in a simple and quick way • Be able to introduce database changes at any moment • Make database development dependent on business • Set up a proper environment and tools • Keep always a functional version of the database • Use best practices: CI, refactoring, TDD… • Reuse • Work in small chunks • Take running database changes into account while developing • Have a proper policy for changes in place • Have a proper policy for undoing changes in place • Be prepared to change different things in different databases
  • 30. How to do it?: practices & tools
  • 31. Practices and tools • Are going to help us to do database development properly • Tools and demos for this session deal with relational databases (SQL Server). But principles are the same for other scenarios: – NoSQL (MongoDB, Azure Storage…) – ORMs (Entity Framework, NHibernate…) • Most things will also work with VS 11 and SQL Server Data Tools
  • 32. Version control • Treat database code like any other source code – Enable several people to work on the same code base – Make modifications available to the rest of the team in a controlled way – Make it possible to set up Continuous Integration – Use versioning features: compare, restore old version, combine… • Use the same code, schema or approach to migrate any database in your environment
  • 34. Coding aids • Visual Studio provides several aids for working with database code – Intellisense – Tracking and resolving dependencies – Static analysis – Refactoring
  • 36. Isolated development environment • Have each developer work in his own environment, which includes the database – Self-contained – Resembling production environment – Automated (deployment, testing, etc.)
  • 38. Unit tests • Sometimes, database code can contain logic • Database code can benefit from automated unit testing the same way as application code – Find problems early – Facilitate change – Simplify integration – Self-document – Drive the design
  • 40. Continuous Integration • Early warning of conflicting changes • Immediate unit testing of all changes • Constant availability of a "current" build for testing, demo, or release purposes • Immediate feedback • Modular, less complex code • Quality code
  • 41. Continuous Integration principles • Maintain a code repository • Automate the build • Make the build self-testing • Everyone commits to the baseline every day • Every commit (to baseline) should be built • Keep the build fast • Test in a clone of the production environment • Make it easy to get the latest deliverables • Everyone can see the results of the latest build • Automate deployment
  • 42. Continuous Integration principles • Maintain a code repository • Automate the build • Make the build self-testing • Everyone commits to the baseline every day • Every commit (to baseline) should be built • Keep the build fast • Test in a clone of the production environment • Make it easy to get the latest deliverables • Everyone can see the results of the latest build • Automate deployment
  • 44. Requirements drive changes • Make changes in small chunks • Changes are originated by requirements • Make different changes for different requirements
  • 45. Continuous deployment to any environment • Automating database migrations to any environment helps us: – Easily roll forward or back – Minimize disruption for changes – Maximize reliability of deployment process – Work incrementally (including DBAs)
  • 46. Continuous deployment process • Obtain the correct version of the database • Prepare the environment • Initialize database and instance • Initialize schema • Initialize user credentials • Populate database with reference data • Have a rollback mechanism in place
  • 48. Database sync vs. delta scripts • Syncing databases can lead to uncontrolled changes across environments • It’s better to make changes the same way for all the environments • We can use numerated delta scripts and tools like DBDeploy
  • 49. Database sync vs. delta scripts • Delta scripts – Great for greenfield development and Continuous Integration • Database sync – For legacy databases – For non-agile, non-CI projects – For changing data – When you don’t have database under version control • Other options – ORMs usually have their own mechanism to deal with database changes. For example, migrations in Entity Framework
  • 50. Dealing with data • Reference data can be scripted • Changes (delta scripts) should deal with existing data • There are several ways to obtain data for testing – Using the application API – Using backups – Using data comparison tools – Using data generation tools
  • 51. Have we covered everything? • Be able to deliver database changes in a simple and quick way • Be able to introduce database changes at any moment • Make database development dependent on business • Set up a proper environment and tools • Keep always a functional version of the database • Use best practices: CI, refactoring, TDD… • Reuse • Work in small chunks • Take running database changes into account while developing • Have a proper policy for changes in place • Have a proper policy for undoing changes in place • Be prepared to change different things in different databases
  • 52. Any questions? • Visual Studio Database tools http://bit.ly/dyN3wv • VSDBCMD http://bit.ly/vB6G1 • Database changes done right http://bit.ly/wTOY01 • Continuous delivery http://continuousdelivery.com/ jlsoria@plainconcepts.com @jlsoriat