Why would you not launch?

0. You’re truly not ready. 

A recurring meme is the equivalent of “Just Do It”. Excellent advice, almost all the time. Almost. Except when it’s terrible advice. 

Yes, as someone who has suffered after launching too soon, I will go against prevailing wisdom and suggest the unthinkable, “Maybe you’re really not ready and can do more harm than good by launching prematurely.” 

Just a few of the bad things that can happen: 

1. People will visit once, see that it’s crap and never come back again, no matter what you do. 

2. You will be overwhelmed by support requirements to the extent that all development stops. 

3. You will be overwhelmed by support requirements to the extent that much support never gets addressed. 

4. Your calendar becomes science fiction; everything has changed and it’s a whole new ballgame. 

5. The stress level will become so overwhelming for some of your people that you will simply lose them. Forever. 

6. If you have taken people’s money and not delivered, the guilt can become so overwhelming that it cripples you. 

7. Your marathon has turned into a sprint you cannot finish. You have launched and lost. I love the idea of pushing the envelope and launching sooner rather than later. You must have real world feedback and launching is best way to get it. But launching too early early is just as bad as launching too late. So how do you know when the time is right? I don’t have a definitive answer, but I do know that your gut is a critical input. Sooner or later, you just have to go with it. 


What should I do in college?

Take science to discover something you're good at.

Take humanities to discover something you may love.

Take at least one art or music class.

Take at least one advanced math class.

Join a fraternity.

Learn how to play bridge (and play all night sometime).

Learn how to play foosball.

Get drunk.

Learn how to play foosball while drunk.

Play an intramural team sport.

Get a part time job.

Eat something you never tried before at least once/month.

Do original research.

Take a class you think you'll hate pass/fail.

Do 5 minutes at a comedy club on open mike night.

Hang out with a professor you like.

Do a web start-up on the side.

Make a few friends for life.

Go to at least one party each week.

Pick a major you love whether it makes career sense or not.

Get someone who has written one of your text books to sign it.

Blog about your college experience.

Go to Europe with nothing but a backpack for a month or two.

Enter a college talent show.

Meet as many interesting (and boring) people as you can.

Read good books.

Go without shoes for a week just for the hell of it.

Get laid.

Graduate.

If you don’t go to college, exactly when do you expect to do all of this?


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.

How can clever software help customers?

Just a few off the top of my head: 

1. As part of the research for requirements for a new inventory package, I noticed that every pallet was counted by 3 different people and the lowest count was recorded. I worked with plant supervisors to fix the procedures. Management then realized that there was now no need for new million dollar software. They rewarded my effort and concern for the company with lots of great project work and money. Lesson: Look for the obvious first. 

2. A user asked me to help solve her forecasting problem. The two of us sat down and designed the software to do it. I realized there was a parallel effort to do the same thing in another division (with an expensive purchased package), so I made my software work for both divisions. It took 3 weeks to write and people were very grateful. I was employee of the month and got a nice bonus. Lesson: Sometimes little things can solve big problems. 

3. I noticed that warehouse pickers were bending and climbing ladders a lot, so I suggested modifying our inventory system to place the most popular items in bins between the knees and shoulders. The change took one week and made us 10% more efficient (a lot of money after a few months). I would have never thought of it if I hadn’t been walking around, trying to understand how my software was being used. Lesson: Give yourself the chance to find opportunities.

“Did you build anything that you later spun off into a better job or a side business?” 

Yes. Everything I learned using these methods went into 2 businesses: a small business software package and a consulting practice. If I hadn’t stretched myself, who knows what cubicle I’d be sitting in today. 

How do I rise out of the ordinary?

I have been in your situation many times and have felt the same way; welcome to the rest of the world.

Face it, those of us who are uncomfortable with the status quo and want more than the masses are outliers.
 
This is a good thing! Here’s what has worked for me…

Rising out of the ordinary and getting ahead is all about “demand”, not “supply”.

Supply: You can read all the blogs you want, read technical books, and study new languages and so what? You are supplying yourself with things that may or may not make any difference and no one else cares.

Demand: Find out what needs are not being met at your company. You can easily do this all the time without even being noticed, “under the radar” as they say. (You don’t have to go to your boss looking for something.) They are desperate needs not being met everywhere; all you have to do is look. It may be a user, a customer, a way of doing business. Then fill that need. It’s that simple. You will force yourself to learn whatever you have to to get that job done. Then do it again. And again. Before you know it, people will automatically know to come to you when nothing else works.

Business is about getting things done. Learn how to do that whether it’s officially sanctioned or not. You will quickly rise above the masses and your life will never be the same.

A few notes:

1. Most people won’t even realize what you’re doing. For those that do, most will approve. For those that don’t approve, ignore them.

2. With this approach, you will optimize your learning. You will learn what is needed, not what you think is cool.

3. You will become much more valuable for two reasons: you’ll expand your skill set and you will convert yourself from a doer to an achiever. The difference is subtle but huge.


How to Write a Cover Letter

1. Write like you speak, as if told over coffee or beer. 

2. Informal, but not too casual. 

3. Right to the point; the first sentence is your summary. 

4. No bullshit, you’ll go straight to the garbage. 

5. If it sounds like bullshit, it is. 

6. Short. One minute good. Thirty seconds better. 

7. Tightly targeted! It’s about them as much as you.

8. Perfict speling and grammer. 

9. Highlight what’s important to them. (Do your homework.) 

10. Enthusiastic without sounding phony. 

11. Have friends read it. Get feedback. 

12. Does it sound like a good quick description of you? 

13. Have at least one differentiator. What makes you so special? 

14. Strong finish with a call to action.

How do you tell your story?

“It took me five years to figure out (a) I needed a story and (b) what the story was. It’s hard. But one story beats a pile of AdWords A/B tests.” 

I have found that there are 2 kinds of stories: classes and instances…

Class: “X can solve problem Y using our product.” 

Instances:

“Acme saved $30,000 per month by figuring out how to better load their trucks using our optimization software.” 

“The Smith family had their first ever reunion when John and Linda Smith realized how easy our family organizing software was.” 

“Jones Gifts doubled their sales in 3 months using our bolt-on e-commerce solution.” 

The class is good. The instance is better. People love stories and the instance is a real story, while the class is the framework for a potential story. The class is a commercial; the instance is a testimonial. Also, an example cuts through all the clutter right to the reader’s reptilian brain. Naturally, the closer the instance is to the reader’s situation, the better. OP’s story was a class. I would have loved to hear a few instances of that class: some real stories about people who got real benefit from his product. People naturally want to know about other people. 

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. 

Why should you fire bad customers?

Wanting it fast, good, and cheap is also a red flag for lots of other little bonuses, such as:


- You will constantly wait for them to make a decision. 

- It will be your fault they took so long to make a decision. 

- They will have emergencies of their own making. 

- It will be your fault they have emergencies. 

- They will commit to little or nothing on paper. 

- It's not their fault because they never committed to that. 

- You think you have specs; they think you're prototyping, so... 

- You will do much work 2 or 3 times. 

- They will constantly change priorities. 

- They will forget they changed priorities, so... 

- They will complain when a lower priority isn't done. 

- You won't get paid on time. 

- You will spend lots of time trying to get paid. 

- They will always find some excuse to not pay. 

- You may never get paid. 

- If it's good, it's because they thought of it. 

- If it's bad, it's because you suck. 

- You can't win. 


Honestly, I wish we could tattoo these people to save the next developer all the heartache. As soon as you realize they want it fast, good, and cheap, “run” the other way. 

What’s a minimalist coding style?

“A minimalist lifestyle does not make you a better person” 

But a minimalist coding style “does” make you a better programmer. 

I really don’t mind a few extra Philips screwdrivers, kitchen knives, or pairs of shoes in my house, but I every superfluous bit of code in my repository drives me nuts. 

Others say I go overboard and they’re probably right, but I can’t help myself. 

If a 6 character variable name can be shortened to 5 characters without losing meaning, then I do it. Same thing with labels and function names. If I find the same line of code twice, I write a function (but only after whipping myself). Complex If Statements are replaced by Case. Complex Case Statements are replaced by arrays and pointers. Two programs look alike? Replace them with one parameter-driven program. Two forms look alike? Replace them with a flexible form app. Reports? Same thing. 

Old data? Archived! Old programs? Archived! Old notes? Archived! And not one trip to Goodwill, just to my e: drive. I’m so proud of myself when I can fit the software needed to run a $100 million company on a 256K thumb drive.

There must be a 12 step program for people like me. But then, by the time I was done with it, it would be a 7 step program.