February 2011 Archives

How Becoming a Dad Helped My Startup

| No TrackBacks
I had an interesting realization last year.  I realized that the mere act of launching a startup wasn't enough stress for me.  No, if I really wanted to push my sanity to the brink, I needed to couple the startup with a separate launch, that of my first child.  I've spent the past 2 months spending all of my time caring for these two babies, and I've found that being a dad has actually helped me in my startup.

Less Time to Code the Hard Way
Before my son was born, I spent a good 70+ hours a week coding.  My relationship with my wife didn't suffer because I did a lot of this late at night, while she was asleep.  In my pre-fatherhood delusion, I assumed I'd be able to maintain this schedule; after all, babies sleep, right?

Oh sweet Lordy, I was wrong.  I was wrong, I was wrong, I was wrong.  I am now lucky to get 45 hours of implementation time each week.  I could try to do more, but I think it'd result in a nervous breakdown.  The reason: babies do not, in fact, sleep.  And when my son does actually sleep for a couple of hours, then screw coding, I'm sleeping too!

Given that I have far fewers hours for coding, do I worry that I'm not progressing quickly enough on the company?  No, I don't feel that way at all.  In fact, I think my output pre and post-baby outputs are roughly equal.  This is because, while I don't have time to code, I have lots and lots of time to think about how I want our technology to progress.

Where does all of this time come from?  I will now divulge a secret of fatherhood: a lot of it seems to be holding your child and keeping him from getting upset.  That additional 25 hours a week of coding I was doing is now easily spent on quiet time with my son: rocking him to sleep, feeding him, etc.  I spend almost all of this quiet time researching.  Whereas previously I might've spent a 12 hour day integrating MongoDB and Solr, I now spend 2 hours researching and 6 hours integrating.

(Sidenote: This is a totally new approach to development for me.  Previously, I always thought through the keyboard; rather than spending time reading and thinking, I'd just bring up a text editor and start experimenting.  This works well when you have plenty of time, but it's a miserable failure when time is a limited resource.  Don't construe this as an argument for Big Design Up Front.  It's more of an argument for Have The Slightest Idea Of What The Hell You're Doing Before You Do it.)

Patience Is a Killer Feature
I have never been a patient person.  If there were a running tally of the number of dramatic sighs I've released while waiting for other people to use an ATM, it'd number in the millions.  This side of me died recently, probably while trying to soothe my son during an inexplicable crying fit, and I've become a better cofounder and dad for it.

It's easy to get frustrated in a startup.  You get frustrated that investors are taking too long to respond to your emails.  You get frustrated that your cofounder promised to finish X by Wednesday, and then it's not completed until Thursday.  You get frustrated that signups went up 2% over last week, rather than the 4% you were hoping for.  All of these problems can be addressed over time, but dammit, we don't have time!

It's comical to see that sort of mindset encounter a screaming infant.  With a screaming infant, you can present a remarkably cogent, persuasive case for them to calm down.  Your argument can be well supported with statistically significant data.  None of that matters; the baby will still scream his head off.  There are a few small actions you can perform that might help (Swaddle, Side/Stomach, Shush, Swing, Suck (Happiest Baby on the Block in the houuuuse!)), but ultimately you must wait for the tantrum to end.  This isn't a one-time phenomenon either; I deal with this a few times a night, every night.

As I have learned patience in this one part of my life, I've found myself showing it everywhere else, including my startup.  Fundraising takes a long time and isn't up to me; I'm now content to let this happen.  Apple's app store approval process takes a long time and isn't up to me; I'm now content to let this happen.

A Newfound Appreciation for the Simple and Repeatable
This is no great insight: if you want to do things correctly in software, it takes typing.  Often, lots and lots of typing.  There's the code itself, the tests, the commands needed to run the tests, all of the path traversals to view logs and then find the relevant parts, etc.  I never before had a problem with all of this typing.  After all, I'm a very fast typist, I often know exactly what I'm doing, and it'd take me longer to script it out than it would to just type the damn commands.

Want to know a few interesting side effects that come with lack of sleep and constant worrying about what your baby is pooping on?  Your typing goes to hell, your attention wanders, and you're often interrupted. In other words, you suddenly become much more interested in scripting out as much as possible and becoming a wizard with your text editor.

I've gone about writing a lot of shell scripts and macros to combat these issues, and I've learned something interesting in the process.  Not only has this collection of tiny scripts and macros made me more productive, it's also made my teammates more productive.

It was always a struggle to get new people up to speed.  I was so used to typing these endless strings of cryptic commands; they were not.  If you were trying to learn from me, not only was it hard to get it all right, but it was hard to even understand what was happening.  Now that so much of our development has been automated via scripting, there's less to remember and there are persisted copies of all of this magic that can be dissected and understood.  Development has suddenly become much more scalable.

Having a baby changes your life in many ways (duh), and it's easy to think, as a technical cofounder, it will set you back.  I have not found that to be the case.  Now, if you'll excuse me, I'm going to crawl under my desk to take a nap.

About the Author

The Art of Delightful Software is written by Cody Powell. I'm currently Director of Engineering at TUNE here in Seattle. Before that, I worked on Amazon Video. Before that, I was CTO at Famigo, a venture-funded startup that helped families find and manage mobile content.

Twitter: @codypo
Github: codypo
LinkedIn: codypo's profile
Email: firstname + firstname lastname dot com