In my current job as a project manager, it’s always juggling with the time the team and I have to spend. Especially in our sector (e-commerce) there’s always a new USP to develop, a new development that can be put into practice and of course, another demanding customer. The thing is, in one hand we have the nice open source e-commerce platform named Batavi we develop, for which we, of course, hope that the community will help us develop as well. On the other hand, we have the ever demanding customer that pays our rent, bills and wages.
For the community to accept our platform and for the community to start developing for/on it, we need to ‘sugar’ the community. We need to give them the needed attention, provide them with a lot of feedback and, more important, we need to set up the versioning tools in which they can commit their work. For the paying customer it’s not always important that we keep the community happy, most of the time they just want to have their bugfix/feature/new development created, preferably yesterday. And, last but not least, our co-workers need to be kept happy and be kept out of the stressful treadmill which we as project managers are in. So how are we going to juggle these two?
The key element here is time. Where do we find the time to invest in the open source community, keep our paid customer happy and pay enough attention to our co-workers?
It’s not easy and it will take a lot of effort to set up a organization which can do exactly that. And at ICEshop, we do it. Currently we’re setting up our organization this new way, and at the moment we’ve got the time keep our paid customers happy and our co-workers as well. The only thing which lacks attention is the open source community. And to be honest, I’m a bit ashamed about that. But first we need to find out the reason why the open source community isn’t getting the attention it should get.
After my first few months at our company, I realize that the main reason we can’t give enough attention to one of our main goals (the community) has everything to do with time management. At the moment we keep improving our software, customers are asking for new features as well and we are creating USP’s for almost every request we get, even if the feature can be created more easy and within less time. Of course we always create the solution for the customer first, but we keep on improving it, until we think it’s done. Instead of this, we should focus on two things:
- Keeping the community happy with updates based on a roadmap
- Keeping our customers happy by creating features they request
To do this, it’s imperative that we plan our releases and that we try to combine new features into a release. Of course we can create a branch for the paid customers, even a branch for every customer (so we get 1..N branches for 1..N customers), but all features that are for more than one customer should go on the roadmap and should be released as planned.
To make sure that, next to the community, our paying customers are getting the attention they need as well, a project based way of working is very important. Happily, we are already working project based, so the only thing we need to do is incorporate the roadmap into our way of working, together with the release schedule.
In the meantime, it’s important that our customers start to understand that they don’t buy a product that’s developed by only us, but also by the community and that we want to include the community into our development schedule as well. This takes a bit of explanation to our customers, and sometimes it’s just impossible to let them understand this. This is not a big problem as the majority of our customers will understand it and we hope that they will see the benefits of it as well.
Just to come back to why I’m a bit ashamed of the lack of attention our community is getting, at the moment internally we’ve got an 1.0-alpha (1.0a) version available in our trunk and, as a good open source project should do, we are basically obliged to publish this to our site. The only reason we don’t do this is time.