Archive for the ‘Planner’ Category

Instead of task tracking, how about a software development workbench?

Wednesday, October 24th, 2007

I haven’t actually done any work on these projects for a week or two, and I’m going to fall back on the old excuse: I’m too busy at work. The deal is that I finish a feature and then I can go on holiday. I desperately need a holiday. So I’m working hard on the feature.

I’m planning to be in Brisbane for BarCamp in December, Melbourne for linux.conf.au in January, then hopefully New Zealand to do some mountain biking in March. There. I said it. I can’t back out now.

I’ve been thinking about the products I have in mind, their size and how I develop them into things I could actually charge money for. I doubt that I could charge for the software itself - that wasn’t really my intent to begin with. It’s more add-on services, things like online sychronization and backup, multi-user versions, reporting and so on. Hook people with the free software and get them on the extras.

So, the planner.

I’m going to preface all of my insecure rambling with “even if I sell nothing, I still have some useful software for myself, so it’s still worthwhile”. Expensive, yes, but useful.

I’m having trouble imagining how to get people to actually use the thing. Not even pay for it, just use it. I get the impression that most people are satisfied with, well, nothing. They don’t track tasks. How they get any work done is beyond me. These people are easy to spot: when you say “did you fix XYZ bug from last week?” they’ll say “I forgot”. Of course you forgot! You didn’t write it down! Aaaargh! Then I start writing down their tasks in my task tracking system or filing bugs for them in a bug tracking system in the hopes that it’ll be remembered.

Some people use a text file or Outlook/Evolution’s todo lists. Some people use bugtracking systems as their task lists. I haven’t met many people like me that use hierarchical task lists. None that I’m aware of. Moving people to any sort of task tracking is a big improvement, so text files or TaDaList might be a good step. It’s hard to justify the overhead of a hierarchical task thingy.

Phrasing the hierarchical feature in terms for the customer, I’m thinking something like “You can drill down to see detail or pull back to see the big picture - in seconds!” It’s still awkward and not terribly compelling.

What if I change the focus from task tracking to project management? After all, Microsoft Project is probably the world’s most popular hierarchical task tracker. It’s a bit clunky to use for everyday stuff, but the idea is there. And if I put in time estimation features (even Evidence Based Scheduling - sorry, Joel!) I’m halfway there.

How about a ’software workbench’ or ‘development dashboard’? A central place to monitor all of the things happening in your software project. Bugs, schedules, requirements, tasks, reminders, releases, support calls, documentation, wikis, builds, costings, blah-de-blah. I’d start by having all of those external data sources (like bugs) tie in to the existing systems, but down the track I could build new ones as well (like Trac) - although the thought of building another bug tracking system isn’t exactly appealing. I’m thinking of an Outlook-style interface with the modules listed on the left-hand side, probably implemented as plugins. I do like my rich-client interfaces, but this could make more sense as a webapp. The FogBugz sales model could work - a license gets you the code to run on your server, or we provide a hosted service for a per-month fee. I see it (perhaps naiively) as a ‘playing the numbers’ strategy - one of those modules has to be critical to someone, and that gets the sale.

But then, what happens to my humble little task planner? Relegated to a small module in an all-singing, all-dancing Broadway production. It might be something you pull up once per project so you can build a Gantt chart. It’ll be lonely, and I’ll be sad.

Or I could just let the modules be separable from the main dashboard, free to live their independent lives without the emotional baggage of the others.

Product One: A software developer’s task planner

Thursday, October 11th, 2007

Product One is a hierarchical todo list. I can say this with confidence now because it’s almost ready for an initial release without starting ‘the year’. I needed a task tracker that would run on Linux. I was using AbstractSpoon’s ToDoList for years, but it’s a Windows application and runs poorly on Linux.

I can hear it already: “but how are you going to make money off a Linux application?” Popularity is the goal, not profits. Build something that people want, and the money will follow. This is also great for cutting down the project risk: if it turns out that no-one else is interested, fine, I won’t spend a lot of time developing it. If people do like it, then they can tell me what they want to see and I can come up with a monetization plan from there.

Besides, it’s cross-platform, not just Linux. wxWidgets on Python. sqlite backend. One of the quickest things I’ve ever developed to a usable state, if I do say so myself.

There’s a lot of todo lists out there, so future development will be more focused. I’m calling this a software developer’s task planner for a few reasons. One is that a hierarchy and project management system is too complicated for most people. They don’t have that many things to track and will do just fine with Outlook’s task manager or Post-It notes on their monitor.

That won’t do it for me. The difficulty for me is stemming the tide of tasks that need to be done. I notice a bug: I write it down and continue doing what I was doing. I have an idea in the shower: I write it down. Someone makes a suggestion: I write it down. I get stuck on a task: I divide it up and write it down. Some of my lists have thousands of entries. Outlook isn’t going to cut it.

By concentrating on software developers, I gain in a few ways. I’m a developer myself, so what’s useful to me is likely to be useful to others. I can introduce more complicated concepts like hierarchies without overcomplicating the product. I can focus my marketing efforts. I can specialize the product towards the target audience. This is basic Crossing The Chasm: you pick a niche and push hard until you completely own it. ‘Software Developers’ is a pretty wide niche, admittedly, but I can always revise that.