What is a sustainable pace?

How do you know a project is coming along at a sustainable pace? To know this you should first define what an unsustainable pace looks like.

A programming project becomes unsustainable when the amount of bugs grows fast and implementing new features takes a depressing amount of time.

The way you get to this state is by implementing features too quickly, possibly some unneeded ones, and thus having a lot of unfinished corners. These unfinished corners create bugs or are badly designed, making new features harder to implement. Because the pace is too fast these bugs and bad designs don’t get fixed, which causes even more issues, which impedes progress even more.

For me, a sustainable pace isn’t exactly the opposite of this, where you try to build the perfect thing on the first try and refactor for refactoring’s sake. Instead you should keep the indicators of an unsustainable pace in mind and steer away from that whenever it’s at risk of getting out of control. This way you still get to experiment and learn in a lean way, while keeping the pace sustainable, without spending too much time building features you might throw away later.

How do you recognise these indicators? It’s mostly a gut feeling. Try to listen to things that annoy you. Things that you have to keep working around. What annoys you is subjective, but it should at least be discussed with the team. If you keep working around these issues, it will only get worse. If there are too many and they aren’t getting fixed, then you’re going at an unsustainable pace.