When to Shut Up: A Visual Guide (with included algorithm)

From time to time, many of us find ourselves delivering speeches of various sorts: best-man toasts, employee training sessions, or extended monologues delivered to a confused Arby's employee.

It can be tricky, however, to determine the optimal duration of such speech.

Below, I've compiled a visual guide to help you figure out when you should put a sock in it.

Following these rules won't necessarily guarantee a successful speech — that largely depends on the quality of the content — but it will guarantee that excessive duration is not the chief complaint.

In addition to the visual guide, I've also included an accompanying algorithm that implements the logic from the guide.

In case you're curious about the format of the flow chart shown in the image above, it's a Drakon chart.

Drakon was developed as part of the now-defunct Soviet space program to produce flow charts with tidy control structures.

If you'd like to experiment with your own Drakon charts, check out DrakonHub.com

The algorithm

Below is a simple Python algorithm that (roughly) implements the logic shown in the flow chart above.

def when_should_i_shut_up(
    threshold = "optimal",  # one of: "safe", "optimal", "maximum"
    speech_solicited = False,
    speaker_prepared = False,
    speech_outlined = False,
    speaker_experienced = False,
    audience_knows_time = False,
    speech_written = False,
    audience_paid = False,
    speaker_is_jesus = False,
):
    if not speech_solicited:
        speech_minutes = (0, 0, 1)
    elif not speaker_prepared:
        speech_minutes = (1, 2, 3)
    elif not speech_outlined:
        speech_minutes = (2, 2, 3)
    elif not speaker_experienced:
        speech_minutes = (3, 4, 5)
    elif not audience_knows_time:
        speech_minutes = (5, 8, 10)
    else:
        speech_minutes = (15, 30, 60)

    if speech_minutes:
        if threshold == "safe":
            result = speech_minutes[0]
        elif threshold == "optimal":
            result = speech_minutes[1]
        else:
            result = speech_minutes[2]

    if speaker_experienced or audience_knows_time:
        if speech_written:
            result = int(result * 1.2)

    if audience_paid:
        result = result + (30 if threshold != "maximum" else 60)

    if speaker_is_jesus:
        result = float('inf')

    return result

About Shaun

Shaun Gallagher is the author of three popular science books and one silly statistics book:

He's also a software engineering manager and lives in northern Delaware with his wife and children.

Visit his portfolio site for more about his books and his programming projects.

The views expressed on this blog are his own and do not necessarily represent the views of his publishers or employer.

Recent posts


This online experiment identifies dogmatic thinking

Adapted from a 2020 study, this web experiment tests a cognitive quirk that contributes to dogmatic worldviews.

Read more


Distributism: A Kids' Guide to a Third-Way Economic System

This student guide explores three economic systems (capitalism, socialism, and distributism) and explains how distributism is different from the other two.

Read more


You can thrive in a high-paying career without being money-driven

What if making money is not one of your top goals? And what if you happen to stumble into a high-paying career nonetheless?

Read more


On compassionate code review

How to build up and encourage code authors during the review process

Read more


Rules for Poems

A poem about all the rules you can break — and the one rule you can't.

Read more


Other recent blog posts