I'm surprised no one is talking about the fact that this is one of the most complex projects ever undertaken by human beings. It was being designed and orchestrated in the only way we know how, and it broke down. I don't believe bringing in the people 20 layers below the top management and giving them a paycheck that says 'Boeing' on it would solve all the problems. They were building something too complicated for their basic process (blueprints, documents, proposals, etc.)
Many of the problems such as parts that don't fit and supply chain problems could be solved by current machine learning techniques. Too bad Google and Facebook hire all those people and sets them to work optimizing ad placement.
The surprising thing is that they managed to design and build the 747 in the 60s in record time, without access to machine learning or any CAD tools whatsoever.
Although the Dreamliner is a completely new design using new materials, I'd say the 747 was a far more impressive accomplishment at the time.
The problem I saw working on the 787 and other modern aircraft is that we now bury ourselves in analysis and data in the name of accuracy. Just like in programming, when the code gets complex and you have more and more dependencies. One small change impacts lots of other things and you go round and round in circles and iterations.
Back in the day they used to do more conservative, more basic calculations and conventinoal designs that they knew would work.
If there was a small change they didn't have to go and revisit everything because everything was still well within their original conservative calculations.
It's basically Paretos Law, they got 80% of the results for 20% of the effort. We are now chasing that other 20% of the results and the complexity to do so has balooned.
I appreciate someone in your position posting this comment more than you can imagine. The research project I'm working on is an attempt to confront this problem. As you say in another comment on this thread, GA's are good for small problems, but don't scale well as more people are involved on the problem.
The problem is more about software engineering and project management, in my opinion. What would we replace CAD systems with if we could? What does the IDE look like when everyone is trying to encode their expertise in such a way that the final design is determined by a machine learning algorithm? That is, it's conceptually easy to imagine those final iterations being done by a machine learning algorithm, but how do we do that?
It's a fascinating problem and on very small engineering projects with a small team of people willing to experiment with new methods it would be great to try and take things in this direction and see what works.
The reality of how aircraft projects and pretty much any engineering project really, is undertaken is currently so far from lending itself well to this type of thinking it's not funny.
Best that can be done is to chip away at little sub problems at a time tyring to improve things.
In terms of CAD data, there is a shared workspace amongst the different teams around the world. You can see what everyone else is up to.
The problem is that 90% of what goes into that design is not something that lends it self easily to an optimisation problem of any kind. At least not without gathering a ton of metrics that are currently in various documents from the 40s, people's heads and difficult to quantify metrics like what manufacturing options are currently available, what things people already have experience at etc etc.
A huge part of engineering is almost black magic. It's peoples experiences and judgements.
Also, many things are not done by analysis because we don't understand all the factors involved fully, they are done based on emperical evidence of what worked in the past. This emprical data is spread all over the place in tables and documents or just some old timers brain.
Reducing much of it to an optimisation problem is an enormously difficult task.
Then there is the analysis side of things. This is where it could be more akin to programming and could be "solved" potentially.
However, the current processes involved in doing engineering analysis makes life difficult. Basically, hundreds or even thousands of engineers produce mountains of Excel spreadsheets, words docs, text files of data and hundreds of other formats that all relate to one another somehow to tell a story of whether the aircraft is safe to fly or not.
This is far from computer code where the variables all neatly reference one another and a computer can understand it. Picking through it and figuring out how the numbers in one file match the numbers in another is a nightmare at times. I do not envy the senior engineers that have to check it and sign their name on it to say it is correct.
As you say, if everyone was working in a common IDE to do this and forcing things to have relationships the world would be a much better place for engineers. The mountain that has to be climbed to get there in the aerospace industry is enormous however.
So that I don't sound like a complete skeptic though, there is hope!
On the design side, things are most simple early on in a project where people are working on the early conceptual designs. This is were the problems are simple enough that things can be solved. It's once the conceptual design is thrown out to the large engineering departments to fill in the millions of details that the trouble begins.
And on the analysis side, the world is moving toward more and more finite element analysis. This is basically the brute force approach to analysing a structure. This is where it is in machine readable form and optimisation is possible. However, the answers the computer gives you are always layered and compromised from the engineers looking over them and having to turn them into something that's actually practical, can be built and takes into account the many requirements the computer does not know about.
I agree almost 100% with what you're saying. I'll just add 2 comments:
1) Regarding the fact that at any given time, there is knowledge that people have that hasn't been encoded in a form usable by the optimizer: I think this can be addressed by generating a set of decent designs with machine learning (on the pareto front, if you will) and then providing user interface tools to allow the humans to pick the designs that best handle the knowledge that wasn't optimized against. These user interfaces will often have to be quite elaborate but that's a tractable problem.
2) When working with Genetic Algorithms, and any machine learning technology, really, my experience has been that the first results only show what is wrong with the problem setup. The designs that are returned by a genetic algorithm are invariably nonsense at first and the then it's a matter of playing whack-a-mole as the optimizer exploits inaccuracies in the problem statement, a fix is made, a new exploit is found, repeat. This is often viewed as a deficiency of genetic algorithms but in my opinion the fact that the metrics being used can be gamed is valuable information that needs to be addressed as early as possible.
Finally, I understand my original comment came across as somewhat naive. If we ever get to a point where we can design physical products, I am imagining starting with something along the lines of a mechanical pocket watch, or maybe a nice desk chair. Airplanes are gonna be last.
Oh absolutely, if the problem is simple enough it's definately possible :)
Even in aerospace finite element optimisation techniques have led to some very effecient structures.
The problem is when you pass the limits of what is manufacturable and have to start breaking it up into simpler pieces joined together based on time, budget, abilities, what you know will work etc.
Also when you have to meet hundreds of requirements like having to fit lots of systems that people haven't designed yet and don't fully know what they'll need yet. It's the problem of compounding unknowns etc.
Optimization research is most directly applicable. Genetic algorithms are probably the most widely known.
But in general, the problem involves doing pattern detection between possible designs and their quality metrics. When the whole thing is in software the designs can be verified ahead of time. For instance, you can create a language for designing airplane wings, and then the optimizer can generate potentially good designs, they can be verified to be manufacturable, and then they can be fed into a virtual wind tunnel to figure out if the design performs well. They can also be scored by things like weight and cost to manufacture. Let the optimizer iterate a few thousand times and you're really doing a machine learning problem where the blueprints and the quality metrics are the data set.
As someone who has worked on the 787 and other large aircraft programs as an engineer and whose job it was to automate as much of the process as possible, I admire your line of thinking but I'm afraid reality is very different to what you have in mind.
If aircraft were machined out of a single block of material into an ideal structure and didn't have a million systems on board, designed by thousands of people trying to cooperate together best they can, you might have a chance.
GAs etc, are useful for small tasks here and there, but at the end of the day how the aircraft gets made and what goes wrong comes down to politics, people, communication, arcane processes and documents, money, time, regulations, rules of thumb etc etc etc
you didn't get the article. What you're saying requires [necessarily] common "virtual design studio" and/or at least very good communication channels between different participants. The article clearly mention that some subcontractors even didn't have their own engineering department. Be the task contained inside Boeing - there would at least be some "common workspace", though i'm not necessarily saying that it would be sufficient condition.
You're a technologist, so you see the solution to all problems as technology.
But the problem also could have been solved with good management and communication. Give employees the power to communicate and raise issues/questions.
Many of the problems such as parts that don't fit and supply chain problems could be solved by current machine learning techniques. Too bad Google and Facebook hire all those people and sets them to work optimizing ad placement.