My belief is that most tech startups going forward will be 100% remote. Setting up an office for a company that might not last isn’t a great idea. And after this last year spending your runway on an office is basically wasting money.
What would a ‘best practice’ startup look like if it launched today?
Tech stack
The tech stack really depends on what you are doing. There are a bunch of right answers just do your do diligence and commit to one.
For an MVP I would go with Ruby on Rails with Heroku and postgresql. Don’t waste your startup’s time on infrastructure as code, use a complete platform as a service. Infrastructure as code provides next to no value to customers and eats insane amounts of time. Use the simplest cloud architecture you can whether that is Heroku or copying code straight into EC2 hosts. Kubernetes is great but your startup should achieve product market fit long before you consider that beast.
If you are doing machine learning Pytorch or tensor flow are good options. For low level or high performance computing Rust and modern C++ are great.
The only things I would be careful about here is in picking the framework. You want a ‘batteries included’ framework. If you are in a rush you don’t want to have to dig through a bunch of github pages to figure out which authentication library is best.
Communications
There are a lot of options here. Just make sure you have a good videoconferencing application, email and a messaging app.
Slack, Email, Zoom
Github/Gitlab, source hut, etc
Teams is another great option with everything included.
Regular one on one meetings with teammates is a huge benefit for remote workers. I recommend scheduling a variety of optional meetings where you can get face time in with teammates.
Donut is a slack app that will automatically schedule 1 on 1s with different team members.
Document based decision making
Document based decision making is one of the best ‘mechanisms’ I’ve encountered at Amazon. Technical proposals are written up into an architecture document and then reviewed in a team meeting. The first half of the meeting is spent reading the document and making comments in google docs. Then the second half is spent discussing the proposal and comments.
Agile Kanban style workflow
Kanban is the most realistic way to organize work on a software team. It supports coordination, helps avoid duplicating work and eliminates process.
Planning processes
Do a monthly and quarterly planning process. Leadership should identify the business areas that are the priority for the next 1-3 months on a regular basis.
At Amazon we have a bottom up planning process where teams and groups put together a document of their goals and priorities which is then reviewed and approved by the executive team. A bottom up process shouldn’t be possible in a startup because there is no ‘executive’ team just a few founders.