Tuesday, November 20, 2007

It's not done until it's deployed and working!

It may amaze some people, but there are still development teams out there that think their job is done when they hand over to the test team. It should be obvious to everyone that the business derives no value from a system until it is deployed and working. Finger pointing and claiming that "it works on my machine" doesn't make money for the business!

Scripting or otherwise automating the deployment of an application is an invaluable aid to the whole development process. It speeds the process, thereby reducing the code/test feedback cycle. Even more importantly, it makes the process repeatable. The same script used for deployment to test should be used for deployment to production, thereby exercising the deployment scripts as part of the test cycle.

Likewise, if your project has difficulty with deployments, having a developer present during production deployments will pay dividends. There is nothing like first hand experience for bringing home to the development team the issues faced when their application is used in anger.

Until you have confidence that your deployment will go perfectly every time, involve the development team in every production deployment. And make automated deployment a requirement of every development project.


Anonymous said...

Yes, automate deployment and continuous integration are important.

In your projects, do you use CruiseControl and Ant to realized your idea?

Zejun Wang

Anonymous said...

Yes, I agree with you completly. This is termed as Service Realization. Unless, your system development meets the requirements in the production enviornment it is of no good.

Thoughts well put.

Michael Janke said...

NIce post. We've been doing something similar in a Solaris/JBoss environment, with pretty good success.

Nice blog. Keep it up.