The role of a cruise director in software development

Haifa port at sunrise — courtesy of Expedia

You can automate software deployment but for shipping product, you need a team working well and being well — and the well-being of people on your team cannot be automated.

These are times of politically-correctness and CI/CD (continuous integration/continuous deployment).

I’m pretty sure you don’t use the term build master anymore, but 30 years ago, when Microsoft was building Windows NT, Dave Cutler (the fabled architect of VAX/VMS and NT) and his team built the operating system every day by hand by a build master.

I asked a QA person in the office where I work if she was familiar with the term “build master”.

She was not.

I think she heard of Windows NT. Not 100% sure.

Does CI/CD make build mastery a thing of the past?

First of all, let me start by saying that the Flaskdata.io engineering team rocks. My gratitude to Alex, Eugene, Rivka, Sergei and Anat.

We use Jenkins for automating deployment but automation is not shipping.

Shipping is the hardest thing to do. If you’re better at shipping than your competitor, you’re likely to be better than your competitor at virtually everything. Timely, frequent shipping is the manifestation of well-being on a software development team.

- Jim McCarthy, Dynamics of Software Development by Jim McCarthy, Denis Gilbert , ISBN: 1556158238

Let’s illustrate this with a test case.

We discovered a bug in the product 2 days after a release. After shipping a new release, one of the key application functions did not work.

During an investigation , we didn’t find test evidence that the enhanced function worked properly before shipping.

There were 3 tickets related to the function; a bug report and 2 enhancement requests.

One of the tickets was not labelled as impacting the function. Not immediately a suspect in our investigation. It was not in the post-installation smoke test either. Of course, the unlabelled ticket was the root cause of the bug. Murphy working overtime.

The function passed unit testing because test coverage was inadequate. A visual inspection of the results showed the bug in all its glory.

In code— Believe everything you see.

How do prevent a problem like this from reoccurring?

Debrief and own

At the daily scrum, we debriefed the incident. Eugene says its my fault — if it passed unit test, then test coverage was not good enough. Alex said its my fault — I should have anticipated the test case and visually inspected results. Anat says — I didn’t even know there was a ticket that impacted the function.

I said no — “As CEO, its my fault and I take responsibility for the incident and the corrective action. Since the root cause was a poorly-labeled ticket, We’ll start with a strict naming / tagging convention for tickets like <Module> — short description of work.

But naming conventions are not enough.

Make a Ship list

If you think that the name sounds like something else, you’re right.

Even though we use Jenkins for automated deployment, the Ship List is a manual checklist in a Google Sheet. It’s like those signs in hospitals reminding the staff to wash their hands.

The ship list is a checklist of what to do before shipping. Simple.

Have a Cruise director

We didn’t want to say ship master or ship mistress, so we called the person in charge of shipping product — the Cruise Director. Their role is 5-fold:

  1. Writes the ship list and shares with the team including customer success. More eyeballs is better.
  2. Visually inspects the product before shipping.
  3. Schedules the ship to leave port
  4. Has total veto power. No one, not VP Product, not CEO, not VP R&D can override a Cruise director decision to ship or not to ship.
  5. Debrief 48 hours after shipping.

The Cruise Director and team well-being

Timely, frequent shipping is the manifestation of well-being on a software development team just as Jim McCarthy wrote over 30 years ago well before CI/CD.

You can automate software deployment but for shipping product, you need a team working well and being well — and the well-being of people on your team cannot be automated.

The Cruise director is in charge of timely, frequent shipping. For a great team — knowing that the product is out there and being used, this is an amazing contribution to well-being. For the CEO — who could ask for more.

--

--

--

I am a physicist by training, serious amateur musician and everyday biker. Working in cybersecurity and AI-driven monitoring of clinical trials.

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Create new git repo from existing git repo

Whitelist Sale Live!

Reebok Clone

Introduction to the OpenMP with C++ and some integrals approximation

Time saving habits for programmers

Making iOS UITextField accept number only

Ruby, Ruby, Ruby, Ruby!

CSS (who are you?)

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Danny Lieberman

Danny Lieberman

I am a physicist by training, serious amateur musician and everyday biker. Working in cybersecurity and AI-driven monitoring of clinical trials.

More from Medium

You lose Ms. Apgar

My Journey as a Software Engineer

How to become a master of your code

Is Software Development Hard? Top 9 Challenges And Solutions