Fighting the monster Agile development on top of a legacy database Gojko Adzic XpDay 2007 – London.

Slides:



Advertisements
Similar presentations
RNG – RSS News Generator Team Evensteven Phil LightBecky Vanderhoff Carol CoonLars Avery Madura MahenthiranChris Mamorella.
Advertisements

An open source QA stack testing tools for agile teams Presented by Aaron Evans
Continuous Integration (CI) By Jim Rush Version Control Build Test Report.
An Agile Retrospective Clinton Keith Overview Retrospective format What works (clear wins)? What doesn’t work so well? What do we need to start doing?
4/14/2015Fractal Technologies Confidential Fractal Technologies Validation Software & Services.
Interface Strategies and Methods.
Data transfers into a database First time system implementation –From a manual system Data warehousing projects Database version upgrade ERP projects Migration.
Effective Test Driven Database Development Gojko Adzic twitter.com/gojkoadzic.
© 2014 VMware Inc. All rights reserved. BlazeMeter Load Testing Solution with vCloud Air High-level Overview Jan 2015.
Jump into Release 1 Pepper. Goals for End of Class Project delivery Diagrams (new class & firm state, use, context, sequence) Agile cycles with SCRUM.
SLIM and the future of FitNesse Gojko Adzic
The Collections Keeper A collections management system Brian J. Mullen.
© 2004 Visible Systems Corporation. All rights reserved. 1 (800) 6VISIBLE Holistic View of the Enterprise Business Development Operations.
OPC - OLE For Process Control Paul C. Shafer Bently Nevada Corp.
Transitioning to XP or The Fanciful Opinions of Don Wells.
John Sadd Progress Fellow and OpenEdge Evangelist
INFORMATION SYSTEMS DPM ARCHITECT: STATUS AND NEXT STEPS Presented by Bartosz Ochocki Authored by Víctor Morilla Rome, May 2014.
Session-01. Hibernate Framework ? Why we use Hibernate ?
Unit Testing Tips and Tricks: Database Interaction Louis Thomas.
Copyright 2004, SPSS Inc. 1 Using the SPSS MR Data Model Sam Winstanley Solution Architect - SPSS 21 st January 2004.
Introduction to Continuous Integration Mike Roberts.
By John Boal  Continuous Integration [CI] ◦ Automating the build process ◦ Build the entire system each time any new.
Database Design and Introduction to SQL
MDB – Marketing Data Base – New Wave Group Case Study.
Agile Acceptance Testing Software development by example Gojko Adzic
Created by the Community for the Community BizTalk & Build.
Copyright BSPIN Agile Practices Benchmarking Case Study by Mazataz – Tesco.
Information Systems Chapter 5 Building the database Part 1. Unsing Access.
High-Availability Linux.  Reliability  Availability  Serviceability.
Framework Universal & Infinite Software Solution.
Visual Linker Final presentation.
Codeigniter is an open source web application. It occupies a very small amount of space in the memory and is most useful for developers who aim to develop.
15 Copyright © 2007, Oracle. All rights reserved. Performing Database Backups.
Increased Lower Cost. IT Services Customized Programming Data Processing Reports Mechanized Data Entry Server Support / PC Support Systems.
PHP Features. Features Clean syntax. Object-oriented fundamentals. An extensible architecture that encourages innovation. Support for both current and.
Effective Test Driven Database Development Gojko Adzic
2005 Epocrates, Inc. All rights reserved. Integrating XML with legacy relational data for publishing on handheld devices David A. Lee Senior member of.
Handling complexity (mess?) integration or federation Stephen Todd IBM WebSphere MQ e-Science Institute: Edinburgh 14 October 2003 The opinions expressed.
Effective Test Driven Database Development Gojko Adzic
Implementing a Domain-Specific Modeling Environment For a Family of Thick-Client GUI Components Milosz Muszynski Tanner AG
Copyright © 2003 by Release Engineering Inc. All Rights Reserved. Software Manufacturing: Leveraging Release Management Sandy Currier CTO.
Strukt, Build Changes and Backend Support Jonathan Custance James Green John Thomson Stuart Simms OnApp Ltd.
Introducing Exadel Flamingo JavaOne, May 2008 Igor Polevoy: Starting at 7:00PM.
Water Conservation
Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Testing Spring Applications Unit Testing.
Real World SQL Server Data Tools Benjamin
ThinStructure: An Overview Support for ThinStructure demonstration. Jean Georges Perrin – Annandale, 21 st April 2004.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Chapter 13 A & B Programming Languages and the.
ORM Basics Repository Pattern, Models, Entity Manager Ivan Yonkov Technical Trainer Software University
©Ian Sommerville 2007COTS-based System Engineering Slide 1 COTS-based System Engineering.
Continuous Delivery and Team Foundation Server 2013 Ognjen Bajić Ana Roje Ivančić Ekobit.
Developing SQL/Server database in Visual Studio Introducing SQL /Server Data Tools Peter Lu.Net Practices Director Principle Architect Nexient March 19.
Avoiding the Pitfalls of Database Change Automation Cindy Bean Sr. Software Consultant DBmaestro SQLSaturday #514 – Houston, May 14, 2016.
Enterprise PHP PHP applications in the big business.
TDD Unit tests from a slightly different point of view Katie Dwyer.
New Technology: Why, What ,How
Proposal for ONAP Development Best Practices Gildas Lanilis – ONAP Release Manager June 23 , 2017.
ICT Database Lesson 1 What is a Database?.
Computerized and Manual Systems
What is this talk about? How to actually use source control, how to get started with SSDT and how to start with continuous integration We will cover what.
Advantages OF BDD Testing
Building an Observation Data Layer
Continuous Performance Engineering
Enhance BI Applications and Simplify Development
Lecture 1: Multi-tier Architecture Overview
DAT381 Team Development with SQL Server 2005
Integration (API) testing with SoapUI
Agile testing for web API with Postman
Code Generation Tips Tricks Pitfalls 5/4/2019 A.Symons CiTR Pty Ltd.
Presentation transcript:

Fighting the monster Agile development on top of a legacy database Gojko Adzic XpDay 2007 – London

Two recurring patterns Redundant and Inconsistent interfaces –organic growth over the years –requires authors to be available Unstable foundation – breaks compatibility without warning

Build a solid foundation Simplify legacy interfaces Not really nice –keeps the rest clean Anti-corruption layer Extensive test coverage

Why are Databases not Agile? Tools are years behind OO Object-relational mismatch DB Code is hard to test DB developers not aware or discard agile practices

Fight the attitude Fundamental change requires enthusiasm Reduce the amount of dull work! TDD is a good solution

FIT+FitNesse+DbFit = excellent DB unit test tool Tests in tabular form Easier to use than manual tests No Java/.NET knowledge required Fits into agile environment

Hit the nerve Spread to other projects Released under GPL Used by banks, insurance companies, bookmakers… Oracle, SQL Server, MySQL Java/.NET integration tests

Fight duplication Database is the master source Does not have to be binary –“Create” scripts better Generate everything you can – especially inter-layer code

Going for the kill “Create” scripts make DB build automation easy DbFit+FitNesse verify functionality CI with Cruise Control Not everything is automated –but is good enough

Conclusions Agile makes as much sense for DB code as for anything else –Just harder to implement To get people enthusiastic, focus on reducing dull work

Conclusions Build a reliable foundation Simplify legacy APIs Kill code ownership Use version-control friendly files Generate glue between layers

Some links for the end