Sunday, February 11, 2024

How do some (software) projects become vaporware?

"Vaporware" is a term generally used for a project that's announced by a company, which then takes an inordinate amount of time to complete, and might in fact never be completed even though years and years, sometimes decades, are spent on developing it. Sometimes the project does eventually end up being released; however, most often than not it turns out to be less than stellar, sub-par to various degrees, and gets critically panned and disliked. Very often this is because, probably due to its extremely long development time, its technology is antiquated by the time it gets published and may still contain a lot of missing or buggy features (no doubt having not been completely finished for the exact same reasons it was so immensely delayed in the first place.)

Hidden behind the layer of publicly announced "vaporware" is, however, an immensely bigger layer of what could be called "eternal projects". These are projects that have gone over any reasonable timelines by an order of magnitude, but which have never been announced publicly by the company (most likely because the company only wants to announce finished products, not future projects.) These are, essentially, "company-internal vaporware", normal vaporware, just not announced in advance to the public.

Projects (software and otherwise) that go nowhere are extremely commonplace in all kinds of technology companies. Someone presents an idea, development is started, but it turns out that for one reason or another the idea is actually infeasible, or would take way too much time and resources, or in practice isn't as good as it sounded on paper, so it's abandoned. Usually in the timespan of a few months, a year at most.

However, these "eternal projects", "company-internal vaporware" projects, may be developed for years and years and years, sometimes even for over a decade, with no end in sight, even though it never seems to be even close to be finished, nor usable in practice, or something that actually feels like a good full video game (if the project is one). Rather than being cancelled after a few months, they are just stubbornly continued for many years, even though it never seems to get even close to finished.

But why? And how does a project become this kind of "eternal project" (either publicly announced or unannounced)? Why don't companies just cancel such projects when it has become clear that they aren't really going anywhere?

Having had some personal experience with these things, I can speculate from my perspective about some of the reasons.

One of the major, perhaps most obvious, reasons is the sunk cost fallacy: People managing and running the project (and, in my experience, it most usually tends to be them, rather than the developers and engineers themselves) get into the strong mentality that the project actually is going somewhere, that a finished product is just around the corner, it just needs a little bit more of work, and it will finally be finished, the final breakthrough in the project will be achieved, and the finishing touches will be routine and smooth sailing from that point forward. And, of course, where the "sunk cost fallacy" kicks in is that they have this strong feeling that because so many years and so much money have already been spent on the project, it would be a huge loss and an enormous waste to just stop and cancel the project. The team has spent all this time, all this effort, all this work, and there is years and years worth of material that has been produced by the team, and they are so close to finally get a working result, that it would be unthinkable to throw all that work, effort and money to the trashcan.

These managers, however, often get blindsided and can't see that the project actually isn't going anywhere, and the existing work is just outright bad, and that the project should have been cancelled literally years prior and all the developers and engineers moved to some other more productive projects. The developers themselves can often see this, but they either don't really want to say anything, or of they do, their objections are dismissed.

But how does a project, like a software project, end up in this state? A state of being, effectively, eternally "stuck" in a state where it's seemingly being constantly developed but it's getting nowhere, it's not actually advancing towards a final product?

There may be many reasons for this, but one common one is a lack of a plan, a very exact vision of what the final product must be like, planned before development even started. In other words, the project started as a more generic idea and took the approach of "let's plan the details as we go". For example if the project is a video game, the plan might have been to create a game of a particular genre, with certain features... but that's it. All the actual concrete details are made up during development, "as we go." There is no precise and exact final picture of the end goal.

This usually ends up in a form of development where the development itself is used as a testing bed for ideas and features. The person or people running the project may come up with new features to try, new ideas, new mechanics, to be tested on the project currently in development, to see if they work. These new ideas might literally come on an almost daily basis. "Let's try this. Let's try that. Let's change this into that. Let's add this to that. Let's remove this. Let's re-add this previous removed feature." An endless stream of new features and changes to the existing project, which just accumulate and accumulate over the years, but without any concrete vision nor plan of the final product.

One reason why a project manager may engage in this is that he completely misunderstood what the "agile development" paradigm actually means and entails. (Yes, actual case from personal experience.)

Such a project manager might get completely blindsided and, ironically, completely unable to see the bigger picture. The fact that the project isn't actually going anywhere, and is nowhere even near to be finished, and that the current project is in complete shambles, a complete mess, when it comes to an actual good design, and for example if it's a video game, it's not anything that anybody would play or enjoy.

Bosses, CEO's and other higher-ups might also be blindsided by the project. Perhaps they are presented previews of the product, which present a picture of it that looks way better than what it actually is. Company-internal deceptive marketing of sorts. The higher-ups might seriously get the wrong impression that the product is better and more finished than it really is, and thus not stop it.

Or, in many cases, it's precisely the bosses and CEO's who are the ones engaging in the endless cycle of trying new features without a clear plan nor goal of the end product, unable to see that the project is a complete disaster and should have been cancelled years prior.

Sunday, January 14, 2024

Why too much exposition ruins movies and games

Many years ago I went a couple of times to an event organized by some university student group where you could be introduced to and play all kinds of tabletop board games. I thought it would be a good way to have fun and socialize, and perhaps even find interesting tabletop games.

One of the organizers there, however, pretty much ruined the entire thing for me. The reason for it was that it seemed like he just loved the sound of his own voice, and when he started introducing some new board game to a small group of interested players, he would just explain... and explain... and explain... and explain... and explain... endlessly. He would literally take like 15 minutes explaining and explaining some board game (that wasn't actually even all that hugely complicated; it's not like it was Warhammer or some other enormously complex game.) Rather than, you know, actually allowing people to learn by playing.

The problem was, of course, that such a huge info dump is impossible to follow and remember. It's completely useless to explain a complex board game for fifteen minutes because no person in existence can remember all of that at once, especially when they have absolutely no experience with the game itself, no context, and all they hear are words and more words disconnected from any actual hands-on playing experience. Thus, I would just doze off after a minute or two, and listen to the huge stream of meaningless word salad for 10+ minutes, completely bored out of my skull. Those 15 minutes could have been used to actually play the game and learn the concepts in that manner, one by one as they come up during the game. After what felt like an absolute eternity the game would finally be started, and almost nothing of what he explained helped at all to play the game, because nobody can remember all of that. It was literally completely wasted 15 minutes for absolutely no benefit. We would learn from the first 5 minutes of actually playing the game way more than during that 15-minute verbal diarrhea info dump.

Way too many video games, especially nowadays, commit this exact same mistake: Quite often during the very beginning parts of the game, before the player has had any chance of getting any hands-on experience about the game, it will throw textbox tutorial after textbox tutorial at the player, usually interrupting gameplay, and way too often either explaining complete trivialities, or showing an info dump that the player has zero chance of learning because there's too much information at once, completely disconnected from any actual hands-on playing experience (and thus the player has no way of connecting what the tutorial is saying to the actual gameplay, making it harder to remember.)

(When it comes to explaining completely trivial things, which is way too common especially in a certain type of Japanese RPG games, it almost feels like the developers have the mentality of "we went through all this trouble to implement a tutorial system, let's use it to the fullest, dammit!" and start throwing the most trivial things at the player, like how to click on a button or exit from a menu, which would be completely obvious to anybody without it having to be explained.)

Sometimes, however, this kind of needless exposition and explanations can also extend to storytelling itself, which thus can affect not only video games but also movies, TV series and even books.

Movies, especially those that are based on stories originally told in another medium (usually a book or a game), tend to be especially egregious in this regard.

One particularly notorious and aggravating example is the 2021 film adaptation of Dune.

The opening scene of the book doesn't happen until about 20 minutes into the movie. The first 20 minutes are nothing but boring exposition.

This is not how you tell a story! Frank Herbert, when he wrote the book, understood how to tell a story in an interesting manner, in a way that immediately engages the audience. You start with something that grabs your attention, picks your curiosity, excites your imagination.

You don't start with 20 minutes of exposition!

Clearly the scriptwriters of the movie did not understand this at all, and felt the average audience is so stupid that they need 20 minutes of exposition before they can "understand" what's going on. They apparently felt that if they just did what the book did, then the audience wouldn't understand and would be confused. They clearly didn't understand about good writing at all.

And this is, by far, not the only example, just one of the most egregious recent ones.