Slide 1

Slide 1 text

Organized Chaos Improving Your Multitasking Skills

Slide 2

Slide 2 text

Reasons Not To Multitask ● Takes longer to complete the first task ● Overhead of switching between tasks lengthens completion time task 1 task 2 time without multitasking t1 t2 time t1 t2 t1 t2 t1 t2 with multitasking t1 t2 time t1 t2 t1 t2 t1 t2 with multitasking + overhead

Slide 3

Slide 3 text

More Reasons Not To Multitask ● Difficult or complex engineering problems require your brain to retain a lot of information all at once. A lot of analogies to computers here. ● Continuous partial attention: you won’t see the details

Slide 4

Slide 4 text

IRL Examples ● New technology is combining multiple media sources ● Texting while driving ● Talking while watching TV ● Eating lunch while making this presentation ● Walking while talking

Slide 5

Slide 5 text

Let’s Refute These Reasons ● Longer task completion times: ○ Multitasking is a requirement, it’s part of the job. ● Switching tasks takes time: ○ Yes, but there are ways in decrease that overhead. ● Complex tasks take a lot of brain space: ○ Breaking up tasks into smaller pieces is beneficial for development ■ aligns nicely with iterative development ■ helps organize and modularize code ● Missing details: ○ Some tasks don’t need every bit of your attention

Slide 6

Slide 6 text

Pick Your Battles ● Don’t multitask on a task that needs all your undivided attention. Unplug. ● Configure your projects so that they can be multitasked ● Know your multitasking skills ● Small bug fixes: plenty of attention gaps

Slide 7

Slide 7 text

Does My Workspace Matter? ● command+tab, use it much? ● Headphone rule ● Ask for a minute of time ● Reduce peripheral attention when necessary (french music, techno, classical) ● Proportion screen space to its priority

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

Working On Multiple Tasks Using the computer analogies: ● Reduce the amount of memory in short term ● Move unnecessary data from short term into long term ● For the python fans out there: you have a GIL, be aware of it ● Use transaction blocks ● Use lists, not sets ● Don’t go into swap ● Follow common architecture and design patterns

Slide 10

Slide 10 text

Context Switching Reducing the overhead of context switching: ● Use analog sources for your list ○ To do list ○ Questions ○ Roadblocks ○ Priorities

Slide 11

Slide 11 text

Bug Crushing To Your Advantage Reproduce ∙ Write Test ∙ Find Offending Code ∙ Fix ∙ Code Diff ∙ Land ∙ Deploy ● In the spaces between, switch to something else ● Leave comments with hypothesis, ideas, questions ● Think “out loud”

Slide 12

Slide 12 text

Coding To Your Advantage ● Pseudocode and leave notes in comments ● Use stub functions to organize ○ refactor as you go, don’t leave your code a mess

Slide 13

Slide 13 text

Now.. Practice!