SlideShare a Scribd company logo
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
Agile Database Development - SDC2012
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

Window server 2008
Window server 2008Window server 2008
Window server 2008
IGZ Software house
 
CSS L13 STRUCTURED CABLING SYSTEM
CSS L13 STRUCTURED CABLING SYSTEMCSS L13 STRUCTURED CABLING SYSTEM
CSS L13 STRUCTURED CABLING SYSTEM
Marvin Bronoso
 
CSS Module 6 - Configure a DHCP Server
CSS Module 6 - Configure a DHCP ServerCSS Module 6 - Configure a DHCP Server
CSS Module 6 - Configure a DHCP Server
kenjifritz
 
FAT vs NTFS
FAT vs NTFSFAT vs NTFS
FAT vs NTFS
Arshad Qureshi
 
Legal and social impacts on ICT
Legal and social impacts on ICTLegal and social impacts on ICT
Legal and social impacts on ICT
Middle East International School
 
Diagnostic software tools
Diagnostic software toolsDiagnostic software tools
Diagnostic software tools
Celeste Dela Cruz
 
How to install windows 7 operating system
How to install  windows 7 operating system How to install  windows 7 operating system
How to install windows 7 operating system
MLG College of Learning, Inc
 
Networking (2)
Networking (2)Networking (2)
Networking (2)
LALIT MAHATO
 
Systems Administration
Systems AdministrationSystems Administration
Systems Administration
Mark John Lado, MIT
 
iGCSE networks
iGCSE networksiGCSE networks
iGCSE networks
ictmaverick
 
HNS L5 Curriculum.pdf
HNS L5 Curriculum.pdfHNS L5 Curriculum.pdf
HNS L5 Curriculum.pdf
teshomeneguse
 
Beginner’s Guide to Windows Installer XML (WiX)
Beginner’s Guide to Windows Installer XML (WiX)Beginner’s Guide to Windows Installer XML (WiX)
Beginner’s Guide to Windows Installer XML (WiX)
Alek Davis
 
2.2
2.22.2
Configure Computer System and Network
Configure Computer System and NetworkConfigure Computer System and Network
Configure Computer System and Network
EILLEN IVY PORTUGUEZ
 
Install Windows Server 2008 Step-by-Step
Install Windows Server 2008 Step-by-StepInstall Windows Server 2008 Step-by-Step
Install Windows Server 2008 Step-by-Step
Mehdi Poustchi Amin
 
Windows 7
Windows 7Windows 7
Windows 7
Akul Kapadiya
 
El Filibusterismo Kabanata 14 Sa Bahay ng Mga Estudyante
El Filibusterismo Kabanata 14 Sa Bahay ng Mga EstudyanteEl Filibusterismo Kabanata 14 Sa Bahay ng Mga Estudyante
El Filibusterismo Kabanata 14 Sa Bahay ng Mga Estudyante
Charlize Marie
 
LAN Cabling
LAN CablingLAN Cabling
LAN Cabling
Sef Cambaliza
 
Presentation on GAD for the POLO personnel
Presentation on GAD for the POLO personnelPresentation on GAD for the POLO personnel
Presentation on GAD for the POLO personnel
DOLEe-Learning
 
SYSTEM ADMINISTRATION AND MAINTENANCE NOTES PERIYAR UNIVERSITY
SYSTEM ADMINISTRATION AND MAINTENANCE NOTES PERIYAR UNIVERSITYSYSTEM ADMINISTRATION AND MAINTENANCE NOTES PERIYAR UNIVERSITY
SYSTEM ADMINISTRATION AND MAINTENANCE NOTES PERIYAR UNIVERSITY
GOKUL SREE
 

What's hot (20)

Window server 2008
Window server 2008Window server 2008
Window server 2008
 
CSS L13 STRUCTURED CABLING SYSTEM
CSS L13 STRUCTURED CABLING SYSTEMCSS L13 STRUCTURED CABLING SYSTEM
CSS L13 STRUCTURED CABLING SYSTEM
 
CSS Module 6 - Configure a DHCP Server
CSS Module 6 - Configure a DHCP ServerCSS Module 6 - Configure a DHCP Server
CSS Module 6 - Configure a DHCP Server
 
FAT vs NTFS
FAT vs NTFSFAT vs NTFS
FAT vs NTFS
 
Legal and social impacts on ICT
Legal and social impacts on ICTLegal and social impacts on ICT
Legal and social impacts on ICT
 
Diagnostic software tools
Diagnostic software toolsDiagnostic software tools
Diagnostic software tools
 
How to install windows 7 operating system
How to install  windows 7 operating system How to install  windows 7 operating system
How to install windows 7 operating system
 
Networking (2)
Networking (2)Networking (2)
Networking (2)
 
Systems Administration
Systems AdministrationSystems Administration
Systems Administration
 
iGCSE networks
iGCSE networksiGCSE networks
iGCSE networks
 
HNS L5 Curriculum.pdf
HNS L5 Curriculum.pdfHNS L5 Curriculum.pdf
HNS L5 Curriculum.pdf
 
Beginner’s Guide to Windows Installer XML (WiX)
Beginner’s Guide to Windows Installer XML (WiX)Beginner’s Guide to Windows Installer XML (WiX)
Beginner’s Guide to Windows Installer XML (WiX)
 
2.2
2.22.2
2.2
 
Configure Computer System and Network
Configure Computer System and NetworkConfigure Computer System and Network
Configure Computer System and Network
 
Install Windows Server 2008 Step-by-Step
Install Windows Server 2008 Step-by-StepInstall Windows Server 2008 Step-by-Step
Install Windows Server 2008 Step-by-Step
 
Windows 7
Windows 7Windows 7
Windows 7
 
El Filibusterismo Kabanata 14 Sa Bahay ng Mga Estudyante
El Filibusterismo Kabanata 14 Sa Bahay ng Mga EstudyanteEl Filibusterismo Kabanata 14 Sa Bahay ng Mga Estudyante
El Filibusterismo Kabanata 14 Sa Bahay ng Mga Estudyante
 
LAN Cabling
LAN CablingLAN Cabling
LAN Cabling
 
Presentation on GAD for the POLO personnel
Presentation on GAD for the POLO personnelPresentation on GAD for the POLO personnel
Presentation on GAD for the POLO personnel
 
SYSTEM ADMINISTRATION AND MAINTENANCE NOTES PERIYAR UNIVERSITY
SYSTEM ADMINISTRATION AND MAINTENANCE NOTES PERIYAR UNIVERSITYSYSTEM ADMINISTRATION AND MAINTENANCE NOTES PERIYAR UNIVERSITY
SYSTEM ADMINISTRATION AND MAINTENANCE NOTES PERIYAR UNIVERSITY
 

Similar to Agile Database Development - SDC2012

module I.pptx
module I.pptxmodule I.pptx
module I.pptx
NitinManne
 
DevOps, Agile methods and Continuous Improvement in the Software development ...
DevOps, Agile methods and Continuous Improvement in the Software development ...DevOps, Agile methods and Continuous Improvement in the Software development ...
DevOps, Agile methods and Continuous Improvement in the Software development ...
Paulo Traça
 
The Agile Movement
The Agile MovementThe Agile Movement
The Agile Movement
Fáber D. Giraldo
 
Fundamentals of Agile
Fundamentals of AgileFundamentals of Agile
Fundamentals of Agile
Zülfikar Karakaya
 
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 Process
Software Park Thailand
 
Agile 101
Agile 101 Agile 101
Agile 101
Vineet Shukla
 
When agility meets software quality
When agility meets software qualityWhen agility meets software quality
When agility meets software quality
Babak Khorrami
 
Web engineering
Web engineeringWeb engineering
Web engineering
Badrul Alam bulon
 
Heart of agile by Pierre Hervouet
Heart of agile by Pierre HervouetHeart of agile by Pierre Hervouet
Heart of agile by Pierre Hervouet
Agile ME
 
Devops Mindset Essentials
Devops Mindset EssentialsDevops Mindset Essentials
Devops Mindset Essentials
Willy-Peter Schaub
 
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
Marvin Heery
 
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
Scott Simmons
 
Lect7
Lect7Lect7
Lect7
Lect7Lect7
Agile Overview Session
Agile Overview SessionAgile Overview Session
Agile Overview Session
Bahaa 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_cust
dennisn129
 
DevOps Online Training
DevOps Online Training DevOps Online Training
DevOps Online Training
VijayVijji8
 
DevOps Online Training
DevOps Online TrainingDevOps Online Training
DevOps Online Training
VijayVijji8
 
Agile Development Overview
Agile Development OverviewAgile Development Overview
Agile Development Overview
Mark Kovacevich
 

Similar to Agile Database Development - SDC2012 (20)

module I.pptx
module I.pptxmodule I.pptx
module I.pptx
 
DevOps, Agile methods and Continuous Improvement in the Software development ...
DevOps, Agile methods and Continuous Improvement in the Software development ...DevOps, Agile methods and Continuous Improvement in the Software development ...
DevOps, Agile methods and Continuous Improvement in the Software development ...
 
The Agile Movement
The Agile MovementThe Agile Movement
The Agile Movement
 
Fundamentals of Agile
Fundamentals of AgileFundamentals of Agile
Fundamentals of Agile
 
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
 
When agility meets software quality
When agility meets software qualityWhen agility meets software quality
When agility meets software quality
 
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
 
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
 
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
 

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 company
Jose 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 2015
Jose 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 pipeline
Jose 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 Pipeline
Jose 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 - COITT
Jose 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 valor
Jose 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 errores
Jose 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 delivery
Jose 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 Ágil
Jose 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 TFS
Jose 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 Soria
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
Jose 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 8
Jose 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 & coaching
Jose Luis Soria
 
Cargo Cult Agile training & coaching
Cargo Cult Agile training & coachingCargo Cult Agile training & coaching
Cargo Cult Agile training & coaching
Jose 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 Azure
Jose 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

(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
Priyanka Aash
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
Emerging Tech
 
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptxDublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Kunal Gupta
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
SynapseIndia
 
find out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challengesfind out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challenges
huseindihon
 
"Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes...
"Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes..."Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes...
"Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes...
Anant Gupta
 
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
Priyanka Aash
 
Salesforce AI & Einstein Copilot Workshop
Salesforce AI & Einstein Copilot WorkshopSalesforce AI & Einstein Copilot Workshop
Salesforce AI & Einstein Copilot Workshop
CEPTES Software Inc
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
Kief Morris
 
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptxIntroduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
313mohammedarshad
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
HackersList
 
Opencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of MünsterOpencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of Münster
Matthias Neugebauer
 
CiscoIconsLibrary cours de réseau VLAN.ppt
CiscoIconsLibrary cours de réseau VLAN.pptCiscoIconsLibrary cours de réseau VLAN.ppt
CiscoIconsLibrary cours de réseau VLAN.ppt
moinahousna
 
Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
sunilverma7884
 
The Role of IoT in Australian Mobile App Development - PDF Guide
The Role of IoT in Australian Mobile App Development - PDF GuideThe Role of IoT in Australian Mobile App Development - PDF Guide
The Role of IoT in Australian Mobile App Development - PDF Guide
Shiv Technolabs
 
Evolution of iPaaS - simplify IT workloads to provide a unified view of data...
Evolution of iPaaS - simplify IT workloads to provide a unified view of  data...Evolution of iPaaS - simplify IT workloads to provide a unified view of  data...
Evolution of iPaaS - simplify IT workloads to provide a unified view of data...
Torry Harris
 
How to build a generative AI solution A step-by-step guide (2).pdf
How to build a generative AI solution A step-by-step guide (2).pdfHow to build a generative AI solution A step-by-step guide (2).pdf
How to build a generative AI solution A step-by-step guide (2).pdf
ChristopherTHyatt
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
ishalveerrandhawa1
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Mydbops
 
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
bhumivarma35300
 

Recently uploaded (20)

(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
 
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptxDublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
 
find out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challengesfind out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challenges
 
"Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes...
"Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes..."Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes...
"Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes...
 
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
 
Salesforce AI & Einstein Copilot Workshop
Salesforce AI & Einstein Copilot WorkshopSalesforce AI & Einstein Copilot Workshop
Salesforce AI & Einstein Copilot Workshop
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
 
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptxIntroduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
 
Opencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of MünsterOpencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of Münster
 
CiscoIconsLibrary cours de réseau VLAN.ppt
CiscoIconsLibrary cours de réseau VLAN.pptCiscoIconsLibrary cours de réseau VLAN.ppt
CiscoIconsLibrary cours de réseau VLAN.ppt
 
Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
 
The Role of IoT in Australian Mobile App Development - PDF Guide
The Role of IoT in Australian Mobile App Development - PDF GuideThe Role of IoT in Australian Mobile App Development - PDF Guide
The Role of IoT in Australian Mobile App Development - PDF Guide
 
Evolution of iPaaS - simplify IT workloads to provide a unified view of data...
Evolution of iPaaS - simplify IT workloads to provide a unified view of  data...Evolution of iPaaS - simplify IT workloads to provide a unified view of  data...
Evolution of iPaaS - simplify IT workloads to provide a unified view of data...
 
How to build a generative AI solution A step-by-step guide (2).pdf
How to build a generative AI solution A step-by-step guide (2).pdfHow to build a generative AI solution A step-by-step guide (2).pdf
How to build a generative AI solution A step-by-step guide (2).pdf
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
 
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
 

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
  • 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