Categories
- Benefits (5)
- Company News (40)
- Enterprise 2.0 (107)
- Information Management (23)
- Keep It Together (8)
- Product Announcements (36)
- Productivity (15)
- Software Development (31)
Our thoughts on making great software
There’s a movement building to reform software patents. We can’t wait.

Why Gordon and I decided to let Infovark’s provisional patent application lapse.
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.
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.
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.
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?
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.
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.
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.
Unless you’re one of the lucky winners of the venture capital lottery, or happen to be independently wealthy, starting a new business is a difficult proposition.
It’s especially tricky for companies in the product business, because so many of their costs are front-loaded — they incur the charges long before they can recoup the money from customers.
Infovark is lucky, because as startup companies go, software companies are cheap to run. Computer software and hardware are relatively inexpensive these days, and you can work anywhere that there’s a decent Internet connection and few interruptions.
Assuming you don’t count the cost of labor, of course.
That’s the reason so many software start-ups are located near universities with good computer science programs. The biggest asset a software company can have is an endless supply of folks that will write code for pizza and beer.
Gordon and I can’t work for free, though. We’ve got mortgages and families and responsibilities and stuff. Which contributes to a problem I call startup schizophrenia.
We started Infovark with money raised from friends and family, but no matter how frugal we are that money won’t last forever. So, starting six months ago, Gordon and I started doing occasional side projects.
On one hand, it’s been a great thing for us, because it’s helped us preserve our cash during the downturn. It’s also kept us connected to the Enterprise Software community, the Enterprise Content Management space, and the larger arena I’ll call “corporate computing”.
We know that space well, and we know that organizations need the help of experienced consultants to keep their disparate software systems working together.
But that space, familiar as it it to us, is not really Infovark’s market. And while we firmly believe that something like Infovark would be useful to a lot of people in the business world, it’s not something that CIOs or IT directors would find very interesting. The folks that manage back-office corporate infrastructure have different concerns from those that work directly with customers or are out in the field.
So Gordon and I find ourselves switching mental models a lot.
Wearing our consulting hats, we’ll talk with companies about security, scalability, interoperability and then we’ll hold an Infovark conference call where we’ll talk about sharing, openness, and ease-of-use. It’s a different set of priorities, driven by different motivations.
It’s a strange disconnect. The cognitive dissonance gets to us sometimes.
While we were preparing for the beta release, we spent a lot of time dwelling on the subject of enterprise software. It’s what we know best. It pays the bills. And we’ll be more than happy to help folks with their ECM deployments or change management initiatives.
But over the coming months, I think we’ll talk less and less about corporate computing and more and more about personal productivity.
Our focus is changing now that the beta has been released. We can now get feedback from actual users that have tried Infovark. We’re hearing a lot about what features work and what things confuse people.
The folks at 37signals call it Getting Real. We had a theory about a personal information sharing application that was easy to install and use. Now we have to put it into practice. We’ll learn a lot about which of our crazy ideas work and which are just plain silly.
And as we do that, this blog will be less and less about the places we’ve been and more about the places we’re going.
In the meantime, enjoy our mental disorder.