Posts Tagged ‘information technology’

Database Refactoring



Featured ad:
Thank You GOD For GDI!
$500,000 in commissions paid last year!

Voted Most Popular on eBay
Right Now on eBay!


eBay
Click to see how many are secretly watching eBay's most popular items...WatchCount.com

Database Refactoring – Database Connect

You learned in A Vision for the Agile Data Method that agile methodologies such as eXtreme Programming (XP) (Beck 2000) and DSDM (Stapleton 2003) take an iterative and incremental approach to software development. Application developers on XP and DSDM projects typically forsake big design up front (BDUF) approaches in favor of emergent approaches where the design of a system evolves throughout the life of the project. On an agile development project the final design often isn’t known until the application is ready to be released. This is a very different way to work for many experienced IT professionals to work.

The implication is that the traditional approach of creating a (nearly) complete set of logical and physical data models up front isn’t going to work. The main advantage of the traditional approach is that it makes the job of the process database administrator (DBA) much easier – the data schema is put into place early and that’s what people use. However there are several disadvantages. First, it requires the designers to get it right early, forcing you to identify most requirements even earlier in the project, and therefore forcing your project team into taking a serial approach to development. Second, it doesn’t support change easily. As your project progresses your project stakeholders understanding of what they need will evolve, motivating them to evolve their requirements. The business environment will also change during your project, once again motivating your stakeholders to evolve their requirements. In short the traditional way of working simply doesn’t work well in an agile environment. If Agile DBAs are going to work on and support project teams that are following agile methodologies they need to find techniques that support working iteratively and incrementally. My experience is that one critical technique is database refactoring.

Martin Fowler (1999) describes a programming technique called refactoring, a disciplined way to restructure code. The basic idea is that you make small changes to your code to improve your design, making it easier to understand and to modify. Refactoring enables you to evolve your code slowly over time, to take an iterative and incremental approach to programming. Martin’s refactoring site, www.refactoring.com, is a good online resource.

A critical aspect of a refactoring is that it retains the behavioral semantics of your code, at least from a black box point of view. For example there is a very simple refactoring called Rename Method, perhaps from getPersons() to getPeople(). Although this change looks easy on the surface you need to do more than just make this single change, you must also change every single invocation of this operation throughout all of your application code to invoke the new name. Once you’ve made these changes then you can say you’ve truly refactored your code because it still works again as before.

It is important to understand that you do not add functionality when you are refactoring. When you refactor you improve existing code, when you add functionality you are adding new code. Yes, you may need to refactor your existing code before you can add new functionality. Yes, you may discover later on that you need to refactor the new code that you just added. The point to be made is that refactoring and adding new functionality are two different but complementary tasks.

Get more out of Information Technology Portfolio Prioritization with these free IT White Papers.

Check out practical recommendations about cheap PlayStation 3 – please make sure to read the publication. The time has come when proper info is really at your fingertips, use this opportunity.

Related Reading:

Dell 3.0 Ghz. Super Fast GX Computer, Gigantic 750GB Hard Drive, 4GB RAM, DVD Burner (DVD-RW), and New Licensed Windows XP with Genuine Microsoft Authorized CDThis computer has been refurbished by a Microsoft Authorized Refurbisher. It includes an Original Genuine Licensed Windows XP Operating System with a ... Read More >
Apple iBook G3 500Mhz 128MB 10Gb CDROM 12.1'' OS X OFFICE 2004 Plus Upgraded Models AvailableApple iBook G3 500Mhz 128MB 10Gb CDROM 12.1'' OS X OFFICE 2004 Plus Upgraded Models AvailableCalling all you Apple enthusiasts! This Apple iBook G3 notebook is looking for a good home. Pre-installed components include an Apple G3 500MHz proces... Read More >
Apple iMac MB950LL/A 21.5-Inch DesktopApple iMac MB950LL/A 21.5-Inch DesktopFeaturing brilliant LED-backlit 21.5 widescreen display in a edge-to-edge glass design and seamless all aluminum enclosure. The iMac, is the fastest e... Read More >
Dell Super Fast Optiplex Computer With LCD Flat Panel Monitor Included, Big 40 GB (Gigabyte) Hard Drive, 1 GB RAM, P4 Desktop PC, Single Core 2.8Ghz. Processor, XPDell Super Fast Optiplex Computer With LCD Flat Panel Monitor Included, Big 40 GB (Gigabyte) Hard Drive, 1 GB RAM, P4 Desktop PC, Single Core 2.8Ghz. Processor, XPThis computer has been refurbished by a Microsoft Authorized Refurbisher. It includes an Original Genuine Licensed Windows XP Operating System with a ... Read More >
Dell D600 Laptop 1.6ghz 40gb DVD/CDRW B Grade Includes Genuine XP Professional restore cd!Dell D600 Laptop 1.6ghz 40gb DVD/CDRW B Grade Includes Genuine XP Professional restore cd!The Latitude D600 is designed for users who require maximum performance in a mainstream notebook. Even with its thin & light design, the D600 doesn't ... Read More >


Free T-Mobile phones on sale | Thanks to Best Savings Accounts, Conveyancing Fees and Used Cars