The goal of Agile project management is to make software development a more customer-centric and more iterative. This is a noble goal. Agile however, whether intentionally or unintentionally, has had a secondary effect of robbing developers of job satisfaction.
Here let me give you an example. About 10 years ago I worked with somewhat of an influential in the Ruby community. We both worked at an "Agile" software consultancy. After finishing a task on our project work board I remember watching as that developer went back to claim the task the followed logically from what he just finished. He was shocked when he saw that the task's card has been claimed by another. He then said, right there in the office, quite loudly and openly "I am not getting the satisfaction of completing a thing when working like this."
So Agile robs developers of sense of satisfaction of ownership and completion. Well if the developer is being robbed of this satisfaction then to whom is this satisfaction being transferred? Well, project managers. Who get rewarded for the "velocity" of the team, which is more of a product of the hard work and less of a product of task management.
So developers have three things making them want out:
1) No ownership satisfaction 2) No completion satisfaction 3) Someone else taking credit for their work
Ok, this are not the only reasons for developer turn over but this is a big one. There are others like toxic environments, Title VII discrimination, and so on.
It can be denied that 1.5 - 2.0 year developer turnover at tech companies is pretty woeful. We are dropping the ball somewhere and its hurting business bottom lines and developer careers.
1. Companies over hype the position (like requiring an Architect's training when the job really requires a construction worker). The Architect will likely leave the job in 1.5 years (which is the average turnover rate at many tech companies)
2. Trust between companies and tech developers is low. Tech environments are pretty hostile at times and developers absorb all of this. They wait for employers to address these problems but only receive lip service and wishful thinking. Trust devolves. After multiple rounds of this, developers develop a general distrust for companies in general and leave at the first sign of higher pay or better benefits. Loyalty is rare.
These are the major take aways I got from hawking every article and paper on the topic I can find. If you have a good article on the topic and care to share it, please do. I will definitely read it carefully.
Sometimes code isn't the best human interface representation.