Back in 2004, an organization in IBM committed to having every engineer in that org – be they development, QE or management – participate in at least one customer visit. This in spite of strict development schedules, looming deadlines, and tight budgets.
I say “Bravo!”.
It’s one thing to have everyone put in their Personal Business Commitments a line item to interact with the customer. It’s quite another to “put your money where your mouth is”, pry open the wallet, and send the engineers off, when all your risk-averse sirens are going off saying “we don’t have the money!”, “we’ll miss the milestones!”, “we can’t afford to do this right now”.
There’s never a good time to allow engineers to do anything other than the day job. There’s never any slack time built into the schedule, and there’s always something more pressing to spend the money on.
But, put engineers at a customer site, helping to solve a problem, or assisting in a deployment, and that engineer has gained insights into the business that he wouldn’t get in a hundred million years of just sitting in his cubicle coding the next whammy feature of the product.
This is real-life experience that is priceless.