If it isn’t good, let it die. If it doesn’t die, make it good. – Ajahn Chah
Spring has arrived in London.
I’m not particularly religious but in the run-up to Easter I always like to think about reinvention and rebirth, something which always starts and ends with death and decomposition.
When things start to feel stuck, look for things that may be dead, sclerotic, or ossified that can be cleared away or released.
Today I noticed a few sad houseplants that I’d been neglecting.
I brought them to the kitchen, trimmed away the dead parts and re-potted them.
It felt good to get my hands dirty, to physically pull the impacted root clumps apart and sink them into fresh soil, preparing the way for new growth.
A few weeks ago I saw a great exhibition at Sommerset House all about Soil. I thought a lot about all the little organisms that break things down at a microscopic level and clear them away–to digest them into seemingly nothing but actually, everything.
Their waste enables every living thing on this planet to exist.
Earlier today, I spent about thirty minutes finding and removing old files from Google Drive that I didn’t need anymore. It gave me space in my Google Drive and mental clarity to stop thinking about this stuff.
On a larger scale, one of my large government clients recently grew from 800 people to over 1600 people in the span of a month. I’m helping them to go through a stop/start/continue exercise across their entire portfolio.
One of my favourite workshop techniques to help teams to embrace creative destruction and support growth is Ecocycle Planning.
In our professional objectives & key results (OKRs) we must remember that not every OKR is about growth and expansion. Sometimes it’s about reduction, simplification, spinning down and letting things go. Reducing unused or obsolete code libraries. Stopping projects which are no longer delivering enough benefits. Letting go of those clients that aren’t helping us move our business where it wants to go.
Janice Fraser introduced me to the idea of “zombie projects” and talks a lot about the importance of letting go of work that isn’t aligned with our greatest ambitions. I also listened to this podcast with Adam Fishman about killing off non-viable projects at Mozilla.
Agile teams break down work into smaller completable tasks. Complex problems can be solved by “decomposing” them into their constituent parts. Decomposition is also a useful pattern for creating more maintainable software architectures.
Always be kind, for everyone is fighting a hard battle. – Ian Maclaren
On a more personal note, I’ve been thinking about my own life.
What parts have become sick or even dead and need to be released or cut loose so they can decompose? What must I put down and let go?
I’m thinking about my relationships, both romantic and platonic. My possessions. My hobbies.
Finally, of course, I’m thinking about my parents.
They’re getting older.
And so am I.
Life, itself, is a living thing. Let it change and grow and evolve and someday die and decompose making way for more life.
It’s a useful reminder that life, itself, is a living thing. It sounds obvious, but so often we forget and expect it to stay the same day after day, year after year.
It is not static but ever changing. We must let our lives grow and evolve.
Life is also not a single entity but an infinite number of tiny interactions, relationships, accumulations, births and deaths within your body, your mind, your career, your friendships, you neighbourhood, and beyond.
Let them grow and live and die and decompose and become something new.
Just bring conscious awareness to the process. Death and endings are not “bad” but absolutely essential–also unavoidable. Anything with a beginning must also have an ending.
And every ending is the beginning of a new story.
I’ve been enjoying using GenAI to create simple Google App Scripts. Here’s one I created to help me find and and remove old files from Google Drive that were public and might be obsolete.
1function findPublicOldFiles() {
2 var driveFiles = DriveApp.searchFiles(
3 "(mimeType='application/vnd.google-apps.document' " +
4 "or mimeType='application/vnd.google-apps.spreadsheet' " +
5 "or mimeType='application/vnd.google-apps.presentation') " +
6 "and (visibility='anyoneWithLink' or visibility='anyoneCanFind') " +
7 "and 'me' in owners"
8 );
9
10 //Find public things which haven't been touched in XX months
11 var monthsAgo = 24;
12
13 var minDateOfLastUpdate = new Date();
14 minDateOfLastUpdate.setMonth(minDateOfLastUpdate.getMonth() - monthsAgo);
15
16 var results = [];
17
18 while (driveFiles.hasNext()) {
19 var file = driveFiles.next();
20 var lastUpdated = file.getLastUpdated();
21
22 if (lastUpdated < minDateOfLastUpdate) {
23 results.push([
24 file.getId(),
25 file.getMimeType(),
26 file.getName(),
27 lastUpdated,
28 "=HYPERLINK(\"" + file.getUrl() + "\", \"Open\")"
29 ]);
30 }
31 }
32
33 if (results.length === 0) {
34 Logger.log("No old public files found.");
35 return;
36 }
37
38 var sheet = createOrGetSheet();
39 sheet.clear();
40 sheet.appendRow(["File ID", "Type", "Name", "Last Edited", "URL"]);
41 sheet.getRange(2, 1, results.length, results[0].length).setValues(results);
42}
43
44function createOrGetSheet() {
45 var ss = SpreadsheetApp.create("Public Old Files Report");
46 return ss.getActiveSheet();
47}