Mike Rucker, Ph.D.

Interview with Scot Hacker about Website Engineering

Scot Hacker has a long list of accomplishments when it comes to technology and the Web. Over the last decade he has authored MP3: The Definitive Guide for O’Reilly, a book about the Be operating system for end users, and countless articles on technology for Web development publications such as MacWorld, Byte, and PC Magazine. Currently Scot is the mastermind behind Bucketlist.org which is a community website where people can share common goals and aspirations. He is also the head of Birdhouse Hosting. By day, Hacker is the Webmaster at the Knight Digital Media Center, which provides digital media training to working journalists. He also helps run the web presence for UC Berkeley’s Graduate School of Journalism.


Here are my 5 questions with Scot and his answers:

1) The popularity of open source CMS software has enabled a wide-range of authors the ability to easily publish content online. If you believe the latest figures, WordPress alone now powers close to 20% of newly registered domains. Do you believe that the increasing access to content, and the ease with which it can be created, adds to the greater good? Or is this proliferation diluting consumers’ ability to find relevant and/or quality content?

I see this as two separate questions. First is the crazy proliferation of content and the second is whether the easy availability of open source tools contributes to that. It’s astounding how much content is being pumped out today. There are “content farms” hiring amateur writers and bloggers to churn out cheap content just to please the search engine gods (if you don’t mind being frightened, see this infographic). Some of these sites don’t even write original content – they just scrape content from other sites, or even auto-generate virtually useless content based on keywords and algorithms – anything to make it into search results. It’s become such a widespread problem that Google has released extensions and plug-ins that let end-users vote down suspected content farms in search results. It’s a massive headache for Google, and a frustration for legitimate publishers trying to compete for those top SERP spots. Data pollution is the dark side of the over-proliferation of content.

Democratization of publishing has also led to a huge proliferation of content that’s legitimate but just not very good – the amateur blogger syndrome. That’s not really a problem, just a reality – we all need increasingly good filters to surface the best content.

Now we have the incredible rise of social networks (Facebook, Google+, Twitter, Tubmlr, etc. ), and their mix of public and private content. Social is obviously relevant, and there are a lot of good social signals amongst the noise, but it’s made life really difficult for the bloggers. Very few people will visit a blog as a daily destination anymore, and people simply don’t see content on blogs unless pointed to it from a social network. We’re using social nets as filters to address the proliferation of content – “If my friend recommended it, it must be worth reading.” After a while, many of us old-school bloggers have just thrown up our hands and started posting most of our content on social networks… reserving the blog for the best/most unique content we have to offer.

One thing that hasn’t changed is the need to be where the audience is, and that place will always be a moving target.

2) With Bucketlist (bucketlist.org) you have created a public sandbox where anyone can share their ambitions and desires with the world. Unfortunately, there are people out there with desires that can be viewed as harmful to themselves or others. For instance, a provocative goal worthy of pursuit to one person could potentially be offensive to others. With limited resources, how have you managed to make sure your sandbox is accommodating to the masses while still remaining safe?

Anyone doing a site like Bucketlist is going to face the challenges of varying moral values and social norms. You have to start by thinking about who you want your audience to be. Do you want to appeal to families? Or just adults? For my site these issues came up pretty quickly. For example, are sexual life goals okay? In my mind, they are as long as they’re expressed in a tasteful and non-vulgar way. But sometimes it gets graphic… so then the question is how graphic is too graphic? And, what constitutes obscenity? It all comes down to soft rules. I use a flagging system, but still need to make lots of subjective decisions. For example, take the goal “Come out of the closet.” In my opinion a great goal, but I have people marking it as offensive. On the other hand, people have posted things that are also morally OK with me but framed in really vulgar terms, and I do delete those. Right now I manually check out all flagged items, but as the site becomes more popular I’ll rely on the database to surface the most-flagged items for review.

Decency is subjective and it’s all a gray area, I know. Basically the criteria I use is “Would I want my niece to read this? Would I want my nieces to think their uncle is the kind of person who would run this kind of web site?”

We also have a very clear “No naughty bits” posting policy that users agree to upon signup. Users are warned that if they post content that is offensive to a reasonable person, or try to use the site to promote their own business, I will not just delete that piece of content, I will delete their account and everything that goes with it, no questions asked. I was dubious whether it would be effective but amazingly, I have not had to delete a single spammers account yet. It’s inevitable that I will, but so far so good.

3a) What site(s) do you think is (are) the best example of pushing the limits of a CMS system (ex. mine currently is Jay-Z’s WordPress implementation at http://lifeandtimes.com)? And why?

CMSs are all so different, and some are easier to “push to the limits” than others, but honestly, I no longer believe in CMSs for complex sites – it’s all about frameworks for me now. CMSs get in the way more than they help, and developers will have a better experience with Ruby on Rails or Django than they will with Drupal or Joomla or any other CMS for that matter. Though I do still use WordPress for a lot of general-purpose sites, I go straight to Django for complex sites.

Don’t get me wrong – WordPress is wonderful. It’s so easy to get up and running, but it makes certain assumptions about the shape of your content. It starts with the assumption that every piece of content on your site has a title, and a content body, and a summary, and a timestamp, and an author, and a category, etc., etc. That fits lots of basic content-oriented sites but you wouldn’t use it to create an equipment checkout system, or a course review system, or to provide every site member with a personalized calendar. You try and do something like Bucketlist where you have complex one to many follow relationships (opposed to one to one) between users… WordPress isn’t going to cut it. You might think Drupal or a full CMS would be the way to go there, but you’ll probably spend more time wrestling with those systems to get them to sit up and do tricks than if you started with a “box of parts” like Django or Rails and simply built what you needed to begin with.

So pushing a CMS to its limits and taking it to places where it was never designed to go, in my world, all that says to me is that you’re using the wrong tools and you need to become a better developer. For me, it’s all about frameworks these days. Content management systems …they all make assumptions and you have to spend time tearing those assumptions down and working around them to get what you want. I think virtually everybody who’s trying to do something slightly unusual on the Web would be better served with a framework like Ruby on Rails or Django. Where the framework doesn’t make any assumption about the form of your content… instead it gives you a box of tools and says “here, you build this up to be the CMS that fits your goal like a glove.”

With a framework it’s not like you’re building stuff from scratch – instead, you’re assembling components – here’s your RSS system, here’s your generic commenting system, here’s your cross-site scripting request forgery attack prevention system, here’s your form building validation system, here’s your login and authentication systems, etc., etc.

That’s my take – I’d rather not use a CMS at all, if it is not the right tool, why push things to the limit?

3b) What site(s) do you think is (are) a textbook example for flawless usability design? And why?

A site I really admire and that we point to in our classes as a great design example is Good Magazine. It’s tasteful and beautiful to look at, and they nail all the right design principles… things like paying careful attention to alignment, so if you have an image in one column, the top element of the column next to it should be exactly aligned horizontally with the top of the image. The design gives a sense of polish and flow to the page that you don’t get otherwise. This is the difference between “good enough” design and really polished design, where every pixel has been considered.

Usually you only get this kind of polish when the design is in the hands of one or two people rather than a whole team. When too many stakeholders are involved, you get “design by committee.” Look at the recent redesign of bostonglobe.com – it’s radically simple, and you know the lead designer had to fight some tough battles to keep it that way. It’s far too rare – usually you end up with way too much crap jammed into the homepage, trying to appease the demands of all stakeholders in the organization.

A better approach is to have a benevolent dictator imbued with the authority to make these hard calls, and who can say NO to lots of people – someone who can make choices that benefit the end user, rather than all the department heads.

4) What are the most important questions to ask before choosing and/or developing the back-end engine of a web site? At this stage of building a web site, where do you see common mistakes that could be avoided with a little forethought?

Whether you’re working for somebody else, developing your own site, working with a start-up team, or are just an individual with an idea, you need to start by assessing needs and your available skills. Again, I personally think you’re always going to be served better with a framework versus a CMS, but to do that you’re going to need programming skills. If you’re an individual without programming skills you’re either going to have to study up, or hire someone. So one thing WordPress and Drupal offer is the ability to do a ton of great work without writing any code at all. But eventually you’re going to hit your head against the wall and wish that you had more flexibility. One of the first things that I want to know when a client approaches me is:

For instance, if you already have a relationship with some Drupal experts, obviously you’re going to get farther faster than if you chose a different platform, so that’s part of your decision criteria.

Keep in mind that the way that an engineer expects people to interact with a web site is seldom the way users actually want to interact with a website. End users will always find ways to use your website that you, the engineer, never considered. For example, there have been cases on Bucketlist where people want to enter all their goals at the same time instead of entering them individually. And I think to myself as the developer, “How can they check off a particular goal now? How can they re-arrange anything? How do they expect me to feature or promote a single goal? They’re missing the whole point…” And yet to them, that makes perfect sense. They’re proud of their list, they share it with their friends… and their friends say, “Yeah! Good for you.”

Do I need to allow people to use the site in ways that I never expected? Or do I need to find ways to prevent it? These are decisions that need to be made on a case-by-case basis.

One of the things that Apple is famous for that kind of goes contra to a lot of design and usability conventions is that they do very little interviewing of users to find out what the user wants. They have a vision. They’re thinking way beyond where any users currently are. They’re saying “This is what we’re going to do …we’re going to build something because we believe in it.” Henry Ford once said “If I had asked my users want they wanted, they would have asked for a faster horse.” Steve Jobs has said, “I’m more proud of what we have not put into our products than what we have.”

On the flip side, some of the most famous open source software has bazillions of preferences and options, because every time a debate happens on the mailing list, the group agrees: “Let’s just make it a user option.” This is similar to the discussion earlier about how websites that suffer from feature-itis and it takes a benevolent dictator to keep things simple.

5) In launching Bucketlist you’ve created a fairly sophisticated site in a short time window… with limited production time and limited resources. Your success is a great example of what can be done if you have a vision. What are three pieces of advice that you could give a bootstrapping entrepreneur with a big idea?

1) Assess the field and figure out what kind of competition is out there already. If your idea has been done to death, you know you’re going to have a real hard time getting traction. As history rolls on, it’s getting harder and harder to be unique. If there are a dozen copycats of your idea out there, it’s going to be tough. With Bucketlist there were a few existing similar sites, but none of them worked the way I wanted them to. This made me feel like my niche still had room for growth. Since Bucketlist launched, many additional copycats have come online. Some have approached the problem differently, while others haven’t added anything at all. Just remember: If your idea doesn’t sound a little bit crazy, you’re probably not on the right track. You’ve got to trust your craziness. If you have some wild hunch, go with it! Just get out there and be the best at executing your nutty idea.

The key is that you need to be scratching an itch – that’s where the passion comes from. If you’re not feeling the itch, you probably won’t have the passion to follow through, because there are going to be lots of false starts. You need enough excitement to get you through the disappointment of the inevitable mistakes.

2) Believe in your tools. In my case, I passionately love the Django framework, and working with it is part of what I personally wanted. Yes I was passionate about the site concept, but it wouldn’t have been fun to build with Drupal.

3) Have the right kind of people on your team. Even if you’re a one-person team, are you the right person for the job? In the case of websites, can you build what you want well enough that it will be useful? In my case, I have more engineering skills than design skills, but depending on what I’m building, I may need some marketing people. In fact I’m sure if I was working with a marketing person Bucketlist would be in a very different place today. Maybe I will someday. Also, make sure all the people on your team are as passionate as you are.

So, yeah – Regarding Bucketlist I can answer “yes” to both questions. I’m the right person to build it and I’m passionate about the work. Bucketlist keeps me up at night. It’s something I’ve been building between 11:00 PM and 1:00 AM in the evenings when I’m not busy working or playing with my child. It’s what I want to be doing in my free time. The site may look complete, but I’ve got a feature wish-list 100 items long. Right now I desperately want to have a mobile version of the site, and I’ve got that halfway built. People are asking for it and I want to build it!

Exit mobile version