blog

Happiness is being treated fairly

Agency Culture + Technology  |  Sean Brown  |  March 26th, 2008

On nearly a daily basis, I find myself asking the question, “What has happened to customer service these days?” Perhaps part of the problem is that I’ve let the corporate-speak term “customer service” enter into my vocabulary. How about just treating me fairly? Then you won’t have to invent an entire department filled with employees with fictitious titles, absolutely no authority to make decisions, and call them “customer service representatives.” Frankly, I don’t feel well represented.

Case in point: a certain telephone company runs ads saying that you should switch to their DSL-based high speed internet service because they’ll give you the same speed as the cable company, but at a much lower price. Great. Sign me up. Which I did, 7 weeks ago. After three different sets of technicians came out to try to get it right, the best they could do was a speed roughly 8 times slower than what I was already getting with cable. Fine, I’ll stick with what was already working well, so I call the phone company to cancel. “I don’t have the authority to cancel your account,” says CSR #1, “but I’ll have someone who can call you tomorrow.” Translation: when it’s convenient for us. In all it took me five different phone calls and a trip to one of their stores to finally get the account canceled. I’d estimate I spent 15 hours getting that done. What does that tell you about how well this customer was represented?

Counterpoint. I’ve got a development team completely immersed in Ruby on Rails. One of the bibles of Rails development is Agile Web Development with Rails by Dave Thomas and David Heinemeier Hansson, so I bought a handful of copies for the team. While looking something up in one of the copies last night, I noticed my page numbering went from 56 directly to 89, so I sent a note to the publisher, The Pragmatic Bookshelf. Not even an hour later, I got an e-mail from Ellie Callahan at The Pragmatic Bookshelf, asking for my address so that they could express ship a new copy to me, no questions asked. There was no, “I don’t have the authority to…” or “…someone will call you tomorrow.” She simply apologized for the printing error and took take of the problem. They now a customer for life.

It’s something simple we impress upon the people here at Barefoot all the time. Do the right thing. Do the best work possible. Treat our clients and co-workers fairly.

One of the two companies mentioned above will not only continue to get my business, but they will get my support and recommendation as well. The other will not. I’ve quite literally put my money where my mouth is by linking to those I recommend.

Attorneys on Rails

Technology  |  Sean Brown  |  September 27th, 2007

Barefoot recently launched a new web site for Taft Stettinius & Hollister LLP, a leading Midwest law firm with five offices and a strong international practice. The site’s redesign is in support of a rebranding effort that got underway last fall and launched this summer. Taft has over 200 attorneys in five offices with activities in over 50 practice areas.

Taft needed a web presence that gave clients and prospects quick & intuitive access to all of their services and capabilities. To make sure the site continued to be a vibrant, up-to-date part of their marketing communications, they also needed a full-featured, easy-to-use content management tool to allow Taft non-technical users to easily manage the site.

The Taft site required an unusually high number of relationships between pieces of information. Attorneys are linked in a many-to-many relationship with practice areas, news stories, press releases, events, campus interviews, publications, and representative matters. Community & professional affiliations, court & bar credentials, law schools, languages and certifications are linked to each attorney as well. Many of these entities are also related to one another: practices are linked to offices, news stories are linked to practices & offices, practices are related to each other, and many more.

Because of the high number of inter-related links, none of the open-source or commercial content management systems we reviewed were flexible enough to do the job. So, we turned to one of our favorite tools, Ruby on Rails. In retrospect, it was the best decision we could have made.

Rails is especially strong in its support for building data-centered web applications, especially those with unique structures of inter-related data. We were able to model the nearly 30 different kinds of data with all of their relationships in a very clean & understandable way.

I think we used nearly every kind of ActiveRecord association that Rails supports. Some of the most challenging were those many-to-many relationships where the join table included extra properties. For example, the link between an attorney and a practice area also needed to store whether the attorney was one of the designated contacts for the practice area. For these, we used has-many-through relationships, like so:

Attorney model:

has_many :attorney_practice_links, :dependent => :destroy
has_many :practices, :through => :attorney_practice_links, :conditions => 'practices.active = 1'

Practice Model:

has_many :attorney_practice_links, :dependent => :destroy
has_many :attorneys, :through => :attorney_practice_links, :conditions => 'attorneys.active = 1'

As you can see, the attorney_practice_links model is the join table between attorneys and practices. This lets you store extra data on the link itself, so you can do things like:

a = Attorney.find(1)
puts a.attorney_practice_links[0].contact?

In building the admin tool, we followed some of the design patterns used by Radiant CMS, an open-source CMS based on Rails. The user manager was especially helpful. The rest of the CMS was customized, however, because of the need to easily link nearly everything to everything else.

We took advantage of Rails’ great support for Ajax-ified forms to build many linking widgets. For example, on the practice area detail page you can link attorneys, news stories, publications and events without leaving the form. This provides a nice view of all of the relationships and easy editing.

One of the best things about using Rails was its “agility” — which for us meant the ability to rapidly respond to changes in scope. (Scope changes in development? Shocking!) Throughout development, we needed to add new kinds of data, and more relationships than we had originally planned. With Rails, we were able to “do it right”, rather than kluge changes into a rigid, inflexible packaged software product. When a new data type came along, we’d change the schema, add the models, declare the relationships, add the unit tests, and the added element became a first-class citizen with the other elements that were originally “in-scope”.

We also extended Rails with many extremely helpful plugins to support other needed features. For full-text site-wide search, we used the Ferret gem, with the acts_as_ferret (aaf) plugin. What an amazing tool, but not without learning curve. Among other things, we successfully setup aaf to search across multiple models, ignoring those records that were not published in the CMS (they are marked as Draft or Inactive in the admin tool).

The client especially loves the ability to print on-the-fly, nicely formatted PDF files of attorney and practice area details. This gives them completely dynamic, always up-to-date resume for all of their attorneys. We used the pdf-writer gem, which has a powerful (but poorly documented) and challenging API to build dynamic PDFs.

For WYSIWYG editing in the admin tool, we used the unfortunately-named FCKEditor. It is a powerful, configurable, Javascript-only in-browser editor that has some nice built-in features for uploading files, cleaning up pasted-in characters from Word, while being quick & easy to use.

We deployed the site on the wildly popular Mongrel web server, using a Mongrel cluster behind Apache. The always faithful MySQL database quietly, quickly, and efficiently managed the data. It’s amazing how well this site works with all the ferrets and mongrels running around, but somehow they get along.

The success of any Rails project often comes down to the outstanding community support for the framework, in the form of updates, plugins, blog posts, and other shared documentation. This project was no different — and we are very grateful to be a part of this thriving community.

Happiness is working with other happy people

Agency Culture  |  Sean Brown  |  April 12th, 2007

One of the things we at Barefoot are very proud of is that we are able to create a place where people like to work. I had a final interview with a candidate last week and asked her why she decided to accept our offer (versus the others she had). She said, “Every person I spoke to, both current Barefoot employees and past Barefoot employees, all agreed on one thing: it’s an amazing place to work.” We try very hard to make it that kind of place, so it’s extremely gratifying to hear it. We hope all of our employees are pursuing their own happiness by being here.
Interested in joining us? Check out our jobs listing and see how you could become the next Toe at the ‘foot.

Twitter Your Brand

Technology  |  Sean Brown  |  March 14th, 2007

Our resident blogfather sent me a link this morning from Managing the Gray called “Twittering Beyond the Box.” Before we get to Chapman’s article, Brendon Connelly at Slacker Manager wrote the best synopsis I’ve read on what exactly Twitter is:

If you’re not familar with Twitter, it’s pretty easy to describe. It’s instant messaging with a group. You post a short message via IM, web or other utility (see below) and other Twitterers who are “following” you will see your message. Some have called Twitter a form of microblogging and I think that’s a helpful way of looking at it.

Right on the money. Besides the fun technology, you have to ask yourself, “Who would I Twitter?” If you could follow someone around for a day to see life through their eyes, who would that be? Chapman points out that presidential candidate John Edwards is twittering. One of my favorites is Steve Jobs. I’d love to see how different a day in the life of the guys at 37signals is from my own. The point is this, marketers: people love to get “inside scoop” on people they’re interested in (otherwise Us Weekly would be out of business), so why not use it to get your consumers closer to your brand? Hired a UFC fighter to promote your brand? Get him Twittering.

Knowledge Makes Me Happy

Technology  |  Sean Brown  |  February 6th, 2007

Late last month we launched the Map of Future Forces Affecting Education for the KnowledgeWorks Foundation, and let me tell you something: I’m happy about it. If you’ve read any previous posts, you know that technology makes me damn near giddy, and this site uses some of the best.

Main goal:

Build an online, highly-interactive version of the printed version of the map. While the printed version is great for small group discussion, an online version to which interested people can contribute allows the impact of the thinking represented in the map to grow exponentially.

Subordinate goals:

  1. While maintaining interactivity for we humans, make the site indexable by search engines.
  2. Allow actual conversations, which may have started in person, to continue and grow online.
  3. Allow users to contribute to the thinking and assets by uploading their own documents or pointing to existing websites.
  4. Allow users to control the categorization of the material.
  5. Make it easy to use.

That last goal seems obvious, but was one of the toughest charges. Let’s face it, the subject matter of the Map is difficult to grasp and some of the language is highly academic. Layered onto that is that fact that the metaphor used to present the ideas in the Map takes some time to “get”. So how did we do it?

Adobe Flash is used for the UI. This allows users to interact with the map in an intuitive way. Much like Google Maps, you can pan in any direction either by using the navigational arrows or by simply “grabbing” the background and moving the map in the direction you’d like to go. A Compass View gives you context as to where you are within the whole Map. Using Flash, we are also able to trace your path through the site. This helps users begin to connect seemingly disparate ideas, which is vitally important on a site with such wide, sweeping scope for subject matter.

Using Flash Remoting (a business layer that ties the Flash-based UI to the data layer) paves the way toward expansion and personalization. Don’t want to remember where you were next time you go to the site? No problem, just log in and we’ll take care of remembering. Think three different topics are all related due to economics? Tag the nodes, and the rest of the world will see the connection. Got something to say about all of this? Great! We want to hear it. Join the discussion groups to further the conversation. Need to lead a small group discussion in your community? You can either print out the full Map, or just grab the topics you’re interested in and we’ll create a PDF on the fly for you.

We think it’s a heck of a site. And I’ve got two young children, so building a site that helps shape how my kids will be educated is perhaps the greatest happiness of all.

Rails: The perfect technology for marketing

Technology  |  Sean Brown  |  January 20th, 2007

Managing technology for Barefoot, I get frequent questions from clients and colleagues about Rails, and why we’ve invested time and energy in using it. “Isn’t just it the flavor of the month?” “Isn’t it just popular because it’s open source?”

Because I am such a fan of the technology, it would be easy to dismiss these questions with the same disdain you’d see when asking a Mac zealot why a Mac’s better than a PC. But the question is legitimate. There are hundreds of technologies and platforms out there, and all of them promise something, so why Rails? There are tons of reasons to love it, but as an agency, there’s one strength in particular that just fits:

Rails excels at relationships. In fact, I’d venture to say that’s what it does best. And when it gets down to it, that’s what Barefoot does for its clients. We try to make it easy to see the relationship between Dawn and saving wildlife, Mickey’s Fine Malt Liquor and irreverance, and hell, when you think about Barefoot, we want you thinking about trading up.

Rails makes relationships easy. Yesterday, the long-awaited launch of Rails 1.2 happened, and with it, realtionships are even easier. Gone are the days of writing tons SQL joins like this one:

SELECT d.document_id
FROM documents d
LEFT OUTER JOIN parties p
on d.document_id = p.document_id
WHERE p.party_id is null;

In Rails, we set up relationships in plain English. A blog has_many posts. An author belongs_to a blog post, and a blog post has_many comments. With these kinds of relationships established, getting to all the posts by a particular author is easy: @author.posts

Whether you understand the code or not is irrelevant; the point is this: Rails makes creating, using and extending relationships easy. As an agency we strive to do the same. As it should be.

Ones and Zeros

Rocketing  |  Sean Brown  |  December 29th, 2006

“It can’t possibly be all ones and zeros!” I’ve heard that phrase many, many times from my wife. After so many years of putting up with my passion for technology, she still doesn’t buy it. “If it’s all ones and zeros, why does it cost us a couple hundred bucks every time some new gadget comes out?”

For as long as I can remember, my passion — that thing that makes me happy — has been technology. And it’s not just hardware and gadgets, it’s software too. My God I love a good text editor. A woman I once dated called my laptop my mistress, but that’s a story for another day. Even a cursory review of my finances will show that I’m willing to put my money where my love is. A quick review of the gadget graveyard in basement is even more telling: an Apple Newton, a Garmin handlheld GPS device, three generations of Palm Pilots, a Compaq/HP iPaq, two Blackberries, an Apple Macintosh SE (two, count ‘em, two floppy disk drives and zero hard drives), and more cell phones than I care to admit. Check out my bookshelf at home and you’ll see it is littered with titles like Agile Web Development with Rails, MySQL, and Shell Scripting.

These days I spend a lot of time trading up for software that makes my technical life easier. I already mentioned my love good code editors like TextMate. Years of accumulating files and source code are easily searched and indexed by tools like Quicksilver. Google Reader allows me to easily keep up on the 30+ blogs I follow to make sure I’m on top of the quick pace of change. My technical team here at Barefoot and I have been developing using Ruby on Rails because it allows us to get from idea to prototype to production much more quickly than other platforms. We all work on Macs because, frankly, Macs allow us to be more productive. Does an individual Mac laptop cost more than than an individual PC laptop? Very likely. But how valuable is my time? How many hours have I saved in the past week alone because I trade up for tools that make my life easier?

OK, fine. I’ll admit it. I think the gadgets, machines and tools are cool, too. It’s not all about productivity gains, it’s more about where I find happiness. To thine own self be true, and technology is what I rocket for, whether or not that makes me a geek.

So I’ll continue to spend my tens and twenties making all the ones and zeros do what I want them to do: convince my wife they’re real.