You're in the middle of a problem. You found a bug in the field and you need to patch a customer. Unfortunately, you've already started working on the next release, which happens to be off the same branch. And now you have a patch and no real good place too cut a build from.
There are two things to think about here:
- What should you have done to prevent the problem?
- What do we do now?
Hindsight being what it is, it's relatively easy (and tempting) to sit around and discuss what you should have done. Yes, you should have branched for the next release so you had a stable branch reflecting what had gone into the field. And you should have found the bug and fixed it before it ever made it out. And ... and and. Stop.
All of these are useful conversations, but that doesn't change your current situation. While it is important to do a postmortem and figure out how you're going to prevent the problems you're having, the fact remains that you're currently in this situation.
First figure out how you're going to get out of your current situation, then figure out how to prevent it.
You have a customer waiting on a fix, and right now the most important thing to recognize is that getting out of this current problem comes first, closely followed by prevention. I'm not going to minimize the need to prevent problem recurrence, but don't forget that you have to solve a problem before you can prevent it from recurring. There is an appropriate order; use it.