The Art of Writing Software

Find Me on Mastodon

I’ve taken the plunge, and have set up shop on Mastodon at Talk to you there!

Effective Sync Meetings

I ran across a paper a few years ago: “Do we really need another meeting? The Science of Workplace Meetings”. This paper is a survey article summarizing recent research about what makes for effective meetings (and what makes for ineffective ones, too). In a prior role, we took the findings and applied them to a meeting that many people learn to loathe: the weekly status (or sync) meeting. Everyone has been in mind-numbing versions of these, where a deck is prepared, and then someone reads it out loud to the leader who is the primary audience for the meeting (and who has not read the deck yet).

Individual Contributor

At work, I recently decided to take off my Chief Software Architect hat and hand over the reins of my prior department to one of my direct reports. In my new role, I’ll be an individual contributor again, working on the Comcast Labs team on some advanced research and strategic analysis projects in my capacity as Senior Fellow. I wanted to capture some of my thoughts as I begin this next step in my career.

Allies for Diversity Panel

I had the opportunity to speak last month on a panel about “Allies for Diversity” at the Comcast Labs Connect conference Innovation for Inclusion of Diversity & Accessibility 2020. The panel was moderated by Kendra Lee and I was joined on the panel by Nithya Ruff and Shane Portfolio. Video of the session is available here.

How to Pitch a Project

Tags [ pitches, ROI ]

So you have a project idea and you want to get approval to work on it? Since this is presumably something that’s not within your current authority/ability to do, you’re going to need to pitch it to someone. Having been on both the pitching and receiving end of these, not to mention just being in the room as an observer, I’ve developed a particular approach for these. Since I’ve found myself providing this advice to folks several times recently, I figured I’d write it down.

Universal Scalability for Orgs

Tags [ scalability, management, organization, USL ]

Last week, Coda Hale published a very thought-provoking essay, “Work is Work” where he explores what is necessary to increase (not to mention just maintain) productivity as an organization increases in size. A man after my own heart, he applies queuing theory to the process of getting work done in increasingly larger organizations. I was inspired to look at the same problem through a slightly different theoretic lens: the Universal Scalability Law (USL), as put forth by Neil Gunther.

An Introduction to JSON-LD

Tags [ JSON-LD ]

I’ve been spending some time recently thinking about ways to maintain loose coupling between lots of different teams. I suspect this involves thinking about shared protocols between the teams (i.e. having well-defined interactions) more than worrying about internal “implementations” like what flavor of Agile you use or what programming language you write in. The World Wide Web is a pretty obvious example of a system that did this well, and its architectural style was described in Roy Fielding’s thesis.

Complex Systems Talk at Philly DevOpsDays

Tags [ complex systems, talks ]

I gave a talk at Philly DevOpsDays last month: “We Have a Complex Systems Problem…and We Need to Talk About It.” Check out the video below!

On People Leaving a Department

Tags [ management ]

I recently fielded a question in a department ask-me-anything (AMA) session noting that a few folks have left our department recently, and asking what I thought about it. I thought I would share a lightly-edited version of what I wrote: In general, I assume that when someone joins my department, it will be for a finite period of time; it would be really unusual to hire someone right out of college and have them work in our department until they retire!

Running Concourse Locally on Windows

Tags [ Concourse, Windows ]

Update 3: Ok, got this all documented, cleaned up, and pushed to Github: vagrant-concourse-local. Update 2: Bosh deployment also didn’t work on Windows. I did finally manage to get builds working. Rough recipe was: use Vagrant (from the Windows shell) to spin up an Ubuntu box. Run vault, postgres, and concourse via docker-compose (I wanted to use Vault because that’s how I am used to managing secrets, although unsealing is a pain).