I’m in love with this article about meetups to repair broken goods. Working on Sifter and pouring myself into it has bred a fascination with tools, manual labor, and vintage goods. Things used to be built for longevity. Design was simpler and more timeless. It was practical. It was possible to repair things.
These days, with more advanced technology and circuitry and the speed with which companies make improvements to their products, the cost of replacing something is generally lower than the cost of repairing it. Add to that the benefit of gaining new benefits from the upgrade, and we’re throwing away a lot of stuff.
It doesn’t have to be that way. Part of this is about sustainability. Part of it is about a return to working with our hands on something other than a keyboard, and, in this case, part of it is about community. These efforts are powerful and practical on so many levels that it’s hard not to fall in love with it.
We’re rolling out a new identity for Sifter, and while I couldn’t be happier with it, part of me worries about how superficial it may seem from the outside. Reading countless corporate-speak press releases over the years about new logos “synergizing and representing the cohesive nature of the profitable vision for the future” has made me jaded to such seemingly contrived drivel.
That said, while it’s meaningful to us, it’s really more of a drop in the bucket relative to what’s really happening with Sifter. We’re working like mad on several fronts. For those on the outside, Sifter probably seems like a barely evolving app, and until the last couple of months, that’s a very reasonable perception because we’ve been doing an incredible amount of operations work.
So, to an outsider, it’s just another silly logo change, but as an insider, I can definitely say that it’s much bigger than that. We’re picking up steam, and the way I see it, the current version of Sifter is simply funding the real version that I’ve always wanted to build. It’s enabling us to put the time and care into the details that we always wanted to. There won’t be a single moment that defines the “new” Sifter, though. It’s just going to continue being an evolution towards our now crystal clear internal vision of what Sifter should be.
I’m self-employed. One might think that means that I’m my own boss, but it doesn’t really work like that. I don’t have a boss. I have dozens; only I call them customers. Now, these great folks aren’t technically my boss, but they influence our priorities and my schedule more than anyone else.
In general it’s not bad, but the catch is that they all have different priorities. With each, the needs are legitimate. The requests are reasonable, but they only have their own context within which to judge us. Add a feature that helps dozens of other customers? Doesn’t matter. They need their request addressed yesterday.
Now, I’m not complaining. It’s a great problem to have. Lots of customers providing lots of feedback? That’s awesome. However, it redefines the phrases “being pulled in too many directions” and “being stretched thin”. If you think it’s tough to find uninterrupted time to write code with one boss checking in on you constantly, try dozens. Now imagine them all with competing, often conflicting priorities. Oh, and they all rely on your product day-in and day-out.
For better and worse, the alternative to having a boss isn’t not having a boss, it’s having many bosses. It’s not a bad thing, but it does create a new set of challenges.
Since day one, I’ve always felt like I was behind. I was moving too slow. I could never catch up. Our customers wanted, even needed, improvements. I rushed and hurried and worried. I bounced around from this enhancement to that. I got away from exploring ideas and just built the first solution that came to mind. It got the job done, but deep down, I was usually disappointed with the results.
I thought that was how it worked. Everything needed to be done yesterday. I didn’t necessarily work absurd hours, but I didn’t slow down and really take my time to find a great solution. I just raced to get it out the door so I could get to the next thing on the list. I couldn’t keep up with the ideas and requests that thousands of users inevitably generate. Even today, I still struggle with this. I want to make it easier for them to work, so I worry and hurry.
As it turns out, learning to let go and take my time has been a powerful lesson. Improvements are no longer a race where I start out two laps behind. They’re a journey where I’m exploring to find the best solution; not the quickest. I’m measuring success in days or weeks instead of hours. Writing code is fun again. That fun is inevitably translating into a better Sifter for our customers. That was the whole point in the first place, right?
Matt Haughey: Lessons from a 40 year old -
Lot’s of personal and work-related wisdom contained here. Really just a great talk if you’re even remotely interested in what life is like bootstrapping a business.
(Source: twitter.com)
A friend said this reminded him of me. I’m not quite sure how to interpret that.
Last night around 2:30, I woke up to the piercing sound of house alarm going off. I sprinted to Lauren and Bella, who were sleeping in the other room in an attempt to help Bella sleep better. Once I was sure they were alright and hadn’t triggered the alarm, we flipped on the lights and started to collect ourselves.
We made sure nobody was actually in the house, and then went to determine what tripped the alarm. It was one of the front doors. The main front-door is locked and untouched, so it has to be the door to the garage. It’s shut, but we never lock it. I go out there to check, and the garage door is open. That’s weird. (Side note: Our garage doors won’t trigger an alarm, only the doors/windows into the house.)
I look around the garage thinking maybe we left the garage door open and an animal had walked in. I knew I had closed it, but that seemed the most likely scenario. Then I notice a bunch of cans of wood stain and other things that looked to have been kicked over by someone who was in a hurry to get out. I wasn’t 100% sure that was the case, but it sure seemed like it.
This all seems really weird. Lauren thinks to look in the fridge, and about a twelve-pack worth of beer is gone along with a couple of bottles of Champagne. Clearly, someone had been in our garage, so we head back inside to call the police.
Almost immediately an officer is driving down our street with their headlights off. At this point, I go outside to check out the garage doors. Lauren suggests checking her car, which ended up being unlocked. Someone had clearly been in there and looked through everything. That’s when we see the garage door opener and realized how they got in the garage.
The local police were great. There were three officers almost immediately, and a fourth showed up later to fingerprint. They believe they’ve caught the guy but are still collecting/sorting through evidence. Thankfully, everyone is alright, and the only loss was some sleep and peace of mind.
Anyhow, based on what we learned last night, I thought it would be helpful to share the things that we did wrong that enabled him to get as far as he did.
Lauren’s car was unlocked in the driveway. This is an obvious oversight, but less so due to the fact that she’s usually distracted when getting our daughter in and out of the car, so it’s easy to forget. This meant he had access to a garage door opener and got into the garage without any problems as our garage doors aren’t alarmed. The officers advised us to never leave garage door openers in the car and said that they see this frequently. It makes sense in retrospect, but isn’t something we had ever thought about before.
Our garage doors have a “Lock” button that will prevent them from being opened. We weren’t using those locks. We will now. A friend also mentioned that they have a light switch that kills power to the garage door opener. That’s probably just as effective.
We have never locked the house door to the garage because we always felt like the garage doors did that job. Again, that’s wrong in hindsight, but we never felt like we had a reason to be that concerned until now.
In our case, this was the key part. Once he opened the door to the house, the alarm went off immediately, and based on the things knocked over in the garage, it was clear he was trying to leave in a hurry. Every now and then, we used to forget to arm it at night because we were too focused on bedtime for Bella. It was easy to get tired and forget it. Had we not armed it last night, the story could have ended very differently.
Of course, the chance of this happening to anyone else is pretty slim, but most of these things are simple enough and would serve as enough of a deterrent in many cases. It’s a really weird feeling to be woken up in the middle of the night by your alarm and think that someone tried to get into your house while you were sleeping. Hopefully this will help some other folks from ever having to experience that.
A great reminder. Thanks, Des, for the reminder and for putting this online in a handy way.
In basketball, and probably many other sports, you always want to finish strong. That is, you don’t want to waste all of your energy getting to the hoop and then not make your layup. Often, it’s so easy to caught up in the first part, it’s easy to lose focus or let up in that last second when it really matters.
I’ve found that same problem when trying to ship software. Even with short cycle of one of two weeks, there’s a constant struggle between finishing strong and shipping. There’s usually a few more bits of polish that I want to add and really finish it off, but at the same time, I’m dying to ship it and keep the momentum going.
Ultimately, it’s probably a good struggle, but it feels like deep-down quality really comes from finding a way to do both. That’s a more difficult struggle, but one that I’m starting to lean into. We’ll see how it goes.
Given some preparation and calibration, you can bake the same cake from the same recipe the same way every time. But a business is not a cake – not even a cake-making business. You can retrofit “success factors” to businesses that made it big, but you can’t then reapply those factors to another business and expect the same results. Every new business is an experiment with too many variables to possibly control for: the concept, the execution, the stability of the people working on it, market forces, political turmoil, the weather, and on and on. — On Business Madness (via therealadam)
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.