I'm a developer, yes, I code. I'm not actually a coder by studies but I learnt it on my own. I felt curious about the magic of using code to turn ideas into reality. I learnt coding, enough for some personal projects and not so good in terms of code quality. I was a "doer" and after a few years, I decided to invest my knowledge in a startup to get some money. Sounds great! Your first salary. You get paid and you start depending less on your parents. That's exciting until you figure out that ideas drop on you like the water when it's raining. That instead of you and your creative brain, it's you and something called "backlog". Sometimes you can't even contribute prioritizing it. Hierarchies, managers, managers of managers, ...
The source of magic is very far away from you.
Years pass, you keep working, better conditions, other countries, different teams... You learn a lot, learn from people more professional than you. You learn how to share values with a team or how to fuck up with code. You figure out the long road ahead but you miss something. I missed being cowboy of my ideas. I missed some magic.
Almost one year ago I started GitDo. It was a day with one of my best friends, @saky. We, both, felt that after joining the company we worked for in Barcelona we stopped working on our own projects. We had experience working together, especially solving code conflicts in Dropbox (yes, we used Dropbox by that time). Why not trying again?, but this time, going further.
GitDo has been our spare time project. It's been a very exciting time, even though it was very difficult to find time for it. But it's what you love, and finding some time for it is not a pain for you. We didn't have experience creating projects that could turn into companies in the future. A lot of doubts came up. How to prepare an agreement?, How to organize the project?, How to find more people?. We weren't known "entrepreneurs" with past experience creating other companies but we had something great, motivation. There are still a lot of things that we have to learn but we're not afraid for it. I've been afraid sometimes before, especially when there are elements that are not under control (e.g. a language other than Spanish) but motivation helps you to overcome these fears. I have no experience presenting the project in public, or talking to an investor, but if I had to do it, I'd do it.
I applied/apply the things I learn, and try to avoid these I didn't like from my experience in other companies. We, all, are learning from this. I tried to build a nice environment with great people, with a shared passion and motivation for GitDo. These are a few:
- Horizontal over verticals: No hierarchies, no managers of managers, over roles in the project. All the team is involved in company meetings and contribute to their ideas, opinions, feedback, ... There're no people asking for what we did today but people sharing and celebrating what they achieved.
- Trust: If you trust the people you work with, no matter where they are, they'll trust you as well. It's not about bringing all the team together to an office to make sure I can control them but make sure they're happily working for the project and their road is clear and without obstacles. Happy people manifest their happiness with the things they do.
- Openness: We always had that value in mind, the source of successful is being open in may ways. Being open to your users, with people in the team, ... We admire in that sense companies like Buffer, GitHub, SoundCloud or projects like Cocoapods that make everything in open. Why keeping things in secret? Others can help you with feedback, or just contribute directly to the project. No hidden spreadsheets with numbers or conditions covered up.
And getting back to magic, I wanted all the people to contribute to the project, and also the project to benefit from all the team ideas. I feel that as developers, being able to contribute to the project motivates us. Why limiting it?, Why working only on the ideas the CEO had the night before while sleeping?. We have a backlog, a list of GitHub issues where everyone can share their ideas and we prioritize them in meetings. We merge features, bugs, refactoring/cleaning issues to design the project sprints.
I collected these and more values on this website so that everyone in the team can apply these values to make decissions.
It's been a very passionate year, we're almost ready to launch the first iOS app version. During that period, we've found a lot of challenges that we've overcome and I would like to share them with you:
I hadn't done it before, I had been part of teams already built. But this time, we had to find people, motivated people that would like to commit to the project because they liked the idea and the people they would be working with. We found our great designer @vicenteborrell who decided jump into the design world and being co-founder with us in the project. So far he has been making sure the quality of the product is the best ever and that there's not misaligned.
With almost the first version of the app ready, we increased again our team in order to quickly expand to other platforms. @nando, @luis and @pol incorporated the team. People we had worked with before, that knew about the project and also had been users of it. Experts in their areas and very motivated about being part of such project.
There's nothing as seeing all your team together, discussing what's next, talking about how things are going or planning the next team trip.
We had a strong opinion about building a team in mind: Project should motivate them. We have neither investment nor incomes and couldn't afford salaries. First people in the team should move by passion and motivation instead of for money. Motivation moves further than money, ideas are even better, and if it's finally a success, we all, are going to benefit from it.
I'm easy to loose the focus. I can be coding something for GitDo and jump into an open source project to fix a bug someone reported. A project requires a focus and GitDo taught me that I need that focus. Multitasking doesn't help. The project goes slower and the quality of your results is the worst. If you can't focus after work, leave it for the day after. If you are focused before starting your day at the office, do it before going to the office. There're a lot of theories around Medium explaining what works or doesn't for other people. I'm more of trying and seeing what works for me:
It's been a very difficult challenge for me but I lately managed to get it better. I figured out that after work my concentration level decreased and the sleep doesn't allow me to work but relax at home or do some sport. I'm very productive in the morning so I wake up early and try to finish stuff before going to the office. My ideas are also better in the morning.
Apart from multitasking, I'm also pusher and a bit cowboy. What does it mean? It means you sometimes jump into a task that hasn't been planned, code it or work on it and try to include it in the next release. As the project gets bigger and the number of people in the team increases everything gets slower. Being a cowboy sometimes is not bad at all. You can launch something from one day to another and get results and metrics very quickly. I do it carefully and with tasks that don't have a lot of dependencies.
We're not lean and being lean is very difficult for us. We force ourselves to apply lean principles but we don't manage to apply them at all. We are very focused on an awesome code architecture, or pixel perfect design. We have to forget it for a while and try to apply iterations and quick measurement to move the product faster according to our user needs.
When working on a spare time project, the most difficult part is finding time. It would go faster if we could work 8 hours every day on GitDo, but we can't. We don't have incomes yet, nobody invested money on the project, and the only incomes we have come from our respective companies. When you have only your free time to work on a project:
- You might not be giving the 100% of your faculties.
- Sometimes you have other plans and you cannot say no since it's also good to disconnect from the project.
- Your free time is not others free time.
This plays against the commitment to the project. With people working full-time for the project, everybody is committed to the project every day, almost the entire day. But when we're working only part of our time in the project it's hard to go ahead with something if you cannot see people in the team doing the same. I'd say this has been and is one of the most difficult challenges. Making the project evolution and sharing the progress helps a lot in that sense.
We started using a bot for slack, Geekbot that asks you every day for what you did the day before, what you're planning today, and if there's something blocking you. The bot automatically shares that with the team.
Creating a project is an adventure, looking for a team even more. But it's worth when you see things working as expected when you see the team involved and committed to the project as you are. When we can organize trips and learn together. It doesn't really matter if your background is a developer background, a designer, whatever. If you have a passion for something, stick to it and push it as much as your motivation allows you. Work on areas you haven't done before, ask other people with experience how they did it and read a lot. Be a child and feel curious about things around you. Learn as much as you can, because everything you learn you'll end up needing it.
Share your progress, your success, your mistakes, don't be afraid for sharing your spare time project is something you love.
GitDo makes me feel inspired because I feel I can move our own ideas into reality and create a product to help more people all over the world.