this post was submitted on 27 Jun 2024
775 points (91.5% liked)

Programmer Humor

19551 readers
1020 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 1 year ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 164 points 4 months ago (2 children)

Waterfall method: talk about building a rocket for 5 years, build the rocket, rocket needs to be totally redesigned because we forgot to put a place for people to go - massive change reqeust, build new version. Project Delay: 27 years

Agile Method: a rocket is not software - do not use Agile

Kanban - kanban is agile

Scrum - scrum . . is also Agile. What are you doing, go back and do the waterfall one

[–] [email protected] 43 points 4 months ago* (last edited 4 months ago) (1 children)

Your comparison is interesting, but let's consider some historical facts. The Apollo program, which successfully put humans on the moon, actually employed many principles we now associate with Agile methodologies.

Contrary to popular belief, it wasn't a straightforward Waterfall process. NASA used frequent feedback (akin to daily Scrums), self-organizing teams, stable interfaces so that teams are an independent path to production, and iterative development cycles - core Agile practices. In fact, Mariana Mazzucato's book Mission Economy provides fascinating insights into how the moon landing project incorporated elements remarkably similar to modern Agile approaches. Furthermore, here's a NASA article detailing how Agile practices are used to send a rover to the moon: https://ntrs.nasa.gov/api/citations/20160006387/downloads/20160006387.pdf?attachment=true

While it's true that building rockets isn't identical to software development, the underlying principles of flexibility, collaboration, and rapid iteration proved crucial to the missions' success. Programs like the Apollo program adapted constantly to new challenges, much like Agile teams do today.

Regarding Kanban and Scrum, you're right that they fall under the Agile umbrella. However, each offers unique tools that can be valuable in different contexts, even outside of software.

Perhaps instead of dismissing Agile outright for hardware projects, we could explore how its principles might be adapted to improve complex engineering endeavors. After all, if it helped us reach the moon and, decades later, send rovers to it, it might have more applications than we initially assume.

[–] [email protected] 17 points 4 months ago (1 children)

Also, Kanban was invented in the 40s as a process for automotive production lines. That's why it aligns so well with maintenance and operations projects in IT. It's ridiculous how more and more people claim it comes from software development and would not fit hardware projects, when that's the core use case of the methodology.

[–] [email protected] 8 points 4 months ago

Good points all - I was just responding to a comic strip that I think meant to riff on the old, “what the customer wanted”, “how sales described it”, “what engineering proposed” etc. about project management but it just wasn’t finding the funny as it put the onus on Agile like isn’t this a silly discipline - well, no. :)

Ah, here it is:

[–] [email protected] 2 points 4 months ago (1 children)

So does Agile even have a definition, or is it just an umbrella for every management method?

[–] [email protected] 6 points 4 months ago (1 children)

Agile methodology is a defined framework for software development success. It helps teams adapt and solve specific needs at a given time and prioritizes accelerated time to market and the value of user insights. Agile is based upon a set of four values and twelve principles laid out in the Manifesto for Agile Software development.

Via https://builtin.com/agile

[–] [email protected] 7 points 4 months ago* (last edited 4 months ago) (2 children)

See, the thing with that is it's just really aspirational. Anything could be Agile if you do it in the right spirit, if the manifesto is the whole thing.

Edit: I suppose what I should have asked is: "Is Agile really a system, or just a philosophy?"

[–] [email protected] 5 points 4 months ago* (last edited 4 months ago)

It’s both. The word “Agile” is used for either depending on context.

To that end, it’s several “systems” depending on if it’s used for straight-software development in a department, or manufacturing with technological components, or an entire enterprise using Agile concepts (like SAFe). Each one could be slightly different, and each one is some variation on the philosophy.

What it differs from mostly is a phase-gate approach typified by project management, where a plan is made, a budget secured, and a timeline set. All of those things are of course present in Agile, just in different ways and not one-after-the-other.

The big difference is project management has been around forever; Agile just over twenty years. So the former is what everybody knows by default, the latter sounds very “woo woo” to a lot of people. I think that’s really what the comic is trying to say - Agile stuff sounds silly.

[–] [email protected] 1 points 4 months ago

Agile is indeed more of a mindset than a rigid system. In my recent experience helping a tabletop game team, we applied Agile principles to great effect. Rather than trying to perfect every aspect of the game at once, we focused on rapidly iterating the core mechanics based on player feedback. This allowed us to validate the fundamental concept quickly before investing time in peripheral elements like the looks of the game.

This approach embodies the Agile value of 'working product over comprehensive documentation' - or in our case, 'playable game over polished components'. By prioritizing what matters most to players right now, we're able to learn and adapt much more efficiently.

Agile thinking helps us stay flexible and responsive, whether we're developing software or board games. It's about delivering value incrementally and being ready to pivot based on real-world feedback.