I can't say enough how much I agree with #4. In a technical environment, all staff members need to know the product inside and out, even if they aren't familiar with how it was built. They need to be able to use the product as well as any client, even if they don't interact with clients on a day to day basis. Sales, support, marketing - everyone benefits from knowing their own product.