If you're like most software engineers, you have a long todo list. In this tech talk, Megan Marquardt discusses her strategies for being productive and multi-tasking.
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
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
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
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
Headphone rule • Ask for a minute of time • Reduce peripheral attention when necessary (french music, techno, classical) • Proportion screen space to its priority
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