Interesting long form piece on how agile methodologies in software engineering function as a de facto labour union because of the focus on on-site interaction with stakeholders and empowerment of software engineers through methods like Scrum.
There is a good point made that things like Kanban – originally from manufacturing shop floors – can improve the productivity of software teams, but lead to lower levels of empowerment and the risk that software engineer labour becomes more commoditised.
From this subset of principles, it’s clear that although Agile positions itself as a software development methodology, a closer inspection reveals clues to a greater ambition: to protect the interests of software engineers at work. It does this by limiting the number of working hours, demanding autonomy and self-management, rejecting the arbitrary dominating power of the boss, preventing their jobs from being shipped overseas, and ensuring that software engineers are involved in their workplace as decision makers.
With this agenda, it is possible to characterise the Agile movement as a labour union.
I’m agnostic on this, but can see how a lot of the problems with outsourcing are avoided when you run an Agile shop. Face to face communication is still how things get done. Video conferencing is not good enough and even though many firms are able to get work done remotely without any issues, not all end users are comfortable with this way of working.
In terms of economics, outsourcing is portrayed by some as the best cost saving exercise ever. But most outsourcing decisions are made without due consideration of the risks involved with going outside the firm.
There are high transaction costs involved in managing outsourcing deals. There are also risks that have to be fully understood before entering into such deals. Agile software development teams thus function as a risk reduction tool for senior management. If large IT projects are more easily able to pivot to changes in end user requirements then having the team in the same building as the end users is a lot easier than coordinating a pivot in a large software project over several continents.