There was an interesting story in a recent Yrittäjä magazine about a concept called nanocorporations, or networked small businesses.
Nanocorporations are formed by one or two individuals around a core competence. They are able to manage growth and larger projects by networking with other similar units, which again can network with other units. This all forms a fine mesh of interconnected and dedicated companies which should be able to react more swiftly to changes of business climate.
This concept should sound familiar to most readers of my blog. While Nemein slightly exceeds the maximum size of a nanocorp, our operational model still closely resembles it. We focus very tightly on building web based information systems on top of the Midgard platform. To provide more complete solutions we then work together with individual programmers, graphical designers, media consultancies and hosting providers. Most of these are also companies of similar scale and working model.
The big question is how to manage projects efficiently when such a big number of subcontractors are involved. In most cases this is handled by setting up a single project area in OpenPSA where all are given accounts. However, this forces the contractors to manage the work using our system instead of their own.
I'm now trying to figure out a good way to handle this so that each organization could manage their part using whatever management system they prefer, but so that all could also see the work being done by others. For now this could be called a Keiretsu model.
The basic idea is that we should have a technology-neutral but tightly specified API systems could use for communicating with each other. To make things easy we could build it on top of the XML-RPC layer. When such API would be available it would then be up to the different systems to implement it. As support from larger financial or ERP systems is highly unlikely, plugins could be developed by third parties.
The API should be relatively generic:
- Project Management
- List projects or tasks
- Modify a project or task
- Create a project or task
- List hours reported to a task
- Add hour report to a task
- List sales projects
- Modify a sales project
- Create a sales project
- List contacts in a sales project
- Modify a contact in sales project
- Add a contact to sales project
- List activities in a sales project
- Modify an activity in sales project
- Add an activity to sales project
- List support tickets
- Modify a support ticket
- Create a support ticket
All operations would be run with an user account, letting the system in the other end handle access control. This would also allow desktop tools to utilize the same API for communicating with the server. For example, it would be easy to imagine GNOME Planner and Gnome Time Tracker communicating this way with back-end project management systems.