Final Episode: Things I learned from my failures and successes- Why a dev start-up is great
To mark Sider’s first sponsorship for this fall’s GitHub Universe, we are publishing a three-week-series to reflect the process of establishing and providing the code review service, Sider.
In this final episode of the series, I’m going to write about what I learned from successes and failures, and the reasons why programmers starting their own business have advantages.
What I Learned from Developing and Managing Sider
If I break down what I’ve learned from developing and managing Sider, there are three essential points.
- Developing software is difficult
- Design matters
- Cash inflow and profit matter
1. Developing software is difficult
Although it may be obvious, software development is tough. Required resources and technologies depend on the type of the product. Also, the nature of Sider as a product required specific skill sets.
The Difference in Necessary Resources
Person-hours for mobile apps I was developing before Sider were relatively short. The quickest one took about one person-day. A product that took longer to develop required only six person-months including all the tasks required for iPhone, Android and server compatibility. So, I assumed that it would take more or less for the development of the Sider’s prototype and beta version, so I planned a development schedule for only four person-months.
However, the development of Sider didn’t go as I planned. I faced many problems such as the unstable infrastructure, bad user experience, complicated design caused by added functions, expensive server cost, etc. It took a long time to solve those issues.
Necessary resources for development are significantly different depending on the type of product or software you are developing and providing. There are many Japanese start-ups with products that don’t require many person-hours for development resources. If you keep working with the plan based solely on your previous experience and premises, you will make the wrong estimates of required resources. That’s one of the difficulties in software development.
The Difference in Necessary Skill Set
The necessary resource is not only the number of developers but also the skill set of the developers. The required skill set is drastically different between developing iOS apps and developing the infrastructure application base to control Docker containers with Job Queue.
“Full-stack developers” are highly valued by start-ups. Companies need them in order to provide products while keeping the burn rate low. I can design simple UI, plan user flow of the product, program smartphone apps for iOS and Android, develop the server-side with Ruby on Rails (of course, I can use web framework too), and operate servers with IaaS such as AWS. Basically, I can do general front-end and back-end tasks, so I am a so-called full-stack developer.
However, my skill was not sufficient to run Sider smoothly or to design it with high expandability. I could learn while developing, but that wouldn’t move the development forward as I planned and would take too much time.
It is almost impossible to become the “developer who knows everything.” That is why it is important to build a team consisting of members who have the necessary skill set for a particular product.
Demand for Specialized Skills
Sider provides a code review automation mainly using static analyzers. So, as a part of what we do at Sider, we try to contribute to static code analyzers such as RuboCop as much as possible and carefully read the code of those analyzers, especially the libraries of static analyzers, to support our clients when they contact us.
To provide a code review that covers more languages and has more useful functionalities, we are also developing our own code analyzers.
Example: Querly, Goodcheck, PHPQuerly
You need to have the skills to write programs for analyzing the source code. That means you have to have specialized skills and knowledge. An outstanding skill set is required for the core of Sider in order for us to provide the uniqueness of the service and a great value.
Of course, there are many occasions where you can develop and provide the service while you are still learning. But that is not time-efficient for some businesses, and it is better to have developers with highly-specialized skills from the beginning.
I need to remind you again that software development is really hard.
2. Design Matters
A good design is a must to make a good product. Beautiful and impressive appearance and smooth user experience are all necessary. During the early stage at Sider, only programmers worked on the product, so Sider looked horrible. (See the last blog article on the design of the earlier Sider.)
The first impression you get from a quick glance changes the perception of the product’s value. It could look like an up-and-coming hip service or a service provided by a hobbyist. I believe why Slack got popular so quickly was because of its design and user experience on top of its functionality.
Additionally, having user hearing sessions in the initial phase of a start-up is crucial. Of course, CEO and CTO will attend the hearing sessions, but it is valuable to have designers who can be by users’ side. Since it is necessary for B2B services to participate in exhibitions often, having designers who can work on designs of the booth and promotional goods with you is extremely important.
3.Cash Inflow and Profit Matter
Cash Inflow and Profit Give You More Options and Peace of Mind
This is obvious, but it is vital for your company to have cash inflow and profit.
When there is profit, your company can stay in business for a long time, or even scale out your business without constraints while making profits continuously. Consequently, you can have peace of mind.
Also, the more cash your company has, the more options your company gets. You can hire more developers, or invest in functionality development and marketing enthusiastically. There will be more options you can choose from. It is evident that cash inflow is essential.
You Are No Longer Programmer Once You Become a Founder/CEO
It is required for CEOs to spend much of their time acquiring capital. When a CEO is also working as a programmer, she or he will not have time to code when getting funds and won’t have enough time for the server operation and maintenance. Hiring another developer by the time of capital acquisition is necessary.
Even after raising capital, there will be many tasks to scale the team. The CEO will have less and less time to code. So, if you want to keep coding, I don’t recommend you to take the CEO position.
A Well-Thought-Out Business Plan is Essential
Growing a business requires many resources. Your company needs people and money to do various business activities such as development, sales, marketing, raising awareness, etc. If the majority of your team is developers, you can develop your service while working on contract-based projects. If not, or your product has many competitors in the market, you won’t have time to work on contract-based projects.
During the product development, time and person-hours tend to be estimated less than needed. Also, people in management positions tend to consider the business plan and the amount of fund too lightly. A well-thought-out business plan is necessary for the continuous growth of your business. Even though working with Excel and Google Spreadsheet is boring and tedious for engineers-turned-CEOs, it is an essential part of CEO’s work, and it shouldn’t be overlooked.
Why Engineers-Turned-CEOs have great advantages
You can survive after failures.
Many start-ups end up dissolving or halting business in the first year for various reasons such as a break-up of the team and lack of cash. However, one of the advantages of engineers-turned-CEOs is that they can survive.
I’m not sure if this is a compliment, but my friend who started his own business and Sider’s stock owners call me “the survivor”. It has been six years since I started the business. From May 2012 through February 2014, the first two years of the company launch,, I only raised one million yen for the first capital acquisition. The reason why I could survive for that long with that little money was that I could have an income from contract-based work and the company was run by developers.
Also, if the CEO is a programmer, they can keep the company in business, work on the product while getting contract-based work from outside the company, and develop the product even when they become the only worker there. Although the storyline of a CEO creating a product while getting contract-based work doesn’t sound like a happy story, the CEO is fortunate enough to be able to choose that option and create what they wants.
Investors Value Engineers
Investors think highly of engineers-turned-entrepreneurs. Many aspiring entrepreneurs face the first wall: whether they can make the product by themselves or not. If the CEO can make the product, there is no wall to climb in the first place. So, investors value engineers-turned-entrepreneurs more compared to non-engineers. When I was getting the initial funds, I pitched that I could make products even though I didn’t have an idea of what to make yet.
You Can Work on Your Business Without Setting Up a New Business or Acquiring the Capital
If you are an engineer, you can work on your product while being employed. Lately, many start-ups start businesses and acquire capitals at the same time. Doing so was difficult in Japan back in the day. There were entrepreneurs who developed their own projects while working at companies. There are various opinions on this way of starting a business, but I personally think it is very logical to have a stable income by being employed and work on your product in your free time, then, incorporate when your business is ready (when it reaches the product market/fit.)
Non-dev CEOs first need to look for someone to write code and someone to research whether the project is technologically achievable or not, so there is a hurdle. But if the CEO is an engineer, they can work on the project by himself or herself until the product reaches the product market/fit or gets close to it.
As I wrote in this post, engineers have more advantages when they start their own business compared to people who are in business administration. If you want to create a product or a service, I would recommend you to give it a try.
I am ending this three-week-series to mark Sider’s sponsorship for GitHub Universe here. If you want to know more about Sider’s story, please visit our booth at GitHub Universe in San Francisco on October 16th and/or 17th. If you are planning to buy the GHU ticket at the last minute, please enjoy 20% discount by using the following coupon: GHU18SideCI20
You can’t come to San Francisco? Don’t worry! Sider is holding many other events. In SF, we are hosting Fog City Ruby meetup in October 2018. In addition, Sider members will be participating in various local events. If you find us, please don’t hesitate to talk to us. We will be happy to hear your feedback on our product too!
Sider will continue the function expansion and the improvement to provide a more useful code review support service. We are focusing on global marketing to have a global customer base. Thank you for your continued support!
For more information about Sider, please go to our website.