I’ve been mainly lurking here for the past month and am glad to see that someone has asked this question. I am an engineer who designs systems for business jets. I have also done firmware development and software development. I have never worked for any truly big companies or on any truly massive projects, but I can tell you a couple things for certain and also a relatively interesting story that might shed some light on the situation.
While you’ve almost certainly used a self-checkout before, you probably have not considered how much they themselves cost. A large self-checkout used at a major grocery store can cost, in low volumes, something around $30,000 each. Obviously there’s a lot of hardware there but there’s also a fair amount of software. I worked for a company that was developing one to be much smaller and much cheaper, perhaps $3,000-$5,000. When I started there were two developers, both of whom had worked there for something like 5-7 years. They had been working on this self-checkout for about 3 years at that point and had not managed to get the core software into what I would consider a stable alpha. It wouldn’t scan but then it might scan ~100 times in 5 seconds. Transactions wouldn’t get sent into the cloud. Transactions wouldn’t get authorized correctly and would either not charge the customer, or, if the scan bug was “triggered,” it might charge them all 100 times. The payment processing back-end would go down so often that we would joke that it was running on a laptop that someone left out in the break room.
This was after about three years with two “mid-career” developers working full-time on it. Did I think they were horrible? Yes, absolutely. Did I think I could grab a reasonable motivated intern from a local university and get a minimum viable product done in a week or two? Yes, and I suggested it. But were they the only ones in the equation that were even close to being this bad? No, absolutely not.
That self-checkout was demonstrably bad. Little to no architecture, implementation that would make any .net developer cringe and most people in the open source community have an aneurism, and a fundamental lack of knowledge around… well, software, I guess. It seemed like it was maybe on the order of a weekend woodworking project from someone who saw an episode of This Old House and then decided they were going to build wall-to-wall bookcases with what they had in their garage. Except they were on payroll getting paid significant salaries with what appeared to be almost no practical, let alone theoretical, knowledge of what they were doing.
Wikipedia is telling me Asobo Studio had 140+ employees in 2018. Wikipedia says that MSFS 2020 was announced at E3 on 19 June 2019. The game was released on 18 August 2020.
The complete software package at the time I left the company was about 100 MB and was maybe some 10,000 lines of code with the vast majority of the installer containing the “framework” required for Windows to execute the actual thing. MSFS is around 1200 times larger and, if I had to guess, is comprised of tens of millions of lines of code. I would guess it’s almost exclusively written in C++ for speed which is not often considered easily approachable. The stuff that makes the displays and MFDs work is not just its own code but an entire engine they built and ported in so that mod developers could use the type of tech used for the web to make MFDs function instead, presumably to make it more accessible for the much, much larger number of people who have done web development and not relatively low-level C++.
An artificial intelligence took geospatial information and satellite imagery and, from what I understand, with minimal human interaction transformed a 3D ground layer and a 2D image and mapped that into a game with the “level map” being 196.9 million square miles (510.1 million km^2) in size. Skyrim is 14.3 sq mi. Someone on the internet is saying World of Warcraft is maybe 200 sq mi. Another person is saying 61 sq mi for WoW based on a different measurement method.
That is ■■■■■■■ wild.
But then, as if making an entire planet into a playable game wasn’t enough, they also needed a physics engine to actually make it a simulator. I’d be shocked if they didn’t get in touch with computational physicists and particularly people specializing in fluid dynamics. Accurately modelling the real world is, as you might expect, kind of complicated even if you hand-wave away a lot of stuff. I’ve never done anything like it personally but it seems like a field where first-approximation results are relatively easy to hit but very quickly becomes enormously more complex (i.e. modelling a smooth sphere in an atmosphere isn’t particularly hard. Modelling a golf ball is a great deal harder. Modelling an airplane is probably orders of magnitude more complex and hints of it are shown in the flight_model.cfg). Even the statement where “well it works in FSX/P3D/X11, why doesn’t it work here” falls apart quickly in my mind if I consider that I don’t have a clue what they accounted for in the flight models or simulation code of any of those or what they’re trying to accomplish here in MSFS 2020. I would expect this to be quite a bit more ambitious as the specs of FSX are maybe less than what a netbook has today (1.0 GHz processor, 256 MB ram, 14 GB HDD, 32 MB DX9 graphics card).
All of this coming from maybe 140 - 200 people in France, at least months of which was during a worldwide pandemic and recession, each with their own lives, families, problems, etc.
If this development timeline is even close to what is implied by the announcement and release dates, I would not have bet literally any money whatsoever that even an experienced dev team could release a game of this scope in a year. Even three years I would be deeply, deeply skeptical about.
So where does that leave us? For me personally, I picked it up on game pass for $1 first about a month ago. It looked like, and still largely looks like, an MVP: minimum viable product. They’re operating on what appears to be 2 week sprints which I would expect is lagging a week as one week is probably for development and another for testing before release. I’m certain they have dedicated QA staff and playtesters but, as we’ve seen here and everywhere else in the software development world, it’s possible for someone to test the ■■■■ out of something and pass everything on a dev box but then as soon as it’s in production bugs show back up or were never removed or now appear differently or whatever.
I’ve already written a whole novel at this point but if you really want the tl;dr version I would say this: software engineers are not exceptional. There are just as many, if not more, bad software engineers than there are, say, bad carpenters or bad doctors or bad babysitters or bad teachers or bad cashiers. If anything, the complexity and immaterial nature of the work can obfuscate and conceal flaws in people’s reasoning or understanding and it is an exceptionally difficult field to hire in. The fact that they delivered a game literally at all even remotely close to the stated goal is, in my opinion, a testament to that team’s abilities. I would not think twice about asserting that these are some of the top people in their field.
I gave them my $100 after I saw the bugs and what they had accomplished, for whatever that’s worth.