Sunday 9 April 2023

How many effective hours are in a typical work day?

In software development, the number of effective work hours is not the same as the number of hours you are at work. I'm going to be upfront and say it is never as high as you think it is.

This article is meant to give you a feel for what your effective hours might actually be.

Effective development hours calculation

Let's start with this formula for calculating effective work hours. 

E = W - (D + C + M)

E: Effective development hours per day
W: Work hours  
D: Time for daily non-development duties
C: The time penalty for context switching x the number of non-development duties
M: Time lost for morning inefficiency

We'll fill these in as we go...

The 8hr working day

Let's assume that you are working for 8hrs, not including your breaks. Developers tend to be encouraged to estimate tasks based on this full day. 

If I was fingers-on-keyboard effective 100% of the time during all work hours, then a task that I estimate for 1 day should be my maximum theoretical output of 8hrs. But this is never the case.

E = 8 - (D + C + M)


Let's deduct time for detractors

Here are 5 non-development items (with some average numbers based on my experience).
  • Emails (15min)
  • Standup (15min)
  • Meetings (30min - may be more or less depending on the day)
    • Meetings within a sprint are likely to include:
      • Scope/requirements/design discussions
      • Architecture discussions
      • Backlog grooming
      • Sprint planning
      • Sprint review (and possibly a demo)
      • Sprint retrospective
      • Misc.
  • Helping others (e.g. to debug, code review, aid decision making) & misc duties (15min - may be more or less depending on your role)
  • Random chatter (15min)

These 5 non-development items mean that 1.5hrs are deduced from each day on average. 

Now your day only has 6.5hrs.

So you are 100% effective for 6.5hrs right? No!

E = 8 - (1.5 + C + M)


What about context switching?

The multiple distractors have a cost.

Every time you change tasks, it takes time to ramp up to full speed. We call this getting into a flow state. According to Very Well Mind it can take around 10-15min to ramp up. For some tasks it could take a lot longer!

For the sake of this discussion, let's keep this conservative. Those 5 detractors require 15min each, totalling 1.25hrs. Note that this assumes that you only check your emails once per day, and help someone once per day.

Now your available time is 6.5 hrs - 1.25hrs = 5.25hrs

E = 8 - (1.5 + 1.25 + M)


It gets worse!

In my experience, those 5 items are spread throughout the day, and mornings are particularly inefficient. Here is an example schedule.

  • 9am - Get to work and settle in
  • 9:15am -9:30am - Check emails
    • At this point you already lost 15min of the day
  • 10:00am - 10:15am - Standup
    • But what happened to the 30min between checking emails and standup?
In this example we effectively lost 45min of the day.

Subtracting 45min of the day...

Now you have only 4.5hrs of effective development time to do your tasks.

E = 8 - (1.5 + 1.25 + 0.75) = 4.5hrs


Final thoughts

Some of you will be thinking that 4.5hrs of an 8hr day is not reasonable. 
You may be yelling: What if you line-up everything back to back? 

Sure! I actually recommend this! So let's assume you can totally remove the morning inefficiency by having a 915am standup. You are still only at 5.25hrs of effective development time per day. 

But what if you could reduce meetings too? Yes! You should totally reduce meetings. However, you may find that you still need a few of those meetings per week. So you cannot just say no meetings at all! In my experience, you "might" be able to squeeze 5.5hrs of effective development time on average per day.

At this point I would also remind you that people are not robots. We have slow days, and we also make mistakes. Software development is not like building a brick wall, and you have to be realistic about your effective hours, not just count the number of hours in the day.

In my experience I typically say that 5hrs is the number of effective hours per day. This is realistic based on the numbers above, and also allows for a bit of wiggle room.

I hope this gives you food for thought.

The next time you estimate 1 day for a task, remember that your effective hours per day is not 8hrs. It is likely closer to 5hrs.




Friday 4 February 2022

Time constraints and technical debt

Developers often report that time constraints are a causal factor of their incurred technical debt. In fact, this was a finding in an academic study on technical debt factors (Rios et al, 2018). This finding did not dig deep into why timeframe was a problem, however, this finding implies that (at least for some scenarios) it is not possible to do things well due to an aggressive timeframe.


Strategic Technical Debt vs Incidental Technical Debt

There is strategically incurred technical debt and incidental/accidental technical debt. A strong tech team may incur technical debt willingly, with a good understanding of its implications, and hopefully a plan to fix it. A weaker team will often incur technical debt by accident. In other words, they may not even know why their approach would cause technical debt until it is too late in the project.


Why is time a factor?

Some teams can produce a well-architected solution within a tight timeframe. Why is that?

Often developers will say they know it's not very good, however they did not have time to do it well.

However, they really mean something else... 


They did not actually know how to do things well in the first place. Consequently, they did not know how to do things well within the time frame. If they did know how to do things well, then they would have known the consequences of bad code actually slow down the project delivery, not speed it up. Therefore they incurred incidental/accidental technical debt.



How to avoid technical debt?

My top 3 tips are:

  1. Ensure all of your developers know about clean code. Watch THIS VIDEO - They're not allowed to commit any code until they watch and understand this!!!
  2. Practise SOLID principles - Success requires understanding why and when to use:
  3. Have strong skills in TDD/BDD - Requires understanding the trade-offs between different automated testing approaches
    • Get schooled by watching the first 44min of this video by my friend Lars-Erik Aabech, who teaches about automated testing at Østfold University in Norway


For more, on what I think all developers should be exposed to, you can check out my Software Engineering Trello board:

https://trello.com/b/XDZqHM6J/software-engineering-on-a-board




References

Rios, N., Spínola, R. O., De Mendonça Neto, M. G., & Seaman, C. (2018). A study of factors that lead development teams to incur technical debt in software projects. Proceedings - 44th Euromicro Conference on Software Engineering and Advanced Applications, SEAA 2018, 429–436. https://doi.org/10.1109/SEAA.2018.00076

Monday 31 January 2022

Software Engineering On A Board

I have hired dozens of developers over the years. At some point, I started keeping a list of all the skills and knowledge that I want developers to have. 

A year ago I made public this Trello board: Software Engineering On A Board

I envisioned this as being a summary of an Applied Software Engineering course.

Developers who work with me will experience most (if not all) of these learnings at some point. Many of these topics will definitely challenge people to think differently, and hopefully wholistically about code,  architecture and systems.

This board is definitely open to contributions. So if you want to contribute to making it better, please get in touch!


Friday 8 January 2021

UmbrCoach

Introduction

I started my latest side-project around a year ago. Now after several months of "soft launch", I am ready to go full public.

Background

My trajectory as a developer has seen me move through leadership roles in a few companies. During this journey I have come to realise that I really enjoy mentoring and coaching. My proudest moments are when a junior developer suddenly gets it. This gives me great joy.

In the last 12 years I have also been heavily involved in the Umbraco community. This is a great helpful friendly community which has allowed me to contribute in many ways.


UmbrCoach is born!

UmbrCoach is an amalgamation of my positive experiences in the Umbraco community, and my experience of being a coach and mentor. It is my hope that UmbrCoach can gather volunteer mentors from around the world, so we can cover all timezones, and help aspiring developers succeed in their chosen path, no matter where they live. Best of all... It is free!


Help devs find a mentor

You have read this far, so now I need your help. If you know aspiring developers who would benefit from a mentor, please point them to UmbrCoach

Thanks!



Tuesday 8 December 2020

Umbraco Version Cleanup - Ultrascript

 Just thought I'd share my Umbraco cleanup script.

If you're looking to remove old versions, clean up your recycle bin, and generally speed up your database, this is the script for you. It is a combination of all the scripts I have found out in the wild.

Warning: Back up your DB before you run this. You have been warned!


truncate table umbracoLog 

-- truncate elmah table if it exist
IF OBJECT_ID('ELMAH_Error') IS NOT NULL
TRUNCATE TABLE ELMAH_Error

-- empty content recycle bin
DELETE FROM cmsPreviewXml WHERE nodeId IN (SELECT id FROM umbracoNode WHERE path LIKE '%-20%' AND id != -20)
DELETE FROM cmsContentVersion WHERE contentId IN (SELECT id FROM umbracoNode WHERE path LIKE '%-20%' AND id != -20)
DELETE FROM cmsDocument WHERE nodeId IN (SELECT id FROM umbracoNode WHERE path LIKE '%-20%' AND id != -20)
DELETE FROM cmsContentXML WHERE nodeId IN (SELECT id FROM umbracoNode WHERE path LIKE '%-20%' AND id != -20)
DELETE FROM cmsContent WHERE nodeId IN (SELECT id FROM umbracoNode WHERE path LIKE '%-20%' AND id != -20)
DELETE FROM cmsPropertyData WHERE contentNodeId IN (SELECT id FROM umbracoNode WHERE path LIKE '%-20%' AND id != -20)

-- delete the XML nodes...
DELETE FROM umbracoDomains WHERE domainRootStructureID IN (SELECT id FROM umbracoNode WHERE path LIKE '%-20%' AND id != -20)
DELETE FROM umbracoUser2NodePermission WHERE nodeId IN (SELECT id FROM umbracoNode WHERE path LIKE '%-20%' AND id != -20)
DELETE FROM umbracoRelation WHERE parentId IN (SELECT id FROM umbracoNode WHERE path LIKE '%-20%' AND id != -20)
DELETE FROM umbracoRelation WHERE childId IN (SELECT id FROM umbracoNode WHERE path LIKE '%-20%' AND id != -20)
DELETE FROM cmsTask WHERE nodeId IN (SELECT id FROM umbracoNode WHERE path LIKE '%-20%' AND id != -20)
DELETE FROM cmsTagRelationship WHERE nodeId IN (SELECT id FROM umbracoNode WHERE path LIKE '%-20%' AND id != -20)
DELETE FROM dbo.umbracoRedirectUrl WHERE contentKey IN (SELECT UniqueId FROM umbracoNode WHERE path LIKE '%-20%' AND id != -20)
DELETE FROM umbracoNode WHERE path LIKE '%-20%' AND id != -20

-- empty media recycle bin 
delete from dbo.cmsContentVersion where contentid in (select Id from dbo.umbracoNode where path like '%-21%' and Id !=-21)
delete from dbo.cmsContentXml where nodeId in (select Id from dbo.umbracoNode where path like '%-21%' and Id !=-21)
delete from dbo.cmsMedia where nodeId in (select Id from dbo.umbracoNode where path like '%-21%' and Id !=-21)
delete from dbo.cmsContent where nodeId in (select Id from dbo.umbracoNode where path like '%-21%' and Id !=-21)
delete from dbo.cmsPropertyData where contentNodeId in (select Id from dbo.umbracoNode where path like '%-21%' and Id !=-21)

-- delete property data versions
DECLARE @createdDate Datetime = getDate()
 
DELETE FROM cmsPropertyData WHERE
    versionId NOT IN (SELECT versionId FROM cmsDocument WHERE updateDate > @createdDate OR published = 1 OR newest = 1) AND
    contentNodeId IN (SELECT DISTINCT nodeID FROM cmsDocument)
DELETE FROM cmsPreviewXml WHERE
    versionId NOT IN (SELECT versionId FROM cmsDocument WHERE updateDate > @createdDate OR published = 1 OR newest = 1) AND
    nodeId IN (SELECT DISTINCT nodeID FROM cmsDocument)
DELETE FROM cmsContentVersion WHERE
    versionId NOT IN (SELECT versionId FROM cmsDocument WHERE updateDate > @createdDate OR published = 1 OR newest = 1) AND
    ContentId  IN (SELECT DISTINCT nodeID FROM cmsDocument)

DELETE FROM cmsDocument WHERE
    versionId NOT IN (SELECT versionId FROM cmsDocument WHERE updateDate > @createdDate OR published = 1 OR newest = 1) AND
    nodeId IN (SELECT DISTINCT nodeID FROM cmsDocument)
  
-- reindex tables  
DBCC DBREINDEX (cmsPropertyData)
DBCC DBREINDEX (cmsPreviewXml)
DBCC DBREINDEX (cmsContentVersion)
DBCC DBREINDEX (cmsDocument)
DBCC DBREINDEX (cmsContentXml)
DBCC DBREINDEX (umbracoDomains)
DBCC DBREINDEX (umbracoUser2NodePermission)
DBCC DBREINDEX (umbracoNode)
DBCC DBREINDEX (cmsContent)

    
-- shrink database files
DECLARE @logFile nvarchar(200) = (select Name from sys.database_files where Name like '%log')
select @logFile
DBCC SHRINKFILE(@logFile)

DECLARE @dataFile nvarchar(200) = (select Name from sys.database_files where Name like 'data%')
select @dataFile
DBCC SHRINKFILE(@dataFile)



Tuesday 27 October 2020

I gave up my mobile phone and I couldnt be happier




In this age of 24/7 digital connectedness, I have decided to disconnect. It has now been almost 2 months since I gave up my mobile phone, and I could not be happier.

Background

Firstly, let me tell you something... I grew up in the 1980s/1990s and have been into technology since I was a child. I had Commodore 64, an original Nintendo, a Gameboy, and dodgy little Windows 3.1 PC with 1MB of RAM. 

Fast-forward to 2020, and I have been experiencing growing anxiety about technology. Various technologies have not been enriching or simplifying my life, but rather complicating, and adding burden. Around 5 years ago I started putting my phone on airplane mode at night because I didn't want any buzzing or beeping waking me up due to a notification.


I grew to hate my phone

My mobile phone was the first thing I interacted with when I woke, and the last thing I used before going to sleep. For quite some time, I felt that this was unhealthy.

Over the last few years I found myself checking my phone out of habit dozens of times per day. Every time I walked by my phone, I would look at it to see if the notification light was blinking. When I turned off almost all notifications, it still pulled me in to check something. For example, I no longer had email notifications, however I would open the app to check for new emails. 

The other thing I hated about my phone was that I often used it when I should have just waited until  I was home to used my laptop. I even wrote blog articles on it! Do you know how inefficient that was?

Even conversations with people involved using a phone. I would tend to check my phone when hanging out with friends. Google maps, photos, and Googling for information. It seemed that I forgot how to talk to people without using a phone.


What was the tipping point?

In September I had a vacation for 10 days. The plan was to stay home, go for walks, go for a drive, and go hiking... as part of this plan I wanted to completely disconnect from technology. I needed to rest my mind. The following is what happened...

When driving, we used GPS directions in Google Maps. When paying for parking I download an app. When hiking I took my phone and power bank, "just in case". Every time I left the house, I took my phone. Even my attempt to limit my usage was met with scenarios which would prompt me to take out my device.

Did I disconnect? Definitely not. I used my phone almost every day of that vacation. That was the realisation for me that there was no way to "limit" phone usage when the phone was always in my bag/pocket. So I decided to give up my mobile phone.


How did I do it?

To be honest, my first thought was to just throw it away. However I realised that there was too much crap that I had which relies on an app. Such as, Monzo (mobile only bank), Google Authenticator, WhatsApp to name just a few. 

A couple months on, and I have managed to push many of my WhatsApp contacts to email. I never really used the Monzo app, so I will either ditch Monzo entirely, or put it on an Android VM. There are various options for Google Authenticator, however I have not needed to use it as I'm always using the same laptop. So I'll push that decision into the future.

The only other thing was an alarm clock. Luckily, I had an old battery powered Ikea clock laying around.


What is life like without a phone?

It's great. I feel free!

My mobile phone sits in a box on my shelf, power off. When I leave the house, I no longer have a compulsion to check a device, because I don't carry one. I don't even need a watch because I can just ask someone the time. It really is quite liberating. 

In the evenings I have actually started reading before bed, and I find my sleep to be more restful.

There is odd occasion where I need to be called or SMS'd for banking verification, however, that is rate. There are a few options out there such as Skype phone numbers. I may look into that in the future. 


But what if...? 

I know what you're thinking... 

What if I am meeting someone and they're running late? 
I tell them that I don't carry a phone, so they cannot contact me. In other words... don't be shit!

What if I'm running late for a meeting?
I still have email, and my mobile phone is at home in a box. I will just turn it on and make a phone call.

What if I'm out and about, and running late for something?
Remember back in day when people didn't have mobile phones? In other words... I won't pack my life with so much stuff that I end up being late for things.

What about when flights and traveling are ever a thing again? 
To be honest, I will probably take my phone where a flight or a long trip are concerned. However I would treat it like I would a laptop. It would remain turned off, and only be powered up for use as a mini computer to grab documents out of emails. 


Final Thoughts

Being a programmer, I have not disconnected entirely from technology. However, I feel liberated as I am no longer shackled to the mobile phone. Most of the things I used it for are better experienced on a large screen with real keyboard anyway.

Giving up my mobile phone was the best thing I have done in a long time. It was not enriching my life or making it simpler. It was an annoyance. The constant notifications, and habit of checking it were the factors which led me to hate my mobile phone. 

There are still a few apps which I need to either close down or move to an Android VM. However, for the most part, I am phone free.

One bit of advice... If you do decide to follow, you will need a real alarm clock.




Thursday 7 May 2020

Stop Using Timesheets - Tracking Time Is Not Tracking Productivity

I previously wrote an article (rant) about timesheets. That article prompted many discussions about further issues.

See it here:
https://anthonydotnet.blogspot.com/2019/09/stop-using-timesheets.html

In this article I will debunk the notion of using timesheets to track Productivity.

Productivity Is

Productivity can be viewed as the output of value. It is a completed piece of work that provides value to a team/organisation/company/customer/colleague.

Value

A person's output must be add value. Therefore the output must be complete in some form so that a  team/organisation/company/customer/colleague can benefit from the time and effort that was spent creating that output.

I have seen many companies where people start many things, they work hard, they work overtime, and yet they produce little value. An incomplete bridge is of no value. 


Quality

Productivity has a quality element. If a person produces something of low quality, it may be deemed as having little value. Thus, producing low quality work is not really productive.


Time Tracking Is Not Tracking Productivity

Timesheets are a record of utilised time. Utilisation is not the same as productivity (output).

The perceived utilisation of a person's time can be at 100%, however their output may be half-started work items of low quality.

But what about...
I hear some people saying that they are using timesheets to track the time for completed tasks, as each task has its own code.

Realistically, tracking the time for each task doesn't give you the information you think it does. But I hear you exclaiming "A manager can use the time tracked on a task to help a developer become more productive!"

As a manager I already know the strengths and weaknesses of my staff. I don't need a timesheet to do this! Moreover, comparing tasks is not useful as no 2 tasks are the same. There are many different variables that can affect a developer's productivity at a specific task. For example, designs, requirements, client interactions, quality of acceptance criteria. That's not even including stress, illness, and family life.


How To Track Productivity

One great way to track productivity is by counting the number of tasks a person does over a period of time. It's that easy.... In fact it's Dang Easy!

For example, in a given month, count the number of completed tickets/cards in your project management tool (eg. Trello, Jira, Asana, Kanbanize, Leankit) for a given developer. Then count the number of defects which were raised by QA for that developer in the same time period.

Now you have their output over time, and a quality metric which you can use to compare this developer against their own future productivity scores.

You can even use these numbers to compare different developer's productivity.

It's that easy! You don't need timesheets to do this.


Final Thoughts

I hope that I have given you food for thought. Tracking a person's time is not the same as tracking their productivity. Timesheets do not track a person's output, and they do not track a person's rate of output.

A good manager does not need timesheets to figure out if their staff are productive, efficient, and delivering value for the organisation.







Thursday 30 April 2020

Email Tips For Better Productivity

As Technical Director at an agency, I am thrusted across all projects that touch digital. I literally get 100's of emails per day. Before I added email filters, my inbox had at least 30 emails per hour. Most of these emails were just me being CC'd and never really require a response, and many of them are conversational email threads. If you are in a similar situation as me, then you might feel that you are spending more time deleting & sorting emails, than actually reading them.

Here are a a few email tips to help make your day more productive.


Tip 1 - The CC filter

Create a filter for CC'd emails to be automatically moved to a CC folder. Emails which you are CC'd on are just for your reference. If the email really needed your attention or a response then you would be in the main recipient list.

Adding a CC filter will drastically free up your inbox for emails which are actually directed to you.

I got this tip from Scott Hanselman, and it works wonders!

Tip 2 - Labels/Folders

Set up labels to help you find things later. Since I am overseeing all the digital clients, I have at least 20 labels so I can search for client specific emails later. This works really well if you are using something like GMail. For those using Outlook, it is a bit more clunky with folders, however this can greatly help keep your inbox less cluttered.

Tip 3 - Abruptly Cut Email Threads Short

Have you ever been in a long painful email thread? It's like a game of ping pong which never ends. If you notice that an email thread has more than 3 back and forth exchanges, then abruptly cut it short.

Your next email should be something like: "It seems that this requires further discussion. Let's have a quick call to discuss properly".


Tip 4 - Drive Emails To Calls

If you need to ask a client (or anyone for that matter) something, then of course you can ask it in the email. However, that same email could also include something like "Let's have a call to discuss further!".

You would be amazed how fast your day goes when you are not burdened with back and forth emails which clog up your inbox.

Tip 5 - Use Email for Summaries

Use email as repository, not as a main form of communication. Opt have a conversation over the phone, or by video conference first. Then follow up with an email summary of what was agreed. This will stop those painful never ending back-and-forth email threads.

Tip 6 - Move Internal Communication to Slack

If your organisation has Slack (or something similar), then this is a great alternative to email. Many emails are conversational, which means that they can be easily moved into a chat channel or direct personal message.

By reducing/eliminating conversational emails, your inbox will be more lean, and it will be easier to find the things that are actually important.



Final Thoughts

Email noise can reduce your productivity. When you have lots of emails, it is very hard figure out what is important. By following a few simple steps, you can reduce the noise, and stay productive.

I hope you found this article useful.




Friday 24 April 2020

My Number One Mental Health Tip Is Nothing

In this modern age we are constantly switched on, and our brains are engaged in something. We wake up, and the first thing we do is look at a smartphone screen. We sit in front of computers which have Slack/MS Teams, not to mention emails. We "relax" by flipping through Youtube videos, and we end our days with a smartphone.

That's f**king nuts!

Depleting Mental Energy

Our attention is pulled in different directions at least dozens of times per day, which means we are constantly mentally engaged in something. The continuous context switching uses up mental and emotional energy, and we don't even realise it until it's too late. Burn out, depression and a laundry list of other mental health issues can arise.

Worst of all, we have conditioned ourselves to actively seek out those distractions. We have developed an anxiety about NOT having things to engage with.

Our brains did not evolve to be in constant stimulation mode, and this is really effecting our mental health. Imagine a body builder who only works out their biceps. You're probably thinking that such a person would look unnatural. Constantly engaging our brains without rest is also NOT natural.

What can we do about it?

Nothing

I have discovered that one of the most important things for my own mental health is to do nothing.

I sat outside the other day with a coffee. I was going to grab my smartphone out of habit, but something inside me said "I don't have the mental energy to look at that thing right now". So I sat there with my coffee. No smartphone, no laptop, no tablet, not even a book. Just me, a coffee and the sounds of the city.

As I sat there and looked out into the sky and our small garden, I let my mind be in the moment. No engaging in problem solving, no active thinking. Just me and my surroundings. My mind was able to wonder, and when I started to think about something I would calmly bring my attention back to my surroundings... Just listening to the birds, leaves, trains and traffic.

After sitting there for an 1hr, I felt mentally calmer, less tense, and more collected. My brain had more focus and energy.

I realised that for me, the most important thing I can do is to do nothing. To be more specific, to do nothing that would engage my mind. Some people find this state when they exercise, others meditate. The most important thing is putting aside some time to rest your mind.

Final Thoughts

Our modern age is full of gadgets and communication tools which require constant active engagement.  As humans we did not evolve to be constantly stimulated. Our brains and emotions only have a certain capacity, and when depleted, mental health issues may arise. This is why it is important to tune out as often as possible.

For me the most important thing I do is nothing. I sit with a coffee, no phone, no tablet, no laptop, not even a book. Some people will go for walks, others will actively meditate. Do what works for you to help your mind rest.







Monday 30 March 2020

Remote Working - The Most Important Meetings

In this article I want to talk about some meetings which I hope every company will be running each week.

The Monday Kickoff

In an office setting, I would only interact with a few people in my department each week. Sometimes entire weeks go by and I would not have interacted with a couple of the strategists or designers. But in an office setting I can still see their faces at their desks. I know that they exist, and what they do. When your entire department is remote, you have lost that simple human connection of seeing someone's face. This is why the Monday morning kickoff is so important.

The Monday morning kick off meeting is the most important meeting of the week. I'm not just talking about setting weekly priorities and getting status updates. I'm not talking about everyone seeing what everyone is doing either. I'm talking about seeing all the faces in your department. It's about having that human connection. For some people, it will be the only time in the week where you will actually see other people in your department.

If your department workflow allows it, I would recommend having another check-in point in addition to the Monday kickoff. For example, some companies might want to hold a status meeting on Monday, Wednesday, and Friday. These are natural intervals which are not very intrusive.


Daily Project Stand-up

Seeing all of your teammates each day is very important. It's not good enough to just send them a message on a Slack channel. Seeing a person on video helps keep people connected in a human way.

Each team in your department should have a video call each day. Some teams will want this at 9am, while others prefer another time of the day. It's totally ok to have a daily project at 5pm. Just ensure that this daily call is held at the same time every day, everyone attends, and everyone gets a chance to speak.

In a Scrum team, we time-box this to 15mins. It is simply a quick check in so that people can flag any issues for the day. There is typically no need to go beyond 15mins.


Friday Round-off

When we are in a physical office, I typically see this starting around 3pm or 4pm (depending on your team/organisation). People tend to become a little more relaxed and chatty. This is the team bonding over the successes and challenges of the week. People ask what they are doing on the weekend. So rounding off the week is a ritual of comradeship.

Human interaction (seeing faces) is really important, and we all crave it in all different ways. So my recommendation is do have a Friday Round-off video call.

Last week, all the developers had an end of week Zoom call. Most of us had not seen each other all week (let alone chatted), so this was a great opportunity to just catch up and chat about things. This is an opportunity to actually interact with people who you normally don't see.

This meeting doesn't have to be the entire department. It totally depends on you. It just needs to be social, and is meant to simulate your Friday afternoon casual chats. You may even decide to do something like a Friday Bar. It's a great global Umbraco community Friday event.


Final Thoughts

Remote teams need rituals to facilitate human interaction. I recommend a Monday Kickoff, Daily Check-ins/Stand-ups, and Friday Round-off. These meetings are not meant to be just for status updates (although still very important). These meetings are a chance for your teams to see each others faces and have human interaction.

I hope you find this article useful, and I highly recommend you introduce these video calls in your remote teams.