Just-In-Time Scalability: Agile Methods to Support Massive Growth

Published January 22nd, 2010 Under Uncategorized | Leave a Comment

In the course of six months IMVU’s user base quadrupled in size. At the start of this period we were bottlenecked on a single central database. During these six months we evolved IMVU’s architecture to use caching with memcached, replication, horizontal and vertical partitioning to support this growth. We’ll look specifically at implementing horizontal partitioning in a way that makes writing scalable application code easy for non-DB experts. We will focus on the techniques used to incrementally add scalability without having to make large changes to the application layer or disrupt ongoing feature development by the rest of the team.

Watch this video on Oredev.org

Refactoring Databases: Evolutionary Database Design

Published March 9th, 2009 Under Uncategorized | Leave a Comment

For years the norm for developers was to work in an iterative and incremental manner but for database developers to work in a more serial manner. The predominance of evolutionary development methods make it clear that the two groups need to work in the same manner to be productive as a team. Pramod presents material from “Refactoring Databases ” on implementing evolutionary database development.

http://www.infoq.com/presentations/refactoring-databases

Additional resources

Pramod Sadalage Blog

Database Refactoring Web Site

Behavior Driven Database Development (BDDD)

LiquiBase Short Overview

Published December 1st, 2008 Under Uncategorized | Leave a Comment

LiquiBase is an LGPL Java-based library for managing and applying database changes and refactorings. This is a short overview of how LiquiBase works and some of its capabilities. For more information, see http://www.liquibase.org

Description of LiquiBase with a demonstration of its features

Published December 1st, 2008 Under Uncategorized | Leave a Comment

LiquiBase is an LGPL Java-based library for managing and applying database changes and refactorings. This session describes how LiquiBase works and demonstrates some of its capabilities. For more information, see http://www.liquibase.org

Effective Test Driven Database Development

Published November 24th, 2008 Under Software Testing, TDD | Leave a Comment

Although test-driven development is now considered common sense in the OO world, it is very rare in database development. This session looks at the reasons behind that and presents solutions and best practices for test-driven database development. Database testing is analysed from two aspects: unit-testing in the database (stored procedures,views) and integration testing from the object service/web layer down to the database. This session is aimed at database developers,technical architects and Java/.NET developers working on enterprise applications. In this talk, Gojko Adzic look at why test-driven development is rarely used in database development. He will discuss the reasons behind this and present solutions and best-practises for test-driven database development.

Links and slides from the “Effective Test Driven Database Development” talk

Agile Database Techniques: Data Doesn’t Have To Be A Four-Letter Word Anymore

Published March 3rd, 2008 Under Software Testing, TDD | Leave a Comment

Data is clearly an important aspect of software-based systems, a fact that the information technology (IT) industry has understood for decades, yet many agile development teams are struggling to involve data professionals within their projects. The Agile Data (AD) methodology defines a philosophical framework for data-oriented activities within agile projects, defining ways that application developers and data professionals can work together effectively. However, philosophy isn’t enough, you also need proven techniques which support those philosophies. In this presentation Scott Ambler discusses techniques for agile database development, including: database refactoring, Agile-Model Driven Development (AMDD), Test-Driven Design (TDD), and environment/tool strategies.