A distributed company calls for distributed technology
In the last post, we talked about WHY we are building a distributed company at aio*. Now it’s time to talk about HOW to build a distributed company.
Communication in a distributed company is essential. Since you don’t share an office with your co-workers, you cannot go to the next desk and ask for help or to discuss a problem. The power of conversational osmosis doesn’t apply. You don’t overhear conversations and contribute…
So, it is essential to find the right mix of communications tools, so that nobody in the team feels excluded. Everybody has slightly different preferences and so it’s important to be open to communicate via multiple channels — whether it may be Slack, Skype, email or just a simple phone call. Conversations make the wheels of the organisation turn.
Having access to the right resources is equally important. Sharing files and documents on Google Drive enables us to work collaboratively and removes the need to store important documents on local machines. Working and storing your data in the cloud makes it possible to have access to crucial systems from anywhere — anytime. And having a Wiki with different help guides, FAQs and code snippets is a great way to share technical knowledge within a team.
Giving the company culture around this kind of sharing, it’s natural that we didn’t stop with this distributed approach at our internal processes. Everything we code, write and build for aio* is stored in the cloud. We make extensive use of Amazon Web Services (AWS) to set up web servers, debug, test and deploy our app. It enables us to build resilient systems on a well supported infrastructure and keeping our costs at bay at the same time.
Automation is key to keep a complex system running with only few people in a (distributed) team. That is especially true for testing and deploying of software. Being able to rely on automated tests and deployment scripts saves time and allows a developer to focus on a much wider spectrum of tasks.
But what’s also important isn’t just to automate as much as possible for the development cycle, but also make life easier for non-tech co-workers.
Customer communications are the forefront, of course, and in order to improve some aspects of those, and we partly rely on a third party email service, which can be utilised to send out correct, customised emails to a customer at the right time. This takes some strain off the customer support team and allows them to focus on urgent, unique, and non-repetitive communication with the customer.
On top of that, our internal management portal helps checking the status of customer applications and provides useful statistics about customer performance and their use of the service.
And it’s that combination of internal and external communications and service tools which helps us run a distributed software-as-a-service company and build it quicker on better customer delivery. It just feels right.
(via Max von Preuschen)