The New EA Paradigm (2) The Make-to-Order Pattern
Let's return to the Toyota illustration I introduced last time. I want to develop a pattern, a Strategy Pattern, for you. I am sure it is a universal pattern. I use Manufacturing (tangible products) because these are easier to conceptualize than intangible products like services, but I am sure this is a universal pattern. We live in buildings, fly in airplanes, ride in automobiles, and type or touch computers. They represent the reality around us that we can physically sense and easily conceptualize.
When a new industry starts out, they tend to start out with a 'Make-to-Order' strategy … because it is the easiest, cheapest, and fastest way to get into business. You don't need a plant. You don't need raw material. You don't need employees. You don't need money. All you need is an office with a sign in front that says "Open for Business" and you wait for a customer to walk in the door.
The customer walks in the door and says, "Orville, I need an airplane." Orville says, "What kind of an airplane do you have in mind?" The customer says, "Well, I want to dust some crops." Orville says, "Okay, we'll build a Crop-Duster for you."
Now that Orville has an order, he has to get an Engineer to design a Crop-Duster. After he gets the Crop-Duster designed, he has to get a Manufacturing Engineer to figure out how to build it. After he figures out how to build it, now he has to get a plant, some raw material, some machine tools, some employees, some money, and then he builds the airplane. The end result is a custom product, custom to the specifications of the order. It all starts out with, "Tell me what you want the thing to do."
The strategy is 'Make-to-Order' — a classic manufacturing Job Shop, a custom house that produces one-of-a-kind, custom products. The management control system is order-driven: cost against the order; schedule against the order; single-use engineering; project-managed, expense-based business.
The operational characteristics of a 'Job Shop' are:
Long lead time — From the time you get the order until you produce the product is measured in years, not days … especially if you are talking about complex engineering products. You want a Boeing 747? … that will be a decade!
High per-unit product cost — One product bears the total weight of the engineering, manufacturing engineering, production, tooling, testing … custom products are expensive.
No product flexibility — Once you get the product built, it will only do whatever you designed it to do. If you build a crop-duster, it will dust crops. It won't carry passengers; it won't carry mail … it won't go into orbit. It will dust crops.
Low reliability/availability — You have a customer that has a whole fleet of your airplanes; they are all airplanes … but they are custom airplanes. The Crop-Duster is down … that is the one they want tomorrow morning. The Mail-Carrier is up … that's the one they don't want tomorrow morning. But, you can't take a part off of the Mail-Carrier to put it on the Crop-Duster to make the Crop-Duster work because there is no parts interchangeability. You customized the parts (material) to the functionality of the products. You can't take a part off of one product and put it on a different product. Low reliability/availability.
High maintenance costs — If you break a part on a custom product, you can't go to a generic parts store and get a replacement part. You have only one place to go … original manufacturer. You say, "Hey, I have this broken part!" The manufacturer says, "Gee, I never thought that part would ever break. Let me see if I have any diagram that shows me how I built that part … oops! I don't have any diagrams. That takes time and costs money you know! Let me get my micrometers out here and measure this thing … tell me what this thing does again?" It's expensive … you are starting with a blank sheet of paper for a replacement part … actually, it's worse. You are starting with a broken part and have to reverse engineer the sheet of paper.
They all start out this way. For example, how does Data Processing work? Think about it. It wasn't that many years ago that we actually had a sign on the computer room door that said: "Open Fridays, 9AM to 5 PM to Accept Orders for New Applications." (Or something like that.)
Incidentally, we changed the name a number of times over the years … at first, we were called Automated Data Processing (ADP) or Electronic Data Processing (EDP). Then we changed it to Data Processing (DP), to Management Information Systems (MIS), to Information Systems (IS), then sometimes to Information Management (IM), then to Information Technology (IT). We changed the name on the door a bunch of times but nothing changed behind the door … it has always been: d a t a … p r o c e s s i n g.
Anyway, a user would walk up to the door and say, "I need a new application." DP would say, "What kind of an application do you have in mind?" They would say, "I want to cut some payroll checks." … "Okay, we'll build you a payroll system."
Once they get the order, then they have to get an Analyst (engineer) to design the payroll system. After they get it designed, they have to get a Programmer (manufacturing engineer) to figure out how to build it … then they need a plant (a computer room), some machine tools (computers), some raw material (data), some employees (operators), some money … and they build a payroll system.
The end result is a custom system, custom to the specifications of the order. It all starts out with, "Tell me what you want the thing to do."
The strategy is 'Make-to-Order' — a classic manufacturing Job Shop, a custom house that produces one-of-a-kind, custom products. The management control system is order-driven: cost against the order (project); schedule against the order (project); single-use engineering; project-managed, expense-based business.
The operational characteristics are:
Long lead time — From the time you get the order for the new application until you deliver something useful, you measure it in years … not days, especially if you are talking about a complex engineering system. You want an Enterprise Resource Planning system? … that will be about a decade.
High per-unit product cost — Those custom applications are expensive. One application bears the total weight of the systems analysis and design (the engineering), the programming (the manufacturing engineering), the tooling, testing, production conversion, operations — all borne by a single system … expensive.
No product flexibility — Once you get the system built, it will only do what you designed it to do. It will cut payroll checks. It won't keep accounts against a ledger. It won't give you management information … it will cut payroll checks.
Low reliability/availability — You have a customer (the Enterprise) who has a whole fleet of your systems (an application portfolio), but they are all custom applications. One application is down, the payroll system … that's the one they need tomorrow morning. The general ledger system is up, but that is the one they don't need tomorrow morning. But, you can't take a data element off of the general ledger system and put it on the payroll system to make the payroll system work because there is no data reusability. You customized the data to the functionality of the application. Low reliability/availability.
High maintenance costs — You break a data element on one of those systems … you can't go down to a generic data element store and get a replacement data element. You have one place to go … original manufacturer … Data Processing. "Hey … I have this broken data element 'yy/mm/dd' (or something). Data Processing says, "Gee … I never thought that data element would ever break! Let me see if I have a model that shows me how I built that data element. Oops! I don't have any models … that takes time and costs money you know … analysis-paralysis. Pull up a chair. Let me get my micrometers out … tell me what this data element does." It's expensive … you are starting with a blank sheet of paper for a broken data element … it's actually worse; you are starting with a broken data element and reverse engineering the model. It's expensive.
Next time I will develop a pattern, the Strategy Pattern 'Provide-from-Stock', for you.
This article can also be viewed on John's blog — presented here, with permission.
# # #