The first three months of a startup at Besteno
Time has been passing quickly at Besteno, so I thought I’d take stock and describe what can happen in the first three months of a startup, specifically my startup, Besteno. What have I done, where am I headed?
October 26th 2013 was the first day of LeanConf 2013 (the link now relates to the 2014 conference) and I was due to present the following day about my experiences of using Lean Startup concepts in existing organisations, specifically social care in the public sector. Up to that point, I’d been talking to friends about setting up a company together. However, most had families, couldn’t commit or were in a different place to make it too awkward to co-found. During that conference I just decided to start on my own and then look for a team later on.
As a web startup, that meant I had code, test, maintain and design. Before any of that, I had to understand if the business was worth getting involved in. So that meant business model canvas for one year and one for 3 years. I had a long-term vision and still want to achieve that so every short-term objective is evaluated against the long-term aim. That’s been a consistent strategy. From the business model canvas, I created a couple of sketchy business plans and then projected user growth. While this may not have been accurate, it’s a useful guide and I change it when I discover accurate data. Conducted some market research, which combined with user growth, enabled me to create cash-flow forecasts for every month for 5 years. Monthly may seem excessive, but I’m quick with spreadsheets and once you done figures and calculations for two months, you just copy for the rest of it. This wasn’t onerous for me. It’s not a route I’d recommend for everyone, but suited me with the skills I already use.
All of that preparatory work proved to me that this was an idea to at least get to the MVP (Minimum Viable Product) stage.
Then development started.
I had to teach myself Rails. Fortunately, I had a business idea earlier in the year and played with Rails to get my head around how it worked. However, I was still a novice. I used to code 15 years ago, but hardly ever do it, up until now. Best thing I did was ditch SQLite and go straight for MySQL, even for dev. It was actually quicker. It also makes the transition from dev to production a lot easier. PostgreSQL is good as well, if not better, but I had my reasons for MySQL.
I opted for Rails 4 and Ruby 2.0 as they seemed stable and the increased remaining lifetime compared to Rails 3 was attractive. That then gave me some other problems. I knew I wanted a scalable host/cloud and very few advertised that they handled Rails 4 back then. I opted for AWS having found a good couple of articles on how to set up the servers. Before that though, I had to understand web service architecture. Having been a business transformation consultant for the last decade or so, I didn’t have the nuts-and-bolts knowledge of how web architectures worked. Fortunately, I knew what most of the components were, just not how you’d use them. So that filled a couple of evenings.
Other odd technical things I’ve had to pick up along the way:
- how to run a process without it stopping when your session stops – use nohup or run as a daemon – depending on the process. And find out how to stop them (kill -15 was the lowest level kill I found that worked for one stubborn process)
- how to monitor the above processes – tail -f is very useful
- setting up memcached and how to see if it’s working – use the port.
- wishing every shell had nano instead of vi. I prefer nano and I’m sure I could replace vi with nano, but then it crops up again when creating batch jobs with crontab. There are enough things to learn in life, cryptic applications like vi aren’t on my list.
- Learning CSS, html and bootstrap. Understand the effect that the order of commands has.
- Firewall configuration, scaling options, pricing options with AWS
- Understanding how to retain data when your really big server that you hired for a very cheap spot rate on AWS kicks you out of the session – it happens so think about what you’ll do with the process if it stops midway. Some of my processes were taking 2 days to complete. I didn’t want to waste my time or money.
- Understanding solr and its rails integration through sunspot. There are some odd anomalies.
- I didn’t do TDD. Sorry to Rails devs out there. I just couldn’t get tests to execute, usually because of the software stack on my MBP including several OS X upgrades. In fact I even had to install RVM in an odd way on the MBP just to get it to work. My view with TDD was that it was going to take me a few days to get it working; resintalling, etc. I figured it was more important to start coding, then retrospectively write test scripts for the more important features once I had breathing space. That’s the technical debt I took on.
- Integration with other providers is painful. Overall, I found lack of current documentation to be the biggest issue here. Add to that documentation that doesn’t reflect the behaviour of the API itself and manuals that weren’t well written (probably just rushed).
- I left ETL processes until after I’d built and launched. As much as they are needed, they weren’t part of the MVP. Do it manually on a command line if needed to start with.
- Coding is a different exercise now compared to when I used to do it. Back then, I used to develop with a few reference manuals to hand (K&R anyone?) and using man, apropos and a few other useful commands. Now, just go to stack overflow or official guides online.
- Finding where mysql logs are stored on AWS
- Trying to identify the active memcached configuration file is a bit of trial and error. I imagine you could deduce it logically, but that’d mean access to information I hadn’t thought of.
Part-way through planning I realised I’d need funding so I started talking to Access to Finance. Separately, I applied for funding through TSB SMART. I found out about it late and submitted around midnight of the last day (with about 12 hours to spare). The exercise itself was useful to me; it made me think more about what I wanted money for. So instead of thinking I need a couple of developers and a designer to improve the product, I started thinking in terms of work packages and deliverables. Fortunately, that’s something that comes naturally to me from my previous business transformation background. Unfortunately, it doesn’t align well with sprints including as-of-yet unknown requirements. This made obtaining funding a bit uncomfortable process, especially as Manchester seems relatively financially risk averse. Which is at odds with the culture of the Madchester music scene during which I arrived in Manchester a couple of decades ago.
Premises and support
SBIC have been great. I get a day per week out of the house in their business lounge. They’ve been a very useful sounding board. Being in a environment where I know I have to work is ideal. There are few distractions for me and I just get on with what I need to do. They’ve also managed to find a few subjects about business that I know I’ve been deficient in (or at least, I wasn’t sure what I didn’t know).
Free wifi access in Manchester is a bit poor. Shame. It’s a major city, but bars and coffee shops seem to think of wifi as an extra that you have to ask for. All too often, it just doesn’t work. Whereas it should be considered about as important as chairs or heating nowadays. It is changing for the better. The implication of this is that it’s not as easy as you may think to find places to work.
Founders of other startups have been supportive. Like most groups of people, there are some who are just generally open and share everything and then others who don’t share as much, whether for potentially misguided commercial reasons, lack of community focus or just not their personality. I have an overall feeling that other founders are quicker to give advice than to listen. That may be the typical age and experience or just the way that we founders are.
Business Growth Hub are a major contributor to business support in Manchester. As well as one-to-one advice, they host a number of events for startup businesses. I haven’t attended as many of these as I could have, mainly because I’ve already accumulated a lot of experience in running my previous company and as a consultant on client sites. I can imagine that, if you were new to business, then their events would be much more suitable.
I use a combination of Trello (for business activities) and Excel (for tech activities). Trello works well for business. I like the finality of dragging a card to Done (even though I know I can undo it). However I couldn’t get on with Trello for development, partly because I was offline a lot of the time. So I built my own two worksheet spreadsheet. I’ll describe that in more detail in another post. The important point for me was that I could put it on Dropbox and it’d be with me wherever I was, regardless of how good the wifi connection was.
It was interesting to see the first few queries that arrived via Google search. Truly the long-tail in operation:
- belizean cheesecake recipes
- grendad best drumer [sic]
- prembroke mass nunnery
- ukraine electric bass
There were some more common queries as well which was a nice balance.
- If you’re calculating any forecasts, keep a separate worksheet in your spreadsheet for assumptions. Use this for growth ratios from month-to-month, revenue per customer, staffing ratios required. Anything that you’re assuming or deciding. Choose 3 colours – one for assumptions, one for calculated values, one for known facts. Hopefully by the end of planning, you have none left of the first (never works that way). The reason I do this is so that I can change my forecasts very quickly by changing the assumption. Very useful if I’ve assumed a figure (e.g. number of people in the UK), then find out from ONS or somewhere an actual figure. First I change the figure, then change the colour. Then I can see the effect that change has had across the forecast.
- Business Model Canvas first. Even if you only spend an hour or two on this. Do it. Then revisit it after a few days. Then revisit on a regular weekly or monthly basis depending on your rate of change
- Manage your motivation. Keep positive but be realistic. Every evening, I write a list of my tasks for the following day. Means I get up knowing what I have to do. Usually that list comes from a quick look through the feature list, business list and bug list. I choose depending on where I’ll be, network connectivity and any sequence that needs to be adhered to.
- Manage your energy levels. Know when you work best, under what conditions, in which environment, how much do you need, when can you work late and realistically catch-up on sleep, what’s your performance like the day after working late (is it worth it?)
- Manage your time spent on product development versus time spent attending meetings versus time spent developing your business. It’s amazing how many meetings arise. How many are useful to you? Alternatively, how many would your presence be useful to?
- Running a startup isn’t just product development, you have to develop your business and yourself as well.
- Maintain focus. When you’ve decided on your MVP, make sure you do everything you can to release it. If you keep adding features to it and delaying the release, you’ll learn nothing about your market or your customers.
By the way, I’m four months in now, but I ended up sitting on this unfinished article while I launched the MVP. That’s prioritisation for you. So I’ve tidied it up and published. I’ll write the rest of the story another day.
I’d love you to answer some questions over at Besteno. Answering or sharing a few questions there would help me out.