I had one more thing that was bothering me about Roscoe's approach.
"Roscoe," I said, "it seems to me that your four-step method is pretty waterfall in nature. I know that iterative development means that we will be having many conversations, as you have already pointed out. But isn't each conversation itself 'iterative'?"
"Looks like you want to be an 'advanced player,'" he said. "It would be great if I could just get most people to do the four steps. That would be progress. But you're right, son. In some cases, when you get to step four, you have to loop back to step three. That's because some implementation detail that comes up in step four causes you to reevaluate a solution proposed in step three."
"Yeah," I agreed, "but can't it loop back even further than that?"
"Sure," replied Roscoe. "It's easy to see that sometimes we might discover an alternative solution in step three that would require someone else to do some work. That would mean going back to step two, to find and convince the new owner."
"So, it is iterative after all, because I could also imagine going all the way back to step one and reformulating the problem entirely when we go and talk with the third party," I ventured.
"Be careful," said Roscoe. "Everything you say is true, but the objective of the exercise is to get closure, not to iterate forever. Some iteration is good, but your goal should always be to get to step four, and exit it with a plan. Otherwise, you might find yourself praying at the altar of Our Lady of Perpetual Revision."
I recognized that trap, too. Roscoe had convinced me that I needed to change the way I interacted with software engineers. Even if I had to talk with a team of engineers, I would apply the same steps; moving from a one-on-one talk to a one-on-many conversation would require even more structure and discipline. Roscoe's formula would make it even more apparent to the group that I had an organized way of looking atand solvingthe problem at hand.
I resolved to go forth and try Roscoe's approach, and to see if I could improve my ability to communicate.