Building Cyber-physical systems in the COVID era
For a long time now the benefits of co-located teams all working in the same place has been pushed as the idea model for product development. If they are not co-located how can they eat the two pizza's Jeff Bezzos will allow them. The theory goes that co-location allows frequent in-person contact, quickly builds trust, simplifies problem solving, encourages instant communication, and enables fast-paced decision making. Covid-19 has put this theory to the test, as teams have been forced to go remote. There is emerging evidence that the shift to remote work does not need to have an impact on productivity, as long as the culture of the team is designed to mimic the kind of camaraderie, community, and trust that comes more easily to co-located teams.
The critical infrastructure team put this to the test, building a Cyber physical system (CPS) across two states and territories. The only time member of the team saw each other in person was on the day of the demonstration and even then the full team was not together. Here is a reflection from some of the challenges/lessons learned of running a fully remote team:
Accept dislocation and divide tasks clearly amongst team members. Reduce the tasks to discrete components that can be done by a single person
Accept that certain tasks/meetings will take longer: this will avoid frustration and ensure you are not behind in plans
Do not spend all day on Zoom/Teams: there can be a tendency to spend extra time in meetings to ensure we have face to face connections. Some of. this is productive but it can become a distraction and exhausting quickly
Play to your strengths: with co-located teams it may be possible to mentor more junior members, this is not the case with distributed teams on tight deadlines
End-to-end testing is more complex: ensure you have parallel environments in the locations where your teams are. Don't be sending hardware through the post at the last minute
Embrace collaboration tools: chat, file sharing, version control etc.
Communicate Regularly: not only for team morale but also to ensure tasks are not duplicated.
Develop a clear plan, make sure everyone is across it, and refer to it and update regularly
If your team does these items then you can build a product as effectively remotely as in person. And who does not want to work with this view!
Here is the SMARC unit we built