Offtopic: Total automation – the grand unified theory of manufacturing
In this post I’ll have not-so-coding-based-point-of-view.
I noticed this news about DARPA funding the development of factories that could first produce helicopters and then, after a mouse click, tanks. Nice idea, yeah, and so very very old.
First of all, we have already tried to do factories that are totally automated. They didn’t work. That’s probably why we have things called Lean and Toyota production system that do emphasize in some level of not making everything automatic but creating productivity through other means (and oh boy we have these!). Automation is the last resort, it is micro level optimization. In fact, I don’t think we should even talk about automatization with productivity. Automation has advantages that are far more better in things like: doing dangerous tasks, doing boring monotonous tasks which would be almost like an insult to put on a human and so on. Automation is the right tool (and sometimes the only tool) in some places but it really isn’t the thing when thinking factories and how they should work. If automation gets the main role… well, we are not there to produce quality stuff with efficiency anymore.
I’m not totally sure what the DARPA actually wants but I hope it isn’t automatic factory. That’s still a waste of money these days.
Most of the machines in factories can produce variable products if the technology and limitations of the machine can give in with the requirements. Nothing new there. But what I have learned is that starting a new factory or totally new production line, takes normally some time. Adaptation has to be done.
A machine does what it is programmed (or designed) to do. If the design allows variable things, so it is possible to do those variable things. But this doesn’t mean we actually do everything that is possible with the machine. Just like we don’t use every feature a computer can provide us. The thing defying what we actually do, is then the programming (or a user that can be like a miracle software if he is skilled :) ).
Programming is always done by people. Sure some programs can do a lot of things automatically but in reality there is always some part of pure human work what is absolutely needed. The programs are just as good as they have been made. And I still haven’t seen a perfect program that creates something real. On the contrary I have seen many programs that work well enough. (Most of the engineering is something that is “good enough” as we work with reality).
With reality, we do have the problem that we hardly ever know enough and then there is the question about money and costs. Machines get broken without further notice, no matter how good your advance maintenance plan is (someone might say that we just have bad quality maintenance plans which might be true but we either don’t know how to make them better as we lack a lot of knowledge in this planet or we just don’t have enough funds and time to make them perfect. Or both). Or would you actually claim that airplanes never have any problems? And they probably have the most well-made advance maintenance plans. (If planes would be built in same manner as elevators, they wouldn’t get into the air… that’s why maintenance and check-ups are crucially important).
And then we have people. People change jobs, get divorced, forget, are tired sometimes and so on. Humans aren’t perfect. They make mistakes. And learning takes time with them. If we have humans involved somewhere, it means having uncertainty factor there. Just like machines that may break down in some really mysterious ways.
And uncertainty factors don’t work well with anything automatic.
Let’s imagine that the factory could produce many different products. And that they have programs that are so near perfection that one could say there is absolute no flaws in them. What happens when a thunder storm fries some components? What happens when raw materials are actually flawed? What happens when a user accidentally clicks a wrong button? What happens when people are supposed to remember what to do with each of the millions of parts? How people can cope with so much information and so different products? (And now if someone says that we can have differently trained people in different shifts… well, go to a factory and see if that works in reality! People aren’t machines (or lines in Excel) and we shouldn’t treat them as they were).
Just imagine how much time and money goes into making anything even that close to a perfection... There probably are many ways to do same things a lot cheaper and faster if we make things a bit less complicated.
PS. If we already know that people make mistakes, is it relevant to accuse them of making mistakes?