Jackson Fish Market
Posted on April 26, 2007 by hillel on Advertising, Behind the Scenes

How to build the software vehicle for your brand message. – Part Three

Yesterday we delivered part two of our four part series of posts directed at the brand advertising community: Branded Software Experiences – A Cost-Effective and Critical Component of your Brand Advertising Mix. Today we’re delivering part three.

Despite all the technology, the creation of software is not a science. It’s not necessarily an art either. It’s more of a craft. And, more often than not, it’s a craft where the design and construction of the product are intermingled in the same phase. Anyone who has built anything knows that if you are designing as you go (instead of building from an exact specification) then you lose a significant degree of predictability over the project’s timeline (and cost). Even modern buildings with incredibly detailed architectural specifications can go well over budget in terms of time and cost. Most modern software (unless it’s commissioned by the Department of Defense) has no such detailed specifications. And the specs that are in place are more “vague wish list” than true detailed design document. I submit that the only perfect spec for code is the code itself.

Before you dismiss this is a copout, there are plenty of ways to mitigate this problem. It’s true that you could spend the time to spec out your software properly, but the deadlines of almost any modern advertising campaign wouldn’t afford nearly enough time (or budget) to make that happen. The best approach is to keep things small, do things one at a time, have items on your wish list you’re willing to cut, don’t be afraid to rewrite the software if necessary, and even include budget for multiple iterations as you will learn with each successive release of the application. Careful planning and not making mistakes is one approach, but it’s likely not the approach you will end up taking. Even at the most advanced and successful software companies in the world, careful long-term (think a year) planning, when it works, usually results in so much risk mitigation that there’s not much actual product left when the plan is ready for execution. More often than not major long-term software planning efforts result in projects that go nowhere and the time spent planning being wasted. And just think, instead of working with the premier software companies in the world, you’ll likely be working with small contract software development shops. Certainly size is no indicator of quality in this case, and many of these small companies can run rings around the big guys. But keep in mind, no matter the size of the company, software is not as simple as it may seem.

Creating software is very different than building most of the content and collateral that agencies have typically produced for their campaigns. Agencies with in-house interactive teams already understand some of this, but deeper software experiences require deeper technical expertise than agencies usually have. Here are some keys to moving quickly, and getting what you want in a reasonable timeframe, as well as some of the differences between developing software vs. developing more traditional brand advertising vehicles.

  • Define the smallest (and small is definitely not the same as insubstantial) experience you possibly can, and then refine it to make it even smaller. This is your bottom line.
  • Make a list in stackrank priority order of the features you want in your software. The features above the bottom line are the minimum you need to ship v1. Anything below that line can come later. (The most annoying thing about software is also its coolest feature – it’s never done!) Your users will tell you very quickly which five features (of the twenty you had to cut to make your v1 dates) you should implement next.
  • Your feature list should contain the bulk of the text used to describe the software you’re building. Everything else should be in screenshot form. The process of creating software is one of translating ideas into code. Usually text and bitmaps are interim steps. And good ones as they are often much easier to change than code. Over time the feature list and bitmaps will fall by the wayside and the only representation of what you’re trying to build will be the code itself and your list of bugs/suggestions/feature requests.
  • Code early. Code often. You don’t want to wait until just before launch time to see the actual software the team has produced. Demand weekly if not daily “builds” of your software that you get to see, touch, and play with. No amount of specification or screen design can prepare you for how software actually feels when you use it. Trying it out is an essential part of the process and the only way to refine it for human consumption. Additionally, seeing the software evolve every few days can give you a much better idea of the realities of the software development process and what kind of a trajectory your project is on.
  • If you do look at the early versions of the software on a regular basis make sure to give the development team some latitude as the creation of software can be somewhat like the creation of sausage. Kind of messy to make, but tasty in the end.
  • And finally, understand that setting dates at the beginning of the project is almost always an arbitrary process. You can wish all you want that your software will be ready by a certain date. Nobody can guarantee dates. Anyone who does has either already written the software or is lying to you (or is talking about a date so far in the future as to be irrelevant). The way to hit a date is to cut features.

Note: Count the opinions in a room full of software professionals on the best way to write software and those opinions will outnumber the people in the room. The list above is by no means meant to be the only way to get software projects written, or a comprehensive philosophy. It is however intended to highlight for brand advertising professionals some of the realities of building software experiences, and how they may differ from other elements (print, video, etc.) that have been created for your campaigns in the past.

There are a couple of other things to look for when hiring software development talent:

  • Attention to detail. Look at past projects from these folks. Do they exhibit a strong attention to detail in their work? Ultimately it would be best to work with a technology partner that has both the technical and emotional skills to understand how to deliver software with a strong positive emotional experience that is well-engineered. Unfortunately, it’s not often that you find that mix of right and left brain characteristics. Finding out how well they’ve worked with strong designers in the past can also be helpful.
  • Do they understand scalability? While our definition of software spans online and client offerings, it is unlikely in today’s consumer landscape that any branded software experience you specify won’t have some online component. And that means that the more successful and popular your software is, the more computing power you’ll need to run it on the back end. Do the folks you’re working with have experience at scaling software for large audiences? Can they handle the spike of interest that will likely be caused by the promotional campaign for your new service? Will they have to take the site down to do maintenance on it every time they expand its capabilities? These are all important questions, and any modern software development talent needs to be able to answer these from experience. You should also note that as the usage of your service increases so will the costs of the computing resources required to run it. If your site is delivering the brand’s message effectively, this is a nice problem to have, but it’s important to understand that even if you’ve stopped adding features, there are likely many ongoing costs that you’ll need to be aware of and build into your budget.

Countless books have been written about both how to develop software on your own as well as how to manage software development projects effectively. It would be silly to claim that these few paragraphs are all you need to understand the craft of software development. That said, hopefully this short article will give brand advertising professionals a taste of what’s involved in actually building a software experience as a tool for getting out their message.

Tomorrow we’ll discuss how to measure the effectiveness of your newly launched branded software experience.

Join the discussion 4 Comments

Leave a Reply