(2018-11-21) Lambdin Dear Agile I'm Tired Of Pretending

Charles Lambdin: Dear Agile, I’m Tired of Pretending. Agile actually tends to mask the core problem, which is a systemic, bidirectional lack of vertical trust. The Agile trainers leave, having made things worse, with the managers speaking Pig Latin and the dev teams now speaking Esperanto. The teams think management is broken and management thinks the focus should still be scope and deadlines and efficiency, ignoring that the deadlines are arbitrary and the requested time estimates are a form of waste. (Did you know story points were actually invented to obscure time and help alleviate this problem? That backfired too, didn’t it? Theory vs. practice.)

Well guess who’ll win? Two camps with two radically different perspectives, but with one camp receiving performance reviews from the other? If the teams are like the blind people feeling the elephant and disagreeing on what it is, then leadership is like blind elephants stepping on people and agreeing they’re all flat. The way out is to recognize that the system is the team. Quit with the local optimizations already, and realize trust is the №1 issue.

And while we’re at it, we’ve got to stop treating dev teams like they work in a factory. We’re not making plastic cutlery. We’re creating software

As Austin Govella notes (and it’s well worth letting this sink in), both Agile and Waterfall are focused on building. Design is about validating. If they’re not interested, look elsewhere. If they’re just heads down, churning out output, focusing on cost, they’ll never even learn enough to realize you tend to get more of what you focus on (ahem, cost). They’re a feature factory. Bail. They’re pretending they are creating plastic cutlery. You’ve got better things to do.

options, and options are generated by discovery. The more options you generate and the more flexible your approach, the more possible paths there are to positive outcomes.

Do the Agile Principles Hold Up? (Agile Manifesto)

I was told, more than once this past week, that Agile is just a set of principles, and anything that aligns with the principles is Agile

As digital orgs — of necessity — continue to evolve past a 19th-century factory mindset, dubbing it all “Agile” in retrospect is misleading. Truth be told, Agile may not have even helped with this evolution much. Agile in practice largely lost to Scrum, which kept the focus on local cost and optimization, enforcing an incrementalist, “feature factory” mindset.

Fine, I say, if everything must be tied back to “the Agile principles,” then these had better be some pretty damn good principles

But do they really hold up today?

1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software

As Melissa Perri has noted, the Manifesto coauthors were talking about business stakeholders, which is likely why the Manifesto is still focusing on “requirements.” Now take the word “valuable.” Valuable to whom? As Mark Schwartz points out, the hidden assumption is that the business knows what will be of value (quite a BS assumption).

2. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.

Requirements are not a good way to communicate, period. This spotlights that Agile is still focused on output, not outcomes.

3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale

4. Business people and developers must work together daily throughout the project

all of it is just levels of continuous vetting

Nope. Business people must be kept in the loop. Developers and end-users must work together daily

5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done

No. Building projects reinforces the practice of continually breaking up teams and moving people around unnecessarily

6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation

7. Working software is the primary measure of progress

If that’s what you think then, borrowing John Cutler’s term, you’re a “feature factory.”

8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely

Output is not only the wrong thing to focus on, but doing so likely does not “promote sustainable development.”

9. Continuous attention to technical excellence and good design enhances agility

when team members are collocated with each other but not with the actual users, that’s a bigger issue.

10. Simplicity — the art of maximizing the amount of work not done — is essential

mumbling about “BDUF”

Of the 12 Agile principles this is probably the only one I would keep as is.

11. The best architectures, requirements, and designs emerge from self-organizing teams

12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly


Edited:    |       |    Search Twitter for discussion