From 7516e286fef5b02cb10bcbbf67281cbc3380e663 Mon Sep 17 00:00:00 2001 From: pintergreg Date: Mon, 18 Nov 2024 13:31:07 +0100 Subject: [PATCH] Adjust interruption part #36 --- lectures/16_automatization.md | 45 ++++++++++++++++++++--- lectures/figures/time_blocking.drawio.svg | 4 ++ lectures/references.bib | 21 ++++++++++- 3 files changed, 64 insertions(+), 6 deletions(-) create mode 100644 lectures/figures/time_blocking.drawio.svg diff --git a/lectures/16_automatization.md b/lectures/16_automatization.md index 9324c0e..6a1086b 100644 --- a/lectures/16_automatization.md +++ b/lectures/16_automatization.md @@ -818,9 +818,10 @@ table: KDE / Plasma 6.1 series [release schedule](https://community.kde.org/Sche - takes time to understand - context switching is costly - switching between tasks - - that is why it is advisable to define small tasks during the sprint planning - - 1--4 hours, but ideally closer to 1 - - preventing interruption +- that is why it is advisable to define small tasks during the sprint planning + - 1--4 hours, but ideally closer to 1 + - preventing interruption + - a programmer probably get one uninterrupted 2-hour session in a day [@parnin2013programmer] @@ -829,9 +830,10 @@ table: KDE / Plasma 6.1 series [release schedule](https://community.kde.org/Sche :::::::::::: {.columns} ::::::::: {.column width="60%" .mt-3} - according to a study, the average lost time per major interruption is **23 minutes** [@mark2008cost] - - for developers, it could be far worse + - for developers, it could be worse + - according to another study it is at least 15 minutes [@parnin2013programmer] - "getting back to the exact state of mind you were at right before an interruption is nearly impossible" [@to2018cost] -- planned and unplanned interruptions +- interruptions can be planned and unplanned ::::::::: ::::::::: {.column width="40%"} @@ -875,6 +877,39 @@ source: [The Cost of Interruption for Software Developers](https://www.brightdev ::: +## techniques to minimize context switching + +:::::::::::: {.columns .column-gapless} +::::::::: {.column width="50%"} +- time blocking + - divide workday into blocks +- time batching + - do similar tasks in a batch +- prioritize tasks +- tackle the biggest task first in the morning +- turn off notifications +- adopt asynchronous communication + - e-mail, documentation, [ADR]{.tooltip title="architecture decision record"} + +::: {.text-smaller} +source: [The high price of context switching for developers & ways to avoid it](https://pacohq.com/blog/guide/the-high-price-of-context-switching-for-developers/) [@pande2021high] +::: + +::::::::: +::::::::: {.column width="50%"} +![ideal, very bad, much better schedule](figures/time_blocking.drawio.svg){width=400} +::::::::: +:::::::::::: + + + + + # references ::: {#refs} diff --git a/lectures/figures/time_blocking.drawio.svg b/lectures/figures/time_blocking.drawio.svg new file mode 100644 index 0000000..30d1bf8 --- /dev/null +++ b/lectures/figures/time_blocking.drawio.svg @@ -0,0 +1,4 @@ + + + +
largest task
large task
standup
lunch
meeting
large task
review
task
lunch
meeting
task
task
meeting
task
meeting
task
standup
lunch
meeting
task
meeting
meeting
task
standup
task
\ No newline at end of file diff --git a/lectures/references.bib b/lectures/references.bib index 47c323d..ddf12ec 100644 --- a/lectures/references.bib +++ b/lectures/references.bib @@ -973,7 +973,7 @@ @misc{shipp2019war } @misc{mccreary2017when, author = {Jason McCreary}, - title = {When to make a Git Commit }, + title = {When to make a Git Commit}, howpublished = {\url{ https://dev.to/gonedark/when-to-make-a-git-commit }}, @@ -982,3 +982,22 @@ @misc{mccreary2017when day = {11}, note = {[Accessed 18-11-2024]}, } +@inproceedings{parnin2013programmer, + title={Programmer, interrupted}, + author={Parnin, Chris}, + booktitle={2013 IEEE Symposium on Visual Languages and Human Centric Computing}, + pages={171--172}, + year={2013}, + organization={IEEE} +} +@misc{pande2021high, + author = {Nitin Pande}, + title = {The high price of context switching for developers & ways to avoid it}, + howpublished = {\url{ + https://pacohq.com/blog/guide/the-high-price-of-context-switching-for-developers/ + }}, + year = {2021}, + month = {4}, + day = {23}, + note = {[Accessed 18-11-2024]}, +}