Tooling at Margo Bank
We decided to publish part of our internal documentation as a series of blog posts. This article is part of this series. It deals with the tools we use internally at Margo Bank. The list of tools is not really interesting per se since most of the tools and software we use are standard. However, it took us a while to determine which tools we should use internally when we should use them and what the common practices should be. So, we thought this information and our thought processes could be of use to others.
The tools we use are akin to a flatshare. This is why, regardless of the specific tools we use, we defined a set of best practices we try to follow as much as possible.
1. 🖐 Boy Scout Rule
In Software Engineering, the Boy Scout Rule is “Leave your code better than you found it.” But this rule can be applied to basically anything. In everyday life, the Boy Scout Rule means that if you see a piece of trash in the street or in the forest, you take it, even if it’s not yours. As a result, we ask everybody to leave the tools they use in better shape than they found them. It means that if we stumble upon outdated data, broken links, or inconsistencies, we fix it and don’t wait for someone else to do it.
The Boy Scout Rule is a powerful rule to avoid the Broken Windows Theory being true. The broken windows theory is a criminological theory that visible signs of crime, anti-social behaviour and civil disorder create an urban environment that encourages further crime and disorder, including serious crimes.
Applied to a company, it means that the less you do to keep things tidy and clean (think about your Google Drive or Dropbox), the less other people will be willing to do so and the messier the work environment will be.
2. 🌍 International standards
Whenever we store information, we try to always use the international data formats, because they are standard and avoid confusion. For examples:
- Language: we use English over French;
- Date: we use YYYY-MM-DD like 2018-06-02 over national formats like 02/06/2018;
- Phone number: we use +33102030405 over 0102030405 or +33 (0) 02 03 04 05
3. 🤖 We are not robots
As we spend most of our time on online collaborative tools, it’s always good to remember we work with human beings and not with robots. Having a profile picture on each and every tool we use really helps. That’s why we are so attached to it during our onboarding process and ask all our team members to have a profile picture on the tools we use.
4. 👨🌾 Gardening
In order to make sure these practices are followed, each tool has its own gardener. The Gardener is responsible for:
- Enriching the set of practices for a given tool;
- Reminding people to follow the rules when they don’t;
- Pruning the tool on a regular basis to make sure no irrelevant resources are still there.
Specifically for Google Drive, we defined gardeners even at a folder level to avoid having a complete mess everywhere.
General Tools Directory
|Tool||I need to…||Keep in mind that…||Timeframe||Existing alternatives|
|Slack||Communicate instantly with team members for: - Short questions; - Trivial discussions; - Notifications||The information shared on Slack is not here to stay and will be buried very quickly. If you need to save and store data: Use Google Drive to store files; Use Confluence to permanently store information.||Instants||Mattermost, Hipchat, Twist|
|Gmail||Send information or communicate with the external world (partners) without a shared access.||We try to limit emails as much as we can for internal communication.||Up to several days||Office365 Zimbra|
|HelpScout||Send information or communicate with the external world (partners) with a shared access.||-||Up to several days||OTRS Zendesk|
|SMS||Send information to a team member in an emergency situation only.||Everybody within the company uses his personal phone. We want to sustain a good work/life balance, and that’s why we use SMS and phone calls for emergencies and exceptional events only.||Instants||Morse code Pigeons|
|Confluence||Have a long and structured internal discussion: Tough questions, New ideas, Help, Specifications||We use Confluence to communicate about almost everything asynchronously. It is best used as a modern substitute for mailing lists, discussion forums, long-form chat rooms. It is NOT a substitute for instant messaging, issue tracking.||Up to several days||Discourse|
|Store knowledge and information that is here to stay and build internal documentation such as this article.||Confluence is the company encyclopaedia, and that’s why this article is stored there. You can link, search, browse information very easily like on a regular website.||Project lifetime||Notions Mediawiki|
|Google Docs Google Sheets Google Slides||Work collaboratively on a document that is likely to be shared with the external world.||G Suite is great for: Producing and working collaboratively on a document; Working on a document with only some specific people. G Suite shouldn’t be use to share information: If you want to do project management, use YouTrack instead. If you want to write a page that will stay forever, use Confluence instead.||Project lifetime||Office365 Etherpad|
|Google Drive||Store and share files.||Google Drive is like DropBox for companies. Google Drive is the default place to store any files.||Project lifetime||Dropbox Box|
|Apple Keynote||Produce a Keynote Presentation, because Google Slides is not powerful enough.||We don’t use Apple iWork except Keynote when needed to produce powerful and rich presentations. By default, we always use Google Slides for presentations.||Project lifetime||Libre Office Microsoft PowerPoint|
|Microsoft Excel||Produce an Excel File because Google Sheets is not powerful enough.||We don’t use Microsoft Office, except Microsoft Excel, when needed to produce complex sheets. By default, we always use Google Sheets for spreadsheets.||Project lifetime||Libre Office Apple Numbers|
|YouTrack||Track the progress of a project, a roadmap or something evolving over time.||A project is anything that: Has a status that will change over time; Needs one or multiple people to be achieved; Has a deadline.||Up to several months||Jira Basecamp Trello|
|Zoom||Talk with someone working remotely.||-||Minutes to hours||Slack Bluejean|
|Gitlab||Store my code in a continuous integration and continuous development process.||Gitlab is only accessible to developers.||Project lifetime||Github Bitbucket|