Author: Phil

Phil Reynolds

December 1, 2021

Tools We Use

This aims to give an overview of the tools we use and the way we use them to build software in the Legal Innovation Lab Wales. It describes a current state, things are likely to change over time, and we’ll try to keep this up to date as things evolve.

Update December 2021: We've updated the way we use a few of our tools and added a few more to our toolbelt. The original article is still available in our blog archive.

Office / Outlook

The University has an Office 365 subscription for all staff. We use Outlook for emails and the Outlook calendar meetings/events.

Teams

As part of the office package we use Teams as our primary communication platform. We use it in a couple of different ways. The main "Team" is used to organise documents by the project team.

Chats

The main communication in teams happens in chats. These are informal conversations about a range of topics with specific people or groups of people. We have a DevTeam chat and a LegalTech chat which are used most frequently.

Channels

Channels are a more structured way of having conversations around a specific topic. The nature of channels is more persistent and asynchronous. We should use channels for discussions around specific topics which aren’t necessarily related to a task in Jira.

Notion

Notion is our main knowledge base. We have a range of pages relating to specific projects as well as spaces for each of our developers to work on blogs and other writing. There are also pages for to help track the dev team's priorities and progress.

We also have an Ongoing Projects Board on Notion, which the wider team use to manage different projects, and their progress.

Lucid

We use LucidChart as part of the project planning process. We create ERDs and other technical drawings on Lucid. The ERDs serve as a reference for the database designs in our apps and will be kept up to date during development.

Lucid is also great for other diagrams and drawings. The project lifecycle document as well as some specific user flow documents have been created on Lucid.

Figma

We use Figma for designing user interfaces. We don't use this religiously, but when we need to showcase designs to stakeholders before we create them in code, Figma is the best tool for the job.

Planner

The dev team no longer uses Microsoft Planner

Jira

Jira is our main software development project management tool. This is where the day-to-day of our dev team happens. We have several boards where individual cards correspond to individual tasks. These cards are often referred to interchangeably as tasks, issues or tickets.

The main Dev Team board is for general tasks which don’t relate to any specific project, or relate to projects which are not mature enough to warrant their own board. We also have separate boards for other ongoing projects.

On these project specific boards, each issue card should relate to one specific feature, bug or task. This normally equates to one Pull Request on GitHub.

Jira is also where we have discussions related to specific tasks. Comments can guide the conversation while the description can be updated collaboratively with improvements from the comments.

GitHub

We use GitHub for version control, code repositories and peer reviews of our code.

For more information on how we use GitHub, Jira, and build features see “How to Build a Feature”

Calamari

As with the rest of the faculty, we use Calamari for time off booking and management.

Zoom

As well as Teams video meetings, we often use Zoom for video conferencing.

1Password

Most of our accounts require secure passwords and MFA. I personally use1Password for password and OTP management. Although other FOSS alternatives are available such as LastPass, Bitwarden and Authy.

Tech Stack

The following tools are more specific to our software tech stack. We have a preference for Rails due to its developer-friendliness but do use Python and Java in some projects. We use the following tools as part or our infrastructure stack.

Netlify

Netlify is one of the tools we use for static site hosting. The Developer page is hosted here. If we need to spin up any other static sites, Netlify is something we would consider. Other than Netlify, we would consider using Cloudflare

Cloudflare

Cloudflare forms part of our technical stack. We use Cloudflare to manage the DNS for legaltech.wales domain and all subdomains. Cloudflare does all the things that they do really well; caching, firewalls, security and more. For most of our prototypes, Cloudflare sits between the user and Heroku.

Heroku

We leverage Heroku's PaaS to host the infrastructure our most of our prototypes, any full-stack apps are likely to live on Heroku.

Ruby.ci

Ruby.ci does some automated checks on our code to help use maintain high quality.

Sendgrid

As part of our prototypes, we use Sendgrid to power email sending from our Rails apps.