Before we start programming, there is just a blank page. Because of the words, phrases, numbers, and language we put on that page, something new is born. It can be as simple as a plain page with a nice design or as complex as an algorithm to decide what your next suggested video on Youtube should be. With a few keystrokes, a beautiful application can be born - and with the same keystrokes, the most thoughtful piece of code can now become bug riddled, error prone, and nearly useless.
This is the world I grew up in. This is the world I live in now.
Ok, glamor aside, it follows the whole 80/20 rule. 80% of what I do is unique, has never been done before in that manner. 20% is shared, copied and pre-built. So, you can say that, for the most part, I create unique things.
Before I go on, let me make sure to say that I have the utmost respect for manufacturing. So many of the luxuries I take for granted are impossible without the manufacturing behind them. This is not a disposition about better/worse, it’s a comparison.
I have had a chance to work with some people who manufacture physical objects lately. The way they view the business world is somewhat inverse of mine. (Of course, this is just a generality) somewhere around 80% of the needed parts and solutions have been made. The 20% where they add value is the assembling of these pieces of pre-built material together in new and different ways. Think about it this way: a screw, a bolt, a metal bracket, all of these things have already been made. You just go order/buy them. It’s the combination of how they interact and are assembled which makes the product unique and whole. So 80% of the product is already made.
One of the struggles I’ve ran into working with people with a manufacturing background comes from these two different root working mindsets. I ask many questions and request even the most ‘basic’ things to be defined for me. Let me put it another way: I expect to be told what material for the bolt, what type of thread, what head configuration, what length, etc, because it is not pre-built in my world. On the flip side, there are a known and common set of bolts in manufacturing. It seems ludicrous to ask so many questions when you should just be able to pick the best bolt for the job from the collection of standard bolts.
Sometimes, the assumption is made that there is just a collection of things in programming that can be pieced together - and like I said, 20% of the time there is - but, it’s not this way for 80% of it. One must be detailed when they ask for a programming solution.
I’m encouraged by the popularity of 3D printing lately, though. This really is a new way of manufacturing that aligns quite nicely with programming. Instead of assembling some pieces in an creative way, the manufacturer is literally being presented with a blank slate. They must define the specifics of everything they want, in detail, down to the last millimeter. This is very akin to the detail that we’ve needed all along in programming.
I think we’ll see that as more manufactures adopt the 3D printing model, they’ll be more likely to understand the intricacies of programming requirements and draw some parallels. In the mean time, since 3D printing is making an actual item (and not just electronic output), even the knowledge of this process should help programmers help bridge the gap.
Return to All Posts