In the third lecture of ‘How to Start a Start Up’, Paul Graham is asked the question, ‘How can a non-technical founder most effectively contribute to a start up?’. Paul Graham responds, ‘Sales…and brings coffee and cheeseburgers for the cofounder [developer].’ This is a funny line, but I am compelled to disagree. As a non-technical partner on a software project, you can add tremendous value and achieve serious business results.
The lessons and examples outlined below are lifted directly from a side project I have been working on since October 2016. There are many great resources that cover software start ups after they have reached a certain level of success, but I want to speak to the preceding stage. The period when you have a side project and you are trying to prove its validity as a product. Your goals are as humble as breaking even.
I have been working as a Product Manager at FreshBooks in Payments for about 2 years. Previously, I worked at IBM as a consultant, doing mostly technology implementation consulting. I have a Bachelor of Commerce and I am unapologetically non-technical.
The side project
While out for a coffee with a developer, he mentioned that he was having difficulty getting users for a developer tool he had been working on called Stickler CI. He had been reaching out to open source projects to acquire some users, but he hadn’t had much success. I offered to help as I had worked on side projects throughout my career.
While code is intended for computers, programmers spend a lot of time reading code; because of this, there are guidelines around how code should be formatted known as code style. Code style is to code as the Chicago Manual of Style is to the English language. Code style is dictated by a linter and all programming languages have linters. Good and consistent code style is important because it makes code easier to maintain, review, and fix. During code review, developers spend an excessive amount of time and energy giving feedback on simple mistakes like code style, when they should be spending their time critiquing major issues. This problem increases exponentially when a team takes on a new member, there are lots of members, the team is working with legacy code, or the team is working with a new language. This adds up to a lot of wasted time and loss of productivity to a business.
How it works
After authorizing Stickler CI on your GitHub account, you can enable it on repositories. Once enabled, Stickler CI will listen for new/updated pull requests on your project and apply the linters you’ve set up. Public repositories are free and private repositories are paid. We provide a variety of plans based on the number of private repositories you want to review.
Here to there
When I started on Stickler CI in October 2016, this was the current state:
- 20 users had connected their GitHub accounts
- 1 active user (an open source project called CakePHP)
- FreshBooks was using a white labelled version of the product
- 0 paying users
- Losing approximately $23 a month to pay for hosting
- 5 followers on the twitter account
- No metrics or measurements of success
The main goal was to break even. In addition, we put a limitation on ourselves to spend $0. As a Product Manager, I knew we had to increase the number of users to not only gain financial traction, but to learn about their problems and what they value. This required a lot of experimentation and these are some of lessons I learned:
Have a product in the wild 🌳
If you don’t have a product in production: you won’t learn anything, you can’t add value to the product, and ultimately you won’t gain more users. When you are talking about your product before it is out in production you are wasting time. Don’t keep your product hidden until you have all the features, edge case coverage, or it is perfect. You will end up changing it anyway once you start interacting with users.
Customer insight drives everything 🔍
One challenge we faced was obtaining our first paying users. Through user testing I learned that there is more anxiety around private repositories which compromised our ability to sell paid plans. Private repositories often contain code of higher value, or as one developer put it, ‘Money Code’. Any tools that affected ‘Money Code’ needed to be very high quality, professional and usable. We focused our efforts on ensuring the website was modern, clean, and user friendly by testing it with a rotation of 20 different developers. Paying users soon followed. Bottom line, know your customer and how they judge and measure your product (in our case, a slick website).
Don’t invest time if you won’t learn anything 🤓
We were offered the chance to take advantage of a coupon service where we could offer Stickler CI at a reduced price to a large market of users. Even though the development cost would be relatively low, we didn’t invest time in this activity because our target market didn’t take advantage of online coupons (which I learned through user interviews). Instead, we worked on creating daily reports and metrics. This involved a larger investment of development time, but we learned more about our customers usage and we were able to measure success as we launched new features.
Meet your users where they are 🐦
Our users are developers, so I needed to determine where developers went to research tools. I discovered that developers use Twitter to follow prominent industry leaders and pay attention to new software they are liking and retweeting. With this discovery I invested quite a bit of time on the Stickler CI twitter account, creating content and following developers who were trying us out. Those developers often ended up retweeting, liking, and replying to us; this increased our web traffic significantly.
Keep it focused 🔬
It doesn’t matter if it is marketing, product, or whatever; you have to limit your efforts to the highest leverage activities. The best method to uncover these high leverage activities is through experimentation and user interviews. For marketing, try out new platforms and monitor them through metrics. If the channel obtains some hits over the coming days; continue to invest in it. It might seem small, but the number becomes quite significant when it’s multiplied exponentially as you continue to invest effort. Abandon a channel if the engagement stays constant or decreases. Build new features if you hear the same problem from at least 3 users and those users react positively to your designed solution. Track the new feature through metrics or FullStory (there is a free version available). By working on the highest leverage activities, the work load can remain manageable while still reaping the rewards.
Create your own content ✍️
As a side project, nobody is interested in covering you in the press. Creating your own content is a way to interact with your users and further focus your time investment. Where you create content depends on your target market. Stickler CI’s target market is developers and other folks working in software, so we have a plethora of options. Here is a review of the channels we use to launch free marketing:
After all of this work this is what we have accomplished:
- 20 users had connected their GitHub accounts → 187 users have connected their GitHub accounts
- 1 active user (an open source project called CakePHP) → Approximately 20 active users
- FreshBooks is still using a white labelled version of the product
- 0 paying users → 3 paying users
- Losing approximately $23 a month to pay for hosting → Breaking even
- 5 followers on the twitter account → 93 followers on the twitter account
- No metrics or measurements of success → Daily metrics with 2 measurements of success
We reached our goal of breaking even. Hooray! Currently, we are working to keep Stickler CI growing as a side project. The next step is to keep adding value to the product as we gain more customers. Our next big goal is to obtain enough users to qualify for the GitHub Marketplace (which requires at least 1000 OAuth connections).
We have no intention of quitting our jobs in software. When you hit certain milestones in your side project, you don’t know if your idea is viable enough to hit the next one. As a non-technical partner, just keep solving user problems…and order those cheeseburgers from UberEats 😛.