Skip to content

Two great tastes: Agile development and distributed, declarative setup

I’ve had the good fortune to work on several agile software-development teams over the years. If you’ve ever hated having software you’ve developed sit on the shelf for months or years until the next release, shipping several times a year feels good. Shipping almost every month is even better. Shipping almost every week is phenomenal.

Most of the principles of the agile manifesto reinforce the idea that shipping software often is how to best deliver customer value. To ship often, you need predictability:

  • Finish all the work associated with a feature.
  • Make sure it’s of ship quality.

Done versus done-done

The waterfall model of designing, then coding, then throwing over the wall to test, then fixing bugs, then throwing over the other wall to setup–yes, of course I’m going to talk about setup–is just procrastinating. Sure, it’s more fun to start working on the next new thing, but it’s just postponing the work required to get a feature really done and ready to ship.

Setup development, like testing, is often considered one of the “taxes” of software development that is best put off as long as possible. But if you want to deliver shippable software on a rapid schedule, paying taxes late doesn’t work; you might get to April 15th and discover that you have more bugs than you can fix by midnight. Instead, you pay your taxes as you go along so there are no surprises when you get to the last day and you want to ship.

Rather than developers considering themselves “done” when they’ve written some code and debugged it, developers need to get “done done” by providing code, unit tests, acceptance tests, and setup.

WiX supports “done done” by easily integrating into the development build cycle. Every member of an agile team can author setup. That prevents the lone setup developer, who probably supports multiple product teams, from being a bottleneck.

Plus, if developers are responsible for their own setup authoring, they’re less likely to push bad design decisions onto the setup developer’s shoulders.

Keep quality high and take the weekends off

Agile methodologies bring a whole set of tools and processes to help keep quality high and ready to “ship on a dime,” like:

  • Test-driven development to produce high-quality designs and code
  • Automated acceptance testing to reduce the need for armies of testers to validate the whole system at the end

Add some setup flavor:

  • Make sure that “done” for every feature includes its setup authoring.
  • Run your automated acceptance tests from official setup packages, not from local builds.
  • Build upgrades and patches and create automated tests to ensure you can service the product.
  • Use only fully declarative custom actions–they make it easier to handle patching, upgrades, and repair.

Frequent, automated testing tells you if your code (and setup) do what they’re supposed to (or not–at least as far as the tests are concerned). Adding setup into the testing mix helps ensure that your setup is ready too.

2 Comments

  1. Blaine Wheeler wrote:

    Although we’re just moving into Wix I absolutely agree that when your developer builds use the same structure as your final builds everything goes much much better at release time.

    I’m speaking from experience, we’ve been auto-building twice a day for developers and tester and had several extended periods where we shipped finals every two weeks over the last six years.

    Getting the build right during development makes delivery to the customer a piece of cake.

    Thursday, February 14, 2008 at 09:53 | Permalink
  2. Bob Arnson wrote:

    Blaine,

    Yep, exactly. Anything you postpone is something left to do before you can ship.

    Thursday, February 14, 2008 at 20:13 | Permalink

One Trackback/Pingback

  1. Joy of Setup :: Agile smarts on Monday, May 26, 2008 at 12:34

    [...] As I’ve mentioned before, I’m a big fan of agile development. Turns out it might be responsible not only for great software but enhanced developer brains: Brain research on rats suggests that voluntary pressure in the form of audacious goals taken on by high performance teams makes them produce more neuron stem cells, rewire the brain, and become smarter. Involuntary pressure, often seen on waterfall teams, reduces stem cell production and makes employees stupider. [...]

Post a Comment

Your email is never published nor shared. Required fields are marked *
*
*