Random Thoughts on Software Engineering

Agile vs the agile manifesto

Agile - capital A is a productized and institutionalized approach to software engineering, based on some ideas from the agile manifesto - exacerbating the tensions between discipline and self-discipline. Claiming to require the latter but really mandating on the former. The approach to software development described in the agile manifesto is grounded in self-discipline, whereas traditional project management is based on enforcing discipline through processes. This fundamental difference often causes tension between developers and project managers.

Based on the agile manifesto, developers embraced a discipline they could take ownership of, shifting how they approached their work. The focus turned toward a more adaptive, hands-on style. Developers take responsibility for their tasks, commit to timelines, and ensure their code is reliable and deployment-ready — practices that require strong self-discipline.

Conversely, project management traditionally relies on external discipline. Project managers are responsible for upholding timelines, quality, scope, costs, communication, risk (all the rest of the 10 knowledge areas of PMBOK) —applying these principles in an agile development context often means managing work in short cycles and being responsive to change.

Agile's current challenges arise from its dependence on self-discipline, which demands both experience and humility — qualities increasingly rare in today's AI-augmented IT workforce. As noted by Robert C. Martin (“Uncle Bob”), nearly half of the industry has less than five years of experience (less so each year after 2023, due to slow junior hiring), and the previous trend of the IT workforce doubling every five years has slowed (it is more close to a 30% in the last 5 years - JetBrains data). Some of these relatively inexperienced developers are already labeled as "senior" despite lacking full-lifecycle software delivery experience.

This results in project managers often leading teams where many members are still early in their careers — many of them young men (having rebel tendencies 😊) — who may not yet have developed the required level of self-discipline. In such cases, external discipline becomes necessary — this is where project management reasserts itself.

Consequently, developers may view Agile (capital A) as a form of control, while managers worry about losing oversight due to its flexible nature. Both sides often misunderstand what is outlined in the agile manifesto, each believing it can function without the other. But as modern projects grow more complex and user expectations for top-tier digital experiences increase, there’s a risk of distorting Agile into something it was never meant to be (SAFe (Scaled Agile Framework), LeSS (Large Scale Scrum), Nexus, Disciplined Agile Delivery (DAD), Spotify Model, Scrum@Scale, Enterprise Kanban, FAST Agile, DaD (Disciplined Agile Delivery), OpenAgile, etc.).

💡 Alistair Cockburn, one of the agile manifesto's founding voices, put it best: "Agile is a contract between hard-driving managers and developers who need space to think and experiment."