For years I’ve been planning to work fewer hours. I really don’t work all that much, maybe 50 hours per week, but with the office at home, there’s little separation between work and everything else. My plans were always centered around this or that milestone with Sifter, and I always truly believed that I’d let up. I never did.
Writing a book was a good break from working on Sifter full-time. It exposed something that I would have never noticed working exclusively on Sifter. Books have end points. You publish them. Then you’re done. (More or less.) They don’t go on indefinitely. Software, however, is never finished.
Short of selling your company or shutting down the business, work on your own web application will likely never end. There’s no finish line. There’s just the next release. And then the next one. Usability. Accessibility. Design. Delight. Performance. Security. You can always do more, and it will haunt you if you let it.
People might throw out a reminder that it’s a marathon rather than a sprint, but it’s not even a marathon. A marathon still has a finish line. You can rest when you’re done. You know how much ground you have left to cover. This means getting past this concept of doneness and accepting that there isn’t a finish line. Put in a good day’s work, and then stop. It will still be there tomorrow.
Whenever people talk about starting businesses, one of the most common deterrents people bring up is having a family to support. While being cautious and making sure not to put your family at risk is important, this fear assumes that there are only downsides. That couldn’t be further from the truth. I’m in my mid-thirties, married, and we have a two and a half year old daughter and a mortgage. We’re also a single-income family as my wife takes care of our daughter full-time.
Before we go on, I want to make it crystal clear that I’m not saying that everyone should start a business or that taking care of and having time for your family isn’t a valid concern. In fact, it’s the most valid concern. I just believe that we all fall into the trap of fixating on the worst case scenarios. And I feel like these fears are all based on the concept of “I must bet it all and go for broke” dramatic stories that we read in the media.
I’m also not saying that it’s easy, but I am saying that for every downside of trying to launch a business with a family, there’s an upside as well. If you go all-in and your business fails, it can seriously hurt your family. It can cut into your quality time with your family, lead to financial problems, relationship problems, or worse. The key is to minimize your exposure and risk. If you dive in without a safety net, of course there’s risk. The catch is that you don’t have to do it that way.
Risking food on the table and a roof over your head is extreme and unnecessary. All of the time, we hear stories of the entrepreneurs that bet it all and became millionaires or billionaires, but you’ll rarely here the less glamorous stories of those that were cautious and slowly and steadily built stable companies making hundreds of thousands per year recurring incomes as they transitioned out of their full-time corporate jobs.
When you work for someone else, there’s always a chance of being laid off. Even in the best circumstances with decades of employment, people are laid off. So while having a corporate job is generally more secure day-to-day, there’s no guarantees at all, and your destiny is ultimately in someone else’s hands.
The biggest hurdle here is to stop thinking of launching a business as binary and imagining quitting your job on a whim one day. With that approach, your fears are entirely justified unless you have a huge savings account that you can afford to risk. Don’t quit that day job just yet.
Also, you can’t focus on the short-term with building a business. Building a business is about thinking about long-term. In the short-term, it’s almost impossible to avoid some degree of financial hardship. That could be as simple as cutting back on spending or as extreme as downsizing your life, but it is something you’ll need to prepare for. In our case, once I was working from home, we were able to downgrade from two cars to one. Not only did we generate some cash from selling the car, but we ultimately save on insurance and even gas.
You can’t focus on the short-term, but you can’t ignore it either. It’s best to avoid using credit cards to start the business. Start small and think affordably. Going and dumping thousands into a business on day one probably isn’t the best route. You can always self publish a book or other digital resources to help build your reputation and income on the side. Set this revenue aside and continue to find ways to supplement your income until you’ve either built a nice cushion or have enough recurring income that you can quit your job.
The biggest mental hurdle with regard to finances is to focus on the fact that building a business is about creating an asset that can provide for your family. You’ll have lower income in the beginning, but you’re working for the bigger goal of creating something that will take better care of them in the long-term. In our case, Sifter has grown large enough that the business has an insurance policy on me so that if something happens to me, my business partner can purchase my share of the business, giving my family a large additional cash payout in addition to our life insurance policy. It’s not something that’s pleasant to think about, but when we’re talking about providing for a family, it’s a key point.
It’s almost unavoidable to have to lower your income in the short-term to build a business, but if you’re careful and patient, it’s much more realistic than you may think. Moreover, the long-term benefit of building an asset could help your family far more than working a day job.
One of the other big fears is health. Depending on where you live, and your current circumstances, this can unfortunately be an insurmountable hurdle. However, more often than not, it’s actually workable.
If you truly can’t afford or obtain health insurance without a corporate job, there’s not a lot that you can do. However, if you can get insurance through your spouse, you may have more options than you think. Of course, without a spouse, that option is definitely off the table.
The other benefit of building a business, especially with recurring revenue that doesn’t depend on your hours worked, is that the income keeps coming in even if you’re disabled. In my case, I’ve barely been able to work for the last four months, and my disability policy doesn’t kick in until 180 days. Even with a more aggressive disability policy, we could have had to cover at least a few months of income. Fortunately, our income didn’t change at all because the business just kept on chugging.
While I can only speculate how things would have gone if I was working a corporate job, anecdotally, I know those kinds of scenarios don’t always end well. I can only imagine going through the last four months if I had lost my job and health insurance because I was unable to work. With my own business, that was never anybody else’s decision. Every step of the way, we’ve been in control of our own destiny.
The last fear that I hear regularly is that of having enough time. I’m not going to sugar coat it. Building a business does require time and attention. For some period in the early days, it will require a lot of time and attention. However, in other ways, it also frees up time and increases your flexibility. If you manage it creatively, it can actually work out pretty well.
First and foremost, if you’re building a business, the goal should be for the business to be able to make money while you’re asleep. This will separate your income from the amount of hours that you’re working. Once you’ve done this, the sky is the limit. Of course you’ll always need to continue working, but once you recognize that you can increase your income independently of work hours, you have a completely new frame of reference for finding family time.
While some corporate jobs do provide flexibility, remote working, or other similar benefits, that’s not always the case. If you’re working 9-to-5 and commuting, running your own business out of the house or somewhere closer to home can free up time to cover the extra hours you might be putting into it. So time isn’t a net loss.
Similarly, the flexibility of your own business enables you to capitalize on things like going to the zoo mid-week instead of on the weekend. You could even go early, and be home in time to still get a half day of work in. Or you could quit work early to go. This has freed me up to spend a lot of quality time with my family that I otherwise wouldn’t have had the option for. I don’t want to be disingenuous. There are times where I’ve missed out on things with friends and family because of the business, but at worst, this is a wash. At best, I’m coming out a little ahead.
Building a business isn’t easy, but it’s not as dramatic, terrible, and exhausting as most glamorized stories would have you believe. With careful planning, patience, and a family that’s on board, it can actually be easier and more enjoyable than setting out with the support and motivation of your spouse and children.
Tomorrow, Sifter turns five. During those five years, I’d say that all of my mistakes and regrets boil down to fear. Sifter supports my family, provides some income to good friends who do some contract work for us, and has thousands of people that use it to run their business. So almost every meaningful decision I’ve made has been haunted by how it might affect these people.
I’ve been afraid to make any significant design changes because it inevitably creates some pain for some of our customers as they adjust to the changes. The reality is that long-term, our customers are usually happier, and if they’re not, we can always fix it or make changes. Big changes usually bring a handful of emails from concerned customers, but after chatting with them, they’ve almost all been happy with the changes.
I’ve been afraid to let a customer wait more than an hour for a response to a support request. After really messing up my sleep, I decided to stop waking up in the middle of the night unless the servers were on fire. Nobody noticed, and people were just as happy to get a response the “same day”.
I was afraid of what would happen if I got sick or injured and couldn’t work for months. Guess what? It happened. In the past four and a half months, I’ve averaged a quarter of my normal hours and even spent three weeks in the hospital. Everything chugged along just fine. Granted, I had some part-time help who all really stepped up, but the world didn’t end. A few bugs lingered for a couple of days instead of a couple of hours, but I’m the only person who noticed.
I was afraid to pull in more outside help because of the effort to get them up to speed and our inability to guarantee huge long-term contracts. We now have 5 folks who all contribute from time-to-time as their schedule permits, and they all have specialties where they run circles around me. I’m quickly learning that in most cases, their wisdom and experience far outweighs the time that it takes to bring them into the loop.
I was afraid that if we didn’t add certain features, that customers would begin leaving in droves. When we didn’t add those features, nothing changed. When we did add the feature, nothing changed. I have a ton of historical data, and while improving the product is important, individual features just don’t move the needle.
When I was writing, I was afraid I wasn’t spending enough time developing. When I was developing, I was afraid I wasn’t spending time writing or designing. When I was designing, I was afraid that I wasn’t spending enough time writing or developing. The end result was that I constantly jumped from task to task trying to do a little bit of everything instead of sitting down and pouring myself into a specific task and just working on that.
I was fearful about customers trusting us with their data and credit cards. At one point, we even lost several hours of customer data. If you asked me at the time, I would have bet you that we’d be out of business the next week. I felt terrible and expected all of our customers to immediately lose faith in us, but even in this worst case scenario, things kept on trucking. We explained the mistake honestly and openly, gave customers some free months, spent some time talking with them, and then poured a whole bunch of effort into improving our infrastructure. It doesn’t get much worse than that, but we survived, and even became stronger for it.
These days, the fear is still there, but I’m better at reminding myself that it’s likely trivial. I’ve found it helps to ask, “what’s the worst thing that can happen?” Then, I’ll break that down and think about how we’d respond if that thing happened. 9 times out of 10, the fear is overblown and unlikely. Even if it is likely, it’s rarely worth being afraid of. The worst outcome is usually little more than a few extra hours of work answering emails or making changes based on customer feedback. When you look at it that way, even the worst case really isn’t that bad.
It’s been a while since I wrote an update, and a lot has changed. Today is 98 days from my first surgery. In the last few weeks, we’ve gotten some additional opinions, had an array of tests, and even a couple of surgeries. Several weeks ago, I was supposed to have a surgery, but we decided to hold off until we could get more opinions.
In doing so, we learned that we should be concerned about the potential for osteomyelitis which is an infection of the bone that is common with large wounds like mine that have been open for an extended period of time. If a bone is infected, that needs to be dealt with before any major surgery can happen, either with 5-6 weeks of IV antibiotics or by physically removing the bone depending on the severity of the infection.
Unfortunately, the process to determine the presence of osteomyelitis is involved. Lab work. An MRI. And finally, surgery to extract some bone for testing. So, we spent a couple of weeks not knowing how that was going to turn out, and my last two surgeries have been about cleaning out my wound and obtaining that bone for testing. It was a lot of waiting and wondering.
My surgeon had us expecting a bone infection. After the surgery to remove the bone for testing, they went ahead and hooked me up to IV antibiotics with the expectation of needing the treatment. Then, I spent a few days in the hospital on the IV antibiotics as we awaited the results. (It takes about 5 days for them to be sure there’s no infection.) During this time, we’d get small rays of hope in that the tests were looking good, but nothing official.
During my hospital stay, I was introduced to physical therapy, and I took my first steps in three months with the help of a walker. I’ve got a long ways to go. I also had one more surgery to finish cleaning out the wound. It was a very minor surgery, and afterwards, we got the all clear on the bone infection. I went home with the main surgery scheduled for little more than a week later.
That was about a week ago. Tomorrow morning I’ll go in for what’s going to be my sixth surgery since July. Or about one every other week for the last three months. We found out this morning that it’s supposed to last 6-8 hours, and I’ll be in the hospital for about five days afterwards. This is without a doubt the most significant, invasive, and most important surgery I’ve had yet. (For the curious or medically-minded out there, it’s a ‘free flap’ surgery.)
Unfortunately, it’s not going to be the last. During all of this, some tendons had to be removed, and once the wound recovers, those will need to be repaired if I have any hope of playing basketball on the same level again. In addition to that, free flaps often need another surgery down the road to work on the recipient site.
It’s still supposed to be 9-12 months before the process of surgeries and physical therapy is complete, and there’s no way of knowing whether I’ll be able to recover to where I was pre-surgery. I’m not quite ready to give up hope on playing basketball again, but I may end up not having a say in the matter.
Finally, thanks to everyone for the encouragement and kind words. While this process doesn’t even come close to what some have gone through, it’s been challenging. I can’t say thanks enough.
It could be worse. That’s what I keep telling myself. I have an open wound on the top of my left foot that’s about 4 square inches. Several of my tendons are exposed, and I’m going to lose the one connected to my second toe. (It’s ok, though. Several doctors have reassured me that it’s not an important tendon.) I’ve had this wound for a couple of months now, and despite our best efforts, it’s just not healing fast enough. So it’s time for more surgeries. At least two of them.
It’s now been 70 days since my original surgery, and at this point, an optimistic outlook is that my foot might be almost as good as it was before the original surgery. We’re probably looking at at least another month or two before I can start physical therapy. So, if it goes well from here on out, we’ll be looking at over 100 days of crutching around, 5 surgeries, about 20 doctor appointments, about 60 hours in a hyperbaric chamber, one allergic reaction with an ER visit, and only a single fall down the stairs.
Currently, we’re looking at two more surgeries to hopefully get things back on track, but my surgeon is setting the odds of this one finishing the job at 50/50. If this fails, then we’re looking at a more drastic surgery with a much longer recovery and increased liklihood of losing some meaningful functionality in my left foot. According to the doctors, there’s still a good amount of risk, and no way to know how it will unfold or how long it will take until this is a distant memory. Until then, it’s just one day at a time.
Historically, I’ve put an enormous amount of pressure on myself to constantly improve Sifter. Add a constant flow of customer requests on top of that, and there’s never been a shortage of feelings that Sifter’s not good enough. Until recently, my solution was to work more and make those improvements. I’ve rarely worked more than sixty hours a week, usually more like forty, but the catch is that my mind is constantly on Sifter even when I’m not working. The gears are always turning. The feelings of inadequacy and thus the pressure to improve never stop.
For the last 5 weeks, though, no matter how badly I’ve wanted to work, I simply haven’t been physically capable of much more than reading and writing emails. Fortunately, I was able to accept that in order to focus on recovering. What caught me off guard was the fact that in the last 6 months, Sifter’s strongest period of sustained growth was during this 5 week period where I wasn’t working.
Sifter survived. Thrived even. It doesn’t need me to constantly obsess over it in order to succeed. Of course I need to improve Sifter, but I’m already doing that. When I’m not doing it, I don’t need to be worrying about it.
Balancing hours between work and personal has never been a significant problem for me. I’ve managed to keep that under control. But being truly present during the time I spent with friends and family was a problem. I worried way too much about Sifter, and it distracted me. Now, I finally have evidence that my worrying was unnecessary. I always knew that was the case, but I didn’t buy into it until now. Thankfully, my ankle problems have added some much needed perspective.
I generally don’t like to share these kind of insights because, in my experience, it’s something you can’t tell people. They have to figure out for themselves. For some reason, this time I’m hopeful that my story can short-circuit the learning process for someone else out there. Trust me, life goes on, and your fledging business can survive even if you’re not “hustling” full-time.
Imagine for a moment that you’re self-employed, married with a child and a mortgage, you’re the only full-time employee of your company, and the sole breadwinner for your family. Now, imagine having a minor surgery with an expected four day break from work turn into a four week hiatus during which you effectively can’t work. In my case, I have great health insurance with no coinsurance, but if we didn’t, this would have likely resulted in an extra $10,000 out of pocket as well. Of course, after you are able to start working again, you’ll still have almost daily trips to either the doctor or rehab that will cut into your work time. So full-time productivity levels are out of the question for quite some time.
It’s a nightmare scenario for most small business owners. I’d be lying if I said I didn’t experience a range of fear, anxiety, and despair as this all unfolded. The whole process played out in slow motion, and I really had no way of knowing when the pain would stop and I’d be able to get back to work. Thankfully, it all worked out, but in hindsight, it’s a good reminder about checking up on your disability and health coverage. So how did it all happen?
I’ve played basketball for the majority of my life. Outside of time with friends and family, there’s nothing that I enjoy more than being on a basketball court. Unfortunately, all of that court time has led to quite a few ankle sprains. As I’ve gotten older, those ankle sprains have caught up with me, and my most recent sprain really set me back.
For the last year and a half, I’ve had decreased range of motion in my left ankle, and that led to a variety of tangential problems with the entire lower half of my body. On top of that, the days that I played ball would guarantee hours of post-game pain. It was time to do something about it or stop playing basketball, and the latter wasn’t an option.
Several weeks ago, I had a relatively minor ankle surgery. The surgery itself was uneventful, and it was expected that my recovery would involve four days of bed rest and pain killers and that I’d be back to 100% in about nine weeks. Due to complications with my recovery, that four days turned into at least four weeks. Due to incessant pain and an inability to get any restful sleep, I’ve been unable to do any meaningful work during that time.
After my first surgery, some basic bone spur removal and ligament repair, I went home that evening and stayed in bed four days with my foot elevated and iced. The following Monday, I had my first checkup with my doctor, and things started going downhill. Due to the ice machine and a case of all too sensitive skin, my foot had developed a minor case of frostbite. Naturally, my doctor told me to stop icing it, and let it recover. I went home and returned to my bed with my foot elevated.
Over the next few hours, my foot slowly began to thaw, and as that happened, the pain began to intensify. In a matter of hours, I went from feeling no pain to the worst pain that I’ve ever experienced in my life. By noon, I was really struggling. The pain killers weren’t doing anything, and my doctor’s office was closed for lunch. At the time, we thought it was just normal pain that came with the territory, so I tried to ride it out Lauren finally got in touch with my doctor and described my pain by saying “I had a natural child birth, and it looks like he’s in way more pain than I ever was.” They set me up with a second prescription pain killer, and Lauren left to go pick it up.
By the time Lauren returned with the prescription it had been about three hours since the pain begain. I quickly took a pill and waited about 30 minutes. It had no effect whatsoever. I decided that the pain wasn’t going to let up, and it was time to head to the emergency room where I would spend another hour waiting to be seen. At this point, there were a couple of times where I felt like I was going to pass out.
Once I was admitted, they immediately began giving me medicine for the pain. After the first dose, I didn’t feel any difference. They gave me a second dose. No change. Finally, they decided to keep me overnight, and they continued to give me pain killers. At this point, I came down from a 9 or 10 on the pain scale to about an 8. It was still pretty bad, but it helped enough that I stopped looking for an axe to chop my foot off.
I struggled through the night without sleeping, and my doctor came in the next morning to see me. She diagnosed the cause of the pain as a blood clot in my foot building up and creating pressure. She scheduled a surgery for later that day, and I spent the rest of the day at about an 8 on the pain scale. By the time my surgery rolled around, I had spent twenty-four hours in pain despite an assortment of prescription pain killers.
In order to fully remove the blood clot, my doctor had to make an additional incision on the top of my foot. Unfortunately, this was the area of my foot that had frostbite. To make matters worse, my foot and ankle were so swollen that my doctor couldn’t stitch it up after the surgery. The healing process for this new incision was going to be intense. After I woke up from the second surgery, I was released and went home. The pain continued, but now it was at least down to a 6.
At my next followup appointment with my doctor, she decided that I should undergo hyperbaric oxygen treatment to stimulate recovery in my foot. I later learned that because they are on the furthest extremities, foot wounds can be both incredibly painful and slow to heal. The swelling had to come down, and the skin around the affected area had to begin healing before she could do anything more. That meant that I’d likely need a third surgery to clean up the wound once it started to recover. At this point, it was both painful and exhausting to even get out of bed. Making trips for hyperbaric treatment wasn’t pleasant.
That was last week. While you wouldn’t guess it by looking at my foot, it has improved, and I just had my third and hopefully final surgery. My doctor removed some dead tissue and did some small skin grafts to help the wound heal. My pain is hovering around a 4 currently, and that’s with the assistance of pain killers. Unfortunately, I’ll likely have another week or two of pain and recovery before I can get back to work.
When it’s all said and done, I will have been sidelined for a little over four weeks. I’ll still be on crutches and have rehab for some time after that, but I should be able to get back to work. A month ago, if you told me that I would be unable to work for four weeks, I would have been worried, stressed, upset, and scared. How would my business do if I’m barely able to work for four weeks? How will Lauren and Bella manage if I can’t help around the house for four weeks? It’s scary, and there were definitely some pretty low times in there.
While this has been the least pleasant four weeks of my life, it’s also been an incredible journey and helped put everything in perspective. I’ve truly never been more thankful. I look forward to the day where I can live pain free again, but in the meantime, I’m just itching to get back to work on all of the exciting stuff I’ve dreamed up the last few weeks.
An Interview with Garrett Dimon -
Recently did an interview with Des Traynor from Intercom about building and growing Sifter, features, and business in general.
When I started writing Starting + Sustaining, payment processing was the most daunting topic. I felt that I had a cursory understanding of it all, but that turned out to be wrong. It is without a doubt the chapter that required the most effort to both research and write. As the longest and most involved chapter, it could be helpful to countless folks looking to launch their app. As such, I’m giving it away for anyone that could use it.
If you have any questions about payment processing, providers, merchant accounts, PCI compliance, or any of that stuff, this chapter should really help you jumpstart your learning. I hope it helps.
Download the free payment processing chapter from Starting + Sustaining
If you’re building a company as a solo founder, you have a long lonely road ahead of you. The sooner you start putting together a team, the better off you’ll be in every possible way.
I originally made the mistake of believing that it didn’t make sense to pull in contractors on a regular basis because of the amount of time it would take for them to ramp up on Sifter. Instead, I set my sights on getting us to the point where we could hire full-time help. In theory, that way we’d have someone involved who didn’t have to constantly be ramped up.
I couldn’t have been more wrong. These days, we effectively have a bookkeeper, system administrator, front-end developer, and two Rails developers on retainer. Each month, depending on their availability and Sifter’s needs each of them work somewhere between 2-30 hours per month. On top of this, we’re also outsourcing some marketing work so that I can stay more focused on the product. We should have done this a long time ago.
This may not sound like a lot of hours, but these team members have two huge advantages over founders. First, they aren’t multi-tasking and context-switching like founders have to. So they’re able to focus on and execute much more efficiently. Second, and most important, they’re experts at what they do. As a founder, you have to be a generalist, it’s impossible for you to as good at any of their tasks as they are. If you find the right people, they’ll do a better job within their area of expertise than you ever could, and they’ll be faster.
On top of that, there’s one big intangible reason. Working with a team of people makes work more fun. While this probably isn’t news to anyone who’s ever been in this situation, I doubt that I’m alone in being hesitant to bring on contractors for fear of using all of their time ramping them up on a new codebase. It’s not true at all. Find people that can help you 10-20 hours per month and setup a retainer with them. The sooner you begin to build a team, even if they’re only a part-time team, the better off you’ll be.
Starting and Sustaining is Available for Purchase -
After months of writing, editing, and reviewing, Starting and Sustaining is finally available for purchase. If you have dreams of launching a hosted web application, this very well might be the perfect book (and spreadsheet) for you.
Three months after deciding to write a book about building, launching, and maintaining a web application, the progress is good. I’d like to be further along, but took a break from writing to spend some time on Sifter. So where are things at and what have I learned about self-publishing an eBook?
First and foremost, the logistics took a lot of time. Planning the content, understanding the world of digital publishing, settling on a good workflow for both the writing and editing, as well as choosing the right tools all took quite a bit more time than I would have liked. Thankfully that’s all behind us now.
The first thing I wanted to work out was how the whole process would work. I didn’t want to write in one format/tool only to have to later go through and manually edit everything to put it into the final format. Similarly, I wanted to make sure that the process worked well for our editor and the various other people providing feedback. Long-story short, given limited resources and the goal of having a lot of graphs and visualizations, I wanted to keep everything as simple as possible, and we settled on publishing only a PDF.
Since we’re only doing a PDF, I chose to put everything together in iBooks Author. Given that decision and the usefulness of tracking changes in Pages, I’m writing everything in Pages and storing it all in Dropbox for easy sharing with the editor and various others providing feedback.
As the files are updated, we simply update the file name with “(Assignee Name)” at the end. The beginning of each file name is in a “#.#” format where the first number indicates the section and the second indicates the chapter/topic within that section. So each file looks something like “1.2 Topic Name (Assignee Name)”. This makes it easy enough to reorganize content without involving too many different applications.
With all of this, the only challenge has been that Keith, my business partner, is a Windows user and can’t easily edit Pages documents. Fortunately, he’s providing higher level feedback, so this hasn’t been a significant problem.
One of the most challenging parts was narrowing down the scope. In some cases, each of these topics could be 10,000 words by themselves. The way that I narrowed it down was to focus purely on logistics. While I mention technical bits that need to be in your plan, I’m primarily focusing on things that need to be done, things that are easily overlooked, or things that are tempting to cut out.
While I expect it to evolve a bit, the book is primarily broken up into 4 sections of 9 topics each. Each topic is about 900-1,200 words. Fortunately, now that this is about 90% locked down, the writing has been flowing nicely.
With the book, I want to share a lot of the data that I’ve used to make some of our decisions over the years. This has required doing a fair amount of legwork and writing a few more SQL queries than I would prefer, but fortunately it’s all done. I’ve been swimming in data, and found some really interesting things to discuss.
Originally, I wasn’t sure if I wanted to do more than a book, but as I started writing, I realized that much of our decision making is an extension of the information that we have in a rather complex spreadsheet that I update monthly. So, I spent a few days and redesigned and rebuilt the spreadsheet from scratch so that it would be easy to use and compliment the book.
The goal of the spreadsheet is to help get a clearer grasp of the costs of starting and running a web application. It can help make the numbers very real and let you quickly adjust numbers to understand the impact of charging $9 a month or $29 a month. Honestly, I might argue that the spreadsheet is almost as helpful as the book itself. They’re a team, though, and the spreadsheet should really help anyone who’s trying to put together a budget.
In addition to the spreadsheet, I’m also compiling a vendor list for the wide variety of services that one would need to enlist in order to build a web application. Hosting. Transactional email. Help desk. Domains. DNS. Continuous integration. Email newsletters. Log monitoring. Performance monitoring. Uptime monitoring. Source control. Team communication. And more. I’m not going to review any of the products, but the list should definitely make it easier to quickly narrow down which tools are best for a given team’s needs.
This is where I’m spending my time these days. The book is about 25% complete, including editing. I expect to finish all of the writing this week, and then it’s off for feedback and editing. Once that’s complete and all of the content is laid out, I’ll be passing it along to a handful of other folks who’ve launched their own applications in order to get some final feedback and additional perspective. Then I’ll incorporate their suggestions and it’s just a matter of picking a day and finishing propping up the store.
I’m not sure exactly when it will be ready, but I can say that I’ll be wildly disappointed if it’s not available by the end of March. I’m racing to get it out long before that, but that’s my current drop-dead date. My main concern is that I want to allow the reviewers plenty of time to read it and share their feedback.
As I progress on the book, I’m more and more excited to get it out there. It’s not rocket science, but I constantly imagine myself five years ago and wish desperately that I could have had access to all of this information rather than just figuring it out as I went along.
I truly believe that this information would have saved me at least a month’s worth of development effort if not more. It would probably have also saved me about two weeks worth of research. The spreadsheet alone incorporates several years of acquired knowledge that should make it dramatically easier to plan your finances or at least make a much more educated guess.
Ultimately, I’m really excited to help people get better products out the door in a shorter period of time with a whole lot fewer mistakes and less pain. I figure the sooner it’s available, the sooner others can begin benefitting from all of these lessons.
It seems like many stories about quitting a job are dramatic and quick. i.e. “I had finally had enough and just quit.” It doesn’t need to be that way, and it’s probably easier if it’s not. Instead of thinking about giving your employer two weeks notice, think of it as giving yourself two years notice.
When I left my job to start Sifter, I had been preparing for it for about two years. I wasn’t unhappy with my work, and I never had a date in my head. However, I knew that at some point I was going to want to do my own thing. As a result, I spent about two years consciously molding my life to make it easier for me to go out on my own.
I paid off my credit card debt and began saving as much as I could. I moved out of an apartment with roommates into a tiny shoebox of an apartment so I could more easily work at night and on weekends. This increased my costs slightly but drastically decreased my distractions.
Then, on a whim, I started designing a bug tracker for fun with no idea of where it was really going to go. I was primarily looking for tangible things that I could use to discuss interface design without having it be covered by an NDA like everything from the day job. Maybe I’d develop it and open source it, or maybe it would never be anything more than comps. Those designs turned into some material for presentations about interface design, and those presentations generated the interest for my business parter to convince me to start a business.
I had started designing those comps in August of 2007. A few months later in January, I was starting to work on Sifter full-time. However, if I hadn’t paid off my debt and started saving, I wouldn’t have been financially able to take a paycut. If I hadn’t gotten my own apartment, I would have never found time to work on things in my free-time. If I hadn’t started designing for fun in my free-time, I would have never shown anyone the ideas floating around in my head. I had been taking steps to prepare myself for years without knowing exactly where they would lead. I only knew that they were the right steps.
You don’t need to dream about quitting and just waiting until you just can’t take it anymore. Instead, just start doing the things that will enable you to quit someday. You don’t need to have a specific plan or date in mind, but if you start preparing today, you’ll be much better positioned to make a change when you’re ready for it or when an opportunity presents itself.
At some point, we’ve all faced it. Do we rebuild from scratch or simply refactor? With personal sites, it seems the rebuild is the default option. We see an archaic mess of code and a design that’s atrocious. So we rebuild. With a web application, that’s not always a good idea. This is a decision where it’s incredibly important not to let emotion get the best of you.
If your application is successful and profitable, a rewrite is riskier than refactoring. However, if your application hasn’t seen any significant adoption or is otherwise stagnating, a rewrite may be just what you need to breathe new life into it. Based on my experience, here’s a short list of pros and cons for rebuilding and refactoring.
+ Start Clean. It seems glamorous, but it’s not necessarily a business reason. This is often more of an emotional belief that it will be better this time.
- Stagnation and long release cycle. With a complete rebuild, it’s easy for the application to appear to be stagnating even though you’re working vigorously on the new code. So now, not only do you have to catch up to your previous feature set, but you need to release something that’s a significant improvement. Otherwise, you’ve invested a lot of time in what customers would perceive as an equivalent product.
- User Revolt Changing anything dramatically in one fell swoop will invariably upset some of your customers. That can become a distraction in and of itself. I see these even when we make small focused changes, so I can only imagine what a complete rewrite would do.
- Risk of Major Bugs It introduces a lot of opportunity for bigger mistakes. Launches aren’t easy, and when you already have a significant user base, it’s nearly impossible to catch all of the edge cases prior to launching. That can lead to disappointed customers as well.
- Temptation/Scope Creep Starting from scratch makes it much easier to get distracted with shiny new tech and potential features. Building something from scratch provides very little in terms of a framework for managing scope. When the road is wide open, it’s more difficult to stay focused.
- Internally motivated vs. externally motivated. Rewrites are usually internally motivated because customers don’t see the cruft. So it’s usually the development team that wants to start over. It’s important to ask how a rewrite will directly benefit customers? If it’s not direct, then it may not be the right move.
- Discipline While you will always enter a rewrite with more knowledge and experience, writing good code requires discipline. In my opinion, refactoring is the best way to create that discipline. It’s much easier to become consistent and see repeatable results in small bits at a time. Similarly, I’ve found that it helps to look at “bad” code and learn ways to improve it. Doing a major rewrite introduces too much temptation to cut corners.
- Slower overall. It takes a while to start seeing meaningful results. It’s almost a leap of faith that over time things will improve meaningfully.
+ Faster cycles. With a rebuild, there’s no quick wins, but with refactoring, you can constantly be releasing updates. This helps keep morale high and also enables you to ensure your customers are regularly seeing improvements and other benefits of your work.
+ Safe. Small chunks mean minimal risk with each subsequent update. There may be bugs, but they’ll be isolated and you can quickly dive in and fix them as they’re released.
+ Repeatable. It becomes a habit, but like any habit, it takes practice. Since refactoring is about taking bite size chunks and improving them, it’s easier for it to become a habit than trying to build it from scratch.
+ Balanced with features. With refactoring, you can spend a couple of weeks behind the scenes. Then a couple of weeks on customer features. This helps alleviate any perception of a stagnant product when you’re spending time on things that customers won’t see.
+ Learning. I believe that I’ve learned more about writing good code by seeing what I did wrong and forcing myself to find/learn a better way than I would have if I had just thrown it away and started from scratch.
Unless there are clear business benefits like migrating to a newer technology stack that will provide more agility, increase the potential talent pool to grow your team, or simply enable you to do things that were impossible with your previous stack, I personally don’t think rewrites are the best approach. If you’re not planning on changing your technology stack, I believe you’re much better off making gradual and consistent improvements and learning as you go.
I’ve found that the best way to guide refactoring is to find the right tools to help you identify the spots that need the most attention. We’ve come to rely on two tools to help us do this. New Relic helps us identify areas that need improvement for direct customer benefit in areas like performance and reliability, and Code Climate (Ruby only) helps us identify the code smells that we should clean up so that we can make enhancements more quickly and with less risk.
I’d strongly suggest using these or other similar tools to act as an angel on your shoulder. They’ll help you identify the most important places to start and keep you focused on the right things. Regardless, I’d generally advise to be quick to refactor but slow to rebuild.
P.S. If you enjoyed this, you might like my upcoming eBook, Starting + Sustaining about bootstrapping your own web application.
Prior to Sifter, I was a specialist. I needed to keep up with two or three high-level topics in order to stay current and not be left behind. I had a few RSS subscriptions and kept up with a few topics on Twitter. It wasn’t easy, but wasn’t impossible either. Life was simpler then.
Since starting Sifter, I’ve tried to stay current on every piece of our business from the complete technology stack to the business and marketing side of things. As a solo founder, keeping up with everything that I need to create the best possible product for our customers is truly impossible if I also want to build anything.
It’s easy to get swept up in staying current and forget that the whole point is to create something. These days, I’ve accepted that’s a bad idea. Instead of trying to know everything, I focus on simply staying aware of what’s happening. Then, when the time is right and the advances might be useful, I can set aside time to learn.
As a solo founder, time is limited. You don’t want to be left behind, but you don’t want to spend all of your time keep up either. Prior to starting Sifter, I used to believe that running my own business would give me flexibility to aimlessly explore new technologies. I was half right. There’s plenty of time to use and learn the technology, but there’s not much room for aimless exploration.
When you need to learn something, take the time and do it right, but if you don’t need it yet, file it away and move on. Worse case scenario: it will be there you when you need it. Best case scenario: newer technology will make it obsolete and 10 times easier by the time you do need it.