Explaining software development methods by flying to Mars

Chris@feddit.uk to Programmer Humor@programming.dev – 770 points –
69

I think this is a bit disingenuous. There’s no customer interaction in these panels.

So waterfall would be:

Customer says they want to go to Mars.

You spend years building a rocket capable of going to Mars, draining all the company budget in the process.

Customer then clarifies they actually meant they wanted to go to Mars, Pennsylvania, USA - not the planet!

Also the strip stops midway through as Waterfall was an invented thing just for a paper. And during your UP work you actually had the customer put in that input and hence it was like in this cartoon strip.

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

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.

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.

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:

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

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

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?"

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.

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.

This is waterfall method propaganda! It never works out this smoothly. They probably forgot important requirements like: the astronauts need to be alive on Mars.

Waterfall is missing the part where the customer realizes they didn't actually want to go to Mars they just wanted to view it out of a telescope.

But now they can only travel to Mars and the telescope is out of the budget because you spent so much money on the rocket

2 years later: It's now up to the lawyers to figure out if it's the rocket that doesn't meet agreed requirements or if it's on the customer for not giving proper requirements.

I hate how true this is. Not even 2 years later for my case.

Actual real world right now giant rockets include

  • One that is being built under waterfall methodology. It has been being built for several years. That's the Blue Origin New Glen heavy lift reusable rocket

  • One that is being developed under an agile methodology, it flew as a subscale lander to test their engine and flight control, it has flown four full test flights, improving on each. That's SpaceX's Starship

We are yet to see either launch a payload to orbit

How was appollo programme planned?

It was outsourced to the guy who ran Nazi concentration camps to build ballistic missiles to bomb London with.

Or the funders get bored of waiting after ten years of "no Mars yet" and cancel the project, leaving you with a half finished rocket.

All the projects that have shittier outcomes in my experience is always waterfall. This is mainly because the stakeholders usually have this bright idea to be added in the middle of development that's really need to be added at all costs and then got angry when the timeline got pushed because of their fucking request breaking a lot of shit.

At least scrum has a lead time of around 2 weeks so that when someone has a idea we can tell them we'll add it to the backlog and hope they forgot about it during the next sprint planning.

I'm sure, doth the Astrumants should survive the landing, there should be a way to return, and they need a shitter as part of the missed requirements. As it's a waterfall, that will come in the second, third, and fourth trips.

The art style is nice but the content makes no sense. Kanban and scrum are parts of agile. They are not their own systems.

Lean also doesn't mean you have no money. It's a system of manufacturing where you cross train people to do the jobs on either side of them so they can pick up slack if needed and keep things moving without hiring more people.

Lean is also short for putting your inventory in an open top dumpster.

Someone shared this on Mastodon so I'll just repost my thoughts from there. (Bonus for Lemmy, I was forced to squeeze all my thoughts into 500 characters, so this is the most succinct I've been on this site!)


Pretty incredible how little people seem to understand these. For one thing, every method other than waterfall is a subtype of agile methodology. The major distinction is that waterfall has a series of phases from design through building, testing, and delivery that attempts to plan the whole project up front. Agile methods focus on smaller iteration cycles with frequent, partial deliverables.

Something like kanban is designed for continuous delivery: we want to go to mars weekly.

LEAN development is a scam though, that one is accurate.

The author is also hyping up waterfall too much. Agile was created because waterfall has its shortcomings (e.g. the team realizes too late that what they’re building isn’t what the customer wants).

But I also think it also represents how poorly implemented these ideas are. People say they do agile/kanban/scrum, but in reality they do some freak version of these.

So often it's waterfall planning and execution with agile names for roles and meetings.

It’s barely waterfall planning either. Often there’s no planning, at least no coordinated one.

Currently at my current workplace we lack coordinated planning between teams. It seems like everybody is working in their own directions and it can take months until we get feedback from other teams. Mostly a product management problem.

The amount of people who say they do agile/kanban/scrum but have never talked to a customer/end user, let alone released something, is frightening

I agree, but agile and scrum are not meant to be followed to the letter no matter what. So people are doing it right if they notice some part of the process should be changed to make it work for them.

LEAN from the web:

After each iteration, project managers discuss bottlenecks, identify waste and develop a plan to eliminate it.

1st iteration:

Project Manager A: Requiring approval of multiple Project Managers for the same thing is causing a bottleneck. So is having to wait for a specific manager for a specific topic.

Resolution: Let all managers approve everything and need only a single manager's approval.

2nd iteration:

Project Manager B: There are too many redundant managers. It's a waste of resources.

Resolution: Get rid of all mangers but one. Actually, let the engineers manage themselves.

3rd iteration:

Consensus: LEAN development is a scam though

My impression of management science, at this point, is that it's not. The good ones just do it.

Going to the moon as a step towards going to Mars is so eminently correct that this comic should actually be Agile propaganda

It’s like camping in the garden, in the hopes you’ll reduce your commute.

NASA also built the space shuttle, which was a plane that couldn't fly by itself (as it was supposed to), was slower to turn around and more expensive than older equivalent technologies, and blew up all the astronauts 1.5% of the time.

I mean, they're great at other things - who else could have made the JWST work flawlessly with one opportunity - but they're a definite source of hype, and they do something very particular and specialised. Beware endorsements.

Edit: Fuck you, I'm right. Keep 'em coming.

I don't even care about Agile either way. This just isn't a good argument for it.

NASA also successfully flew a helicopter on Mars first try.

Yep. They're probably better than anyone at making a complex system with literal moving parts that works 100% of the time, the first time. On a nearly unlimited budget, with a decades-long schedule. In an institution and culture that's now a been around a lifetime, staffed with top-notch people.

That's all perfect for what NASA does, but I wouldn't recommend a management system that NASA uses to just anyone, just 'cause "da astronauts" use it. Not any more than I'd recommend drinking your own distilled piss to anyone.

I don't really have an opinion on Agile, even, I just have a problem with selling it this way.

That’s fair enough. The common misconception is that waterfall is great for space missions, when in reality NASA is doing agile.

I agree that not everybody is NASA, so what works for them doesn’t necessarily work for everyone.

I can see you're frustrated by the downvotes and pushback you've received. It's understandable to feel defensive when your viewpoint isn't well-received. I appreciate you sharing your perspective, even if it goes against the majority opinion here.

Your points about the space shuttle program's challenges are valid and worth discussing. It's important to note the timeframes involved though. The shuttle was developed in the 1970s, well before agile methodologies emerged in the 1990s and 2000s.

Interestingly, one could argue that NASA may have used agile-like practices in the space shuttle program, even if they weren't labeled as such at the time. However, I did a quick search and couldn't find much concrete evidence to support this idea. It's an intriguing area that might merit further research.

Regarding modern agile approaches, while no method is perfect, many organizations have found them helpful for improving flexibility and delivering value incrementally. NASA's recent use of agile for certain projects shows they're open to evolving their methods.

I'm curious to hear more about your thoughts on software development approaches for complex engineering projects. What do you see as the pros and cons of different methodologies? Your insights could add a lot to this discussion.

I can see you’re frustrated by the downvotes and pushback you’ve received. It’s understandable to feel defensive when your viewpoint isn’t well-received. I appreciate you sharing your perspective, even if it goes against the majority opinion here.

Thanks for the kind words. FWIW I'm doing fine, this feels like a worthy fight. I know a bad appeal to authority when I see one.

Interestingly, one could argue that NASA may have used agile-like practices in the space shuttle program, even if they weren’t labeled as such at the time. However, I did a quick search and couldn’t find much concrete evidence to support this idea. It’s an intriguing area that might merit further research.

There's somebody else in the thread talking about the Apollo missions and Agile. Uhh, here, because I don't know if federated comment links are supported yet. There's no source for that already provided, though.

What do you see as the pros and cons of different methodologies? Your insights could add a lot to this discussion.

Honestly no. Sorry to undercut you a bit, but I'm not going to be the Dunning-Kruger guy. I know that I don't know project management.

I appreciate your candor about not wanting to speak on topics outside your expertise. That's commendable. I wonder if we can still talk with the understanding that we may not know it all. I truly believe curiosity is able to sidestep many of the problems related with ignorance.

You're right to be cautious about appeals to authority. My intention wasn't to suggest NASA's use of Agile validates it universally, but rather to counter the OP comic's implication that Agile is inherently incapable of achieving significant goals like space exploration.

Regarding Agile-like practices in earlier NASA projects, you're correct that concrete evidence is limited. However, we can analyze their approaches through the lens of Agile principles. Scrum, for instance, aims to foster characteristics found in high-performing teams: clear goals, information saturation, rapid feedback loops, adaptability to changing requirements, and effective collaboration. These elements aren't exclusive to Scrum or even to modern Agile methodologies. The key is recognizing that effective project management often naturally gravitates towards these principles, whether formally adopting Agile or not.

It's an interesting area for further research: have complex engineering projects historically incorporated elements we now associate with Agile? If so, how?

Your skepticism is valuable in pushing for a more nuanced understanding of project management across different domains.

What is the methodology called where you:

Plan to go to orbit, blow up seconds into the flight, and declare it a success.

Plan to refuel in orbit, make it minutes before the rocket brakes. Fire the FTS, it fails, the rocket blows up a minute later und declare it a successful test of the FTS.

Argue to NASA that you are not the limiting factor to the moon mission planed for the end of the year, despite delivering none of the milestones.

FTS = flight termination system

That's called R&D, Research and Development. As long as you learn from a failure, it is progress towards success.

Sounds a bit like the S&M methodology. SpaceX & Musk

Tbh it actually sounds a lot more like Boeing these days. F9/F9H is bulletproof reliable these days, and starship is making HUGE developmental strides, while Boeing is still failing to discover and iron out system integration bugs and hardware faults years after they had “completed the project”.

I take it you missed the recent fourth integrated flight test, in which the ship soft landed on the ocean near Australia as planned and the booster soft landed on the ocean near the launch site as planned

Their failure in that flight was expected. They hoped thermal tiles sealing the hinge for the aerodynamic surfaces would seal those against plasma during reentry. They didn't. Had they, it would have been much cheaper than sealing those more thoroughly. The ship landed regardless of that failure

Disliking Musk is fair, but SpaceX is doing good stuff

It's a feature, not a bug

I call that following the same successful recipe that got us the Falcon 9.

The mindset that considers those tests failures is the same one that would still be in bureaucracy hell determining what 40 year old technology we should repurpose to get a future over budget, late, and under performing solution designed and built.

Cowboy Programming:

PO: Hey we want to go to Mars
- 3 weeks of silence -
Developer: Hey I'm there, where are you?

PO: Someone else figure out how to repeat what he did.

Second developer: Sorry, I tried to make sense of his rocket design but I can't figure out how to make a copy that doesn't explode before we even put the fuel in.

This is the way.

Assuming you know the developer isn't a shitbird, because you're the developer. If this was Investor Humor the idea would be less popular.

If the person who drew that comic understood anything about complex systems or why agile works when used properly, it could make sense. But it doesn't.

The creator does not know Scrum, it's about transparency and not intransparency.

Also Kanban, Scrum and Lean Development are all agile development.

I like how many devs this pissed off. this picture is whack tho wtf

I don't understand the Scrum one. Scrum is also agile with short development cycles, and prioritizes communication with the product owners and stakeholders.

I've never heard of lean development, but not a fan of "lean manufacturing," at least not the way it's commonly implemented in the U.S. (using primarily temp workers so they can ramp up and down their workforce as needed; and it also exacerbates supply-chain problems).

Yeah, I remember the time i had a project manager who’d come over from the construction industry, used construction industry metaphors, and thought everything would be the same.

Guess usual (state funded) rocket building is Kanban. Space X and BlueOrigin & co are Agile, except that one that was Lean.