Intellectual Barrier to Entry
Friday, February 15th, 2008 by Michael
Since working at Tenthline, I’ve been involved in three major projects. The first, and the largest of these, was working with a heavyweight content management system put out by Fatwire. I hadn’t had much web experience at that point, so working with Content Server was a challenge, but it wasn’t until I played with some other technologies that I started to really appreciate how much it got right.
Dave Thomas once said, when speaking about Java, that to get into web development for Java one needed to read a stack of books some five feet tall. When I got my first taste of the next big project, using Spring MVC, I must say, that’s almost exactly how it felt. Mind you, Fatwire’s Content Server and Spring MVC are completely different animals. Fatwire doesn’t really cover the same ground as Spring: it manages content, and does a good job of it, but doesn’t stray beyond these boundaries. It’s also fair to say that Java isn’t my best language; I tend more towards dynamic typing when I can manage it, being quite content to be handed rope, a tree, and a “Knots for Dummies” handbook.
Java, on the other hand, feels like being handed some twine, some blunt scissors, and a manual on how to construct your own loom out of XML. One very important metric of any platform is the time it takes your developers to become productive. Installing the software is a part of this, but that can usually be handled by one senior team member, or the IT staff. Once that is set up, the “documentable” part of the process is gone. There’s nothing left but the developer and the learning curve. If that curve is steep, then it can take a long time to become productive. There’s often a trade off between making things easier for the expert, and making it easy for the beginner. Content Server definitely lends itself more towards the beginner side of the spectrum. For the end user of a site, making a page is simple, and adding content is easy. Things are a little harder for the developer, but time between “create new a site” and “preview your home page” is mercifully sweet, letting the developer gain momentum, prototype quickly, and generally feel productive.
When we gave our big presentation on the completed Content Server system to some contributors, we were able to spoon fed baby steps. “This is how you add some content.” Believe me, they were happy. They were happy because they “got it” right away. It’s very tempting for developers to focus on all the things the software can do, but it’s probably worth asking, “How would someone that has never seen this before learn it? In what order would they learn the necessary components?”
A product which accomplishes something great but is too difficult to learn can only thrive if there is no competition. The lower the intellectual barrier to entry, the more chance you will be able to convert people to your product.
Tags: Content Management, Java/J2EE, Sun



