Posted January 26, 2011 by John Petersen
In the fall of 1996 I was one half of the two-man technical team behind macromedia.com. My colleague Eric Thompson kept the servers humming and I was the token programmer. I spent my days and nights in Perl, Javascript (brand-new at the time), and Lingo (the language of Macromedia Director), with an occasional foray into C for Netscape web server plugin development. The site was one of the web's busiest then due to the popularity of Shockwave, the Director browser plugin that predated Flash. It seems strange in retrospect that such a busy site would have such a skeleton crew, but we didn't know that then. The web was still in its infancy, and no one really knew what they were doing, least of all me.
One evening as Eric and I toiled away – I remember it was later than one would normally expect to field a meeting or a business call – a gentleman walked in and introduced himself. He was the founder of a company that was spinning off some technology used by writers to update another busy website down the road from us: cnet.com. He wanted feedback on a beta version of his product. Someone at Macromedia must have pawned him off on me. I politely listened to his pitch, told him I'd take a look at whatever he left with me (a stack of 3.5" floppies perhaps), but ultimately blew him off. I was too busy, and of all the things on fire his request seemed the least likely to burn me.
That man was Ross Garber, his fledgling company was Vignette, and the product was a pre-release version of StoryServer 1.0. I did not know that I was glancingly witnessing the birth of an industry that would come to be known as "web content management," nor the humble beginnings of one of the fastest growing software companies in tech history, nor indeed a glimpse of my own professional future. I did not follow up or keep in touch with Mr. Garber. I was not a player in the drama of Vignette's early years.
In 2000 I joined a startup called Epicentric that was pioneering another new enterprise software category called "portals," or "My Yahoo for the enterprise" as founders Ed Anuff and Oliver Muoto's elevator pitch went. I was hired to help design and build the first multi-site-capable portal product, and so I and my colleagues did, after the most difficult software development death march of my career. But that's a different story.
A few years later my life path again intersected with Vignette's when Vignette acquired Epicentric in a fire sale during the dark days of the dot-com bust. All of Epicentric's common shareholders were wiped out in the deal. We had been tantalizingly close to both an IPO and a large acquisition just a year-and-a-half earlier, so it was with some disillusionment that we set about our new task of integrating the portal with Vignette's flagship WCM offering.
Vignette's glory days were already over, and Ross Garber had already ridden off into the fading sunset of one of the of the dot-com era's most successful IPOs. Now Vignette was struggling. Their core product team had decided to do what Joel Spolsky famously warned was "the single worst strategic mistake that any software company can make: they had decided to rewrite the code from scratch." Where Vignette V6 and all of its predecessors dating back to StoryServer 1.0 were TCL-based, it was decided that V7 would be done in Java, and not just Java but the full J2EE spec with all of its recently-released-bells-and-poorly-supported-whistles. Additionally, where V6 was very programmer-centric with little in the way of out-of-the-box administrative tools, V7 would add a rich admin console, opening the product up to non-programmers. In short, the new release was a case study in Fred Brooks' second-system effect. At the time of the Epicentric acquisition, V7 was late, buggy, and provided no migration path for V6 customers. Vignette was caught in the chasm between legacyware and vaporware, and license revenue was drying up. The main thing that Vignette had going for it was a war chest of IPO cash that allowed them to roll the dice with the V7 rewrite and a handful of acquisitions.
Epicentric lost many of its customers to the dot-com bust and was burning cash at a high run-rate having staffed up a large engineering team – hence, the fire sale to Vignette – but the portal category was still one of the few bright spots in enterprise software. Epicentric's product was relatively mature and had become a darling of customers, press, and analysts. The Epicentric revenue stream helped sustain Vignette while the WCM team scrambled to shore up V7. The Austin staff bore the brunt of the Epicentric-related layoffs. Epicentric's VP of Engineering was installed as Vignette's VP of Engineering. An Austin colleague told me at the time that it felt as if Epicentric had acquired Vignette rather than the other way around. The company's center of gravity shifted to San Francisco for a time.
But when V7 started to find its legs and when some ex-Epicentric executives were removed in a shakeup, there was an anti-Epicentric backlash that ultimately resulted in the San Francisco office getting blanketed with pink slips. I give this history not to air dirty laundry nor to suggest that this kind of thing isn't typical during the push and pull of acquisitions but rather to describe the internal gulfs that separated Vignette Portal from Vignette Content Manager. Me and my colleagues in Austin and San Francisco tried to integrate the two products, yet they remained divided not only by design and architecture but by geography, culture, and company politics. This internal gulf at Vignette, I believe, affected the larger industry. The two product categories – portal and WCM – remained segregated in press releases, white papers, and analyst reports at a time when they might logically have converged.
Even now, after so many years and so much water under the bridge, what it really means to "integrate" a portal with a web CMS, and whether it makes any sense to have two adjacent stacks rather than a single unified one, is still, for me, an open question. If portals are operating systems and content management systems are databases, then there is historical precedent to support the notion that these two product categories will evolve independently (witness: Microsoft versus Oracle). But I believe that portals and WCM share the same destination, even if it remains, for now, a spot on the horizon. Despite significant convergence and overlap, the two stacks remain different today, and, in fact, there is a beautiful symmetry between them.
A portal serves applications; a web CMS, content. Both service multiple constituencies, but the core constituency of a portal is, in my mind, the programmer, and of WCM, the writer. The application-centric approach to building websites gained a lot of traction in the early years of the new millennium, but proved too complex and expensive for simple content-centric use cases, so a new generation of pure-play WCM vendors rose to meet the underserved needs of web writers. Yet for all the excellent product development work done by these vendors, few of their customer implementations have strayed very far from the cnet.com requirements of old from whence StoryServer was born: a one-dimensional publishing platform, a direct translation of print media onto the web. Partially as a result of the WCM industry's success in solving this basic web publishing problem, it is no longer enough for today's customers, and the pendulum is swinging back towards richer, more interactive, more personalized, portal-style sites. Both portal and WCM vendors have worked to incorporate the best features of one another in recent years, but portals are probably better positioned to serve the growing market of customers whose websites must bear a closer resemblance to software applications than to brochures. Applications, including but not limited to the "social" applications that are now in vogue, have always been the portal's raison d'être. The old jeremiad, forever questioned and reasserted, that "Content is King" may be losing relevance as more and more sites arise for which Apps are King. Of course every site needs its own "relevant blend of content and services" advises Gilbane Group's Ian Truscott in Content and the Next Generation Portal Experience. Finding the right balance between portal features and WCM features, apps and content, good writing and good programming — that is part of the art and the challenge of building websites in 2011.
As a self-taught programmer who once harbored aspirations of becoming a writer, the touchpoints between programming and writing have long fascinated me. Both writers and programmers obsess over language, words, structure, punctuation. Both must give form to bits and pieces of broken logic, making order out of chaos. The infinite malleability of both mediums is both liberating and maddening, for no piece of writing and no piece of software is ever truly finished; it is only abandoned. In The Mythical Man-Month Fred Brooks notes the connection:
The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination.
Both start with a blank page – a notebook, a whiteboard, a Word document, an Emacs session – and with it must magically conjure forth something out of nothing. In The Writing Life Annie Dillard ponders the question "Who will teach me to write?"
The page, the page, that eternal blankness....the page in the purity of its possibilities; the page of your death, against which you pit such flawed excellences as you can muster with all your life’s strength: that page will teach you to write.
And that page will teach you to code – the blinking vi cursor, the endless loop of code-test-debug, a perfect corollary to the writer's obsessive write-read-edit cycle. As web platforms for the programmer and the writer, portals and WCM help both artisans reach new audiences and share their work with the world.
Software has become such a part of our business DNA that every serious company in any industry must now become a software company. And any company that wants a true competitive advantage needs to invest in programming talent. I don't believe, as some do, that the need for programmers will become obviated in time by better, higher-level software tools that allow drag-and-drop construction of applications. Good programmers will always be able to add unique value. What I think is more likely is that an increasing number of knowledge workers will learn to program, and that programming will become a new literacy – not a specialized field of study but rather a foundational requirement for all disciplines just like writing. So portal and WCM stacks are not only converging in feature sets in the short-term, but on a longer time horizon, their core constituencies are also blending together, and in that sense perhaps content will remain king, if applications can be considered a new kind of content, and programmers a new kind of author.
The mistake I see portal product teams making today is in chasing the success that the WCM vendors have had in recent years. I would like to see them embrace their technical roots and make the web application programming experience as easy and compelling as WCM vendors have made the web content authoring experience. Bundle into the platform an in-context web-based IDE, source control, issue tracking, debugging, unit testing, continuous integration. Allow approval workflows to be applied to deploying code. Maintain the current compiled-code extension layer, but offer an increasingly rich higher layer of scripting extensibility that eliminates the need for server restarts. Where WCM stacks strive for multilingual authoring and publishing, portal stacks should strive to become multilingual programming environments, especially the Java-based platforms given the blossoming of dynamic languages now available atop the JVM. In addition to the traditional end-user and admin console views of the platform, provide a developer console view, something that looks like SourceForge or GitHub on steroids. Compete head-on with grassroots web frameworks like Rails and LAMP and win. Embrace your core constituency, portal vendors. Take a lesson from Microsoft and focus on the stem cells of any software ecosystem: developers, developers, developers.
I understand why some have a negative reaction to the word portal. We as an industry failed to live up to the promise of portals during the first wave of product development. We had momentum, we made strides, but ultimately we failed. Our products were too expensive, too complicated, too closed, and the user experience for everyone – end-users, admins, developers, content contributors – was not good enough. The brass ring of a standards-based web operating system eluded us. Perhaps that operating system will never be more than the web itself, but the promise of how much more can be done with a consolidated server stack that sits above the layer of the raw web endures.
I still believe in the portal dream, the all-in-one web site and web application hosting, deploying, assembling, authoring, and programming platform. For me, to work in the portal space is to play a part in creating a web-based successor to Microsoft Windows, one of the great software challenges of our time. A new generation of Portal 2.0 offerings are closer than ever to realizing that dream. I'm reminded of Jay Gatsby...
Gatsby believed in the green light, the orgastic future that year by year recedes before us. It eluded us then, but that's no matter – tomorrow we will run faster, stretch out our arms farther... And one finemorning —
So we beat on, boats against the current, borne back ceaselessly into the past.
Portals and web content management, Epicentric and Vignette, programming and writing – these are part of a past that I am ceaselessly borne back into. Though I blew off Ross Garber fifteen years ago, I still think about him, knocking on doors after hours, trying to convince someone to give his product a chance. Some evening soon I might knock on your door. I will be there to convince you that your company must now become a software company, that programming is the new literacy, that a web operating system – a portal! – is essential for any serious enterprise, and that you should never underestimate a determined founder in quixotic pursuit of a green light.