The Diablog - it’s Diabloglical™

Agencies: landing web projects using real-world comparisons (part 1 of 3).

Robert Kruger

13 April 2010

 

What is a prospect really looking for in an agency?

I've seen a lot of sales meetings for websites. Here's an approach to selling websites that commonly doesn't work: the agency lays out their history, drops a few notable names of past customers, walks through their portfolio, and then asks the prospect if they have any questions.

Here's why you should avoid this formula. It's likely the prospect has been to your website, read your history, seen your client list, and looked over your portfolio. If they hadn't already done all that, you wouldn't have gotten a meeting with them. If you present information your audience already knows, of course they won't have any questions about your presentation.

The truth is, they probably have a million questions about how use the web to improve their business. How do I get Google to like me? Why would I invest in a custom shopping experience? How can I know if my new website is as effective as it can be? How much does a website cost? They agree to meet with you to determine if you have the answer to these questions. Showing that you do positions your firm as a valuable business consultant, not just somebody who likes pretty pictures.

Questions about how the web can improve business are often the most difficult ones to answer in a way that the customer understands. I have seen the spark of understanding - the light bulb turning on - many times. One way to light the bulb with a prospect is through real-world comparisons.

Here's an example. One question that frequently comes up is: how much does a website cost? Your ability to satisfactorily answer this question can determine your success as an interactive agency. Here are a couple real-world analogies.

  • Imagine that you decide to beat the summer heat with a swimming pool. There are many options available. You could choose to build a custom, below-ground pool. It could be simple, or it could have a deck, a waterfall, and a whirlpool. You could also choose to spend very little money to buy an above-ground pool. It would help you cool down, but it wouldn't do much for the look of your back yard, and it's not likely to become a favorite gathering spot for your friends. The more you spend, the greater effect it will have on the beauty of your back yard and your status as a venue for gatherings. So how do you decide? You prioritize how much you can afford to spend, and you balance your budget against the value your choices bring to your home.
  • Imagine that you run a store, and you decide to start offering delivery services. You could hire a kid with a bike to make your deliveries. You could also buy a delivery van. How do you choose? Some of the decision-making is obvious. If you have a florist shop, the kid on a bike may be a viable option. If you sell major appliances, not so much. Many other aspects of your business will affect your decision like the geographical size of your customer base, the value of an average sale, etc. You can also choose to spend a bit more to add advertising to your delivery vehicle, which will be more effective on the truck than the bike.

Both of these analogies show that deciding how much to spend starts with discovering what is appropriate. A website (just like a swimming pool or a delivery vehicle) really can cost a few hundred dollars, or it can cost many thousands of dollars.

These real-world scenarios can help a prospect understand that they should not be shopping for a cheap price - they should hire you to help them understand what will and will not work for their business, and then they can balance your recommendations against their budget to decide what they should spend.

An important part of the Dialogs Professional Services we provide to creative agencies is sales assistance. We help our agency partners explain the importance and the possibilities of today's internet to their customers and prospects.

It’s OK if you don’t know what you're asking - you should still ask.

Robert Kruger

30 March 2010

We were recently invited to participate in a proposal for an interior designer. I am intentionally keeping this generic, so the names have been changed to protect the innocent. So … just the facts.

As an interior designer, this prospect wanted a visually rich experience. They didn’t just want visual emphasis; they literally wanted nothing but big beautiful photos. Here’s the challenge: they also wanted powerful SEO, so the site would rank high in Google.

Before you point and snicker at how ridiculous that sounds, we put forward a plan that will achieve both of the prospect’s goals, a website of big, beautiful photos, and a serious marketing tool that would find leads through organic search. Seriously. It CAN be done.

The lesson for us all is that the point-and-snicker-reflex needs to be quashed. Numerous adages apply here, and since I can’t stop myself from taking things apart, just to see what’s inside, I’m going to break down some of these adages and apply them to our business.

You know what you know (for pessimists, the adage reads: you don’t know what you don’t know).

Nobody knows everything. The reason the term know-it-all is negative is because knowing “all” is impossible. If it were possible, “know-it-all” would be a compliment.

If you act like you know everything, it will get you into trouble. I mean act. Talking like you know everything simply makes you socially challenging. If your know-it-all-ness drives your actions, you’re probably making quite a mess of things.

That’s the point to this adage: if you act on things without knowledge, you will make mistakes, and you won’t be aware of your mistakes. People inclined to settle will take this adage as justification for never trying anything new. Setters never venture into unknown territory. Successful people recognize that this adage is not a stop sign, it’s a caution sign.

For many businesses, the internet is unknown territory. Some businesses settle with a website that shows a photo of their front door and displays their phone number. Done. They have a website. They don’t need to think about it again. What they don’t know is killing their business. They don’t know that they have too little content for Google to find them. They don’t know that content that never changes gets moved down in Google’s rankings. They don’t know that a website can attract previously unknown prospects, which means they don’t know that their competitor’s website is reeling in those prospects. They are acting (building a website) without knowing, and it could bring down their business.

The more you know, the more you know you want to know.

This is what drives us to be the best at what we do, to be better than anyone else, to be better today than we were yesterday.

This is one of the most positive adages I have ever encountered. For curious people like me, it’s as close to the meaning of life as I have ever seen.

I know that it also sounds like the basis of the Faust legend, but I dismiss that comparison; I think 16th century Germany must have been a pretty depressing place to hang out.

The world is always changing. We get ahead by knowing all we can. In business today, nothing is changing faster than the internet. It impacts every aspect of your business. You make your first impressions with your website (branding). Your website communicates who you are, what you do, and how you do it (marketing communications). Your products or services can be easily purchased (sales). Your competitor’s websites compete with yours for market share (strategic marketing). Pursuing knowledge is a key to business success.

It doesn’t hurt to ask.

It couldn’t be any simpler. Just ask. If only it were that simple. Sometimes it does hurt. It hurts our ego to openly express our shortcomings. It hurts our status in career-ladder-climbing to reveal that someone else knows something we don’t. If we ask something stupid, someone may point and snicker. If you’re really neurotic, your list of potential hurts is long.

Well, get over it. You truly can’t increase your knowledge without asking questions, and you can’t succeed without knowledge.

The prospect I mentioned earlier didn’t know what they were asking for, but they still asked. They didn’t limit their request to what they already knew. There is a fearlessness to that request that we should all remember.

Dialogs Professional Services is a knowledgeable resource about the ways of the internet. Feel free to ask us how the internet can improve your business. We promise we won’t point and snicker.

From sorting beads to a left-join ... exploring parent-child dynamics in content management

Brett Barron

26 March 2010

My daughter loves to sort beads and stack cups. It's human nature to want to organize multiples of things, and my daughter will find that her organizational skills will evolve to be applied to increasingly more complex structures. One day she may find herself an information architect, doing this for a living, dealing daily with one of the most common, simple ways of organizing information: by categorization.

Web developers quite frequently present information organized by category for easy assimilation. Products, for example are almost always categorized when displayed in an on-line catalog, but in a broader sense, so are news releases when they are arranged by month or year, likewise blogs when they are tagged. The developer of a content-managed website must designate data structures to categorize items so that the information may be easily navigated by the site visitor and precisely displayed the way the designer defines. This article explores a common information presentation scenario, describes different approaches to accomplishing the task and explores factors that impact implementation strategies.

Scenario: Display a list of stores in a shopping center by category, suppressing categories that do not (yet) have any stores, allowing stores to be displayed in one or more categories.

Simple enough. On the back-end, a table of Categories and a table for Stores. Each Store must identify one or more related categories. On the front end, a page with H2 headers for each category (parent) followed by an unordered list of stores (children) in each category, suppressing categories without stores. Two non-trivial parts: how to associate the store with one or more categories, and how to suppress, at render, any category without stores.

In general, developers should consider many implications when evaluating a specific approach to solving a data management task, to name a few:
  • security
  • performance/scalability 
  • efficiency of implementation
  • efficiency of maintenance (the original developer may not be available when it breaks)
First, the many-many relationship between stores and categories can be managed in a number of ways. 
  • A common (and clumsy) way is to stipulate an upper limit of possible categories a store could be assigned and add that number of category fields to the store table. This approach fails if the guess of high end categories turns out wrong, and makes SQL statements both inefficient and awkward. 
  • The third-normal (strictly proper) way is to create a join table between the category table and the stores table with one row for each combination of category and store. Scales well but requires a solid understanding of SQL.
  • Pack into one store field, the categories that store belongs to. This approach makes for simpler SQL, simpler template substitutions, and scales sufficiently for the data sets used in most dynamic web situations. In situations where real-world performance is not negatively impacted, this approach results in code that is the simplest to implement and easiest to debug/maintain.

The code logic for displaying the listing of stores by category is either category centric or store centric.

You can first cycle through the list of categories that have stores, and for each display the list of stores.
  • Multiple SQL calls, one for the categories, and additional calls to display stores for each category
  • rows do not have to be evaluated to manage category headers
  • requires some mechanism of elimitating categories without stores
    • SQL join when building the category list (requires a good understanding of SQL)
    • a field in category table that identifies categories with stores (requires scripting to keep this field up-to-date)
Alternately, you can sort the stores by category and cycle through them directly, detecting and accommodating changes in category header or cycle though the list of categories and for each look for associated stores. Let's evaluate working with the stores table directly:
  • one SQL call sorted by category returns the list of stores (a good strategy if the SQL server is not on local host)
  • server-side scripting (PHP, ASP, etc.) evaluates each row in the result and tests for a change in category, setting the category header when the category changes
  • only works if the HTML defined by the front-end-coder fits with this structure
  • requires developer understands server-side scripting sufficient to code the conditional placement of the header

Most dynamic website projects - the interesting ones, anyway - have a number of such little puzzles to solve. Often there is no clear "best" approach as several options will provide an acceptable balance of time to develop (cost) and performance at page render. Developers each have their own development style. Developers with strong SQL skills tend to seek answer in elegant SQL statements while PHP wizards rely more on scripting logic. Additionally, in small, single-server implementations with small data sets and modest traffic, render performance may not be as critical as swift development cycles and code that is inexpensive to build and maintain. In the end, as long as the developer is aware of the trade-offs of a particular approach (and has considered options to try if the first strategy fails during testing and QA), it probably doesn't matter exactly how the puzzles are solved as long as the project is delivered on time, is under budget, and performs to expectation.

Dialogs is a flexible dynamic website development platform that accommodates virtually all developer styles and approaches including the ones discussed here. In Dialogs, the web developer easily configures Lists (data tables) to hold data the way he or she sees fit. Lists can be configured to be related to other Lists (one-to-many or many-to-many). List templates may be cascaded to allow the category-centric approach; List templates can also be configured with complex SQL definitions to accommodate the store-centric approach. Many common elements of contemporary dynamic websites are as easy to configure in Dialogs as sorting beads or stacking cups. If you're tired of environments that constrain the way you develop, request a Dialogs.com login to take a closer look at the Dialogs sandbox. We think you'll find we work the way you do.

1 2 3 4 5 6 7  8 9 10 11

“Dialogs is the most flexible CMS I’ve ever had the privilege of working in, allowing me total control over the way the backend coding is constructed. I’ve yet to find anything we could not do - just the way I wanted it done.”

— Jeniffer J., developer partner