Dave Thomas, co-author of The Pragmatic Programmer, writes about agile, Elixir, Ruby, and how developers learn and work.
HN commenters cite his "Agile Is Dead" essay and talk as a critique of commercialized agile, plus his Elixir and Ruby fiber posts.
The better critique is from one of the authors of the agile manifesto, who recommends a shift in language:
> I don’t think anyone could object to a ban on the word when it is used as a noun. That’s just plain wrong. “Do Agile Right” and “Agile for Dummies” are just two of the innumerable attacks on the English language featuring the word. They are meaningless. Agile is not a noun, it’s an adjective, and it must qualify something else. “Do Agile Right” is like saying “Do Orange Right.”
> But, beyond the grammar problem, there’s a bigger issue. Once the Manifesto became popular, the word agile became a magnet for anyone with points to espouse, hours to bill, or products to sell. It became a marketing term, coopted to improve sales in the same way that words such as eco and natural are. A word that is abused in this way becomes useless—it stops having meaning as it transitions into a brand.
...
> Let’s develop with agility
> You aren’t an agile programmer—you’re a programmer who programs with agility.
> You don’t work on an agile team—your team exhibits agility.
> You don’t use agile tools—you use tools that enhance your agility.
https://pragdave.me/thoughts/active/2014-03-04-time-to-kill-agile.html
When an idea for running a project that is based on
making it as easy as possible to use and waste as
little time as possible.
Having to use a term like: "metamethodology" is crazy.
Check out http://pragdave.me/blog/2014/03/04/time-to-kill-agile/ for a reality check about Agile from one of its inventors. I quote:
"However, since the Snowbird meeting, I haven’t participated in any Agile events,1 I haven’t affiliated with the Agile Alliance, and I haven’t done any “agile” consultancy. I didn’t attend the 10th anniversary celebrations.
Why? Because I didn’t think that any of these things were in the spirit of the manifesto we produced. Having conferences about agility is not too far removed from having conferences about ballet dancing, and forming an industry group around the four values always struck me as creating a trade union for people who breathe.
And, unfortunately, I think time has proven me right. The word “agile” has been subverted to the point where it is effectively meaningless, and what passes for an agile community seems to be largely an arena for consultants and vendors to hawk services and products.
So I think it is time to retire the word “Agile.”
Dave Thomas, one of the original authors of the Agile Manifesto [1] wrote an article called "Time to Kill Agile" [2] a few years ago (which he subsequently re-titled "Agile is Dead"). He has some good insight on how Agile (the methodology) got to be something very different from what they intended. Originally they were trying to break away from a rigid methodology, not introduce a whole new one. Unfortunately, if you don't codify something into a set of rules, it's pretty hard to get people to follow it, and it wasn't long before "experts" were building formal processes out of it. I've never seen it work well, and the more ardent the adherents are, the worse it seems to get. I think every team needs to find the approach that works best for them to itemize, prioritize and communicate progress. In my experience the two most important aspects of moving a project along are simply communicating what needs to be done and recognizing effort.
[1] http://agilemanifesto.org/
[2] https://pragdave.me/blog/2014/03/04/time-to-kill-agile.html
I've followed Unison for a while, but this talk (along with Part 2) blew me away. I downloaded Unison locally and have been going through its Exercism.org track to learn. I've been having a lot of fun with it!
Some past threads:
- https://news.ycombinator.com/item?id=9512955 (128 comments from May 8th, 2015)
- https://news.ycombinator.com/item?id=20807997 (25 comments from August 27, 2019)
- https://news.ycombinator.com/item?id=27652677 (131 comments from June 27th, 2021)
- https://news.ycombinator.com/item?id=34307552 (84 comments from January 9th, 2023)
That being said, this conference talk was only put on YouTube on January 21st, 2023, so I figured I'd share.
Here's a couple awesome blog posts from Dave Thomas on the language as well:
- Immutable Code in Unison (https://pragdave.me/discover/unison/2023-02-26-immutable-code.html)
- Abilities: a New Way to Inject Behavior and State (https://pragdave.me/discover/unison/2023-03-11-abilities/)
> but in Erlang you don't want to touch that feature with a ten foot pole. It's hairy and incredibly annoying to work with
It's pretty much the exact opposite in Elixir. The only thing you really have to wrap your head around is the switch between the quoting context and the unquoting context... which is pretty much no different from understanding macros period. The definition syntax looks just like a method definition, except it's "defmacro" instead of "def", and the macro body receives an AST instead of (or in addition to) your usual arguments. But I'm probably not doing it justice...
http://elixir-lang.org/getting-started/meta/macros.html
https://pragprog.com/book/cmelixir/metaprogramming-elixir
Here Dave Thomas creates a simple "returning" macro, you can just watch the screencast if you're feeling lazy:
http://pragdave.me/blog/2014/11/05/a-simple-elixir-macro/
Related: Agile is Dead (Long Live Agility): https://pragdave.me/blog/2014/03/04/time-to-kill-agile.html
From the blog post:
> And, unfortunately, I think time has proven me right. The word “agile” has been subverted to the point where it is effectively meaningless, and what passes for an agile community seems to be largely an arena for consultants and vendors to hawk services and products.
> So I think it is time to retire the word “Agile.”
> I don’t think anyone could object to a ban on the word when it is used as a noun. That’s just plain wrong. “Do Agile Right” and “Agile for Dummies” are just two of the innumerable attacks on the English language featuring the word. They are meaningless. Agile is not a noun, it’s an adjective, and it must qualify something else. “Do Agile Right” is like saying “Do Orange Right.”