We don't talk about it much, but think about it. Every man-made object you encounter every day was manufactured somewhere. And moved, more than once. Now add in all the sales, marketing, customer service, operations, accounting, finance, human resources, etc., needed to support that manufacturing and distribution. Next, add financial markets, healthcare, energy, entertainment, etc., and you have tons of stuff.
But you don't see it and rarely think about it. Kinda like most of the iceberg being underwater.
Yesterday I was up to my earlobes implementing a business intelligence/data warehouse system in a very large SOX-compliant enterprise :-).
For current requirements, this solution is excellent. It is third party software, installed on top of an existing ERP system, that enables the users to extract whatever data they need and build their own reports without submitting a ticket to IT. Everyone loves the prototypes and is dreaming about the possibilities.
So instead of beating up on enterprise life, let me just share a little bit of yesterday, one typical enterprise day:
In enterprise IT, we have 2 kinds of vendors, those we actively embrace and those who hold us hostage.
The biggest fear in making any major I.T. purchase is not the price, the conversion, or the change in culture; it's the potential loss of options in how we run our own business.
I've seen it over and over again: competitive pressure requires us to make a change in the way we run our business, but we can't. For all kinds of reasons. The license agreement kills any possible ROI. We don't have the needed IT support because so much of it is spent on keeping current. The systems don't talk to each other. The feature we need is still 18 months away. And probably most of all, the software is not as excellent as we need it to be (let's just leave it at that).
I have always spent a lot of my time in small or midsize companies (10 to 200 employees), and I can assure you the answer is ABSOLUTELY.
These are hardworking people who are in a different world than most of us. They don't Facebook, twitter, or IM at work. But they are unbelievably busy trying to get things done while depending upon software and systems that most of us here would laugh at.
1. Help each laid off employee land on their feet, whatever that means for them. This must NOT be lip service, but a legitimate effort. Hire an outsourcing firm, provide resume/career counseling, provide reference letters, or find job opportunities with vendors, customers, or industry contacts.
2. Make a clean transition. Give laid off people an opportunity to share what they were working on and debrief others. Even though they are leaving, many people value the work they have done and want to know that it's in good hands. If you don't do this, you might as well be saying, "We can figure out what you were working on without you." Nothing else you say or do will offset the damage this will do.
3. Find a way whenever possible for people to keep contributing as contractors or part-time employees.
I just converted a client OFF of a major enterprise package to something 20 years OLDER and much easier to use. I was surprised to see how difficult it was to use and how poorly it was designed.
Examples: Even though it maintains 160 columns for each Order Header, "Time Entered" is not one of them. So go ahead and try to schedule a call center with no Time Of Day history. To review a single customer's history (and presumably answer their questions while they're on the phone), you have to open up 6 different windows!
My general suggestion: Write a "Test Drive" based explicitly upon your client's business. Have them enter an order and take it through every stage of its life (reserve or commit inventory, print, pick, ship, confirm, bill, collect, post, etc.) The test drive should also hit every function needed to do this, setup a customer, SKU, GL Chart of Accounts, etc. Then have the appropriate person working for your client do their job on that system.
- We upgraded our hardware and our forecasting software vendor wanted a one-time $250,000 charge. I convinced my boss to replace them with in-house written software. Took 6 weeks to write.
- Our 400 worker factory was $30,000 under-absorbed per month. I wrote both standard costing and data collection software. Supervisors compared the standards to the actuals to discover where they were losing money. We were over-absorbed by $30,000 per month 6 months later.
The original acronym was MRP, Material Requirements Planning, a perfect candidate for business software. It answered the question, "If I need to deliver 9 helicopters on these 9 dates, then what components will I need on which dates?" Believe it or not, this was all hand calculated at one time.
MRP was very complex and difficult to implement because it required absolute precision and discipline, rare back then and still rare today. If your base data (inventory balances, lead times, quantities per, etc.) were the least bit off, the resulting automated explosions would be way off. So an industry of software vendors and consultants was born to attack all of these issues.
I remember leading the test drive of a popular ERP system for one of my enterprise clients. The salesman had never had a prospect force him into a "test drive". My number one rule was "Nobody touches the keyboard except me."
As I entered an order, I asked, "How do I find my Customer Number?"
As I entered a part number, I asked, "How do I see how many are in stock?"
I know lots of online retailing millionaires. Is it easy? No. Is competition fierce? Of course. Are margins slim? Usually. But if you have passion for an idea, a market, a good plan, and are willing to work your butt off, then there are fantastic opportunities.
(Aside: You won't get a whole lot of response from people making their fortunes in on-line retailing in December - many of them are working 20 hour days this month.)
I have often thought about starting something, but I'd rather hack. (I think that anyone can retail, but few can hack - I'm not so sure how empowering this thinking is.)
I remember a project I worked on in a large enterprise years ago. All of their systems, believe it or not, were batch. Inventory, accounting, order processing - all data was entered into hold files, or worse, filled out with pencil and paper and turned into keypunch. All databases were updated in a large batch overnight. (Today, it's hard to believe anyone ever did that.)
Our project was to migrate all apps to a new real time package. They spent millions of dollars and when it was all done, the controller complained, "Who decided that we needed real time Accounts Payable? Why would we ever want to pay our bills "faster"?"
No one had ever asked that question before. No one even thought about it. We had spent $1 million on a module nobody wanted because IT decided it. Eventually he added procedures to continue to fill out all accounts payable transactions with pencil and paper and enter them into the on-line system at the end of the day. What a waste.
A customer recently asked me to look into a program that used to run in 5 minutes but now took 1 to 4 hours. It's used by thousands of people all over the world all day long.
It iterated through an array doing 3 SQL SELECTs against non-indexed files for each element. There used to be about 50 elements in the array; now there were more than 5000. I rewrote the whole thing in one day to do a total of 4 SELECTs and run in 12 seconds.
But it took 6 days to get through QA (while the users continued to suffer). QA's biggest complaint? I indented 4 spaces instead of the (unpublished) standard of 5 spaces.
Being told "how" instead of "what". Use this API to access that database to do this process. Don't tell me how to do something. Tell me what you want. Let me figure out how. That's my job.
Being told "what" instead of "why". So you need a 4 GB csv download of the entire database every day at noon? Why? Oh, in that case, why don't you just use which has been right at your fingertips all along. If you don't understand the system, ask and I'll be glad to help. But don't make up unnecessary work for me.
Being asked for data to put into your Excel spreadsheet which you will screw up 8 minutes later. Then you want me to fix it. Forget it. If you have a business problem, tell me about it. We will find a solution together.
A local Sporting Goods retailer that had just acquired a Baseball competitor. Their ecommerce system had a clever database structure to make ordering easy from either the website or the call center. For any given Product, there could be hundreds of Stock Keeping Units (SKUs) based on Sport, Size, Color, Number, or other attribute. The database was easy to use but difficult to load.
Jim was brought in to build a one-time application that would build all the data base records needed from Excel spreadsheets from the old system. In addition, every SKU in the system had to be "smart"; that is, anyone can tell everything needed to know just from looking at the SKU. For example, a Wilson A2000 medium left handed female softball catcher's mitt might be: WIL-A2000-M-LFSC-01.
Jim wrote the application to build and load all the SKUs, Sales Orders, Work Orders, Inventory Locations, Boxes, Bins, history, and supporting indexes. He had 10 users log in to the new fulfillment system and update all the activity not on an Excel spreadsheet. This took 2 days.