Road to Automation: Updates
Team collaboration must get a sense of each others’ whereabouts as quickly and accurately as possible. Usually, teams resort to recurrent meetings to get updates from each other.
But meetings are not always the best way for this scenario:
- Meetings are synchronous, so everyone has to wait before continuing for the others to finish.
- Especially when communicating verbally, it is difficult not to misinterpret each others’ words.
- It is challenging to scale up the team size because that would amount to more meetings and more probable misinterpretation of the updates.
- It is challenging to work as a distributed team where members can reside in different time zones.
Building on top of the experience to automate our product release process, we now automate the process to get daily and weekly updates from each other from exactly where work happens and consume them asynchronously at our own pace.
👀 where work happens
Instead of listening to what each other has to say about the work, we can look at the actual execution. Since we already use GitHub to collaborate, we can consume the various signals around PRs (pull requests) and issues.
An example of our daily update for the entire engineering organization:
13 PR/issues updates
- ✔️ Done: 1
- ⚠️ WIP: 4
- 👀 Needs review: 8
LOCUS
snoke - (vxsl)
- ⚠️ PR #1030 Deps/kepler sidegrade (vxsl)
- 1 comment - (netlify[bot])
- 4 updated commits
locussdk - (amy83762100)
- 👀 PR #158 marketplace_datasets - pass cu, wl to’/market/subscription’ (amy83762100)
- 2 updated commits
- 👀 PR #157 get_aoi_dataset - add run_async option (amy83762100)
- 1 updated commit
firstorder - (amy83762100)
- 👀 PR #644 marketplace_datasets - get ‘cu’, ‘wl’ from query (amy83762100)
- 1 comment - (woozyking)
- 5 reviews - (woozyking, amy83762100, kevlabs)
- 2 updated commits
- 👀 PR #643 get_aoi_dataset - migrate get_aoi function from EnrichData to firstorder (amy83762100)
- 1 updated commit
(more)
A member can scan through the updates and go to the PRs or issues they are interested in for more details. The updates allow us to gather insights and ask more informed questions to the relevant contributors.
Assisted curation
To help us sift through noises, we incorporate status symbols and what we have done in our release CLI by utilizing NLP models to label the PRs.
An example of our weekly digest (which naturally contains more information than the daily updates), with labelled changes:
30 PR/issues updates
- ✔️ Done: 23
- ⚠️ WIP: 4
- 👀 Needs review: 3
LOCUS
locussdk - (divyselva)
OTHERS
- 👀 Issue #156 get_aoi_dataset() timeout error (divyselva)
data-hub - (vikivanov)
ADDED
- ✔️ PR #82 sftp - added paramiko to requirements and new image version (vikivanov)
- ✔️ PR #81 sftp - added missing connector type to dag helper (vikivanov)
firstorder - (amy83762100, DoParkEQ)
FIXED
- ✔️ PR #642 convert_geoid - fix bug - pass wrong payload to lambda function (amy83762100)
ADDED
- ✔️ PR #635 marketplace search update (DoParkEQ)
snoke - (woozyking, vxsl, DoParkEQ)
CHANGED
- ✔️ PR #1029 city - load locus.city demo as an iframe sidecar to the main page (woozyking)
- ✔️ PR #1028 navbar - initialize wl/cu names on page load (vxsl)
- ✔️ PR #1024 marketplace product/detail page update (DoParkEQ)
(more)
Other sources
To supplement concrete work progress and issues from GitHub, we also look at elective journals that some of our team members opt to record throughout their workdays (see our journal-bot
project for more details.) The journals are an excellent way to understand each team member’s focus throughout the day.
On top of the journals, we also source information on who is on or to have upcoming vacations, so teams can proactively work around potential blocks without some members.
Vacations
- redacted1@eqworks.com - Mon, Nov 15 to Fri, Nov 19, 2021
- redacted2@eqworks.com - Mon, Nov 29 to Fri, Dec 3, 2021
Journals
KC
Did:
- connection-hub - side connection dropdown selection
Doing:
- lumen-table - test filtering options with virtualized table
- connection-hub - new connection UI modal design
- connection-hub - test each connection & fix small bugs
- connection-hub - optimize state management
Erika
Did:
- react-maps/LocusMap - only show MVT tile polygons that have data if possible #106
- flood-maps - implement select locations #2
- flood-maps open #1 & #2 PRs for review
- kepler.gl - review [BUILD] v1.1.17 - custom build to avoid dependency conflicts #1
- snoke - review [G2M] Deps/kepler sidegrade #1030
- react-maps/LocusMap - create [WIP] LocusMap - fix cursor and set visible and pickable for Select layer; allow setting MVT polygon strokes to transparent for no data #106
flood-maps - capitalize locations and close #2Doing:
- react-maps/LocusMap - implement onClick - later
- react-maps/LocusMap - implement select data process - later
- widget-studio/map-widget - create controller for MVT layer
- widget-studio/map-widget - create controller for polygon GeoJSON layer in case we use province coordinates for GroupBy
(more)
Future roadmap
We already use this automated tool beyond the scope of daily and weekly team updates:
- We have been using the updates tool to generate quarterly reports to capture all the work done by the team for audit purposes.
- Similarly, we started to utilize the tool to generate yearly reports for our SR&ED (Scientific Research and Experimental Development) documentation and filing reference. As a result, we significantly cut down the cost to interview individual contributors who may or may not recollect what they have done during the past year.
As for the roadmap:
- We want to add more sources, such as updates from Zeplin, Figma, Google Calendars, and many more, to balance between personal preferences of tools and channel relevant information back to a more common destination for everyone to ingest.
- We are looking to enhance our NLP assistance to deduplicate between various sources to reduce similar journal and GitHub items.