Thursday, June 16, 2005

The End of Desktop Software

Our engineering team has grown quite a bit, and I needed to better track our 1.0 release process. It has been a while since I have directly managed an engineering project, but I have done it before with Microsoft Project. So I order it and it arrives a couple of days later.

I then had a very bizarre experience, almost like an archaelogical dig. It was a shrink wrapped box entitled "Microsoft Project 2003". 2003??? This code hadn't been touched in three years! I opened the box (yes, it is still a pain) and took out the CD and installed the software. I haven't installed software like this in years.

I then entered everybody's tasks, task hierarchies, and such. Project was incredibly difficult to use, stuff that should have been obvious was very obtuse. Then I wanted to publish the Gantt chart in HTML for our intranet. Tried for hours. Couldn't do it. Finally I printed out the chart, taped six sheets of paper together, and posted it on the wall in our bullpen. Unbelievable.

We have now found an online project manager that we are going to move to after the 1.0 release. Everyone gets an account and can log in and update their tasks. The Gantt chart is online updated in real time. We did not have to buy any software. We are subscribed to a service that is easy and intuitive to use with a rich, Web 2.0 user interface.

[Update: the online project manager we are using is Basecamp. It rocks.]

I think it is pretty clear that software as we know it is now over. No one uses traditional desktop software anymore. Any desktop software people use is meant to enable publishing and communication, ranging from photo managers to IM. Even ActiveGrid's Application Builder is essentially a publishing tool. You build an application that ties together existing services, and then you deploy it to your ISP (virtually all ISPs run LAMP) with the deployment wizard. There is no need to install or configure any software. It's Do-it-Yourself Sofware-as-a-Service!


Jonathan Boutelle said...

Hey Peter,

Are you talking about Basecamp? If not, what web-based project management software are you talking about?

I had the exact same experience. MSProject is a total f*&^ing disaster. Just printing a GANT chart was impossible for me. And the fact that every team member needs a project install to read the project meant that the project schedule had no mindshare within the team. Utterly stupid.

Software as a service is definitely the wave of the future. It is being led by small consumers and small producers, in the typical "innovator's dilema" pattern. The big guys won't even notice until their best customers get stolen, but they're dead as a dodo. It's a very exciting time to be in the sofware business.

Morgan Hua said...

But as you well know, once MS can't sell their standalone product, they'll just bundle it with their office product and you'll get it free with MSOffice.

Then people would be too lazy to install other software and just use whatever came with the system and live with it.

Hey, let's flood the system with marginal products and people will just get used to using them. They won't even know to complain -- because that's the way it is.

Josh said...

MS Project??? Gant charts??? Wow! I didn't know progressive software development companies used the "waterfall" methodology for managing projects anymore. Seriously, I thought most were moving to more agile methodologies like Scrum, which is simply taking the best ideas and values from "lean manufacturing" and adapting them for software development.

Automatt said...

You bought software? From Microsoft? In a box? That's so 1999.

Harry Fuecks said...

Have you seen Taskcoach?

Wouldn't fit your team requirements - single user and purely for task management but truly usable - wish more desktop apps were like this.

And it's written in Python / wxPython

Harry Fuecks said...

More from the Python / wxPython front;

This is a project management app, capable of generating Gantt charts etc. Interesting is you define projects themselves by writing Python classes e.g.

class SomeProject:
def TaskOne:
def TaskTwo: