The U.S. Government wants to hire more people like Mikey Dickerson. He’s the former Google engineer the White House recently tapped to lead the new U.S. Digital Service. Dickerson has impeccable credentials. He comes from one of Silicon Valley’s most successful companies. He flew into Washington a year ago to salvage the disastrous Healthcare.gov website.…
This is an encouraging step in the right direction. It’s difficult to attract and retain the best and brightest with a stodgy work environment.
When I set out to build software on my own, one of my biggest goals was to have more fun creating that software. I wanted to create a tool that others could enjoy, but, more than that, I wanted to have fun while I did it.
It has been fun. But somewhere along the way, the fun faded just enough. Then it turned into responsibility. The urgent overtook the important. I started playing it safe. This didn’t happen all at once, of course. It never does. It was an almost imperceptible advance.
Personal responsibility increased. Buying a house. Getting married. Having kids. All the things that make you think more about financial planning and security.
More people were using Sifter. That meant more people affected by our decisions. (And more people affected by any downtime to boot.) Even the smallest changes could hurt their productivity. I second-guessed too many ideas because of these fears.
Then there was things like scaling, security, upgrades, and operations to chip away at the fun too.
In hindsight, it’s obvious. I let the fear take over. I’m working on a course correction, but that’s not important right now.
What matters to me right now is that you don’t make that same mistake when you’re knocked around by the day-to-day challenges of creating software.
If you dream of creating better software for people and having fun doing it, then do it. Know that it’s going to be hard work. Know that you might have to do some things that are less than fun. Just make a point to never stop trying to have fun with it. Invest in processes and tools that make you have fun with it.
Don’t let that fear chip away at the fun. Unhappy people create unhappy products. The world has enough of those already.
“The cliché thing, the least exciting way to look at what I’m doing again, is that I’m a jaded entrepreneur. You know, sold my company, didn’t like the large corporation, and I’m just doing it again.”—This Internet Millionaire Has a New Deal For You – Matt Rutledge, the founder of Woot, talks about being acquired by and then leaving Amazon because he couldn’t take it anymore.
The world needs more good news. So here’s my contribution. A year ago today, I had a surgery. The surgery went well. Recovery didn’t. In the time since, I’ve had 7 more surgeries, spent about 6 months in bed most of the day, 3.5 weeks in the hospital, and done about 40-50 physical therapy sessions. I’ll probably have another 50-100 before I plateau. My doctors are all impressed by what I’m capable of doing, and one even candidly said that I’m already way past the best that she had thought I’d ever be able to achieve without surgery.
Until recently, I’ve only shown people pictures if they explicitly asked, because, well, there was a huge hole in the top of my foot, and not everyone is good with that kind of thing. A year feels like a good time for a checkpoint. The large piece of tissue on my left foot is a free flap from my thigh. It’s covering up what used to be a hole in my foot where you could see tendons. And bone. It’s significantly better these days.
Along with my foot healing, good things are happening. We’re able to go out and eat. We’ve gone to the zoo. (I had to rent a motorized scooter, but still.) We get to go to the park again regularly. I can even go swimming now and am strong enough to toss Bella in the air. We can “dance” around the living room. And, of course, we’re expecting Bella’s little sister in October. Things are returning to normal, and, in some ways, even better than normal.
A year in, and word on the street is that it will be this time next year before I’m as good as I’m going to get. Physical therapy has worked wonders, and I can walk. But I’m not out of the woods yet. The latest prognosis is that I might get by without any more significant surgeries. But I’ve still lost two tendons, and the doctors aren’t very encouraging about my chances of playing basketball again. Snowboarding is still a good possibility, though. Maybe as soon as this season. (And despite the lack of encouragement, I’m not giving up on basketball just yet either.)
For the most part, I’m thankful, but I’m not going to lie and say that it’s always easy. Every day I encounter something that I want to do but physically can’t. These days, though, those things are fewer. I’m healing, and progress is good. Things have changed. It’s tough, but these days, progress is outweighing setbacks. I suppose that’s what really matters.
We relaunched the Sifter marketing site with a focus on education, and the biggest component of that is the Software Quality Academy which provides a basic guide to getting started with quality assurance.
It’s not just about bug and issue tracking, either. While that’s certainly a component, it goes into much more depth about the variety of tools available to improve the quality of your software and how they all fit together in the big picture.
Imagine going to see the lions on display in the zoo. Now imagine seeing the same species of lion in the wild on an African safari. Technically, you’re looking at the same animal both times. But they behave differently in the wild than they do in captivity.
You wouldn’t make a judgement call about what MOST lions do based on a lion in a zoo, because MOST lions aren’t in zoos.
When I launched Starting and Sustaining, I felt that the book, spreadsheet, and task list were a package deal. One without the others wouldn’t be telling the full story. So I decided to offer them together as a package.
Talking to folks over the last year, I’ve realized that I was wrong. The book by itself can still provide incredible value to someone just getting started. So as of today, you can now buy the book by itself for $29. In addition to that, I’ve also decided to lower the price of the package to $79 permanently.
It’s useful to learn as much as possible from others who have launched businesses before you, but it’s just as important to remember that it’s never the full story. So many things happen behind the scenes that contribute to success or failure. So anytime you read about someone’s story, mine included, remember that it’s just one small piece of a much larger picture.
Of course ‘painfully’ is subjective, but the point is that almost all bootstrapped startups take longer to rampup than you’d like as a founder. That means a year or three of living in two worlds and juggling bill paying work with growing that side project.
The absolute best way to grow a side project into something big enough to sustain you is to have realistic expectations. A big dramatic switch from a 9-to-5 to a side project almost never happens overnight.
On a related note, it’s useful to remember that having something grow too fast means you’re going to be spending a lot of time playing catchup. So slow and steady isn’t always a bad thing as long as you’re ready for it.
“We don’t think about individual competitors, we think about problems that people have and jobs they need done. That’s what we’re competing against — people who don’t have things to do those jobs. If you spend time obsessing over individual tools, everyone starts trending towards the same outcome and winds up in the same place. You lose the things that made your product unique.”—Love this quote by Jason Fried on The Industry. I’ve always felt this but could never put it into words. Anytime a company is fixated on competitors, it sends up red flags. Like they’re focusing on the wrong things.
Bug and issue tracking is just one small component of increasing the quality of your software. I shared a chapter from the book that begins to cover some of the other tools and processes involved in helping you ship faster and with fewer problems.
It’s easy to get so caught up in the act of doing things that we overlook the value of documenting what we’re doing and why we’re doing it. Investing time in writing detailed comments in your issue tracker can really help.
Having an issue tracker is important, but ensuring high levels of participation and understanding by non-technical users doesn’t happen automatically. Making sure that clients and anyone new to your processes and workflow are comfortable and understand its importance is can work wonders in improving participation.
Issue tracking and workflow is a nasty problem. There’s no doubt about it. Team size, skill set, and location. Technology stack. Multiple tools and systems. It all factors in, and it’s all messy. But I feel like we can make it better if we take a hard look at some of the decisions we make and the resulting complexity that we introduce.
If we can simplify workflow, the productivity gains are huge. Instead of spending time fiddling with bits, we can focus on the real creative work and delivery of that work. This isn’t about dreaming up perfect workflows, but about looking for the parts of our existing workflow that we can remove.
If you only make time for reading one thing today, it should be this. It’s so easy to become jaded and believe that things are getting worse rather than better, but that couldn’t be further from the truth.
By almost any measure, the world is better than it has ever been. People are living longer, healthier lives. Many nations that were aid recipients are now self-sufficient. You might think that such striking progress would be widely celebrated, but in fact, Melinda and I are struck by how many people think the world is getting worse. The belief that the world can’t solve extreme poverty and disease isn’t just mistaken. It is harmful. That’s why in this year’s letter we take apart some of the myths that slow down the work. The next time you hear these myths, we hope you will do the same.
One of the most important takeaways from this for me was a reminder that nothing changes overnight. Not personal health or well-being. Not personal success or failure. And certainly not the entire population of the planet.
With analytics everywhere, it’s so tempting to do one little thing, measure, and then be disappointed because it did’t change the world. Measuring is important, but it’s much more useful on a long-term scale. Chances are that if you feel like you’re working on the right things to make some sort of a difference, you’re on the right track.
Apparently credit cards don’t immediately stop working upon expiration. In some cases, they’ll still work for six months after the expiration. Good to know if you’re running a business that relies heavily on credit cards.
Seth Godin points out that that value of being able to say, “that’s okay, it’s not for you.” This has always been how I’ve felt about Sifter. There’s countless issue trackers out there, and none of them are good or bad per se. Only a good or bad fit.
While ‘artist’ may pigeonhole the idea, the same thing applies to software. The only difference is that in software, there’s the unyielding pressure to handle these different desires through preferences so that it can appeal to everyone.
Reminds me of the quote by Bill Cosby:
I don’t know the key to success, but the key to failure is trying to please everybody.
It’s not only a matter of success or failure, but happiness. The times when I’ve been least happy with any given piece of work are when I’m searching for the “perfect” solution that will make everyone happy.
It’s been almost three months since surgery number seven. I’ve started to recover from that, and we’ve even begun to talk in detail about what’s next. (Three more surgeries in the next 12-15 months if you’re curious.) I’ve recently started to stumble around without crutches part-time. That milestone simultaneously makes me think about both how far I’ve come and just how far I have left to go.
Besides playing a lot of basketball, I used to dance around the living room with Bella, my then two-year old daughter. We’d go to the park regularly. I’d help Lauren make dinner, and, with some occasional reminding, even help clean. We’d all run errands together, go swimming, or do one of a dozen other currently impossible activities. (Unfortunately, my doctors have said that I’ll never be able to clean or do chores again. Basketball is a possibility, but chores are out. Lauren heard this herself, but I don’t think she believes it. It’s so encouraging how strongly she believes in my recovery and that someday I’ll once again be able to do anything she puts her mind to.)
Going from being a fairly active individual to overnight being virtually bed-ridden for months has been interesting. During that time, we’ve cancelled vacations, missed two weddings for good friends, and I’ve experienced more of my daughter’s moments via photos and videos than I’d prefer. But I’ve never felt luckier, and bit-by-bit, things are returning to normal. This week, we resumed dancing around the living room, albeit in a much more awkward form, and trust me, it was bad before. And since I can kind of walk without crutches now, I’m even able to carry my own trash to the trash can. It’s difficult to tell which of these capabilities brings Lauren more joy.
Anyways. The point is that it took too much for me to fully appreciate the little things. It feels clichéd, but it’s true. I still haven’t adapted to the changes, but for everything we’ve lost, we’ve gained something else. Hopefully someday I’ll physically be 100% again, and if that day comes, I hope more than anything else that I never lose this deeper appreciation of the little things.
Amy details the revenue growth for Freckle over the years. Sifter launched a couple of days after Freckle, and while our numbers aren’t quite as large, they’re definitely inline with the results for Freckle.
“If you think you have a game-changing idea and you too have such responsibilities, you are facing a true test of an entrepreneur. The best way to handle this is to not to let such factors rule your decision-making process, but to integrate them into it. Prepare for failure, protect your downside, and then go right ahead with the launch.”—Richard Branson with regards to starting a business with a family and related responsibilities.
One of the most challenging aspects of running a business is understanding why customers leave or otherwise choose not to use your product. The underlying problem is that if a customer doesn’t like your product, they’ll generally just write it off and not bother to share because they don’t care for it. So, you’ll generally only hear from people who already like your product to some degree.
The best way to capture this insight is when people are explicitly closing their account. Unfortunately, even in that case, they usually aren’t interested in helping you, but rather just moving on. Some companies require you to email them or otherwise make the cancelation process tedious so that they may insert themselves into the process, but I’ve always believed that canceling should be both self-service and incredibly easy.
Over the years, we’ve experimented with a variety of ways to encourage this last-second feedback while still ensuring that customers can close their account in a matter of seconds. I believe we’ve finally found the optimal solution for us, and there’s probably a lot of room for others to benefit from the same pattern.
We’ve tried about six different approaches, in no particular order, with pretty underwhelming results. About 2 in 10 cancelations would provide feedback, and that feedback was often not helpful. Fortunately, all of those less-than-perfect approaches helped me get to our current state which has blown all of the others out of the water.
Before digging into this, we haven’t run A/B tests or anything like that because I’ve never found the value in it. Moreover, an A/B test could, at best, detect the presence of feedback but not the value of the feedback.
Post-cancelation personal email. To keep things simple and try to let people know that we care, I’d personally write an email to each cancelation. When people replied, we’d get good feedback, but the response rate was incredibly low.
Post-cancelation Wufoo form. Not wanting to interfere with the cancelation process itself, we presented an exit interview form on the page that people landed on after canceling. Unsurprisingly, this generated very few results, and moderate value. The form took less than a minute to complete and was entirely on a single page.
Post-cancelation Wufoo form with Starbuck’s gift certificate offer. For a while, we offered $5 Starbuck’s gift cards to encourage people to complete the interview. We designed the page to make it very clear that there was something in it for the customer, and this increased the response rate slightly, but actually lowered the quality of the results. The additional responses were short and uninformative as most just wanted to complete the task to receive the gift card.
Free-form text on the cancelation page. In order to simplify the form and ensure it wasn’t overwhelming, we tried just leaving a free-form text field. This was by far the approach with the worst results. Not only were the response rates low, but the the feedback was generally terse and uninformative.
Checkboxes + free-form text. This approach worked fairly well, but the labeling of the options drastically affected the quality of the feedback. Combine that with the fact that that the text-field was both visually and contextually separate from the options meant that few people did anything more than check a checkbox or two. Also, if people checked several checkboxes, there was no way for us to understand the weighting of each reason.
Personal appeal with radio-buttons and relevant free-form text. This is our current approach, and it has blow the others out of the water both in terms of quantity, almost 100% response rate, and quality, usually at least a couple of sentences of clarification.
Our current option has made the cancelation process a bit longer, but still incredibly short, and the feedback is still entirely optional. Based on my experiences with the afore-mentioned approaches, I believe there are several key facets to our success with this approach.
When using radio buttons and checkboxes, the labels of those options are incredibly important. For instance, an option for “Switched to a different service” is poor for a couple of reasons. If a customer is just trying out your service, they aren’t “switching”. Similarly, they may not be using another service but rather just sticking with a spreadsheet or sticky notes. So, we’ve gone with “Using something else instead.” This applies equally well whether someone is trying Sifter out or has been using it for years.
Another example is “Missing features.” The word ‘features’ is immediately leading them down a path of describing a feature as they see it in their mind rather than describing the goal they want to accomplish. When customers describe features, it often obfuscates their underlying problem, and when you know the underlying problem, there’s often a viable solution that’s just different from what they expected. We currently have an option labeled “Missing functionality,” but I’m considering changing this to “Missing capabilities.” I’m not sure the distinction is worth the tradeoff in clarity.
Minimal Non-overlapping Options
It’s tempting to add dozens of options to the form to provide a way to uniquely organize and classify cancelation reasons, but with too many options, the form becomes intimidating and just encourages people to ignore it and move on. More importantly, when there are a lot of options, you often end up with overlap and folks having a hard time choosing the option that’s the best fit for them. By keeping the options simple and broad, it’s easy for folks to find the option that’s best for them and then clarify their answer in the corresponding text field.
While radio buttons and checkboxes are convenient for customers, by themselves, they provide very little actionable information. For instance, if a customer tells you that they are using something else instead, the only helps if you know why they are using something else. Is it reliability, performance, features, support, ease of use, or something else entirely? Without the additional information, the checkbox itself is almost meaningless.
As a result, we’ve designed the form so that some of the options expand with a single follow-own question designed to solicit the underlying details. This adds a way for them to clarify without overwhelming them up front with a long and complex form. For example, when someone selects “using something else instead,” we followup with “We understand. Sifter isn’t for everyone. Do you mind sharing a little about what you chose and why?” Again, the copywriting plays a huge role here. We’re not just asking for “additional details” or if they could “clarify”. We’re giving them a simple and direct question tied to their decision.
We’ve designed the final step of the cancelation process to be a clean, simple, and very focused page. This has helped remove any possible distraction and enabled us to make it feel less intimidating or demanding and more immediately comprehensible. As a result, the exit interview doesn’t get lost in a sea of competing information.
We’re a small team, and any of this feedback goes directly to me as the founder. However, given experiences with other companies, most people probably expect that the feedback is just going into a black hole of survey results and that it’s just a formality. So, to make sure people know that we care and are listening, we’ve added a short paragraph, photos, and a digitized signature.
It took five years of reading cancelation emails and trying different things to understand a formula that would work for us. There’s still plenty of room for improvement, but the value of the feedback from this approach has been off the charts when compared to the previous efforts. The one tradeoff is that the process is now slightly longer, but so far, that doesn’t seem to bother anybody.
We’re now not only receiving more feedback, but it has all been incredibly useful and insightful. Receiving this actionable feedback while still making it simple and efficient for people to close their account feels like the perfect balance of helping us improve without getting in their way.
“I believe that by redefining time off, by creating space and time off throughout your daily life, the need to run away from your business for a week at a time may become less pressing. By accepting that you may need to do a minimum amount of work each day, you save the stress of wondering what might be waiting for you on your return.”—How Do You Go on Vacation? by Rachel Andrew
MailCatcher is simply a great way to view and test emails in development. Combine it with MailView by 37signals for easy previewing of both HTML and text versions of your emails, and it’s exponentially easier to work on your email content and design.
“Projects usually start by listing out the team’s assumptions. However, they aren’t always labeled as ‘assumptions.’ Instead, they are often labeled as ‘requirements.’”—The Redesign of the Design Process by Jared Spool
I now have a twelve inch scar on each leg that runs from my hip to a few inches above my knee. That’s where they took the skin to save my foot. Twice. After spending three weeks in the hospital, I’ve been home for almost a month, and things are looking up. I still have a few more surgeries in the coming days and months, but they’ll be incredibly minor compared to what I’ve been through so far.
A little over a month ago, I went in to the hospital for my sixth surgery in three months to help me turn the corner with my foot problems. This hasn’t been a series of botched surgeries, but rather a sequence of progressively invasive surgeries and preparatory surgeries that we all would have preferred to avoid. Unfortunately, my foot had other ideas.
This most recent surgery involved removing a large piece of skin along with the underlying vascular tissue from a donor site on my body and using it to cover an exposed wound. Because of the need for vascular tissue, a flap is much more invasive than a skin graft. Once they removed the flap from my thigh, they’d be reconnecting it to a blood vessel in my foot. Then, my thigh would either be closed or need a skin graft to help it heal.
That hospital stay was planned to last 5-7 days, but due to complications, it ended up being three weeks. The initial surgery was scheduled to take 6-8 hours, but due to complications once they got underway, it lasted nine and a half hours. My wife had to wait a full twelve hours until I was out if recovery before she could see me. They were updating her regularly, but it never feels good when a surgery doesn’t go according to plan.
Coming out of the surgery, all I remember is the pain. However, the pain wasn’t from my foot or the first incision. It was from my arms being laid out, palms up, for almost 10 hours without being moved. For the next two days, in addition to recovering from the surgery, I couldn’t extend my arms.
At this point, I was in the ICU where nurses and technicians were monitoring the flap and my vitals every hour. If you’ve never been in an ICU before, people are in and out constantly. Sleep is incredibly difficult to come by, and the days just kind of run together.
Of course, I was also connected to a bevy of monitors. On top of having cords running everywhere, this made matters worse because the monitors had alarms if any of my vitals dropped below a certain threshold. Unfortunately, my resting heart rate is low due to years of playing basketball. Combine that with some narcotics for pain, and as soon as I fell asleep, my heart rate would be low enough to trigger the alarm. So, even when I did manage to fall asleep, the alarm would immediately wake me back up.
I was told that flaps rarely fail after 48 hours. Unfortunately for me, right around 48 hours, my first flap started showing signs of failing. We gave it another day to declare itself, and I went in for my second surgery. This time, the flap came from my good leg. Like the first surgery, this one went long as well, and I was under for 9 hours again. The worst part of this is that this was the leg I used to get around. It would be over a week before I could put any weight on it again.
It turns out that being in ICU is a lot to handle. The pain, narcotics, and lack of sleep or even getting out of bed add up. As a result, I had a run-in with a bit of anxiety. I’m not really sure why, but apparently it’s common enough that the doctors and nurses took it in stride. In hindsight, I guess being stuck in a bed in a hospital room after two invasive surgeries and without sleep for a few days takes more of a toll than I expected.
After a week in ICU, it was time to be moved to a normal hospital room. I believe it was around this time that we moved to checks every two hours instead of every hour. Eventually we went to every four hours as the second flap looked like it was going to make it. Of course, I still had to get a blood thinning shot every morning at 5am, so sleep was still a luxury to some degree.
After a day or two in the normal hospital room, we wanted to try and get me from my bed to a chair, a simple enough task. However, when both legs and one of your feet are really beat up and you have a drain attached to each leg wound, this isn’t an easy task. While I expected it to be challenging, I wasn’t even remotely ready for the shot of pain in my leg when I put weight on it for the first time in over a week. That pain would linger for the next week or so and make getting out of bed really rough, but I had to do it.
After about a week in my normal hospital room, we began the process of dangling my foot. With a flap relocated and connected to a new blood source, it’s key to make sure that blood is flowing alright so that the flap doesn’t die. Given the fact that I was on my second flap, we were really conservative. The first time that I lowered my foot, it lasted for about thirty seconds before we decided to raise it again.
Over the course of the next week, the process increased in duration and frequency. The goal was to get my foot to being comfortable being down for 25-30 minutes at a time. It started slowly, but then we were increasing it by about 5 minutes each day.
During this process, I also began walking again with the assistance of a walker and a physical therapist to make sure I didn’t fall over. Being in bed for two weeks with a couple of surgeries and a beat up “good” leg make hopping along in a walker a challenge. I was still only weight bearing on one foot, and my upper body was weaker as well. So, going even 10 feet was a challenge at first. Eventually, I was able to make a lap around the entire floor with just a single break.
Spending three weeks in the hospital was unexpected and challenging, but the staff at UT Southwestern blew me away. Every single person that I met was incredible. Patient. Kind. Helpful. Understanding. I can’t explain just how much they helped me get through this and back on my feet. (Back on my foot?)
All in all, it’s been an incredibly long journey, and one that’s not over yet. With seven surgeries down and at least two more to go, I’m not out of the woods just yet. Thankfully, the worst of it is behind me, and I’ll hopefully be walking unassisted again in the next couple of months. My legs have healed to the point where I barely notice the wounds on my thighs, and I’m back to using crutches and even putting a little weight on my bad foot.
So here’s to hoping the upcoming (minor) surgeries and physical therapy go smoothly and that this whole experience is just a blip on the radar of life by the middle of 2014.
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.
Financial Security Risk/Reward
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.
Time & Relationships Risk/Reward
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 when 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.
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.
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.
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.
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.
PDF, epub, etc.
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.
Planning the Content
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.
The Vendor List
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.
Some Random Thoughts
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.