Pros
The company fosters long term opportunities for growth. Succession planning is the best of all employers where I have worked. The people come first, and management supports this paradigm. Working across numerous functional areas at any given time is a great way to learn people's different work ethic and behavior for your own self improvement. Being exposed to the different business units allows you to easily explore future career opportunities or to find the niche in which you want to focus. Engineers within specific areas of the company are truly fortunate for their ability to explore possibilities to create breakthrough products for end users.
Cons
Middle management is very transient in decision making. The almost weekly changes in direction creates waste and frustration among staff. While there is very little that can be done about this mode of operation, discipline in the development processes will enable faster, more accurate decision making. Some areas of the organization have the potential for protecting "old habits" (i.e: "we have always done it this way"). It can be an overwhelming challenge for staff-level engineers to break these barriers to do what is right. The most significant challenge is to work with the people who stifle and disqualify the input of others.