Investment Banks and Consulting Firms do one thing very well and that’s manage attribution. Each of these industries have a well understood hierarchy of entry points and exits points within their firms. For example, there is usually an analyst (right from undergrad), an associate (M.B.A. hire), and then a partner (Experienced Professional). It’s pretty well understood that as an analyst you will work for two years and then leave for another job or to go to grad school. Consulting follows a very similar process albeit with different titles.
Most companies outside these industries are very passive when it comes to managing attrition. Once you get a job, there is an almost implicit assumption you will never leave. Of course, everyone will eventually leave and it always comes as a shock to the organization, when it actually happens.

Like movies, most jobs have a natural arc. When you start an assignment you are excited and eager. You meet new people and learn new things. Once you settle in and know the ropes you become a real asset to the team. You start accomplishing goals and become a go-to-guy. You get a lot of satisfaction from putting your new skills to work.  Finally, you enter the last phase, where you begin to re-evaluate what you are doing and what you want to do. You start to look for new things and long for new experiences. You are not learning as much and the satisfaction of getting things done has waned. A classic case of been-there-done-that sets in. This is where attrition happens. People either leave, get promoted, or transferred to a new job.

Many jobs follow this arc and there is a natural time line for each type of job. For product managers, developers, and sales engineers, I would say the arc last roughly two years. After that you’re ready to do a similar job on a new product or ready for entirely new job. I am sure other jobs have different timelines but the arc is always the same.