The full stack for a web application can be rather overwhelming, but it’s not quite as bad as you might think. If you look at this list knowing only a small portion of the items, it can be incredibly intimidating. Really, though, it’s an incremental learning process. You learn a little something new every day, and before you know it, you’re having fascinating conversations with really smart people. (I’ve only listed the pieces involved in Sifter. Every app is different, but this is a good representation of the pieces of a web application.)
You don’t necessarily need to be an expert on all of these topics, but the more you know, the easier it is to talk and enlist the help of those that are experts.
Adam provides a peek behind the curtain at one of the changes we’ve made to our process to improve the overall quality of Sifter underneath the hood. The more we quantify quality, the easier it is to constantly work to improve it.
Whenever a business shuts down, it seems there are many that are quick to ask, “Why not sell it or open source it?” It’s never that easy, and this explanation from Wildbit does a great job explaining why selling is easier said than done as well as why open sourcing it isn’t always practical.
It used to be a job, a responsibility, and a livelihood. The moment we launched, shit got serious. I stopped dreaming and started responding. To customer feedback. Feature requests. Complaints. Cancellations. It stopped being a dream come true and started just being a job. Granted, it was still the most emotional connection that I had ever felt with a job, but it wasn’t what I envisioned.
I began to be less ambitious; more scared. I focused on what was safe, not so much easy, but safe. Time after time, I’d start a new code branch for something ambitious. I’d make great progress, but then I’d stop and think about the complaints that we’d get for changing. That’s all I saw was the complaints. I stopped having the ability to envision the happy people. Happy people don’t email you. The unhappy ones do. Do they ever.
During that time, I was collecting ideas and suggestions from customers and refining my thoughts quietly working late into the night designing. Really, I was hiding. I was hiding from making mediocre but important changes. Eventually I realized that if I think one of Sifter’s features sucks, our customers probably do to. If I think I can make it better, and I like it, chances are they will too. It seems so obvious after the fact, but it’s difficult to see in the moment.
The momentum from this has been something else. It’s fun again, and it’s because I quit being scared. Now, all I do is ship. Every day Sifter gets a little better and hopefully makes it a little easier for people to enjoy their work too. That’s all I ever wanted. Unfortunately, it took some time to realize it, let alone to have the guts to actually do it.
A few weeks ago, we released a significant update to Sifter. (Rails 3, Ruby 1.9, and a bevy of associated gems and other components in case you’re curious about such things.) Since then, there have only been a few fleeting moments of peace and quiet. My Pavlovian response to the email alerts has gotten a bit out of hand.
The first couple of weeks after the release I felt physically ill due to the extended hours and the pressure I was placing on myself. You see, it’s simply not possible for anyone to be harder on me than I am. That’s both good and bad. Maybe more bad than good. Anyhow, it was a little bumpy. From obscure encoding bugs to even more obscure performance bugs, (you know, the kind that only show up in production) it’s been a wild ride.
More often than not, going to bed only crossed my mind when I recognized that being at the keyboard would likely do more harm than good. Of course, most nights, going to bed didn’t equate to getting sleep. There were just enough emails to prevent any deep restful sleep. There were rarely any that required immediate attention, but I wasn’t taking chances.
I’ve never worked so hard or been more physically exhausted by work in my life, but do you know what the crazy part is? Despite that exhaustion, I’ve never been more excited or anxious to get to work. The boring part is done. Now it’s just about delighting our customers with long overdue improvements. I know I need to catch up on sleep, but now I don’t care. I don’t want a break. I just want to ship things and make people happy. Nonetheless, I’m going to take a break tomorrow. Or maybe the next day. We’ll see.
We spent the last 6 months doing hard work that isn’t fun or directly visible to customers. It just had to be done. It sucked. Building this foundation has been the hardest, most involved work with which I’ve ever been involved, and nothing has ever pushed me so far outside of my comfort zone. Conveniently enough, my daughter is 6 months old as well. Put the two together, and well, you can probably guess what kind of a ride it has been. Thankfully, it looks like the most challenging days are behind us, and we’re ready get back to making a product rather than managing a business.
Team We have awesome people on retainer to help with necessary but distracting things like bookkeeping, accounting, legal, system administration, and more. We also have enough profit to bring in some additional help from time to time so we can work with great people on fun stuff.
Technology We have the technical infrastructure in place to serve more requests than ever with our fastest response times ever, and we’ve just barely dipped our toes into performance tuning. We can also quickly and easily scale that infrastructure as we grow. Our other internal processes are running more smoothly than ever. We’ve refactored and improved significant amounts of code so that we’re running the latest and greatest with the most flexibility to adapt going forward.
Knowledge We have three years of interacting with real people using Sifter and offering great feedback and insight to how they use it. Those conversations have helped us create a crystal clear vision for where to take Sifter from here. We’ve also been able to observe how people really use Sifter. We have a clear understanding of which features see the most use and which features we could probably live without. I can’t put into words how excited I am to do something with all of this accumulated knowledge.
With Sifter, all I ever wanted was to build something that made people happy and have fun doing it. In some ways we’ve succeeded, but it’s been significantly more challenging than I ever anticipated. In four years, all we’ve really managed to do is build a business that can afford to let me turn Sifter into the product I always envisioned. This is just my way of drawing a line in the sand to say this is the week that we turned the corner. Check back in with me at the end of the year to see if we pulled it off.
Just a random thought. As a solo founder, my time is our scarcest commodity. Making sure that I have free time and minimal interruptions has become one of my highest priorities, and it’s paying off. Some of the best investments I’ve made in Sifter are the things that keep me free to focus on the product. It seems obvious to me now, but the following guidelines have all evolved organically as Sifter has grown and become more demanding on my time.
For instance, I’ve built an iPhone-optimized administration tool that lets me quickly and easily look up accounts, renew trials, and do a handful of other tasks that I do every day. More importantly, I can do it all on the go. No sense in making someone wait until I’m at a computer if I can renew their trial in two clicks from my phone. For the times when I am at my desk, I have a handful of Alfred shortcuts and snippets that help me respond to support requests even faster.
Lately, I’ve been reading biographies and stories by athletes, business people, and politicians. The one attribute common to all of them is tenacity on a level that most of us can’t even imagine. The problem is that on the surface, we only see the success. We don’t see the work that went into achieving the success. We see the culmination rather than the 10 or even 20 years that went into getting there.
The hours they put in. The family events they missed. The vacations cut short. The travel. The times they were borderline bankrupt. The career-ending injuries that didn’t end their career. The nights they were homeless. The amount of bet-the-company decisions they made. The uncertainty they live through. The fear of letting down hundreds or thousands of employees. The mornings of waking up at 5am and practicing in freezing cold weather. The way they overcame abuse. The countless minimum wage jobs and years of working their way up. The countless hours spent honing their craft.
They did the things that most would consider crazy. They pushed themselves harder and farther without any guarantees. They stuck with it when they shouldn’t have. They just kept going. I’m not sure if that’s good or bad, but I do believe it’s the main reason for their success.
A great example of how perceived “improvements” aren’t always that. Larger screens for mobile devices certainly have their benefits, but as with anything, there are tradeoffs.
Great design helps because it makes life a little less complex. When you are having a rough day the last thing you want to worry about is how to use your computer. When you travel you want the signs giving you directions to be clearly marked and informative. When ordering from a menu at a restaurant you don’t want to be confused as to what is actually food and what is decoration. — Drawar
Where I work on Sifter. You know, if you’re into this sort of thing. I’m using a GeekDesk these days and switching back and forth between sitting and standing depending on the type of work I’m doing and how I’m feeling that day.
Ironic that Carfax’s marketing implies dealerships are shady when Carfax isn’t exactly straightforward themselves. Check the location of the “please don’t spam me” checkbox. Of course, selecting it by default is bad, but this placement is just downright sneaky. Also worth noting, I unchecked it and they sent the spam anyways.
Speaker Deck is brand new clutter-free way to share your slides from presentations. I suggest that you use it.
After the recent presentation, I was surprised how many questions I heard about our choice of business model or application. There also seems to be no shortage of people debating between native mobile and web applications. For me, there are a variety of reasons that I chose a hosted web application and why I’d make the same choice today.
There are downsides to our choice as well. For instance, with a hosted web app, if Sifter goes down, all of our customers are affected. Similarly, we have full responsibility for managing data and performance. The upside is that with a few exceptions, all of this is completely under our control. I’d much rather have risks that we can control than be facing unknowns that we can’t control. i.e. The App Store. That’s not to say the App Store is bad, but given all of our other considerations, I’d rather avoid the associated challenges there.
Bootstrapping a Software Product -
The slides from a presentation that I gave at Refresh Dallas last night. It goes over the lessons learned through both the good and bad decisions that we feel we’ve made while bootstrapping Sifter.