How risky is free software?

Here’s the dirty little secret about B2B software: 

It’s not about the money. 

It’s about the risk. 

I tell my customers that if they can find a free generic horizontal piece of software that provides them value without risk, then by all means, use it. 

Then I ask them to consider questions like these:

- Is the website up? 

- Is the fulfillment system up? 

- Is the phone system up? 

- Did we get that order? 

- Did that order ship? 

- Did the customer pay? 

- Did the bank get the money? 

- Did the material get received? 

- Did we make payroll? 

- Did we get the best price? 

- Where are our revenues below plan? 

- Where are our margins below plan? 

- What are our numbers for the day? Week? Month? Quarter? 

Then the killer question: “If we don’t know the answer to any of the above because of our free software then who are you going to call?” 

If you have a good answer to that question, then you may want to consider a free software alternative. Otherwise, paying for legitimate software and support is simply the price of doing business. The risk to your business and its stakeholders is simply not worth the couple of bucks saved on free software. 

Do bosses lie?

Just a little personal experience:

 BOSS: "There will NOT be a layoff." 

REALITY: There was a layoff.

 BOSS: "There will be no more layoffs." 

REALITY: There were more layoffs.

 BOSS: "This will be the last layoff." 

REALITY: There were more layoffs.

 BOSS: "I will be the next person laid off." 

REALITY: He wasn't. Someone else was.

 BOSS: "I am instituting 35 hrs. pay for 40 hrs. work." 

REALITY: It lasted one pay period before the layoff.

 BOSS: "The corporate jet will be the next thing to go." 

REALITY: The corporate jet was still in place after the layoff.

 BOSS: "Customer XYZ will pay their bill next week." 

REALITY: Customer XYZ never paid their bill. Layoff instead.

 BOSS: "Finish this project and we're in the clear." 

REALITY: The project was finished. Then came the layoff.

 BOSS: "Indispensable employees will be spared." 

REALITY: No one was indispensable.

 BOSS: "We made our numbers. We'll be OK." 

REALITY: The SEC and IRS disagreed. We went out of business.

 BOSS: "U.S. manufacturing is solid and protected." 

REALITY: 400 jobs shipped to Haiti within 90 days.

 BOSS: "A layoff will be the last resort." 

REALITY: Layoff + executive auto leases still in place.

 BOSS: "I will promote you next week." 

REALITY: The company newsletter reported his girlfriend getting my job.

 BOSS: "Just help me get through this and I will reward you." 

REALITY: I helped him get through it. He didn't reward me. 

Sorry to say, moral of the story:

Q: How can you tell if the boss is lying? 

A: His mouth is moving. 

Why is SQL so important in enterprises?

Try designing an enterprise production/distribution system where:

- set-ups must be minimized 

- backlog must be minimized 

- inventory must be minimized 

- trucks must be full 

- warehouse space is limited 

- deliveries must be on time, but not too early 

- sales people must have stock on hand 

- plant absorption must be maximized 

- bills must be paid on time 

- down time must be zero 

- working capital must be put to the best use 

- stockholders must be satisfied 

Say what you want about enterprise programmers, but they get stuff built that handles all of these while academicians screw around with linear algebra and OO castles for years. 

What questions would you ask a new boss?

1. Do you enforce policies uniformly? Allowing some customers to bypass channels may seem helpful, but once everyone becomes special, no one is special.

2. Do you set priorities and avoid changing them? Nothing ruins morale like the emergency du jour. 

3. Do you stick up for your programmers? Blaming them for your problems is an awfully quick way to lose them. 

4. Are you consistent? If you tell customers one thing and programmers another, eventually they will all realize that you’re the problem. 

5. Do you understand the customers’ business well enough to set priorities? No one wants to work on Important Problem #42 when we’re going out of business. 

6. Do all policies and procedures take into account the importance of production and dev environments, security and audit controls, quality, and testing? Programmers shouldn’t have to educate you why this stuff is important. 

7. Are you willing to do what you ask programmers to do? Working late is fine until you do it 18 nights in a row while the boss is at the bar across the street. 

8. How good is your BS filter? Decisions made based on bad data will come back to haunt us all. 

9. How “professional” are you? No matter how tough things get, most programmers don’t want to hear your scream, cuss, or throw things around. Better to just leave and let us fix it. 

10. Do you buy us lunch once in a while? Amazing how much harder we’ll work for a sandwich and a smile. 

Have you ever been a hero at work?

Many times. A few of my favorites: 

- 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. 

- We budgeted over $1 million for a new ERP system to “solve all of our problems”. I helped others solve most of their problems by identifying them and coming up with solutions from the existing software. We never did buy new software. 

- (My favorite). Our HCFA feed from the U.S. Government was broken and no one knew why. I dug in and changed 1 byte of code (1 byte, not 1 line). The next day, our bank account had $6.5 million more in it. I never had the heart to tell them how easy it was to fix.

Why do enterprises stifle creativity?

Just a few enterprise axioms:

- Stuff must work consistently, regardless of who works there. 

- All data and programs must satisfy corporate audit requirements. 

- All data and programs must be backed up and restorable. 

- All technology must be supported, no matter what. 

I’ve seen all kinds of creative solutions to enterprise problems that didn’t satisfy these axioms. And you know what happens? Something goes wrong and no one knows what to do. 

That server under Joe’s desk with those cool spreadsheets just crashed and no one ever backed it up. The nifty little Ruby app that Sue put together; she’s gone and no one else knows Ruby. The open source web server just crashed and no one is to blame because there is no vendor to blame. The nine new kinds of smart phones that different sales guys like but no one knows how to support. 

It goes on and on. Creative people get creative. Cool solutions help. Until they don’t help anymore. Because the costs suddenly outweigh the benefits. 

And one more dirty little enterprise secret than many creative people overlook: you can solve most problems with many different tools. Sure the old tools may not be as fun, but they can still get the job done at a lower cost. 

In an ideal world, we’d get to work will cool stuff AND help the enterprise at the same time. But if the trade-off is our intellectual gratification vs. the enterprise’s profits, the enterprise will win every time; count on it. 

What do enterprise people need to know?

Trivial example of what people need to know in enterprises: 

“Tell me whether pet rocks are selling better than Barbie dolls in the south?” 

What people really need to know: 

I already know from existing reporting that 984 orders (18% of our backlog) are already past due. For those 984 orders:

- How many are for one item and how many are for multiples? 

- Do we own what we owe those customers? 

- If we do own it, is it in the proper warehouse? 

- If it is in the proper warehouse, can we find it? 

- If we can find it, is it undamaged and certified? 

- If it's shippable, do we have enough labor to ship it? 

- If it isn't certified, how soon can QA certify it? 

- If it isn't in the right warehouse, can we move it? 

- If we don't own any, where can we get some? 

- Which vendors have it on the shelf? 

- Which vendors do we have blanket purchase orders with? 

- Which vendors do we have contracts with? 

- Which orders can be split to satisfy a partial? 

- Which orders are for customers already on credit hold? 

- Which customers are threatening not to renew with us? 

and (ironically) the most asked question of all: 

- Which orders must be shipped to hit our quarterly numbers? 

I can go on and on; this is just off the top of my head. We like to pick on enterprises, but this is the stuff that happens all the time. So whenever you get gas in your car, bread on your table, new shoes at the mall, steamed milk in your latte, etc., rest assured that “someone”, “somewhere” has asked these questions. Questions that were probably answered using some form of RDBMS, SQL, ACID technology (with really good application software on top of it). 

How should layoffs be handled?

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. 

4. Find a way for people to keep their health insurance. 

5. Offer severance whenever possible.

As uncomfortable as a layoff can be, it’s also an opportunity to show how well you can do the tough stuff. 

People will be watching and remembering; count on it. 

Why do excellent programmers leave enterprises?

There’s an elephant in the room: your best people leave because you’re not paying them enough. 

And you’re not paying them enough because you’ve chosen to adopt a pay structure that, by definition, cannot handle outliers (which are exactly what your best people are). 

An excellent programmer can routinely do the work of ten mediocre programmers. Have you ever heard of a pay scale that pays Programmer III ten times as much as Programmer I? 

An excellent programmer can save you millions of dollars by increasing revenues, reducing costs, changing the way you do business, or any combination of these. How much of those millions does the programmer get?

An excellent programmer can provide a company significantly more value than his boss and his boss’s boss. 

How much more does he get paid? 

An excellent programmer can earn real equity and merit bonuses in enlightened firms. How many companies don’t even have this on their HR radar?

An excellent programmer can go out and pound the pavement or join a start-up and earn what he/she is really worth. And until most companies provide that same opportunities, they probably will.


Willie Sutton would be an Enterprise Programmer

Enterprise software sucks. 

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. 

And all of this needs software. And most of what they have sucks. I mean really sucks. Enterprise software is so bad that there are multi-billion dollar industries devoted to consulting on how to use it, how to share it, and how to store it in data warehouses and harvest it. It’s so bad that lots of people have to dump the data out of their enterprise systems and into Microsoft Excel just to get anything done. 

When Willie Sutton was asked why he robbed banks, he said because that’s where the money is. 

What banks were in the 1930’s, enterprise IT is in the 21st century.