Continuous Testing: Why It’s Important To Increase Build Iterations

Continuous Testing: Why It’s Important To Increase Build Iterations

So you had your client meeting. You spent hours on an RFP. You’ve laid out a site map that’s clear and logical. You’ve even managed to integrate the ancient sales platform your client insists on using with a web designer’s latest, greatest platform. And then?

The client hates it. Or at least, it doesn’t fit with their needs or expectations. That, or the site works perfectly in the abstract, but not so much in its real environment.

Hey, we’ve all been there. Half (or at least, a quarter) of a developer’s job is getting up to speed on the latest and greatest techniques and leading a client where they don’t know they need to go. But the lengthier a developer’s iterations, the greater the chance they’ll have to redo or throw out work thanks to quirky client demands and even quirkier build environments.

Let’s take a deeper look at why rapid build iterations are so important, as well as at a few ways to make it all happen.

Benefits of Rapid Build Iterations

1. Small Tasks Get Done

Sure, there are those few superhuman developers out there who work well under long deadlines, pacing out tasks and checking them off the list one by one. But for most of us, big jobs are either paralyzing or an excellent excuse for procrastination. Rapid build iterations necessitate smaller tasks, as there’s just no way you can get the same amount done in a week that you would in a month, no matter how intensely you work. Having lots of small tasks will make you feel like you’re achieving more than you would with one big task, and then your motivation levels will shoot through the roof.

One caveat: That said, one of the biggest disadvantages of any Agile-esque method that relies on smaller tasks and more frequent iterations is that you’ll lose sight of the bigger picture. As such, it makes sense to adapt the concept of design spikes for the development world, building in regular time to review “big picture” questions and complete any necessary research.

2. Quicker Iterations Mean More Client Interaction, Testing and Feedback

From a client standpoint, quickly built iterations mean more chances for the customer and beta users to test what you’re working on and provide feedback so you can adjust as you go, rather than having to overhaul a site or feature once you’ve already wasted months building it.

From a functionality standpoint, quicker iterations necessitate a model similar to continuous integration. (i.e. the big software practice of daily integrating work across teams, to be tested by an automated build that seeks out bugs and other integration errors). Not surprisingly, with a system influenced by continuous integration it’s much more difficult to waste time building a site that then won’t render in its targeted environment, as you’ll have tested this multiple times and in multiple ways before you finally go public.

3. On-Schedule, On-Budget

Again, we return to human psychology, and the inescapable fact that it’s just hard to stay on schedule when you’ve got months ahead of you, as there’s always something more pressing. This, as well as the temptation to throw in every bell and whistle and perhaps get a little too creative, can leave projects over budget. Shorter deadlines create healthy stress, more motivation and better work.

How to Get it All Done

No one said having rapid build iterations would be easy. Here are a few important tips for really making it work.

1. Set Clear Roles

While you may or may not want to adopt the agile method in its entirety, it’s worth implementing elements of a procedure like scrums to keep frequent build iterations on track. One of the biggest benefits of scrums is that it clarifies roles, which then streamlines the efforts of everyone on the team. The Scrum Master, for instance, will keep those frequent and intense meetings on track, while the Product Owner will act as the customer’s voice. This leaves the development team to focus on what they do best, integrating and responding to customer and team members concerns without losing track of their own tasks and leading development vision.

2. Develop in Browser

I’m not going to lie; I love visualizing a site in Photoshop as much as the next guy. But designing in a static form comes with major headaches. Mockups in Photoshop don’t look the same in a browser, they really don’t give clients a sense of the site’s UI or responsive elements, and building them can be both time and energy consuming. Rapid build iterations focus developer energy instead on creating what is essential: a toolset and a framework for the layout and design. The best way to do this is to have developers create a style guide that can then be tested in browser until the right layout and design is found. This fits well with the concept of continuous integration, as it allows the whole team to test something functional every step along the way. And once the team gets the site to the point where the customer is satisfied, the project is essentially done. This stands in stark contrast to the labor-intensive mockup that leaves both clients and developers dissatisfied upon implementation.

3. Communicate, Communicate, Communicate

Did I mention communication? It may seem like an obvious point, but rapid build iterations are intense, and there’s just no way they can work without everyone on board. Communication is paramount, whether that means keeping up to date with where everyone is or offering a helping hand. The same goes for client interaction. Agility, after all, hinges on everyone knowing just how they should adjust.

In Short

Implementing quick build iterations can seem an intimidating prospect at first, but it can significantly reduce the amount of time developers waste on building prospect the client doesn’t ultimately want or that doesn’t work in its real environment. Build it fast, build it well, test it often, ship the product, and you’ll have a much happier team and client base.

by Luke Clum

Luke is a designer and front end developer from Seattle. Follow him on Twitter @lukeclum


No Comments

Add Comment

Add a Reply

HTML is escaped automatically. Surround code blocks with <pre></pre> for readability.
Perks:   **bold**   __italics__   [some text]( for links