My notes from Jan Erik Solem‘s talk at Oredev. I’m not sure how widely applicable these takeaways are, clearly this is working for them (or was when I saw this talk in 2014) but I would not extrapolate too much from that.
Overall Team Guidelines:
- Small team with high performers.
- Independent learners.
- Doers – who manage themselves.
- No one should be dependent on others to do their work.
Build a team almost entirely of fresh grads – wrong approach. Each person adds overhead. The fewer people you have, the faster you can move.
If great writer, writing copy for website/system. If need someone to do the HTML, not the right person. Everything you do generates more work for someone else.
A lot of people are good at what they do, but can’t take it all the way out.
- Be open abut your idea, long term mission, and what you plan to do.
- Talk to everyone.
- Look for shared passion and values.
- Date before you marry.
Hiring in early stages
What you cannot offer:
- Benefits and salary near what big-co offers.
- Promotions and titles?
What you can offer:
- Ownership in the product and company.
- Learning and personal growth way beyond regular jobs.
Find people interested in these two things, not the two things on top. Good filter.
Have a mission and make big plans. No-one is inspired by small plans. Make insane plans.
- First, worked together for years.
- Second, tried out working together for a few days.
- Third, known for years, months of dating and discussions.
Enough spread of skills to build everything in the first year.
Overall Setup Guidelines
- Do everything in-house (in early stages).
- Contractors are not a good idea when things change all the time.
- Prioritise learning new skills over hiring more people.
Better to have someone in house who knows everything about every line of code in the app, they can adapt rapidly as idea of what to build changes. First iterations sucked, but eventually it works. Don’t hire someone, you might not need them in 3 months. Learn new skills.
Office vs distributed:
- Setup your organisation so that it functions fully distributed even with offices.
- Anyone should be able to work anywhere.
- Nothing important in the office.
- Everything is asynchronous.
Offices good for building culture, building teams. But need to set it up like you are completely distributed. Nothing should be in the physical world.
Distributed work tools:
- Google Hangouts
- Google Drive.
Roles in early stages:
- Everyone codes (not everything, but some things – e.g. website and html).
- Everyone deploys.
- Everyone does support/email/Twitter/Github.
- Everyone learns new skills all the time.
Everyone does everything.
How we do it:
- Geographically: Malmo, LA, Barcelona.
- Office in Malmo (3 desks)
- Everything built in house (iOS, Android, map tiles, …)
- People work the times of day that fit the schedule / life.
Work and Routines
- All communication in chat (almost), including Twitter / Github / Trello / deploys etc.
- All plans, roadmaps, documents online.
- All “whiteboarding”, ideas, specs, documentation online.
- The “feed” removes the need for meetings.
- Quick video chats and hangouts when needed are enough.
- Only schedule meetings with outsiders / customers.
Release all the time.
How we do it:
- Plan on Mondays, set goals for the week (Monday evening hangout).
- No internal company meetings (yet).
- Anyone releases when they want – trust and tolerance.
- Bring whole team together at regular intervals (Offsite at summer house).