July 2007 - Posts

New Book! Professional Software Testing with Visual Studio 2005 Team System: Tools for Software Developers and Test Engineers

is now available for pre-order at !

I was honored to work on this book with three testing gurus: Tom Arnold, Mike Frost, and Dominic Hopton.

The book covers many aspects of testing. More than just what to test, why to test is also covered. Although the book covers testing with Visual Studio, non-Microsoft technologies are referenced.

The book is written for developers practicing test-driven and test-first methodologies, and for test engineers. It provides great insight into the Visual Studio testing framework.

I got to write a chapter on Testing the Database. I use Team Edition for Database Professionals in the chapter to build a database project, then test it. I'm really happy with the chapter. The last section contains a detailed, step-by-step walk-through of building a custom test condition in C#, then integrating it into the TEDP test conditions. I wrote it assuming no experience with the Visual Studio 2005 IDE and little or no experience with software application development. I wrote it so database professionals with no exposure to application development could write their own custom test condition.

The book should be available in September!

:{> Andy

Technorati Tags:

Iteration = Maturity

Introduction 

I was recently reminded that iteration matures software.

The History of Andy, Part 1 

Like many DBAs, I was a software developer in another life. I built web applications - working my way up from HTML through DHTML and finally to ASP - and could regale (and bore) you young whipper-snappers with war-stories of how things were "back in my day". [/DanaCarvey]

But I won't.

The Times They Are a-Changin'

I'll share instead something I've witnessed many times since starting with software in 1975 - and something you probably already know: stuff changes.

And thank goodness stuff changes!

I recently ordered 1G of RAM from an online retailer. It should arrive before my next son (but that's not a given as Riley refuses to provide a tracking number - the doctors will induce Christy into labor Friday if he hasn't been born by then - but I digress...). I remember my neighbor John, who introduced me to computers, purchased a 256-byte RAM chip in the mid-1970s for about what I paid for the 1G. That's 256 bytes of RAM - not a typo. As I recall it was either a 14- or 16-pin IC.

Things have changed since then. Improvements in technology, brought about by building and improving upon existing knowledge, have brought us to a day when I can purchase 1,073,741,824 bytes for roughly the previous price of 256. I don't know how you feel about that. I think it's a good thing.

The idea of "building and improving upon existing knowledge" defines iterative development. Although the idea is relatively new to the software development field, it serves as the basis for engineering disciplines. Engineers iterate - build and improve upon existing knowledge - and we get more powerful hardware for the same amount of money. What's not to like?

Iteration - it's not just a good idea... 

Iterative software development builds and improves upon existing knowledge within a specific domain. Most domains are defined by an application (wholly or in part), enterprise knowledge (again, wholly or in part), or - most likely - some combination of the two. For example, let's say you work for a large corporation as a software developer. Your domain could be the corporate website. In which case you possess knowledge about the business of the corporation and web development. You mix these together to do your job. In this case, you will probably pick up marketing savvy and current trends along with the latest AJAX techniques.

As you make successive passes (iterations) through the website design interacting with marketing, your domain knowledge is built and improves. As your domain knowledge increases, the website will become more valuable to the corporation - as will you.

Iteration adds value.

Got Iteration?

The same can be said for database development.

Perhaps you've experienced this in your own database development efforts: you receive a request for a database design to meet some desired functionality. Or you're handed a design and asked to optimize it. Or maybe even you had an idea to capture data - performance metrics or something similar - and you're designing a database solution to accomplish this.

You get into the development a few hours or a few days and realize a little tweak here or there would improve performance, or readibility, or better adapt the design to your intentions. So you make the tweak and continue.

This improvement leads you to re-examine other portions of the design and you make more tweaks. Maybe your last change broke things. Maybe you see an opportunity to add a parameter to a stored procedure and combine the business logic of three stored procedures into one.

A "Growing" Solution 

Pretty soon, you have iterated enough to feel comfortable promoting, integrating, or even releasing the results - letting the effort move to the next step.

Depending on the nature of your efforts, it may not end there. If your database development is the back end of a larger application - say, the corporate website, for example - there will likely be requests for changes over time as the site grows (scales) in complexity and size.

When the requests come in you are not likely to start over. You will most likely build and improve upon your existing knowledge. You will most likely iterate.

Scaling forces iteration.

Voilà

This is how solutions mature - be they applications, databases, or both - regardless of who writes them or how many are involved in the development effort. It doesn't matter if the development team is one lady in a cubicle in the European Union or a development team of thousands at Microsoft.

Iteration matures software.

:{> Andy

Team System Web Access Power Tool!

Microsoft (Brian Harry, actually) announces the availability of the !

Web-based TFS folks - get it while it's hot!

:{> Andy

Technorati Tags: TeamPlain Team Foundation Server TFS Power Tool

Waiting on Riley...

As I type in my upstairs office, Christy's downstairs experiencing pre-labor (if not the real deal labor). I'm up here battling the company that administers our COBRA health insurance, seriously considering a letter to my representative in Congress - but that's a topic for another blog...

I can hardly wait to hold Riley and look into his little eyes! I'm sure they'll be blue like Christy's eyes - Stevie Ray and Emma have Christy's beautiful eyes.

I get to be upstairs battling because one of the two coolest Nanas on the planet is here for the next couple weeks to help out. Thanks Nana!

:{> Andy

Technorati Tags:

SSIS for DBAs

Solid Quality Mentors is now offering a course entitled SQL Server 2005 Integration Services for Database Professionals.

I was honored to work with Erik Veerman to develop this SSIS for DBAs course! Our goal is to provide training in SSIS's non-ETL capabilities - stuff that is useful for Database Administrators.

Although it is an amazing ETL engine, SSIS is more than an enterprise ETL platform - it has lots of capabilities built especially to assist DBAs in the Production environment. In the course, we introduce the SSIS development environment and SSIS to folks who may have never opened Business Intelligence Development Studio.

Next, we cover the basics of SSIS - walking through capabailities of the Control Flow, Data Flow, Event Handlers, Variables, Properties, and Expressions.

We then get busy with Transfer Tasks, Import and Export Wizards, and Maintenance Plan development. Our next section focuses on using SSIS to perform more advanced DBA tasks - building SSIS packages that automate FTP, flat file data extraction and loading, and file archiving operations. We cover optimization, data cleansing, text mining, and binary data. We also dive into WMI, File watching, and Notifications - there's even an optional section on migrating DTS!

We then address SSIS administration, deployment, security, package configurations, logging, modular package design and team development. We cover restartability, snapshots, and transactions, and conclude with a section dedicated to troubleshooting.

Material is presented, then demonstrated. Students then perform lab exercises to reinforce the presented and deomnstrated concepts. It's a great way to learn - especially in a rich visual environment like Business Intelligence Development Studio.

As if all that wasn't enough, the course is led by Solid Quality Mentors! These are folks who have been there and done that - database professionals that are published, MVPs, or both!

If you're interested, contact at Solid Quality Mentors.

:{> Andy

Technorati Tags: SSIS DBA SSIS for DBAs Database Professionals Solid Quality

Sucking Up

I am sometimes accused of sucking up but the truth is I'm just a nice guy who likes to compliment folks when they do a good job. Most of those folks are my peers, some of them happen to be supervisory, and that's when the accusations flow.

So be it. News flash: I didn't start complimenting folks because you commented about it. Can you complete this thought? ;)

In his post entitled Etiquette Rule #1 - Don't be a Sycophant Rob Caron quotes a Redmond Channel Partner Online piece on Microsoft Partner etiquette.

I've had interaction with Microsoft folks and this doesn't match my experience. Rob's response matches my experience instead, where he says :

If you use a competing product, I'd rather understand what our gaffe was that made it the more attractive choice. What could we do better to earn your business next time?
If you think one of our products sucks, please tell me why. What can we do to keep your business?

:{> Andy

Technorati Tags: Sucking up sycophant Rob Caron etiquette

Team Edition for Database Professionals Webcast tomorrow

I'm presenting the PASS webcast tomorrow on Team Edition for Database Professionals! You can sign up at the PASS website.

:{> Andy

Technorati Tags:

eScrum

Microsoft recently released a !

eScrum works with Team Foundation Server, so you'll need your own TFS server (you can build your own Team Foundation Virtual Server free!) to use this cool tool.

Scrum is one of the simplest and most visual of the Agile methodologies to implement. I've been privilieged to introduce Scrum into several large enterprises in the past couple years. It's just an awesome methodology!

:{> Andy

Technorati Tags: Scrum eScrum Team Foundation Server

The Date is Set

Christy and I had another prenatal care visit today. On this visit we set an induction date: 3 Aug 2007.

If you regularly read this blog, you've noted the rcent decline in post quantity. It's the baby's fault!

I hope to pick it back up soon - there's so many cool new things out there to blog about.

:{> Andy

Technorati Tags:

Happy 4th of July!

Whether you're celebrating the US holiday or not, Happy 4th of July!

:{> Andy

Technorati Tags:

Meltdown!

A couple days ago the Vista Ultimate instance on my laptop when all Klingon on me: it was "a good day to die."

I'll never know why for sure. Indications point to COM+ and VMM giving up the ghost. They were good systems, may they rest in peace.

I tried to revive the old OS. It would run in Safe Mode and even Safe Mode with Networking, but that's just not the same as having all the functionality I know and love.

I've spent the last couple days (and nights) rebuilding a second instance of Vista Ultimate on the same machine. I'm about half done at this point. Today is SQL Server instances and Visual Studio Team System day.

It's not just the installs, there's the service packs and updates after the installations. Lots of installing.

But it's also an opportunity to rebuild the machine with a different configuration.

Back to installing...

:{> Andy

Technorati Tags: Vista Re-install