What do you do to revitalize a slowing project?
The following draft of a post has been sitting around since early 2012, and I had never published it. Since I think it still contains some potentially useful ideas, though some of the Leges Motus-specific details are a bit out-of-date, I have decided to publish it as-is, without being edited to reflect the time gap. Hopefully it will be useful to someone.
It’s been seven months since the most recent stable release of Leges Motus. The release is almost ready – there are only a few more bugs to fix before it can be packaged up and sent out there.
This time has mostly been filled with work on new features, bug fixes, testing, and the like, but some of it has also been downtime. The developers are all very busy people, with schedules that can often leave little time or energy to work on more coding.
So how, then, do you keep a project alive when it’s going slowly? That’s the question I’ve been asking myself, and I think there are a few important elements:
1. At least one or two members of the development team have to be willing to put in some extra time. Why? Encouraging others to work on the project is much more effective when you’re doing cool things yourself. They won’t listen if you’re also sitting around doing nothing.
2. You have to be understanding of their schedules. Nagging won’t help – you just need to show your continued involvement, produce some new features or fix some bugs, and keep them informed of what’s going on with the project. As they hear of exciting new developments, they’ll hopefully start to move the project up on their priority list.
3. If tasks assigned to another developer are blocking other progress and making things slow down, you have a few options. First, you should probably try talking to them. Often, offering to help or just giving them a polite reminder that you care about and need their work can do the trick (though they may still eventually slow down or stop work, you can probably get at least the current blocker resolved). But if that doesn’t work, you’ll need to consider trying to take over their assignment. You should try to do this in a way that makes them still feel useful (not just kicking them out of the project, but instead asking their permission to do the task for them). If you don’t know enough about their work to do this, you might need to either spend a lot of time getting to know their code or find another developer (either already associated with or completely new to the project) to do the task. This can be the hardest part.
4. Bringing a new developer into the mix can also be a great way to pump some energy into the project. If you have at least one dev with enough time to show the new person the ropes, you can get them moving and bring some enthusiasm and new ideas into the mix. Just make sure they don’t end up pulling all the weight, because they’ll get burnt out.
5. Finally, sometimes there’s nothing to do but give it some time. Interest flows in cycles – if you give it a rest, doing some small things when you feel like it, you will probably end up with a growing feeling that you want to work on the project. If you’re lucky, everyone else will too, and interest will pick back up.
The trick to revitalizing a slowing project is to keep your contributions steady and interesting, to talk to the other developers about the project, and to avoid nagging too much – if someone is too busy, work around it rather than alienating them with constant pushing.
So what have I been doing for Leges Motus? I’ve been making a new online server browser, which can now be seen on the website. I’ve added a scroll-wheel key binding to switch to the next and previous weapons. I’ve planned/opened a few new to-do tickets on the bug tracker. And I’ve been talking about the project with other developers, keeping them in the loop and keeping Leges Motus on their minds. It takes more than one man to make a project, but only one to keep it kicking.