What’s your greatest life lesson?

In the past year or two, I have learned my greatest life lesson. As a lifelong high achiever, it was extremely counter-intuitive yet it was right in front of me all along. First, a little background… 

In the past couple of years:

- My father died. 

- My aunt (and best friend) died. 

- My cousin (who was really like my brother) died. 

- My 19 year old cat died. 

- We had our first ever family reunion.

- My mother's dementia has turned her back into a child. 

Sure we all have great memories and are busy working at building even better futures, but ultimately it all boils down to: 

All we have is now. 

My pets have been trying to teach me this for years, if only I had listened. And now my mother is teaching me. They don’t really remember yesterday. They don’t care about tomorrow. But they really care about the moment. Intensely. 

I have had to really slow down and let this sink in. When I visit my mother in her nursing home, we have a great time laughing, talking, visiting others, and of course, playing Jeopardy. We can’t have the conversations we used to, so we just have new experiences, one time only, in the moment, and only for those who are there. We never talk about the past and she simply doesn’t understand, “I’ll see you tomorrow.” 

I haven’t stopped building my future, but I no longer sacrifice the present in order to get there. I have learned that the process must be as enjoyable as the outcome. After all, the process is “now” and the outcome is just an instant in time. 

It may sound cliche, but everyone should take inventory of all the good stuff in their lives (especially other people) and make the most of it “now”. You’ll be surprised how quickly it’ll be gone. Don’t wait half your life to learn my most valuable counter-intuitive lesson. 

The Disconnect Between Us and Them

I don’t know about the rest of the world, but lots of us sure are in a bubble. There seems to be a real disconnect between what people want to build/invest in and what people in the real world actually need and want to pay for. Just as sample of what I’ve witnessed in the past few years:

Ask HN: How do you like my file sharing app? 

Ask HN: How do you like my social app for niche ? 

Ask HN: How do you like my twitter app? 

Ask HN: How do you like my facebook app? 

Ask HN: How do you like my iphone app? 

Ask HN: How do you like my facebook app that writes twitter apps? 

Ask HN: How do you like my game? 

Ask HN: How do you like my photo sharing app? 

Ask HN: How do you like my video sharing app? 

Ask HN: How do I monetize my free flashcard app? 

Ask HN: How do you like my app that helps other hackers to do ? 

Ask HN: How do I get traffic to my freemium app? 

Ask HN: How do I get angels/VCs interested? 

Ask HN: Look what I wrote this weekend! 

Ask HN: Look what I wrote in one night! 

Ask HN: Look what I wrote in 7 seconds!

Customer 1: How can we sell through Amazon.com? 

Customer 2: How can we reduce inventory by $300 million? 

Customer 3: How can we increase conversion from 2% to 4%? 

Customer 4: How can we use software to reduce energy costs? 

Customer 5: How can we migrate one app into another? 

Customer 6: How can we get our phones to talk to our legacy apps? 

Customer 7: How can we take orders through the internet? 

Customer 8: How can we get our software package to do ? 

Customer 9: How can we reduce credit card fraud? 

Customer 10: How can we increase SEO effectiveness? 

Customer 11: How can we connect fulfillment and ecommerce? 

Customer 12: How can we increase revenue? 

Customers 13-200: How can we increase profitability? 

If Samuel L. Jackson were a Programmer

“The path of the righteous programmer is beset on all sides by the inequities of the clueless and the tyranny of evil project managers. Blessed is he, who in the name of achievement and solid technology, shepherds the users through the valley of ineptitude, for he is truly his customer’s keeper and the finder of lost solutions. And I will strike down upon thee with great vengeance and furious anger those who would attempt to deploy without testing. And you will know my name is zedshaw when I lay my software upon thee.” 

It Can’t Be Done

“And in my experience when enough people are saying that ‘you can’t do that’ there is an opportunity waiting for you that is proportional in pay-off to the number of people asserting that it can’t be done.” 

Great thought. 

Most of my most memorable successes were when others said that something couldn’t be done. First you think, “Why not?” Then you think, “What would it take?” Then you figure that you’ll never find out for sure unless you try. The reward is compounded by the initial skeptism. 

Just a few silly examples (any of these sound familiar?):

Manager: Shop Floor Control is impossible. 

Me: Why? 

Manager: Because the base data is so inaccurate. 

Me: So? 

Manager: It would take years to fix all the data. 

Me: What if we turned in on anyway? 

Manager: The output would be worthless. 

Me: Wouldn't it show where the base data was inaccurate? 

Manager: Yes. 

Me: Then you could fix the biggest culprits? 

Manager: I suppose. 

Me: So turning it on would expedite data fixing? 

Manager: Yes. 

Me: So it's not really impossible? 

Manager: Well...

Manager: Bug free software is impossible. 

Me: What would it take to make is possible? 

Manager: Nothing. Can't be done. 

Me: What if we added systems testing to unit testing? 

Me: And then built rigorous test plans covering almost everything? 

Me: And then enforced User Acceptance Testing? 

Me: And allowed nothing into production without passing? 

Me: Would it be better? 

Manager: Yes, but we can't afford to do all of that. 

Me: So, bug-free software isn't impossible, just expensive? 

Manager: No, it's impossible. Get back to work. 

Me: Sigh.

Manager: A web app is impossible. 

Me: Why? 

Manager: Because it depends upon data entered by regular people. 

Me: So? 

Manager: People are idiots. They enter wrong data all the time. 

Me: What if we trained them? 

Manager: Impossible. They don't work for us. 

Me: What if we made the software smarter? 

Manager: What do you mean? 

Me: Data validation. 

Me: Data reasonableness based upon rules or history. 

Me: Crowdsourcing data validation. 

Manager: The data would still be bad. 

Me: What would it take to make the data good? 

Manager: Nothing. Impossible. 

Me: Sigh. 

Why are some programmers so condescending?

Condescending feedback says more about the speaker than the listener. It is almost invariably about their own insecurity. This is true is almost all fields of endeavor, not just programming.
Just a few examples of my own:

Insecure bridge player: The queen of spades was a stupid play. What’s wrong with you?

Excellent bridge player: The queen of spades would have been a great play against a 4/2 split. But since you had a 3/3 split, what do you think would have happened if you had played the ace instead?

Insecure public speaker: You look like an idiot playing with your hands like that.

Excellent public speaker: You talked about a lot of cool things. I bet I would have been even more interested if I wasn’t distracted so much by your hand gestures.

Insecure parent: If you can’t keep that baby quiet, you should just stay at home!

Excellent parent: Here’s something that has really worked well for me when my kids cried in public…

Insecure programmer: How lame. I can’t believe you .

Excellent programmer: I see that works. I have found a few ways to make it work even better.
Let me know what you think.

Product/Market Strategies

Not so Good: Build it and they will come. 

Good: Make something people want. 

Better: Make something people need. 

Even better: Make something people need and know that they need. If they don’t already know, someone will have to help them know. That someone might be you and helping them will take sales and marketing, a significant consideration. 

Even better: Make something people need, know they need, and are willing to pay for now. Competing against “we’re not ready, maybe next year” is tougher that competing against any competitor. 

Best: Make something people need, know they need, are willing to pay for now, and has their hair on fire. 

Leapfrogging to “let’s just solve this problem now” is often the best (and most fun) way to deploy. 

[EDIT: This is “not” about “guessing what people need”, worrying about competition, or assuming “if I need it, others must too”. This is about getting up off your butt, talking to people, finding out what they must have, and building it for them. There are people everywhere desperate for solutions to their problems, and I promise you, they’re not finding them. Sure, you may scratch your own itch and hope that someone else needs it, but this is a lottery approach. Most start-ups fail because they built something no one else wanted or was willing to pay for. 

There is absolutely no better way to find out what to build than finding customers first. Please don’t be like me and learn that the hard way. There are great apps everywhere that nobody uses while people suffer because no one is building what they want.] 

Buying Cycles

“Six months later, things are still sounding great and not happening. What’s going on?” 

It could be that nothing unusual is going on. A six+ month buying cycle for anything over 4 figures is normal.

Whenever selling to an enterprise, you should ask your contact:

1. Who is the champion? 

2. Who is the decision maker? 

3. What is the process for each tier? 

4. What should we do the best ensure our mutual success? 

The only reason for surprises in the sales cycle is if you didn’t bother to ask. 

It someone sold a cure for cancer for $1000, everyone would buy it and the world would be healed.

If it cost $10,000, you’d probably have to await corporate paperwork and approval for 6 months and only then start implementation. 

The Introvert Factor

There’s one huge factor at work, for many programmers. I’m tempted to call it the “wimp factor”, but that’s too negative, so I’ll just call it the “introvert factor”. I’m a perfect example…

I was always small for my age and looked nerdy with my glasses and attraction to books, etc. I was always picked last for sports teams, drew little attention from girls, and was usually the first one to be bullied. It even happened in my own family, subconsciously I hope. It was always easier to pick on the little guy to get what
you want.

Fast forward to adulthood, and not much has changed, especially with bosses. It seems like my boss was always a sales/business guy, extroverted, and bigger than me. His/her natural reaction was to bully, probably because they knew they could get away with it. This was for almost everything: project management, discussions about work, and of course, money.

No more. I don’t know exactly when it happened, but I decided not to take it any more. The more anyone picked on me, the harder I shot back, right between the eyes. Nothing pisses me off more than being bullied, especially about money.

Do you need to “sprint” to get things done?

Whenever I read a post about the sprint to launch, I think 3 things:

1. Great determination, great work ethic, great job.
2. It doesn't have to be this way.
3. It shouldn't be this way.

I feel fortunate that my DNA is blessed with some sort of internal “governor”. I don’t know where it came from, but I’ve always had it. Here’s how it works: It stays out of the way when I am enthusiastic about something, allowing me work ridiculous hours and pursue almost anything that looks promising, whether it makes sense or not. But when I reach a certain point, it turns me off, completely. I don’t seem to have conscious judgement of what that point is or when I reach it, but when it happens, I know.

A few examples:

- I have worked many times without sleep, preparing for a launch. Sometimes, I know my judgement is failing and continuing would cause more problems in the long run. So I stopped and apologize to everyone. I went to sleep and informed everyone that the project would resume at x. I’m not really sure exactly what happened, but I know I had little control over the governor.

- I had 2,500 invoices spread across the carpet, looking for a clue about a bug. After 8 hours, everything was fuzzy. So I just gathered up the invoices, filed them away, and went to sleep. Three days later a lightbulb went off, I spread out 100 of the invoices, and found the problem in 15 minutes. I know that if I had continued that
night, I never would have found it.

- I worked 90 hours per week for 2 months for a big deployment. Without telling me, my co-founder spent all of our reserves travelling to a customer site to oversee the install. He emailed me every 20 minutes with a problem. Between being pissed off at him and exhausted from working on the wrong things, I realized the project was going nowhere and would never succeed. So I just stopped working completely. I went to bed and didn’t answer email for 4 days. I’m not proud of this, just one more story about my internal governor. I’m a little frustrated that I don’t have much control over my governor, but also a little relieved that it does it’s thing. After all, I’ve never really been burnt out, and I’m still going strong.

Thank you, governor.

It’s Never Too Late

Teen years - flipped burgers & partied 

Age 21 - graduated college, flipped burgers, & partied

Age 24 - touched my first computer 

Age 25 - wrote my first program 

Age 27 - touched my first PC 

Age 31 - wrote my first low level code 

Age 32 - started my first business 

Age 39 - started my second business 

Age 41 - accessed the internet for the first time 

Age 44 - wrote my first browser-based app 

Age 51 - found Hacker News 

Now - having more fun than ever 

It’s never too late, you’re never too old, and it’s not whether the glass is half full or half empty. 

It’s about getting up off your butt and filling the glass the rest of the way.