This post is an overview of Catalyst, the project management tool that I'm currently writing. The reason I'm putting all this online is to a) get feedback and b) to clarify my own thinking. I wrote a small story where I explained my vision for Catalyst and another about my experiences developing Catalyst. This post will follow on from those.
What is Catalyst?
Catalyst is a tool to manage software development for small teams, distributed teams and agile teams.
Catalyst is designed to make project details visible to all those involved in the project so that everyone knows what is happening.
Aren't there hundreds of project management tools already?
YES! The funny thing is that they are not suited very well to small, agile, distributed software development. You would think that at least one would be suitable, but I couldn't find that one.
About six to eight months ago, when I was working in my previous company, I was struggling to coordinate everyone involved in the project. That's when I started investigating to see if there was any tool that was useful and I found that most of them were not.
My requirements were simple.
- Easy to install
- Easy to use:
- Could I create 20 tasks, estimate them and assign them to team members easily?
- Could I see the tasks in progress and adjust the estimate easily?
- Did it support distributed teams? If two teams were involved in the planning would changes made by one propagate to the others?
- Did it support all the stakeholders in the project — Dev team, QA, project manager, management, customers and anyone else involved?
- Many tools were hosted solutions only
- Some had server and database requirements that I didn't have (IIS + SQL Server, for example)
- Many were extremely complex. Some companies even provided training to use the tool. Thats too complex for me.
- Lots were unusable. The 20 task test was often extremely painful to do.
- Many were designed with large teams in mind
- There was no way to synchronise teams doing planning in different locations
- The tool was often meant for only the dev team to use, so managers or customers still didn't have visibility
- It is dead easy to install. Catalyst does not need any web server, it has one built in. No need for a database engine, thats built in too! Just run one executable and the server starts and you are ready to use it!
- Easy to backup or migrate. Have you ever tried moving tool data from one machine to another? In Catalyst, all the data is stored in one file. Backup that file to backup your data. To migrate, install Catalyst on a machine and copy the data file over.
- Catalyst does only project management. Many tools do everything — project management, user management, bug tracking, requirements tracking, the works. Catalyst does only project management. Not only does it keep everything simple, but there are already good bug tracking tools around, so why reinvent bug tracking? Use the best tool for the job. Besides its not a good idea to ask people to migrate all their data from the existing bug database into your tool.
- Web API for easy integration. Catalyst has a web services API through which you can access and change data. So if you want to write a script that displays the project status in your custom dashboard, you can do that.
- Participant/Observer model. A login can be either a participant or an observer. Participants can view and edit project details. Observers can only view them. This allows you to give the team a participant login, while giving customers and managers an observer login. Now everyone can view and follow the project. The tool is no longer just for the dev team but supports all stakeholders involved.
- Auto-synchronisation. If many team members are on a page and one changes some data, it gets automatically refreshed for everyone else. This is to support distributed teams doing planning.
- Easy to use. In many tools, operations are arranged by function, so adding a task means going to "Requirements" and adding a task, then going to "Team" and assigning to a user, the clicking "Planning" and estimating it, and so on. In Catalyst, operations are arranged by usage patterns. Thus, the "Planning" screen allows you to add a task, assign, estimate and schedule it, all in one screen. The "Dashboard" screen shows you current iteration status, and allows you to update estimates on one screen (because those operations are usually done together just before or during a daily standup).
So that's a summary of what Catalyst is (at least what I'm hoping it will be). Any questions or feedback? Leave a comment here.