367
199
After watching National Geographic's MegaStructures series, I was surprised how fast large projects are completed. Once the preliminary work (design, specifications, etc.) is done on paper, the realization itself of huge projects take just a few years or sometimes a few months.
For example, Airbus A380 "formally launched on Dec. 19, 2000", and "in the Early March, 2005", the aircraft was already tested. The same goes for huge oil tankers, skyscrapers, etc.
Comparing this to the delays in software industry, I can't help wondering why most IT projects are so slow, or more precisely, why they cannot be as fast and faultless, at the same scale, given enough people?
Projects such as the Airbus A380 present both:
Major unforeseen risks: while this is not the first aircraft built, it still pushes the limits if the technology and things which worked well for smaller airliners may not work for the larger one due to physical constraints; in the same way, new technologies are used which were not used yet, because for example they were not available in 1969 when Boeing 747 was done.
Risks related to human resources and management in general: people quitting in the middle of the project, inability to reach a person because she's on vacation, ordinary human errors, etc.
With those risks, people still achieve projects like those large airliners in a very short period of time, and despite the delivery delays, those projects are still hugely successful and of a high quality.
When it comes to software development, the projects are hardly as large and complicated as an airliner (both technically and in terms of management), and have slightly less unforeseen risks from the real world.
Still, most IT projects are slow and late, and adding more developers to the project is not a solution (going from a team of ten developer to two thousand will sometimes allow to deliver the project faster, sometimes not, and sometimes will only harm the project and increase the risk of not finishing it at all).
Those which are still delivered may often contain a lot of bugs, requiring consecutive service packs and regular updates (imagine "installing updates" on every Airbus A380 twice per week to patch the bugs in the original product and prevent the aircraft from crashing).
How can such differences be explained? Is it due exclusively to the fact that software development industry is too young to be able to manage thousands of people on a single project in order to deliver large scale, nearly faultless products very fast?
105Interesting question. I'm tempted to say the quality of the average worker in the software industry is less skilled and qualified than, say, civil engineering where every engineer has completed a rigorous and intensive degree and likely gained his charter too. Furthermore, the complexity space of large software (eg. an OS, MS Office) is probably much greater even than an aeroplane. Certainly many more places to fail! And a final important point: most software more or less works, even if was poorly written and highly buggy...certainly the cost of failure is normally much less than an aeroplane! – Noldorin – 2012-07-29T13:58:45.347
18Any recent mode of transport is full of software, if you're interested in the software quality of aerospace systems then have a look at the DO-178B and DO-178C certifications – tsundoku – 2012-07-29T14:40:46.637
122Find someone who actually works in any of those other industries (but not in PR) and ask them about "large faultless projects". I can virtually guarantee that you'll earn pained laughter. – Michael Borgwardt – 2012-07-29T15:50:58.970
3Primary problem is that every new project usually have new, untested things to solve. – None – 2012-07-29T15:56:08.450
120The realisation of a software project takes seconds or minutes; it's what happens when you click "compile" in your IDE. On the other hand, programming is design. How long did it take to design the A380? – Ant – 2012-07-29T16:36:09.203
40That TV program is a hype. They only telecast successful projects. Any channel will make programs for viewers attention. – pandu – 2012-07-29T18:13:13.170
6That's two successful projects picked from the aviation industry and compared to all the unsuccessful projects from the software industry, without even giving specific examples. – Jimmy – 2012-07-29T18:44:40.497
2@ThorbjørnRavnAndersen - I don't disagree with your comment, however, it does raise the interesting follow on question of why then, does software development concern itself so much with notions of reuse (components, cohesive classes, OOP etc.) if we essentially have to solve different, new and untested problems each time? – CraigTP – 2012-07-29T20:19:29.820
@CraigTP a guess would be that the world changes fast enough for the basic premises to settle. If you keep writing DOS programs - which Windows will run - you will provide suboptimal solutions in todays world. – None – 2012-07-29T20:40:30.063
3"Computer programs are the most complex things that humans make." - Douglas Crockford – ren – 2012-07-29T21:04:00.947
3Software development exists since.. about 30 years? Maybe 40. Engineering has done virtually ever since! A lot of expierence could be gathered through all the time. – Michael – 2012-07-29T21:12:51.193
3Why are you surprised? Engineers in general have several millennia head start on software engineers. – Konrad Rudolph – 2012-07-29T21:34:33.990
5I read somewhere saying that software engineers often underestimate the time required to complete a project. The delays you experienced may simply be the fact that the people set un-reasonable deadlines when in fact it took just as long. Just a theory, not confirmed fact by any means. – Pwnna – 2012-07-29T22:15:13.687
2A seasoned PM once told me that in a factory/assembly line like setting, each person/team at every phase has a different expertise. They can't necessarily change something there and then and must be 'escalated back up'. Software - almost everyone on the team can spend sometime, understand code they haven't written and change without necessary regard to downstream repercussions. Not so with other industries – PhD – 2012-07-29T23:34:26.337
11A quick review would have convinced you that the A380 is certainly not the success you think. Faultless? As recent as 2010 it had a major recall because of a major fault in the Rolls Royce engines. – Muhammad Alkarouri – 2012-07-30T01:30:55.253
6Other industries like what? The construction industry? Hahahahahaha... – Kyralessa – 2012-07-30T03:25:45.470
7I seriously doubt the basic premise of this question can be proved. – GrandmasterB – 2012-07-30T03:33:04.483
3Go over to YouTube and search for episodes and clips of the "Seconds From Disaster" series. All isn't perfect in other industries. – jfrankcarr – 2012-07-30T03:46:14.727
3If human got a Airbus, human is happy with it. If human got a patient journal system, it's wrong implemented. I feel it also a result of consumers nature. Differently touched "the canine is to low to roof", engineers say "go and sit". A softwareengineer "of, your probably right, we fix?" – Independent – 2012-07-30T06:08:03.120
29Ironic that you should pick the A380 as an example of a successful, on time project. The A380 was two years late entering service due to wiring issues, and now all aircraft need to be re-worked to fix cracks in the wings. It's beginning to sound exactly like your typical IT project! – Gavin Coates – 2012-07-30T11:24:43.087
1@Gavin Coates: quoting from my question: "With those risks, people still achieve projects like those large airliners in a very short period of time, and despite the delivery delays, those projects are [...]". – Arseni Mourzenko – 2012-07-30T11:26:23.727
3It's easy, just redefine success to be the same level in all situations. In the airplane, when your tray table isn't exactly well aligned, you don't bother to complain. If an icon isn't exactly aligned in your software, you'll make much more noise and complaining about it, and so on... – woliveirajr – 2012-07-30T14:14:35.690
7I downvoted due to the begged question: anyone who's ever lived in an area with major civil works projects or followed the news on projects like the ones you mentioned has reason to question whether they're that much different. A better question would compare some large projects which did and did not procede efficiently to compare the approaches - there's a potentially interesting discussion about strategies for managing complexity. – Chris Adams – 2012-07-30T14:16:36.890
6The formal launch was in 2000, but the article said development started in 1994. That's 11 years. Imagine writing and testing code for 11 years before shipping. – Phil – 2012-07-30T15:00:13.903
83'imagine "installing updates" on every Airbus A380 twice per week...' Imagine enemy robots constantly probing the plane for vulnerabilities while untrained pilots push buttons at random. I bet you'd need regular patches. – Nathan Long – 2012-07-30T15:15:13.713
14@MainMa - The A380 project was far from developed in a "very short period of time". Officially offered for sale in Dec. 2000, and entered service in Oct 2007. That's 7 years in development. Initial studies began in 1988 before it was even decided it was feasible to do, with the project first announced in 1990. I'm a big fan of the A380, but it certainly isn't a project designed in a short period of time, or a good example of a successful project (in terms of being on time and on budget). – Gavin Coates – 2012-07-30T15:58:55.257
Paradoxically, because too many people in the IT industry don't know the answer to this question. Neither ask it. – superfav – 2012-07-30T18:53:51.987
1
This article is a better answer than most of the comments posted so far: http://www.drdobbs.com/tools/building-quickbooks-how-intuit-manages-1/240003694
– rwong – 2012-07-31T03:47:20.1879Management can decide to release software that fails key tests. But you can't release an air plane that fails physics. – Nick Miller – 2012-07-31T07:26:41.857
1You talk that it's a given that projects that aren't software related are always more successful. That isn't necessarially true. Both the A380 and the Dreamliner had delays and cost overruns, and the F35 program is currently looking like a serious screwup, especially the B variant. Structural and mechanical engineering disciplines are more mature than those for software, that's certainly a factor, but there are plenty of projects that didn't go well that went nowhere near software. – GordonM – 2012-07-31T22:40:39.220
1Actually, in IT industry there is too much change in small amount of time. This change doesn't allow anyone to master a specific topic fully. For example, if you master Silverlight, you will be told that this is not going to last long, its already dead or it will be superseded by say HTML5 or whatever. So, we should make the stable and promote innovation, rather than killing each others technologies. Also, IT is still is newer than say Automobile industry. – Badar – 2012-08-02T00:25:54.163
1
This is a great answer for this kind of comparison: http://www.stevestreeting.com/2011/06/16/why-software-engineering-is-a-misnomer/
– Phyxx – 2012-08-02T04:29:59.75010
I love the answer Dijkstra gave more than thirty years ago: To the economic question "Why is software so expensive?" the equally economic answer could be "Because it is tried with cheap labour."
– dasblinkenlight – 2012-08-16T16:07:20.3271The reason those construction projects can be designed and built much faster is due to the quality of the software systems that allow the design to be modelled and tested. Weaknesses and design faults are likely to be caught during a simulation. It's unfortunate that the software industry still hasn't implemented these ideas with unit testing to a great degree – Tobsey – 2012-11-29T10:25:34.097
see also: Does software reuse preclude process repeatability
– gnat – 2013-07-17T12:43:19.860Large airliners are generally more reliable than software? Really? Which one usually needs more maintenance? – user16764 – 2014-05-31T19:18:21.980
Well Airbus A380 was not all about hardware? Software was also involved. :) – FaizanRabbani – 2014-12-24T06:03:53.217
it is just because software building has no strict 'coding' process to follow and has no way of 99.99996% (6 sigma) to be tested like factory, it's more like implementation of human thoughts than a real stuff. and human is just human. – Elaine – 2015-01-07T08:50:52.253
agreed the premise of the question (that big projects are less problematic outside of software business) is highly questionable & arguably quite false. this question relates to human nature and is nearly anthropological/ cultural. in a word politics/ bureacracy which is common/ intrinsic/ inescapable to all large human projects and even smaller ones. another basic recent case study is the boeing dreamliner which you conspicuously dont mention and is now world famous for its delays.
– vzn – 2015-04-14T17:41:58.823The answer is due to the complexity, number of details, and heterogenous nature of IT projects (the project must satisfy many criteria, handle many different scenarios,) and the fact that many IT projects are built from scratch rather than using well-developed code that's already in existence. Every time you build a new airplane, you're not re-inventing the wheel. And the software that runs on airplanes only has to do a limited set of very specific, predictable things, unlike IT services which are trying to satisfy a wide variety of things many of which are not known in advance. – Michael Martinez – 2015-08-14T21:53:36.080
It took decades of hard lessons costing lots of lives to get aerospace where it is. Early on american rockets were routinely blowing up on the launch pad. And I think of the 3 Apollo I astronauts burning alive. These tragedies forced us to learn what it meant to design and build true quality. Challenger and Endeavor loses taught us - twice - the problems of organization culture and management reality distortion. Software just hasn't killed as many people - yet. Oh - NASA's software bug tolerance is about 1 in 10^6. No software startup would ever implement their process. – radarbob – 2016-02-28T08:15:01.233