Archive for October, 2009

One to Throw Away

Eric Raymond wrote about the release early, release often mantra heard often in the Linux open source community in his famous software essay The Cathedral and the Bazaar. Since then, it’s become the rallying cry of the extreme programming and agile software communities, and driving principle behind Web 2.0 companies everywhere.

Paul Graham listed “release early” as the #1 Hardest Lesson for Startups to Learn. So we were determined not to make that mistake when we started Infovark.

Oops

It’s taken us two years to release version 1.0 of Infovark. Sure, we had some Alpha and Beta tests along the way. We also had several prototype and demo versions. These don’t count as a release, though.

If you summed up our development experience over the past two years, it didn’t follow the trendy “release early, release often” paradigm as the much older “build one to throw away” model. Build one to throw away is a famous line from Fred Brooks’ seminal work, The Mythical Man-Month.

Where a new system concept or new technology is used, one has to build a system to throw away, for even the best planning is not so omniscient as to get it right the first time. Hence plan to throw one away; you will, anyhow.

Tim Bray describes exactly that experience when working on a module to implement the Atom Publishing Protocol. And you could argue that Microsoft’s recent experience with Windows Vista and Windows 7 follows that model as well.

It certainly describes what we did with the Infovark Alpha. We restructured and rebuilt almost the entire application based on what we’d learned. The idea remained the same, the look and feel stayed roughly the same, but everything under the hood got a total rewrite.

It easily added nine months to our release schedule.

The right choice

It was a really hard decision to make, but it was the right one. We have a much faster, much more stable system to work with now. The number of bugs we’ve had reported to us in the two weeks since release is lower than any other 1.0 version of software I’ve worked on.

I’ll talk about the gory technical details of what we did and why on our Underground blog, for those that are interested.

You can download a trial copy of Infovark here. And for those of you that have it already, you might want to check out our very first update announcement.

Because from here on we plan to release early and often.

Spreading the Word

Now that we have the 1.0 release of Infovark under our belt, and after a much-needed vacation, we’re ready for the next step in our Infovark adventure: Marketing.

Marketing doesn’t come naturally to introverted, burrow-dwelling tech geeks like me and Gordon. We’d much rather spend our time and energy tinkering with Infovark instead. But we have to support our coding habit somehow, and that means finding people that need a good personal information management tool and introducing them to our product.

What goes here?

Yikes. I’m scared already.

Ideas are Easy

A little over two years ago, Dean and I were two overworked ECM Consultants. We were flying all over North America every week in suits and ties, helping customers with their information management and technology problems, staying up late writing large and complex reports, drinking in random airport bars, and generally getting more and more frustrated.

The reasons for our frustration were that we felt that the customers we spoke to weren’t getting a very good deal. That the products that were being offered to them were expensive, complex, time-consuming, and in many cases, didn’t meet their actual needs. The very first post I ever wrote on this blog explains it all pretty clearly. Social systems are emergent in nature, and the systems that we have at work aren’t social enough.

One Labor day, we had an idea. We drew what came to be called “The Spiderweb Diagram” — a 7-page scrawled mindmap that detailed what we thought Enterprise Software should be delivering to its customers.

I’ve always said that the idea of a lifetime comes along once every two weeks. Ideas are easy. Implementation is hard.

Man, ain’t that the truth.

Today, two years later, the first fragment of that spiderweb diagram made the enormous leap from idea to reality.

Infovark Personal Edition 1.0 is complete, and ready for the world. You can try a copy for free, and if you like it, you can buy one.

It’s taken a lot of  hard work — long hours, more than 150 blog posts — and has been the single most frightening, exciting and perilous thing I have ever done.

But at the end of this release, as the build machine finally turned off its super-loud CPU fan for the last time compiling pre-release code, I felt proud of us.

Anyone can complain about things, and most people, when pressed, can think of a way to fix a problem.

We actually did it though. We built and shipped something.

Acknowledgements

I want to thank everyone who helped us get this far.

Warren Thrasher, Infovark’s primary investor. Warren has helped us keep the lights on, and keep everyone fed, as well as providing sage counsel and advice to both of us.

Amy Hoy, who helped us turn our horrible looking Windows application into a much more user friendly and fresh solution worthy of the illustrious  ”2.0″ moniker.

Nate and Jay and our friends at Kapish, for taking early versions of Infovark for a spin.

Alison and Paula, who not only put up with having their spouses absent for so long, but also managed to offer support and advice.

You, for taking the time from your day to read our blog! Our blog readers and Twitter friends and the awesome people we’ve met in the Enterprise 2.0 community have been instrumental in helping us get this far. We couldn’t have possibly done it without you.

Thanks!

Why the Web has Won

Gordon and I have written fewer blog posts in the past six weeks than usual. We’ve been testing and tuning Infovark for our version 1.0 release.

We’ve spent most of that time working with our installer. We want Infovark to work smoothly on Windows XP, Windows Vista and the upcoming Windows 7. We want Infovark to be compatible with recent versions of the Microsoft office suite. We also want to follow the Microsoft’s User Access Control (UAC) guidelines and other best practices.

Creating an installation package that meets these requirements will easily take 1/6 of our total development time for Infovark.

If you can eliminate the effort required to make an installation package, why wouldn't you?

If you can eliminate the effort required to make an installation package, why wouldn't you?

Sadly, almost none of this work will matter to our customers. After all, who cares what the installation package does, as long as it does the job? From a customer perspective, any time we spend on installation issues is a waste. It doesn’t improve the product itself.

That, in a nutshell, explains why virtually every software program that can be delivered as a web application will be.

The inescapable logic of Web 2.0

Most users love web applications because they can begin using the product right away. They don’t have to worry about system requirements. There’s nothing to install and usually very little to configure. The product is always up to date.

IT professionals love web applications because they run within a web browser’s “sandbox” environment. Since there’s nothing to install, and the interactions with the rest of the user’s computer are strictly limited, there’s little chance that a web application will cause support problems.

Programmers love web applications, too. As soon as they implement a new feature, they can give it to customers and start getting feedback. They can deploy bug fixes immediately. Their applications will run on virtually every platform with only minor tweaks.

Software companies love web applications because they save time and money. The faster they get their products into customer hands, the faster they can recoup their investment. Applications developed for the web have a broader reach, so they have more potential customers.

Taken together, web applications and Web 2.0 has compelling advantages over software built and delivered the traditional way. Read why I’m done making desktop applications to hear what an independent software vendor (ISV) has to say about the subject.

Not everything can be a web app

Knowing all of this has made our work on the Infovark installer even more painful. We’re putting a lot of effort into troubleshooting our install routine that we’d really rather spend on Infovark itself.

There’s only one thing that justifies this extra work and extra care: It’s the only way to solve the problem.

Our goal is to liberate the desktop. Infovark allows people to share valuable information that they’ve created with their other tools. To do this seamlessly and transparently, with as little manual effort as possible, we have to integrate with those business applications. We have to go where the information lives.

That doesn’t stop us from wishing we were building a web app, though.