I'm stalled with my project due to bugs in these other projects I depend on.
We hear every now and then. Maybe even use it as an excuse.
The problem with this complaint is twofold.
First, using that dependency was a choice. Whenever we depend, we have to evaluate the risk of the dependency, versus the expected gains. How likely will this lib give us a productivity boost? How likely will we run into issues using it?
So, careful upfront evaluation helps us avoid the worst dependencies.
Second, it is guaranteed to run into issues even with the best kind of dependencies as well. Then we can shrug and wait for them to triage, identify, prioritize, fix and release the bug. Or we can roll up our sleeves, dive in and fix it.
For example, I was working on a green-field project with dear mates.
Though somewhat inexperienced, we strived to use technology promising
a balance of stability and productivity. A part of the task was sending
protobuf
messages through ZeroMQ
. Easy.
But was that all what could have been done?
No. There are alternate strategies. Backtrack and choose a different dependency. Ask if the feature is really needed, and maybe drop it. Hack around the bug, fix it with duct tape. If it only happens on lists of size one, pad the list with a dummy extra element.
Don't let yourself be blocked. Open bugs. But keep making progress.