The Sidecar That Never Was
Five months ago I made a decision to no longer pursue one of my dreams from a few years ago. The decision stung. It wasn't an easy one to make. But as I write this five months postmortem, I am confident it was the right decision.
In short, after years of dreaming, planning and coding, I realized that pulling off a CMS add-on business — at the quality I wanted — would severely hurt Focus Lab. It would be profitable, no doubt. But it would also take away from our client services which we're quite passionate about. That was all I needed to realize to justify no longer pursuing the dream.
I wrote my first ExpressionEngine add-on about four years ago. Initially I was simply solving problems I came across in client projects. It didn't take long for me to really enjoy this aspect of EE development.
To get better faster I started seeking out people in the EE forums who had problems of their own to solve. I would see if an add-on could be written to solve the problem and then I would go to work. If it was a simple enough solution, I would just upload the add-on to the forums and confirm that it's what they needed. I get a lot of joy out of helping people. This was the catalyst to my interest in starting an EE add-on shop someday.
At the time, there were only a handful of people or teams actively creating and distributing EE add-ons. The market was fairly small and the competition even smaller. Focus Lab was comprised of just Bill and myself, both still working full-time jobs. I saw add-on development as a natural and obvious way to generate revenue for the company. So I continued on helping people, writing about add-on development and learning everything I could about it.
Around Fall of 2009 I worked on a short list of add-ons we could start with. I wanted to make this part of my business, so some revenue would need to be involved. The plan was to have some free add-ons and some commercial ones as well. I had a working list of ideas and started writing code.
As I came closer to "1.0" for a few add-ons I knew it was time to plan out the distributing and selling of the software. That's when I turned to the wonderful community for input. I wrote a blog post aimed toward discussion about pricing for these add-ons. I was ecstatic when many of the existing commercial add-on developers chimed in with feedback about their experiences. I sat on the feedback for a few weeks and then wrote about my pricing model intentions.
My pricing model had been determined. I was near complete with a number of add-ons. Only the small details remained. I needed to build a website that sold, distributed and supported the software.
Holy crap. That's a lot of work.
Now, the young whippersnappers in the EE world are probably thinking, "So what. Just use devot:ee."
At the time of these decisions, devot:ee was only an archive of EE add-ons and some articles. The store aspect hadn't been developed. The EE market didn't even have many options for ecommerce. This all pre-dates Carthrob, BrilliantRetail and Store. Solution for selling: roll my own. Not ideal.
Due to the amount of work required to getting that up and running, I decided that the timing simply wasn't right. I had a baby at home and would much rather enjoy time with her than moonlighting to build the support and payment pieces to selling add-ons.
Fast forward to May 2010 and devot:ee announces they'll provide the ability for any add-on developer to sell add-ons through the site. That's fantastic news for people like me. But there's a problem.
Just one month prior I quit my day job to officially launch Focus Lab. I had to spend all of my time on things that I knew would generate revenue. In addition, EE was painfully and slowly making the transition from 1.x to 2.x. If we were going to launch an add-on arm I wanted to only feel obligated to support EE 2.x so I felt the time just wasn't right.
I continued to focus on client work with the strategy of letting EE 2.x settle in the community a bit before launching the Focus add-ons.
A little over a year later things were smoothing out in the EE marketplace. The EE1 to EE2 upgrade process was less daunting and happening more and more. It seemed like a good time to start thinking about selling add-ons once more. I revisited my earlier add-on list, scrapped a few ideas and added a few more. I had a new working list and started spending spare time on the add-ons. Add-ons included things like a handy developer toolbar for the front and backend, a client-friendly URL redirect manager, a full CRUD Restful API layer for EE and a few others.
At this point Focus had a few more people on the team so I got everyone on board. In order to prevent diluting and segmenting the Focus Lab brand we needed separate branding for the new venture. This would include a website for operation. With that our design team hopped on board and we started planning.
We landed on the name Sidecar. Sidecar, like all other businesses, would be limited by the size and quality of the market it serves. In my early days I intended for this to specifically be the ExpressionEngine market.
However, over time and after consideration, we planned to not only serve EE, but also other markets such as Statamic, Craft etc. Sidecar would be our home for add-ons, training materials, books and more. It would be the sidecar to Focus Lab's client services.
And it still may be. Some day.
Evaluating the Market
There were a few questions I looked at while planning Sidecar's business. The biggest of which was our market and how to sell to it. The most obvious concern was how to support the software and not allow the cost of support to kill us financially.
At this point everyone in the EE world was selling a license for anywhere from $10 to $100 and support just came with the purchase. This seemed unsustainable so my plan was to sell the two separately. The license would cost $X and support would be some type of recurring cost model based on the amount of support a customer needed. Interestingly enough, EllisLab announced that type of model not long after. This supported my view of the unsustainable model.
The goal for Sidecar was to be the best in the market. We wanted the best add-on website. The best brand. The best support structure. The best release testing. The best experience. Simply, the best.
The EE add-on market was much more saturated by this point. There was more competition but it honestly didn't worry me. Rather, it excited me. I knew that with more competition we would shine that much brighter if we really could pull off being the best. I knew we had the team for it, so my confidence was high.
I should have done the numbers sooner. The numbers could have saved me a lot of time and energy. I've had this dream for years though, so I was sold internally on making it happen. Finally, at the end of last year I started looking at the important math.
The numbers are speculative but necessary. Here are some areas I was doing math in:
- Pricing potential (what's the highest price a typical purchaser is ready to pay for each add-on; same question about support)
- Cost of customer acquisition
- Upfront investment (mainly just time)
- Cost of support delivery
- Cost of continual development and competing
After reviewing everything I realized the opportunity cost was exceptionally higher than the probable revenue from Sidecar. Focus Lab is too small, too young and way too interested in maintaining an exceptional level of quality with client services. Starting this add-on arm was possible, but only at the expense of our current services. That was unacceptable.
After this realization I talked it over with Bill. He agreed on all points so I sent the following email to the whole team in early January this year.
Bill and I have a Sidecar update for the whole team. I'd like for you to read this in full but the short of it is that we're canning the project as a whole. I want you to know why though. Here's the info:
Why create Sidecar?
I've always loved building add-ons for EE. For years I've wanted to get into that market because I like to build software. I've built dozens of EE add-ons that help people get things done and it's a great feeling. I always wanted to sell them at some point, but I recognized the big responsibility (and hassle) that support would be. It never made financial (and thus business) sense to start selling the add-ons with support attached.
After a lot of thinking and interviewing of other commercial add-on developers (P&T, Solspace & other long-timers / big dogs in the market) I landed on charging for support. This was a solid direction that we were pleased with so we proceeded with the model and started branding the name Sidecar.
Setting our bar high
The only way I was willing to launch Sidecar was as "the best" in the market. That would mean having the best brand, best website, best documentation, best support experience etc. I have confidence that we could absolutely reach the bar we'd be setting high for ourselves. And our customers would love us for it. However, in order to be the best we would have to invest like we want to be the best.
Being the best at product support would mean setting up a near 24-7 support window. With timezones and our culture's (and industry's) current work habits/trends we would need "around the clock" response times in a sense. (Again, we're talking about being the best here.) Well, there's a problem with that.
Clash with work philosophy
I'm working to build Focus as a company that supports each of our lives. Not something that demands anyone be "on call" for any given reason. Building Sidecar in the way I think customers deserve would require building a team and structure that I'm currently not okay with. We're too small for that right now. Perhaps if we have a few more folks on board this would be easier to swallow. But right now we're basically EST people and I want to honor and respect everyone's schedule today.
The alternative is to acquire an existing add-on developer and his add-ons. I considered this as a possibility and even started drafting an email. That scenario would consist of us making an offer to buy out the add-ons of someone already working in these hours and then have them as a part of the Focus team. At the end of the day, though, that would still require a lot of time and investment with little to no return for a little while. Not a good move for the time being.
Ultimately I think Sidecar would segment our already-small team and slow us down from providing even better service to our branding and dev clients. With Sidecar out of the way we can make 2013 an even more amazing year for these projects and devote the time needed to our big goal of producing our branding book.
Thoughts or questions?
Let me know if you have any feedback on the project. Thanks for the role you played in brainstorming, designing and helping create the vision for Sidecar. You guys rock!
Laid to rest
The add-on arm was officially laid to rest. We archived the project and haven't looked back. Our client services have continued to thrive and we're all the better for it. The Sidecar brand may be revived someday, but likely not as an add-on arm.
I've had an idea for a while to do a series of posts describing the mechanics of what we do at Focus Lab. Not a series about our craft or techniques, but instead about what keeps our engine running, how we change the oil and what type of oil we use. This will be the first post in a scattered series entitled “How We Roll.”
To kick things off, I want to talk briefly about nurturing an appreciation and appetite for learning. We believe at our very core that, as individuals and as a team, we're never done learning in life. As such, we strive to create an environment where that's encouraged and demonstrated regularly.
“I've never let my school interfere with my education.”Mark Twain
The irony in this educational emphasis is that I'm a college dropout. I spent about three semesters in college and decided it wasn't for me at the time. I didn’t like the way I was being taught, and I wanted to learn things I was interested in and at my own pace. I also wanted to have more hours in the week to work so I could get married and afford to pay the bills.
Both of my parents were teachers, as is my older sister and her husband. You get the idea. Coming from a family of teachers made the dropout conversation a bit awkward. "Hey Mom and Dad. I kinda wanna drop out of college."
Oh, and did I mention that I was majoring in Music Education? Yea, I wanted to be a teacher myself. Oh, the irony. But don't worry, Mom. I'm in good company.
I soon learned that I could be a teacher regardless of the context. Some of the world’s best teachers are experienced grandparents, good friends and sometimes even young children. Lessons are all around us; we just need to watch for them and be ready to receive them.
So how do we encourage continual learning at Focus Lab? A few ways.
I mentioned I like to learn on my own terms. This has led us to build a library at Focus Lab. We started last year, and encourage everyone on our team to be aware of what we have so they can read from it whenever they want. We're a mixture of on-site and remote workers so we maintain a spreadsheet of the books accessible to the team. Our current office doesn't really have room for the books so they stay in my home office occupying a few shelves on one of our bookcases. The books range from technical and design fundamentals to biographies to business and personal behavior studies.
Personally, I'm aiming to read about two books per month this year. I'm doing both traditional and audio books. There is so much to learn from others' experiences and thoughts. I really like learning from these books, but more so from discussions with others who've read similar texts.
Books certainly aren't the only source of learning though. We also see a lot of great content published to blogs on the web. I have a seemingly endless backlog of links saved to Instapaper that I read from time to time. Some of our team members also use similar services to bookmark things to read later in an effort to learn something new, challenge a current methodology or spark a new idea.
I have a lot of fun when we, as a team, have the opportunity to collectively read an article or watch a video somewhere and discuss what we've learned. Sometimes we learn about a new process we can try on the project management side. Sometimes we learn about a new way to debug code we write. Sometimes we learn new ways to use certain Photoshop or Illustrator tools. Sometimes we simply learn how other companies solve similar problems and just talk through them. It doesn't matter if we do exactly what an article suggests, the discussion is the most important part of this process as a group. The discussion can be the catalyst to change when necessary.
There is a lot of great content out there on the web. People share wonderful and insightful ideas all the time. Learn from them!
The final area of learning I want to talk about is somewhat of an inward focus. There is a lot of value in writing down ideas in long form. I try to spend a fair amount of time thinking about the "why" behind things that we do. Without a solid purpose behind our actions, we're simply checking items off a to-do list for the sake of checking off boxes. We want to think about the "why" as often as possible. A great way to do this is to explain something to yourself in writing.
I discovered the value of this while living and breathing code early in my development days. In the early 2000s I was spending quite a bit of time working in Flash. I spent a lot of time on the flashkit.com message board and eventually was even a moderator in a couple of the forums. It was there that I learned the value of explaining a problem when I was stuck in rut.
There was a pattern behind it all. I would hit a wall in Actionscript or something else in Flash and I would crack open my books to see if I could find an answer under my one or two word topic. I would search the web for others solving the same problem, again using the same one or two words. I would similarly search the Flash Kit forums. After no results I'd start a new thread looking for help.
It was through the process of describing the problem and how I got there that I would realize my approach to finding the solution was flawed. A paragraph or two into writing, I often found myself thinking, "Wow. I really shouldn't be doing it this way." or "Did I seriously overwrite that object's value?" I probably didn’t submit a third of the forum threads I started because I solved my own problem through the exercise of writing it out.
Similarly, writing about business processes or ideas helps bring out the "why" of what we're doing. I'm willing to bet that as I write more posts in this series of "How we roll," I'll realize that some of the things we do can be tweaked and improved. There have been times where I wrote a technical article and then realized I could have coded cleaner or better.
Writing encourages self-reflection and learning. We encourage this practice within our team. Throughout this year you'll see various members of our team writing about things we do. Most of the time it's a fairly selfish effort. We want to learn from these reflective opportunities. We also want to learn from the discussions that publishing these reflections ignites.
This college dropout loves to learn. Whether from books and podcasts, interviews and self-reflection or even children and grandparents, I appreciate the many sources for learning that exist. I encourage you to seek them out and consume as much information as you can.
To turn the table in my previously mentioned selfish fashion, I want to learn from you now. How do you push yourself to continue learning?
Lately I've been thinking about where Focus is today compared to where we started from. After going through some old emails, I thought it would be fun to share my first contact with Bill along with how we got the Focus ball rolling.
It started when I found his freelancing website ("Ideal Design" was the original name). He was looking for some Flash help here in the Savannah area. I was working three jobs at the time: Retail Jewelry, Worship Leader (church music) and freelance web work ("Designs by Erik", if you can believe that). I contacted Bill in early December of 2006. In then-typical Bill fashion, he replied a couple of weeks later not really knowing how long ago I'd emailed him. Here's a snippet of the conversation. Emails have not been edited.
Bill first email:
You may not remember but you emailed me a couple months ago about job openings.
I am currently looking for someone who is very knowledgeable in Flash and other web programming.
Please let me know if you are familiar enough to build complete sites on Flash or just intros etc.
Look forward to hearing from you.
Good to hear from you. I've been working with flash on and off since version 4 and have loved it the whole time. I've done simple animated intros with almost no programming involved to entirely dynamic flash sites (most recently using flashCMS by Flash Loaded). Since I do not use Flash regularly it's not the fastest thing I do. On top of that, I'm extremely busy right now with working fulltime at Helzberg Diamonds in the Oglethorpe Mall and also leading worship at Live Oak Community Church. The only work I can offer with a decent time frame attached right now is html/css/php/etc. Flash would need more time than I have. If your deadlines aren't around the corner then I'd be happy to work with you. But if it's something you need very soon then I'm afraid I may not be the best help. The Christmas season in retail is insane! Let me know what I can do, if anything. Hope to talk with you soon. :)
I am still interested in having you take on html/css/php jobs if you feel that you have time. I have so many clients that its hard to keep them all happy. I have a ton of print work as well as Web jobs going right now. If you are willing to take on a job or two that would be great. The first job I have is not that bad. Its for a local famous artist who wants have his site redesigned. It will feature about 10-20 of his paintings with brief descriptions and purchase links to his email. A small background song and that’s it. Preferably build with the option for him to sign in a upload new paintings or remove old ones. If you have or know of any php already built for that, and you can just customize to what we need then that’s fine to. I have other jobs as well but I know you are busy. If you are interested let me know. We can meet up and go over stuff. Ultimately I will be looking for a Web designer so I can handle all the Print and Photography. Let me know how this may suit you...
I'd love to help out. I am actually putting the finishing touches on a photo gallery script I've been working on for 2 clients. It's a gallery I plan to use with future clients as well. I took a free photo gallery script I found online and tweaked it a bit. I also have a CMS that I tweaked a lot for my clients. It was also a free news blog that I just turned into a CMS. I'm may end up writing the gallery into the CMS but who knows. Anyways, let me tell you my schedule for the next week so you have something to look at to plan to possibly meet. My schedule is weird because of working in the mall so here we go:
I don't have my schedule for work beyond that but I will have it soon. If you'd like to get together somewhere in there just let me know when and where. If you'd ever care to give me a call you can reach me at [redacted]. Looking forward to meeting with you.
In the conversation above, we scheduled our first meeting of the minds which was at a local Applebee's over dinner. We talked about the project Bill had in mind, but in the process also talked about our respective dreams. I wanted to run a business someday and Bill wanted to build up what he had. We were both working multiple jobs to get by and busting our butts with the hopes that one day our freelancing gigs could be something bigger. Bill and I saw some convergence in these dreams.
By the end of that first meeting, Bill proposed we just tackle this business thing together — as partners. I was quite shocked considering I was just there to get some more freelance work at the time. Regardless, I said I'd consider it and I liked the initial sound of it. Later that week we decided to join forces. The next month, at the beginning of 2007, we started working together.
Structure and Sustainability
In our early days, Bill and I both had other jobs so we simply worked on our client projects whenever we could. We rarely met in person, despite being in the same city. It was difficult with my schedule across three jobs; and his job was literally 45 minutes from any of my jobs. So we just emailed and IMed back and forth.
Bill and I had existing client bases by the time we met so we just worked from that. You may have caught this in his emails above, but his goal was to relinquish the web design duties so he could focus on print design and photography. Oh, how times have changed.
When we met, Bill was charging about $10 per hour more than I was. With our first unified project we bumped our rate up to account for the added value of two heads versus one. Perhaps it was just our own perceived value at the time. While digging through old emails for this post, I found one of our first project invoices where we both did the work for the whole thing. The project started two months after we met and was 100% Flash work. Here's a snippet from the invoice:
We will be creating and modifying a full flash website and introduction to [domain name]. Along with this new flash site will be the availability for users to register for events and pay for them online.
The project spanned a few months and the total cost to the client was next to nothing. It didn’t take long for us to realize that our pricing was far too low to support our goal of doing this full time. We didn’t have a sustainable model and we had to change something.
But how do we make more money? Is it new prices? New services? New clients? These are questions were were starting to ask ourselves regularly. (Later we realized the better question was about profit, not revenue.) Little did we know how important those questions were and how much the answers would shape Focus Lab’s future. In a future article I’ll go into more detail on how we slowly answered those questions.
Most people reading this blog know of Bill Kenney's philosophy of simplicity in design. He has a particular style that follow's writer Antoine de Saint-Exupéry's quote, "It seems that perfection is reached not when there is nothing left to add, but when there is nothing left to take away." Suffice it to say Bill didn't start his design career that way.
Here are some screenshots of the amazing work from our early days:
The code behind most of these projects is jumbled up PHP 4.x with a variety of CMSs powering the sites. This was also a time of everyone validating everything so we had the usual suspects of CSS, XML and HTML validation icons in the footers etc.
We didn't really have a defined process back then. Anyone could call or email us any time and we'd respond as fast as freakin' possible in an unfounded fear of possibly losing the client. And of course, by "call us" I mean "call Bill's cell phone." That's the best we could do at the time.
We worked crazy hours (remember, this was my side, side job) and did everything through email. It's amazing we made it longer than a year.
After a site would launch we would do small changes for free constantly. We had no conception of post-launch billable time. Our business was going nowhere fast. To put it into E-Myth author Michael Gerber's words, we were two Technicians simply "paying our dues" early in the game. Thankfully we didn't continue that pattern for too long.
I'm happy to say we learned a lot of lessons along the way. Enough to keep food on the table and slowly begin to build what we have today. As far as I'm concerned we're still very early in the Focus Lab timeline, but we've covered some good ground thus far.
What about your origin?
It's fun to look back at our origin from time to time. It really wasn't that long ago when I was regularly working 14 hours a day across three jobs. I'm glad that period is behind me but I got tremendous value from the things I learned then.
What about you? What did your early days look like?