My first week at my new job is going to consist of training on what the company actually does. I have worked for several companies and it is the first time that I actually go through the business training this way.
Before I have even asked companies to let me train on what the people do so that I can better understand what the system is supposed to help do, but it has always been considered a waste of my time by them. I have always concentrated on building tools for the people in the company to make their job easier and I have encountered resistance. I have been told that my time is too valuable to try and automate something that a regular employee can do, the return on investment has been pretty much ignored and I was told to just concentrate on other things.
A big fault that many programmers fall into is into believing that they understand the business better than the people that actually perform the tasks. While I do believe that there are plenty of talented people out there that can grasp a business concept from a general overview and have a vision I think that it does not replace talking to the people that actually do the job.
I take pride on being able to talk to people about systems in simple terms. I do not like using complicated language to explain something simple and understand that using technical terms with a non technical person causes more harm that good. If a programmer goes into a conversation thinking that the other person cannot understand what they are going to say, I am willing to be that communication will not happen.
I am very excited that this company believes in making everyone in the company understand their business. All employees, even the corporate people have to sit down and learn the business from the ground up. To me that is a very good start.