Onboarding with 1:1s, dependencies, and personal workspace π‘
Monday Ideas β Edition #90
This edition is brought to you by Tonic!
The Tonic test data platform provides teams with the tools and integrations they need to transform sensitive production data into realistic test data thatβs safe and easy to deploy across pre-prod environments.
From data masking and subsetting that preserve referential integrity, to ephemeral test databases spun up on demand, Tonic enables you to keep your environments fresh and in sync with quality test data to fix staging, catch bugs faster, and shorten your release cycles.
(Oh, and yes, it comes with a full API.)
1) π¬ When you are new, just talk with everyone
One of the most underrated tactics to onboard yourself well in a new company is to have 1:1s with literally everyone who is even remotely related to your job.
Do that in the first 30 days, and don't wait for your manager to take care of this.
How to?
Create a list of all the people in your team and key stakeholders in the company. Don't be afraid to reach out to the manager of your manager, and others that feel "too high". Nobody ever gets pissed off for this.
Prepare some questions to make this both a moment of bonding and learning. Here are a few:
What should I know about the product / company / people?
What is the biggest challenge that you face?
What can I do to make your life easier?
Who else should I talk to?
You will be surprised by how much you can learn from people with casual chats, where there are no expectations whatsoever.
This was one of the best pieces of advice I received from Aadil during our chat last week:
2) βοΈ Prune your dependencies
Most applications today have just too many dependencies. Dependencies spread out for many reasons:
Templates and boilerplates bring in stuff that you donβt use.
Different teams use different libraries for the same purpose (e.g. HTTP calls).
Dependencies from dead or pruned code are never removed (βmaybe this is used elsewhere?β)
Keeping a few dependencies is crucial, because dependencies, in turn, bring various problems:
πΒ SecurityΒ β they increase your applicationβs attack surface.
πΒ ReleaseΒ β they increase build and deploy times.
π§Β MaintenanceΒ β they require constant work to be kept up to date.
The best way to keep your footprint small is prevention:
Create a developer portal to keep consistency across teams (e.g. withΒ Backstage).
Explicitly favor using libraries you already use, instead of new ones (e.g. you can write this down in your design doc template).
Whenever you remove some code, check if you can remove some dependency.
On top of this, you can also do periodic clean-ups β e.g. once a quarter β where the whole team spends a few days squashing unused / redundant dependencies. Or, if you doΒ bug duty, you can make dependency pruning part of the duties.
I listed more techniques (and resolutions) you can adopt for the new year in this recent piece π
3) π± The PRT System
In November last year I wrote a piece about Personal Knowledge Management, where I detail the workflows I use to run Refactoring β and my life.
In my workspace, I have three main buckets: π¨Β Projects, πΒ Responsibilities, and π·οΈΒ Topics (PRT).
1)Β Projects π¨
Projects are things I want to achieve on a defined timeframe. They have a beginning and an end, and are bigger than a single task (I canβt complete them in one sitting).
I create 5-6 projects every quarter, and that includes both Refactoring projects and life projects, e.g. the recent relocation we did, or our honeymoon.
2) πΒ Responsibilities
Responsibilities are activities that I do on a regular basis, for which I need to maintain a standard. E.g. writing on social media, or running interviews with guests.
The defining feature of a responsibility is that it is recurring: it doesnβt have an end. So, while projects requireΒ plansΒ or roadmaps, responsibilities requireΒ proceduresΒ about how to perform them.
I usually have a recurring task on Todoist for each responsibility, linking back to the procedure on Notion.
3) π·οΈΒ Topics
Finally, topics are areas of interest. A topic is anything that can be useful in the future. Examples are βfrontendβ, βno codeβ, or βsim racingβ.
Topics are the leastΒ actionableΒ category. Itβs stuff that I believe it is worth saving, but I have no expectation of doing anything with it in the near future.
The Projects β Responsibilities β Topics organization kind of goes from the most actionable to the least.
New activities always start as projects, to kick them off. Projects may eventually turn into responsibilities: e.g. I start doing paid ads (project), and eventually I need to manage them weekly (responsibility).
So, when I organize my notes (check the full article for more) I take those that areΒ unassigned βΒ no project, responsibility, or topic is attached β and I assign them to at least one of these buckets. Each note may belong toΒ eitherΒ a project or a responsibility, rarely both, and can have further topics attached.
For doing this, I use Notion. Notion can model this organization through database relationships, which is flexible and powerful in many ways. Its ability to use views, formulas, and rollups, to me, is simply unmatched.
The main drawback of Notion, if you ask me, is that it isΒ slow, and a bitΒ cumbersomeΒ on mobile. This would be an issue if I used it for capturing stuff, but I mostly donβt, so all good!
To me, for organizing, flexibility > speed.
π³οΈ The State of Engineering Productivity
Finally, I have a quick ask! π I am conducting a survey about what makes engineering teams productive: practices, usage of metrics, tools, etc.
If you want to help me out on this, you can fill out the survey below πΒ it takes less than 5 mins.
Thank you, it means a lot!
And thatβs it for today! If you are finding this newsletter valuable, consider becoming a paid subscriber β 1500+ engineers and managers have joined already!
Learn more about theΒ benefits of the paid plan here.
I wish you aΒ great week! βοΈ
Luca
I like the PRT system.
Currently I have the PARA system (more or less), but I'm not 100% on board with it.
Love the 1:1 onboarding tips! In fact, that is also what I did when I was onboarded remotely during the pandemic. I tried to schedule a 1:1 with all the team members and get to know them. This helps me build the initial trust with the team for my first 30-60-90 day onboarding.