Often in commercial environments there are multiple separations of roles that end up putting people in separate lines of work streams. For a majority of developers, the biggest hurdle in teams are project managers. They rarely ever have the big picture nor do they understand complexity. A lot of times they don't even understand their own work. Developers rely on project managers to essentially manage the project and the team. But, what ends up happening is that most developers are forced to micro manage themselves because the project managers are just too incompetent in their own work. Project managers are even asked to go on formal courses in agile methodologies or learning standard principles of project management. But, when they come back they rarely ever practice any of them. Majority of project managers are focused towards one aspect within a company only the ladder up to further management rather than being productive or results driven. They display generally no appreciation of technology or understand any issues that developers face within certain processes. They even get in way of adding excessive amounts of unnecessary politics between developers and themselves and ultimately become the cornerstone of projects going from great pieces of work to mediocre. Project managers have no understanding of code quality or architectural impedance. Their main aim is to look good to higher up management and just treat their development teams like factory workers. In smaller companies that have a start up atmosphere the lack of project managers allows developers to take charge of their own work and it is here where projects become alive through the technical appreciation. In larger companies there are just too many incompetent project managers that have no understanding of the technical aspects and cannot relate to why certain pieces of work take longer than others. They seem to have a vague idea of most things but have complete indifference towards understanding the developers daily process cycle. As commercial environments start to become more and more dependent on developers it is often times the project managers that end up undermining their work and even their sense of work ethic to certain extent where developer turnover in companies increases. The way of most companies is that developers rely on lead and senior developers for guidance. The lead and senior developers often rely on architects for guidance, and the project managers are so arrogant that they almost always encroach and get in way of almost every one. In daily processes at work it may not appear so apparent at first, but as they mold into daily schedules of meetings, the patterns and behaviors of most project managers becomes apparent. They will run stand ups and regular meetings these are not because they want to keep the communication flow going but it is more so they can look good to senior managers that they are doing such a great job in micro managing teams or projects. But, in essence what they are really doing is playing politics at work and silently under the covers of process filling up their meeting calendars, without really being all that effective to developers. The conducive role of a project manager becomes an inconducive role for a developer, competing on the same field for increments, bonuses, and salaries. In most companies, project managers end up earning far more than most developers. Even though a developer does a lot of the work, even so far as doing a lot of project manager's work. How many times have developers seen themselves writing acceptance tests from user stories which are really the job of a project manager or business analyst. Such is the case in most companies. The politics of work become the norm driven by a facade of management practices irritating the likes of most developers in their daily passions for technology and creativity.