Many software teams adopt cross-functional team structures. I thought we had structured our teams well, but then we discovered a big problem.