After reading a ton of books and guidelines on startups, searching endless blog posts to find the right direction to begin, I came to the conclusion that there is no good guideline on how you really should kick-start a startup. What are the best tools? Which tools are free and will not be a pain in the future? How do I use group communication? This is a guideline for anyone who wants to start their own business, but has no clue where to begin. In the jungle of software and tools you easily get confused, and everyone has their own preferences and opinions on using software right.
First things first:
The first classical thing you need to do is to get a mailbox for all the tools you want to signup and register. It can get confusing if you register all your tools on different business and private email accounts.
Also don’t waste too much time on finding the right domain. I found myself trying to find the right domain for weeks and got very frustrated sending emails via private/business accounts. Try to get a single mailbox for all your application communication. It’s always good to have a short domain name with 4-5 characters. For example, you can use name.com to register an email address with your domain name for less than $12/year.
If you worked for German companies, like me, you will most likely feel reluctant to use Google technologies. While I was working for an online media agency, they were getting an allergic reaction whenever I mentioned anything related to Google. Yes, they used Google AdWords and everything related to that, but nothing more. Germans typically get scared, almost paranoid when it comes to storing their data in the cloud, especially by US providers. You can secure your data to the fullest in-house, but once you send out your reports to a business partner, you might end up sending your data to a Google app anyway, so why be so paranoid? Can you secure human mistakes with wrong CCs that almost destroy businesses? I am pretty sure the amount of outages in German companies might have cost more than 1 billion in the last 5 years, simply because of insecure administration, so they try to secure their own virtual world and have full control.
First of all, you don’t have neither the time nor the expertise to set up an in-house server infrastructure. You can set up a Google Apps account in 10 minutes. Good luck setting up an Exchange server and so forth on your own. You might also have used Gmail anyway, so you are already familiar with the usage. Keep the focus on your product and not your back-end infrastructure. You will have an email address to register all your tools/apps/co and pay $4/month for every user mailbox, which is fair.
At first, there is a dream, the desire and imagination to start something. You can’t stop thinking about it and there is a million ideas going through your brain constantly.
Asana is a cloudbase task management tool where you can assign tasks, set due dates and manage your todos and notes. Asana is great for writing down ideas and step by step tasks you need to do. Determine your ideas into separate projects so you have a structure. It really can go wild with tons of ideas and due dates, and you get lost of what to do next. My tip is assign only easy and important tasks to yourself and set due dates. Every morning once you get close to due date you will receive an email reminder and you will get surprised how many tasks you might have forgotten if you haven’t noted them down in Asana. Sometimes, when I meet with friends, I ask them for advice or ideas and once there is something interesting, I write it down directly to my smartphone app for Asana. You are always in sync. Asana is free with some limitations, which you can unlock for additional cost.
The alternative to Asana is Trello. On trello you have cards on your Kanban board where you can set up different stages of your status. Try to image Solitaire with status titles. Both tools are very powerful and it’s more a personal preference. Some guys like Playstation and some Xbox, but in the end the game has always the same story. Again, I don’t use Asana as a management tool, more like as a todo and idea notification list. Also for some private tasks.
In the future you might have a team where you will need to assign tasks to other employees. It’s good for simple tasks distribution but when it comes to deep development you should use Jira. More on that later.
Once you have written down every idea, you need to start visualizing it. Sketch is a great tool to start with visualization, easy to use and there are a lot of templates available for Sketch. Try to find one that might fit to your product and go from there. Don’t get too much into detail, just make sure you have a simple sketch that is easy to understand for your designer, he will do the fine tuning and good looking final touch. Trust me, after 6 months you will look back to your first sketch and you will ask yourself “WTF have I done there?”, no matter how much you were getting into detail, it will look crappy anyway. Ask a music producer, if he is happy with the first version of his song on the next day. The only thing he is happy about is that no one else was with him in the studio at this moment.
Once you have created your first draft make sure you safe them on Dropbox. I don’t think I have to explain much what Dropbox does. Its a cloud based filesystem storage where you can safe all your files. You will share a lot files with your future team. Best way by doing it so is with Dropbox. I will write another blog post on how to use Dropbox in a team.
Little advice, make sure you have a good structure which is mostly static. Changing or moving folders and files can get really anoying and then this is happening:
Almost all startup tech companies are using Slack for team communication. Don’t come up with the idea to use email for internal communication. The possibilities of Slack are endless. For me Slack is my virtual office. All my developers and designers are spread around the world, so I created different channels for different purposes. For example, I have a #design channel where I work with the designers on every sketch. Make sure your developers can also access the #design channel and vice versa. They will have a third eye and opinion on every feature request and optimization of your sketches. Don’t get the German paranoid mode by keeping all channels and data confidential, you are not developing Flappy Bird, and even if someone steals your idea, it might not be successful anyway and you will have an NDA signed for everyone who is working with you.
It’s easier when your developers follows the #design channel and give advice right away instead of designing for 2 weeks and realizing that the sketch is not working for the developers. I will write a detailed blog post of how to use Slack in the best way. In the beginning of a startup, it is very important to be as open as possible. Your team likes to see how different channels develop in time and they see the progress. Sometimes a wild opinion or idea comes up from someone that has nothing to do with the current issue/task, and it saves a lot of time. You will have group discussions, vetoes, and sometimes discussions where you might not have enough expertise. It’s good to give up some power to others, you can’t control everything and that is fine. The most exciting thing that keeps me up until 3am is sometimes to see how steps are getting out of your hands and getting up and running. Slack is also for free with some limitation, but a MUST have for everyone starting team communication.
A super critical advice for anyone who has to work with developers. NEVER poke your developers either on Slack or desk if its not ultra critical otherwise this will happen:
When everything is discussed and planned, your developers will start coding. The best tool to use is GitHub. It is a web-based Git repository hosting service. Almost every developer has a GitHub account and is familiar with it. There is nothing more to add here, except that when you create a private repo, you pay $12/month. Yes, you can use BitBucket for free with a private repo, but almost everyone uses GitHub and a lot of tools/applications have GitHub integration, for example, Heroku (more on that later).
Keeping track of you repo’s is not easy when you have many branches. I use Tower to easily keep track of progress in detail. Its has good UI and it’s easy to use.
Little advice, try to review every single commit and see if the fix/feature/etc has coded correctly. Otherwise this will happend on your first demo release:
What is AWS? Remember back in the days when you set up your first website on your local ISP provider? Amazon is the same just with a “little bit” more features ;). Currently we have only a single micro instance running for our web service, nothing special (Contact form, About us, Terms of Service). If your online product is going well and you are getting a ton of users day by day, then Amazon is the right choice for scaling your farm. You can deploy VMs all over the world in seconds and once you hire an engineer, he might have already experience with it. Many large companies are using AWS because of its flexibility and stability. AWS also offers RDS. Your database is the heart of your company, you need to make sure data is consistent and reliable. RDS does that all for you: backups, point-in-time recovery, replication, high availability, and so on. Of course RDS has some limitations, but you should not care about them much in the beginning. If you reach a limitation of an online service, you are probably doing a ton of cash already, so you can hire a consultant to fix your problem right away. In one of my next blog posts, I will give more details in AWS. New users get AWS Free Tier for 12 months for a micro machine.
Jira is the most powerful development management tool out there from my experience. You can create tickets and assign them to your department or developer. When I first used Jira in 2009 I was super confused. So many fields, statuses, workflows and so on. A never ending list of features of components, versions, features, all screaming for information. Our team was so big and everyone was using Jira. The first thing everybody did was to filter out email from Jira. It was spamming our inbox to the fullest and you lost complete control/overview of everything and I don’t mean the good way of losing control. But once you get familiar with Jira, you can develop AIR to make money. With Jira I force every developer to keep track of their hours they spent on tickets. That gives me a good overview of what is easy and what hard to accomplish. You also get a good forecast of when you will release the first version of your product. Scrum is one of my favourite features/tools that I use and everyone in the team uses to make sure we don’t have crossing tasks. You see who is working on what currently and get status from them.
There are endless tutorials for using scrum with Jira in production. You should use a trial version to just play around for 1 week and get familiar with everything. Everyone who has never used Jira before gets confused very quickly. Make sure you use the cloud version of Jira. WHY? ALWAYS OUTSOURCE everything you can until you make so much cash you can hire someone who can take care of this. Try to imagine you screw up the Jira database or your own AWS infrastructure has a human failure. All of your progress gets stuck or lost. I will also write a little startup guide on what you need and to start working with Jira.
Jira is really cheap until you reach more than 10 users. After 10 users you will pay $75/mth for a 15 user subscription.
ALM Works has development a very good offline client for Jira. It fetches all information from the servers and saves it to your local machines. It’s $99 but totally worth it in the situation you have ideas or corrections on tickets but you don’t have internet access. You can store all your edits/comments/new tickets and upload them later. Especially if you have long flights or places where internet is limited.
The time will come where your knowledge is limited and you need some support. Let’s assume you have explained the basics of your idea to someone you want in your project. You want to make sure that they don’t go off with your source code, so you need to sign an NDA or something similar. Imagine signing a contract with a developer from India… until he signs your NDA it will probably be too late or you will never get the signed document back (do you have fax mailbox in 2016?).
The solution is to use RightSignature.com. You can easily create online forms that can be signed by your partners in seconds! Create any form you like with your word document and make the fields editable for your partners. They will fill out the information that is needed and sign the document. Once it’s signed, you will receive an email with a PDF attachment. DONE!
Again, as long as you don’t develop Flappy Bird, you should not be so GERMAN by keeping your ideas/project in secret to others. You need to convince people to partner with you.
That feeling when your developers sign the contract:
The list of tools, applications, and lifetime savers are endless. In the end it’s more a personal decision on what you choose and like. None of the tools will make you successful if you don’t use them right. Most importantly, you should listen to your team. Sometimes it is hard to make the right decision on tools, plugins addons but your gut will direct you in the right direction. My personal advice is, if more individuals complain about a tool/application/plugin, you should definitely change something and LISTEN to what your team says. They need to feel comfortable with there own workspace because changing a developer’s environment will push them back and you will have a hard time to get on time with your release.