We are a small team of .NET developers. We have ample GIS experience, and none of us are new to software/database development or system administration. We have technical degrees and many years of industry experience. We have attended ESRI developer summits.
ESRI technology - primarily ArcGIS Server, ArcSDE, and ArcObjects - plays a small but necessary role in all the software we develop. Despite ESRI's minority status in our technology stack, we spend an inordinate amount of time troubleshooting elusive bugs, crafting workarounds, deciphering its vague error messages, tracking down performance problems, and recycling processes.
Typically our problems stem from genuine bugs, poor exception handling, limiting design/architectural decisions, lack of documentation, instability, or some combination thereof. (I'm speaking of the ESRI stack here.)
From a project manager's perspective, I'm very concerned about team productivity. This costs us a lot of time. We do not have time to learn every idiosyncrasy of the ESRI stack, but we still need to get things done. (Can't live with it, can't live without it.)
What pragmatic suggestions do you have for increasing developer productivity with ESRI in the mix?
Edit: I'm not looking for suggestions on alternative technology stacks.