I had a good time in Bend, Oregon this week because in addition to Great Skiing, Good Friends, Lots of Breweries I visited the HQ for a software company. I had two hours reviewing their technology and what our technology was, the players in the market, and various opportunities. When I went in to the meeting I didn’t want to spend time showing software for a variety of reasons. Then it hit me, the first time someone uses a software service is huge insight to be shared and learned from. If I am the only one in the room with the user, then I am the weak link to get the developers to understand. My ability to communicate the issues, perspectives, questions is limited. Even if the whole meeting was video recorded, the inability of developers to drill in to an area ask more questions, etc.

I made the mistake of sharing this idea that Developers need to get out talk to customers more with an executive who had a meeting with Bill Gates (over 15 years ago when it was probably not the right time to bring this up). I was in the meeting, there were only 4 of us, and this idea went no where. Bill’s response was something like “That’s what we have program managers for. Their job is to talk to customers.” Which makes sense from one perspective, and if program managers are perfect communicators of customers intent and developers have perfect listening skills. Yeh, the world is not perfect.

Clearly, something in our process had broken— the desire for quality had gone well beyond rationality. But because of the way production unfolded , our people had to work on scenes without knowing the context for them— so they overbuilt them just to be safe. To make things worse, our standards of excellence are extremely high, leading them...

So there are basically two different views on Developers. Should you have the developers talk to customers (some, not all) or should you leave the job of customer interaction to others and pass on specifications to developers?

I guess in depends on your goals. If you want to make the safe choice, then it is probably best to have developers focus on writing code and leave the job of interfacing with customers to teams who have done this in the past. On the other hand, if you are looking to build something innovative and disruptive, and you want to discover things that others have missed then having your development team interacting with customers can be a strategy to get something different created.

it appears to be a safe choice, and the desire to be safe— to succeed with minimal risk— can infect not just individuals but also entire companies. If we sense that our structures are rigid, inflexible, or bureaucratic, we must bust them open— without destroying ourselves in the process.