Setup digital workspace for your software engineering projects

I'm a full-time freelancer for over a year now, and it's only 3-4 months that I've developed a fully organized environment for my work. My environment includes not only my home office setup but also the digital environment where I manage my projects.

I work as a software engineer and project manager/product manager, these roles require different environments. Today let's focus on the software engineering part. As software engineer here are the problems I'm trying to solve in my digital workspace: - clear communication with my customer, - easy and fast task management system, - control over project scope, - timesheet and (or) time tracking, - budgeting.

Customers can be different. Sometimes they can require to join their internal communication system,  sometimes they can require a weekly email reporting, and some of them might want to join to your workspace.  This article covers the case when your customer wants to join your internal environment.  

Here are some options for your base communication platform.

1. Setup your task management environment

You can love it or you can hate it (I'm on the hating side for this) but it's undeniable that Trello is the simplest free task management tool out there. It's easy to learn and get's the job done.

I'm creating 3 simple Kanban boards.

- Product - where customers can add new features to the product. If the feature gets approved then it should be moved to the "Development" board. The responsible for this board is the customer.

- Development - where only approved features are located, here I'll breakdown each feature into actionable steps for my development process. The responsible for this board is the developer.

- Launch - where are located the events that I or the customer needs to do to launch the product. For the customer, it can be something like "Registering as a merchant on payment gateway", for the developer "Configure CI/CD pipeline for production environment".

The goal of this step is to ensure that:

- the developer and customer are on the same page with the deadlines, scope, and features that are going to be developed.

- the developer gets only the approved features.

2. Connect your task management environment to your development environment.

It's great having a good and up-to-date Trello board, but at the end of the day, the most important place for the developer is the versioning system where they are pushing their code. For me it's github.

Now trello has some power-ups that connect the boards, lists, and cards to a specific branch in the repository, but to get access to them you need to upgrade to the business plan, which can be totally worth it but preferred to skip this step. To do that I turned to my most favorite tool of all time Zapier. In case if you don't know, Zapier helps to integrate two different apps together completely free. So we're going to use it to connect Trello and Github.

To do that go to Zapier's home page and select the apps.

From the list, we need to select the last zap "Send Trello new card activity to Github as new issues", this will create an issue on GitHub repository each time after a new card is created on a specific board. After you selected the zap all you need to do is authorize on Trello and Github, and you're good to go.

3. Track your time and workload

Huge part of the work as a freelancer is tracking your time, to understand your workload. It helps you to efficiently plan your availability for other projects and tasks that you may take in.

I used a few time trackers including the one provided by Upwork, but as of now, I'm only liking DAE.SK.

It's a simple stupid solution for time tracking, timesheet management, and budgeting. In addition, it also provides a smart and interesting analytics tool that helps you to understand what are you working on more, what are your most active and efficient hours.

It also helps you track your most common activities with their system of #objects and #activities.

Having control over your time is the most important part of freelancers' day-to-day life. Automation and not going crazy for different trading methodologies will help you to figure out the routine that works for you. It's a lifelong journey and it's okay if the first few months you don't have everything figured out!

Experiment and roll as it goes.

Be the change, don't be afraid of it.