blog

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.

Trading one shirt for another

Blog + Rocketing  |  Steve Kissing  |  September 24th, 2007

Somewhat to my surprise, it occurred to me just the other day that I have become someone who trades up for fashion. It used to be that my wardrobe was nothing but jeans and T-shirts from the likes of The Gap, Target and Old Navy. But now I’m paying two- to five-times what I used to shopping at the likes of Buckle, Fossil and Guess.

What gives?

I think the answer can be found in the fact that I started trading up for clothes about a year ago, but subconsciously chose to sort of ignore it, meaning I was hiding something from myself. (Of course, after you spend so much, there’s no ignoring the AmEx bills.) Why have I been paying more for arguably more “hipper,” more “fashionable” clothes? I think the honest truth comes down to a mild mid-life crisis. Why else would a married 36-year-old worry that much about what he wore? Or spend considerably more than he had to meet basic clothing needs?

My new wardrobe makes me feel younger and more with it, even though I realize that I run the risk of looking like a 36-year-old who dresses like a 14-year-old. But, assuming that I’m not falling into that trap, I feel younger, which makes me feel better. Vain? Probably. But who cares? Isn’t psychic gratification a big part of trading up? Of course it is!

It’s not easy admitting to vanity, to coming out of the fashion store closet, so to speak. But as a student of the buying mind, I find the lengths we will go to rationalize our purchases (or even hide them for a while) quite fascinating. Once again, I’m reminded of how those who market trade up products can help themselves by providing their prospects and consumers with what Barefoot has trademarked as the “Reasons to Rationalize.”

My clothes may cost more than they used to, but I rationalize the added expense by convincing myself that I look younger (and better), that the clothes are at least marginally better made and that, as an advertising creative, I need to look “with it.” Silly? Maybe. But so is the fact that I’m actually older than 36. How much so? That’s for me to know and you to guess.

Happiness is being 0-11.

Agency Culture  |  Jodi Greene  |  September 18th, 2007

Really? Did I just say that? Yeah, I did. Now, I’m a super competitive person but for some reason when it comes to our softball team here at Barefoot, I don’t mind the occasional (or in our case, oh-so-occasional) loss. We’ve been playing for three seasons, and have but one glorious win under our belt. I’m not going to mention that this win (in our first season) was probably the result of the other team not having enough players; the fact that the league stat sheet says “win,” well, that’s enough for me.

The reason my ultra competitive, do-what-it-takes-to-be-the-best personality is okay with this not-winning-one-single-game-this-season fact is because every Monday night a bunch of us from Barefoot meet at a softball field, and for an hour or so, hang out, cheer each other on, make fun of each other, laugh and have a few drinks. It’s great. It gives us all a chance to be ourselves outside of work and get to know each other on a whole different level.

One of the things that I’ve always loved about Barefoot is the people here. People who work hard and who genuinely like each other. I’ve always believed that this is one of the biggest reasons we all come in here every day, work our asses off and still love (and enjoy) what we do.

While we may not win many (or even barely any) on the softball field, we certainly have a lot of wins here at Barefoot. So as long as none of us quit our day jobs, I think being 0-11 is a perfectly happy place to be.

Go Barefoot!
See you next season.

Trading Up: A Family Affair

Blog + Rocketing  |  Steve Kissing  |  September 8th, 2007

One of the best things about trading up is trading up for others. My wife is a pro football fan and so this year I bought her season tickets to the Cincinnati Bengals. (They open their season on Monday Night Football.) I’ll accompany her to a game or two, I’m sure, but this really isn’t a case of the husband buying a sports-related gift for himself and trying to pass it off, no pun intneded, as a gift for his wife. I don’t follow the sport and or care much about it. In fact, the thought of sitting in Paul Brown Stadium while it’s 20-degrees (or colder) for four hours sounds like torture. I’d much rather watch it on TV. But the tickets sure made my wife happy, which, in turn, makes me happy. So maybe, in a way, I did buy those tickets for myself.

My two daughters (ages 10 and 12) are horse crazy. They’ve been taking lessons for more than a year, read all the horse fan magazines, draw countless pictures of horses, and otherwise eat, sleep and breath horses (that’s when they’re not absorbed in a Disney channel sitcom such as “Hannah Montana”). So I’ve been investigating buying and boarding a horse for them. A horse is a big step up from the gerbils and chincillas that they’ve had. But I think they’re ready for it. And I know it will please them to no end. I also know that they will be handing over allowance and birthday money and forgoing some Christmas gifts to help keep their new pet well fed, shoed and cared for. It’s a mighty fine life-lesson: trading up costs money, and it also means that you have to make sacrafices and cut corners elsewhere. And, in my book, that’s a lesson worth paying for.

Apple Screws Core Consumers.

Rocketing  |  Doug Worple  |  September 5th, 2007

I won’t change my tune.

I still love my iPhone.

But I think with a premature $200 reduction in the price of the iPhone, Apple has alienated their most loyal consumers, and demonstrated a complete lack of understanding as to why people were willing to trade-up in the first place.

When people stretch and spend more than “they should have” for a luxury item, they find Reasons to Rationalize® their purchase. As for my $600 iPhone, my Reasons to Rationalize included the ability to finally have one stand alone device that allowed me to leave my macbook behind, the iPod functionality, the visual voicemail, etc.  That was how I was able to rationalize spending $600 on a phone.

As of today, I can no longer do that. Now I can rationalize $400 of the purchase to get those features, but Apple has put me in an indefensible position (in my mind) of having spent an extra $200 due to what can only be seen as a completely irrational (or childlike) desire to be first. Essentially I now have paid $400 for a phone, and $200 to have it a few weeks before everyone else. That does not remotely feel good or engender any positive feelings toward the Apple brand.

Another of the key tenets of how you market a trading-up product is how you treat consumers after purchase. After purchase, a purchaser constantly searches for post-purchase cues that they’ve made a smart decision. Up until today, the media/blogosphere was filled with positive reviews all working to reinforce that an iPhone purchase was wise. And then Apple makes a move that completely undoes all of that positive post-purchase feedback in one fell swoop. Now the blogosphere is full of people enraged with their premature purchase.

Net, instead of looking and feeling smart about my iPhone purchase, I feel sheepish for rushing out and not delaying gratification for a few more weeks.

To be clear, I assumed we would see the price drop as the holidays drew near to drive additional iPhone sales, but never in my wildest dreams did I imagine they would cut prices by $200 (with no reduction in features) in 2 months.

The lack of regard for their best customers is really impossible to fathom.

The odds of me ever buying anything in the first 6 months of an Apple new release?  Zero.

Way to go Steve Jobs. You’ve just proved you’re not the “in-touch-with-the-consumer” genius people thought. Apparently you forgot how much your success has depended on riding the backs of millions of misguided Apple evangelists.

There will be one less back to ride in the future.

Trading Up Regardless of Income Level

Rocketing  |  Doug Worple  |  September 5th, 2007

There’s a great article by Sarah Mahoney on Mediapost’s Marketing Daily that highlights the spending power controlled by low-income households. The article is in response to the findings of a recent study published by IRI that showed:

These consumers–about 40% of the U.S. population–actually outspend more affluent types, and will shell out $85.3 billion on consumer packaged goods in 2007. In the next decade, IRI estimates this group will generate an additional $84 billion in incremental spending on packaged goods.

The article highlights that with the recent boom in luxury spending, marketers have been ignoring lower income consumers and that there is a clear risk in doing so.

Mahoney quotes Sean Seitzinger of IRI who points out that not all retailers have ignored this segment and he highlighted Target’s efforts as being spot on:

Certain of the dollar-store formats, he (Seitzinger) says, have gotten the formula right. And Target has also nailed it, managing to straddle a market position that not only welcomes middle-class shoppers willing to trade down for occasional bargains, but also entices lower-income shoppers to trade up. “These lower-income people go to Target to buy their nicest outfits,” he says.

But it’s also got an “understanding that the dialog with lower-income shoppers isn’t just about price,” he adds. Target’s Choxie chocolates, for example, cost far less than Godiva, but are a lot more interesting than a bag of M&Ms: “It’s offering lower-income shoppers a high-end indulgence in a form they can afford but still makes them feel luxurious.”

This is spot on with what we’ve learned and are applying at Barefoot. Trading-up is not limited to the affluent, and rocketing is a behavior that applies to everyone regardless of income level.

The Right Way to Soak Up Success.

Agency Culture  |  Jodi Greene  |  August 30th, 2007

I have seen a lot of people come through the doors at Barefoot. Not just full time “Toes,” but bright-eyed, hopeful candidates and students looking to better understand agency life and I get asked this question a lot, “What’s the most important thing to be successful in this business?” My answer used to be simple: passion (and I still believe that is incredibly important). But I’ve also met a lot of “passionate” people who did not possess what I now view as the most important thing to be successful.

So, now my answer goes a little something like this: “Be a sponge. Be open, listen and learn as much as you can every day. Understand that as good as you think you might be, there is always someone better, smarter, faster, more talented. And once you can understand that and truly believe it, half the battle is won. The rest is up to you. Become a student for life and never believe that you are “there,” that you have arrived.

I can’t imagine that day will ever come for me, because the day that happens is the day I am no longer growing. Regardless of the promotions, pats on the back or awards I win, I continue to believe I am only as good as the last thing I have done. And that keeps me pushing myself, growing and I believe it helps me to be a more valuable contributor to the creative team and to Barefoot everyday.

So, I guess what I am saying is that be patient, listen a lot and enjoy the ride. Don’t be in a rush to get to the top and make the most money. Enjoy the journey, because that’s exactly what it is. Yes, passion is great to have, but in my opinion, being a sponge is even better.

Luxury losing its luster? I don’t think so.

Rocketing  |  Steve Kissing  |  August 27th, 2007

A new book called Deluxe: How Luxury Lost its Luster by fashion writer Dana Thomas seems quite interesting as a piece of historical and social commentary, but more than a bit shallow and naive in terms of economics and human behavior.

Thomas seems to bemoan the fact that once great luxury brands that stood apart because of craftsmanship are now commanding luxury prices largely on the basis of status, since overall product quality in the fashion space has declined substantially in her view.Thomas seems to long for the good old days when only the rich could afford certain things, making it clear who was in the upper caste. And who wasn’t. Of course, it’s still very true that only the rich can afford certain things, but our robust economy has created a middle class with a lot of spending power, or more to the point: with the means to cut corners in one area in order to trade up in another. (Just as Thomas herself finds a couple loading shopping bags from an outlet store into a $380,000 car.)

Thomas seems to ignore the tremendous psychic gratification one can gain by aligning him- or herself with a particular brand–”badging” as some call it. How does one put a value on that? It’s simple: It’s whatever someone is willing to pay for it, regardless of how ridiculous you or I may think that is. (I have a $600 luxury fishing pole; I know at least one person who thinks that’s crazy.) Thomas suggests that some companies are making obscene profits while their products leave lots to be desired in terms of quality. In her view, this is something of a crime. I’m no advocate for shoddy products at high prices, of course. But I am a fan of the free market. Unacceptable quality will eventually catch up with any brand, I believe, but even faster with those who play in the luxury space. Poor quality is an open door for competitors to stroll right in. (As a quick aside for those in the Eastern United States, think about what Ron Trzcinski of The Original Mattress Factory has done to shed light on the poor craftsmanship and high costs of the bedding industry.)

All that said, if someone wants to pay, say, $1,000 for a “designer” garbage bag that a woman wears as a dress as a means of making a statement about herself and her place in the world, then I say that’s a win-win situation for both the dressmaker and the dress wearer.

Passing down a little trading up.

Rocketing  |  Steve Kissing  |  August 23rd, 2007

I rocket for books. Big time. I buy more than I can possibly read, but that’s OK by me. I like the way a new book feels and smells. I like anticipating when I’ll first crack it open, which is often as I sit in my car before I drive out of the parking lot. I visit a bookstore several times a week, often with my oldest, Maggie, 12, in tow. She’s book crazy, too. Currently, she’s immersed in Stephenie Meyer’s vampire love trilogy (Twilight, New Moon and Eclipse). I have no issues with buying Maggie any and every book she wants. What parent doesn’t hope their kids enjoy reading? But it’s more than that for me. It’s a chance to share a passion: the joy of books that only those who have been so bitten and smitten can understand. I get it. Maggie gets it. That’s cool.This experience has had me thinking about how some brands could help encourage this sort of parent/child bonding via interest in the same trade up categories. I suppose we could call this “parent/child branding.” While not appropriate for, say, a beer brand, parent/child branding could be fertile ground for an outdoor gear brand or a technology brand. My love for books has only deepened because of Maggie. Plus, I spend even more than I used to as I underwrite her addiction in addition to my own.Perhaps my passion for books will inspire Maggie to buy them like crazy when she’s my age. And, if so, Doubleday, Simon & Schuster, et al will owe me a big thank you. I’ll gladly settle for some free samples.

The idea inside the product.

Rocketing  |  Steve Kissing  |  August 22nd, 2007

There’s a solid article on rocketing worth reading in the current issue of Fast Company. It’s called “The Inevitability of $300 Socks.” The authors, Chip and Dan Heath, who also so happen to have a book on the market now called Made to Stick, make this fundamental point: “Products make the leap from pedestrian to premium when their creators think of them as ideas.” People buy into and fall in love with ideas, not products, per se. It’s the idea of craftmanship or beauty or intelligence that people want to be associated with. As the authors say: “Luxury has become more about personal pleasure and self-expression than status.” It’s the “idea” that a product represents that reflects who we are. “You are, it seems,” the authors write, “what you blow a lot of money on.” There’s more than a little truth in that. For sure.