Friday, December 11, 2009

Release early, release often!

Remember that mantra, known in the Open Source world? Well, it's a core part of Agile Methodologies for software development, for precisely the same reason: getting the feel on how your project/product/app is behaving in the real environment and getting feedback from your customer. Feedback is especially important, as the requirements for the project might change (and they usually do!) - you need to be aware of that!

But requirements are not the only ones that change; so does the environment in which your product is supposed to be running and used. While you might have total control over the development and test environments, you usually don't have little or no control over the live (production) environment. That environment is handled by some dedicated person or people.

Keep in mind that those people have their own schedule (backlog if you wish) by which they operate the environment under their control. Systems are upgraded or reinstalled, new versions of services get installed and so forth. Usually, you, the developer, are the last one to find out about that. You find out about those changes when your app is being deployed and (oddly!) doesn't work.

We all tried to talk to those people, hoping they will keep us in sync with the changes they make, but frankly (and I'm talking from personal expirience) that rarely goes as well as you think it would. So, make sure your product owners understand this as well, and push for releases as often as possible. That way, not only you'll be getting (great!) feedback from your owners, but will be able to keep tabs on your environment as well.

This post reflects thoughts, problems (and frustration) over the last week, while trying to get our (quite complex) project into production. While we were really trying to be agile and follow all (or most) of the principles during development, we still managed to fail to deliver our project often to the production environment.

What product owners sometimes fail to understand is that you must follow all of the principles, and follow them well. The developers often fail to help them understand. We must all learn from that, I say.

No comments: