What Is Agile?

10 points by amitgupta6 ↗ HN
The question sounds simple but the answer is probably not straight forward. There are thousands of books, blogs, courses, videos available on this subject, however, I still have a hard time understanding how does it work at a conceptual level. People say we can implement Agile methodology to software development to general business problems. Jeff Sutherland, Author of popular book on Agile ("Scrum"), suggests that we can solve humanities most important problems like poverty with this methodology.

I have been able to understand following things about Agile - Too much planning is a waste of time. Rather, just figure out the next important thing and get down to work. - Do things incrementally. For example, when building a software, rather building things in parts, build a smallest possible functional system and deliver it to it's user and then extend it feature by feature. (In contrast to other approaches, where you build things part by part ) - Respond on feedback rather than planning everything in advance. - Communication over documentation

However, what are the general principle of this methodology and how do we apply to projects other than software. How do we really solve world problems, the agile way?

16 comments

[ 3.1 ms ] story [ 37.9 ms ] thread
This is good short illustration of the general idea: https://twitter.com/RonJeffries/status/1508125106291228673

Although you may "feel" the illustration deeper only if you ever used both methods of navigation for days-long walks in nature or foreign areas.

Both have their merits and downsides, depending on the context you're in.

Odds are you have heard of the Agile Manifesto, but it is a good reminder to re-read it, as most people drift away from its principles as they develop their own processes:

https://agilemanifesto.org/

As far as extending it beyond software... why? It is specific to the problems encountered in software. It was also a product of its time, as a reaction to where the industry had gone with waterfall processes. Does it truly make sense to expand to other areas?

The application outside of software is going to be subjective. One example in a PM class I took was building things, specifically things with very high risks involved like building a nuclear power plant. You want that to be done with waterfall and serious risk management strategies applied to everything.

I think of agile as the concepts in the agile manifesto and lean techniques, not a specific framework, etc. I would generalize that agile works well when the output is digital. That isn't universal either, some digital outputs, movie post-production I imagine, require a waterfall of inputs to happen first.

Solving world problems deals with governments and legal systems which are heavily based in documents, contracts and lengthy change processes. I can't see agile working for anything that is a "world" problem because of that.

> As far as extending it beyond software... why? It is specific to the problems encountered in software.

Well, it did appear _outside_ of software.

Agile is a cancer that needs to be purged from the industry.

At its core, it is an obvious general philosophy based on the even more obvious concept of a small team working together closely.

Everything that gets layered on top of that exists so that people who can't program can also get big tech $$$.

> However, what are the general principle of this methodology and how do we apply to projects other than software. How do we really solve world problems, the agile way?

Most Agile derived or related processes actually have origins outside of software. Kanban, for instance, falls out of Lean which is a continuation of the Toyota Production System. DevOps (as originally described, not as a job title) follows largely from Goldratt's approach in Theory of Constraints, see his book The Goal for a similar novel to The Phoenix Project.

Lean, TPS, Theory of Constraints were all originally conceived in the context of physical manufacturing. Lean and TPS were also influenced by, and the result of, the work of W. Edwards Deming and his post-WWII work in Japan. You can see the Shewhart Cycle (popularly known as the Deming Cycle or PDCA - Plan-Do-Check-Act) as a very similar model to what most Agile processes emphasize. In particular, you can see how it influenced Scrum (taking each Sprint as an application of the PDCA cycle), but it was already somewhat common (though not as common as it should have been) in software and systems engineering before Agile was named Agile.

Theory of Constraints can be seen to influence how Kanban is used in software development, particularly taking note of work-in-progress limits and making the current load highly visible. It's also apparent in the move toward Continuous Integration/Continuous Deployment. Small but frequent batches versus big-bang annual (or further apart) releases.

Agile is how we kid ourselves into thinking that Jira is worthwhile.
What alternatives are there to Agile?
Discussing what you're doing and then doing it and then going home.
Sounds like Agile
It does, doesn't it?...

On the off chance this flew over some heads, my entire point was the the alternative to "Agile" is actually being agile.

It's astonishing how many people in this industry get paid to spend their entire day on step 1. Just talking about work all day. It's all just talk. Disgusting.

Most devs who have been in the industry a long time will have this reaction:

Nooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo!

Because the "what is agile" debate has been happening for thirty years.

"Agile is Dead": https://www.youtube.com/watch?v=a-BOSpxYJ9M. Good talk about Agile if you havn't seen :)
This is a talk by Dave Thomas whose name is on the Agile Manifesto.

I highly recommend giving it a watch.

In short, “Agile” with capital A is a cult-like training and process-defining industry gone out of control, causing more harm than good and the opposite of agile.

agile development, as defined in the manifesto is simple and productive - make a step forward, look around, adjust, make another small step.

To answer the fundamental question "What is Agile" is simple:

It's a bullshit panacea that pretends to address all concerns around the uncertainty inherent in the production and delivery of complex software.

Every methodology claims to be agile, most of which are not, and claim to provide managers and MBAs the ability to prognosticate accurately - none of which actually do.

If you eliminated entire layers of management and non-technical people from software development, you wouldn't have anyone talking about "Agile" or "Agile Methodologies" at all.

Agile is an informal manifesto[1] + poorly-specified software prototyping method based on a feedback loops.

Scrum is a brilliant idea that SW Development is no different than Rugby;)

[1] https://agilemanifesto.org/