forked from ContextLab/lab-manual
-
Notifications
You must be signed in to change notification settings - Fork 0
/
lab_manual.tex
1996 lines (1720 loc) · 93.6 KB
/
lab_manual.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Tufte-Style Book (Minimal Template)
% LaTeX Template
% Version 1.0 (5/1/13)
%
% This template has been downloaded from:
% http://www.LaTeXTemplates.com
%
% License:
% CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/)
%
% IMPORTANT NOTE:
% In addition to running BibTeX to compile the reference list from the .bib
% file, you will need to run MakeIndex to compile the index at the end of the
% document.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%----------------------------------------------------------------------------------------
% PACKAGES AND OTHER DOCUMENT CONFIGURATIONS
%----------------------------------------------------------------------------------------
\PassOptionsToPackage{nobottomtitles}{titlesec}
\documentclass{tufte-book} % Use the tufte-book class which in turn
% uses the tufte-common class
\definecolor{dartmouthgreen}{RGB}{0, 105, 62}
\hypersetup{colorlinks=true,linkcolor=dartmouthgreen} % Comment this line if you don't wish to have colored links
\usepackage{microtype} % Improves character and word spacing
%\usepackage{lipsum} % Inserts dummy text
\usepackage{booktabs} % Better horizontal rules in tables
\usepackage{graphicx} % Needed to insert images into the document
\graphicspath{{graphics/}} % Sets the default location of pictures
\setkeys{Gin}{width=\linewidth,totalheight=\textheight,keepaspectratio}
% Improves figure scaling
\usepackage[export]{adjustbox}
\usepackage{fancyvrb} % Allows customization of verbatim environments
\fvset{fontsize=\normalsize} % The font size of all verbatim text can be changed here
\newcommand{\hangp}[1]{\makebox[0pt][r]{(}#1\makebox[0pt][l]{)}} % New command to create parentheses around text in tables which take up no horizontal space - this improves column spacing
\newcommand{\hangstar}{\makebox[0pt][l]{*}} % New command to create asterisks in tables which take up no horizontal space - this improves column spacing
\usepackage{xspace} % Used for printing a trailing space better than
% using a tilde (~) using the \xspace command
\usepackage{hyperref} %web links/URLs
\usepackage{enumitem,amssymb}
\newlist{todolist}{itemize}{2}
\setlist[todolist]{label=$\square$}
\newcommand{\monthyear}{\ifcase\month\or January\or February\or March\or April\or May\or June\or July\or August\or September\or October\or November\or December\fi,\space\number\year} % A command to print the current month and year
\newcommand{\openepigraph}[2]{ % This block sets up a command for printing an epigraph with 2 arguments - the quote and the author
\begin{fullwidth}
\sffamily%\large
\begin{doublespace}
\noindent\allcaps{#1}\\ % The quote
\noindent\allcaps{#2} % The author
\end{doublespace}
\end{fullwidth}
}
\newcommand{\ourschool}{Dartmouth College}
\newcommand{\blankpage}{\newpage\hbox{}\thispagestyle{empty}\newpage} % Command to insert a blank page
\usepackage{makeidx} % Used to generate the index
\makeindex % Generate the index which is printed at the end of the document
%----------------------------------------------------------------------------------------
% BOOK META-INFORMATION
%----------------------------------------------------------------------------------------
\title{Lab Manual} % Title of the book
\author{Jeremy R. Manning, Ph.D.} % Author
\publisher{Contextual Dynamics Lab, \ourschool} % Publisher
%----------------------------------------------------------------------------------------
\begin{document}
\frontmatter
%----------------------------------------------------------------------------------------
% EPIGRAPH
%----------------------------------------------------------------------------------------
\thispagestyle{empty}
%\openepigraph{Quotation 1}{Author, {\itshape Source}}
%\vfill
%\openepigraph{Quotation 2}{Author}
%\vfill
%\openepigraph{Quotation 3}{Author}
%----------------------------------------------------------------------------------------
\maketitle % Print the title page
%----------------------------------------------------------------------------------------
% COPYRIGHT PAGE
%----------------------------------------------------------------------------------------
\newpage
\begin{fullwidth}
~\vfill
\thispagestyle{empty}
\setlength{\parindent}{0pt}
\setlength{\parskip}{\baselineskip}
\includegraphics[width=0.3in,left]{./lab_logo/CDL_Avatar_Cropped.png}\\\vspace{0.2in}
Copyright \copyright\ \the\year\ \thanklessauthor
\par\smallcaps{Published by the \thanklesspublisher}
\par\smallcaps{\url{http://www.context-lab.com}}
%\par License information.\index{license}
\par\textit{Current as of \monthyear}
\end{fullwidth}
%----------------------------------------------------------------------------------------
\setcounter{tocdepth}{1}
\tableofcontents % Print the table of contents
%----------------------------------------------------------------------------------------
%\listoffigures % Print a list of figures
%----------------------------------------------------------------------------------------
%\listoftables % Print a list of tables
%----------------------------------------------------------------------------------------
% DEDICATION PAGE
%----------------------------------------------------------------------------------------
% \cleardoublepage
% ~\vfill
% \begin{doublespace}
% \noindent\fontsize{18}{22}\selectfont\itshape
% \nohyphenation
% Dedicated to my family and friends.
% \end{doublespace}
% \vfill
% \vfill
%----------------------------------------------------------------------------------------
% INTRODUCTION
%----------------------------------------------------------------------------------------
\newcommand{\director}{Jeremy}
\newcommand{\coordinator}{\director}
\newcommand{\labmeetingtime}{Thursdays at 12:30pm}
\newcommand{\meeting}{\href{https:context-lab.youcanbook.me}{YouCanBook.me}}
\cleardoublepage
\chapter{Introduction}\label{ch:intro} % Adding an asterisk leaves out this chapter from the table of contents
This lab manual is intended to provide a crash course in doing
research in the Contextual Dynamics Lab. It describes your rights and
responsibilities as a member of the lab. The manual also introduces
our general research approach and lab policies.
\newthought{Who is this lab manual for?}
\noindent \marginnote{\texttt{TASK:} Upon reading through this lab
manual for the first time, please update the document to include
your name in the \hyperref[sec:curr_members]{Lab members}
section. Importantly, be sure to fork the
\href{https://github.com/ContextLab/lab-manual}{GitHub repository},
make your edit on your personal fork, and submit a pull request with
your update. Be sure to recompile the \texttt{.tex} file after you
make your changes so that the \texttt{.pdf} file is updated and the
\LaTeX~compiler catches any errors you may have made. Also, feel
free to make any additional changes you think would benefit other
current or future lab members. You could correct a typo, clarify
something that’s unclear, add a comment or reference to a useful
tool, etc. If you'd like to get feedback on your idea first, create
a \href{https://github.com/ContextLab/lab-manual/issues}{GitHub
issue} describing your proposed change; you can use the existing
issues to help decide what to focus on for your own edits if you'd
like.} Every new lab member should read the latest version of this
lab manual in detail and reference it later as needed. Periodically
throughout the document, you will see margin notes with listed
\texttt{TASK} items. Completing your read through entails: (a)
reading the contents of the manual, (b) asking current lab members
about any confusing aspects, and (c) completing the relevant
\texttt{TASK} items. You will also see non-task \texttt{NOTE} items;
these provide helpful tips and additional commentary on the nearby
text.
This lab manual is meant to be a ``living document.'' All lab members
are welcome (and encouraged!) to submit edits that improve the
content, clarity, and overall helpfulness of this document at any
point throughout their tenure in the lab.
\newthought{What should you do if you don't understand something?}
\noindent \marginnote{\texttt{TASK:} If you haven't used \LaTeX~before
(i.e., the document formatting language in which this manual is
written), you'll want to
\href{https://www.latex-project.org/get/}{download \LaTeX} and take
a look at
\href{https://www.latex-tutorial.com/tutorials/quick-start/}{this
``quick start'' tutorial}.} If you don't understand something you
read in this manual, it is important that you \textit{ask another lab
member for help}. Every member of the lab brings their own unique
knowledge base, training, life experiences, and perspectives.
Respecting and celebrating those differences drives the science we do.
If you're new to the lab or new to a particular technique, you might
feel like a newbie today---but chances are good that if you stick
around for a bit someone else will be seeking your expert opinion
before you know it. In addition to learning, there's another good
reason for asking for help: if you don't understand something, there's
a reasonable chance that you've discovered a mistake or a logical
inconsistency!
\marginnote{\texttt{TASK:} When you are done reading this manual and
carrying out all required tasks, please fill out the signature page,
sign it (electronically), and email a PDF (of just the signature
page) to
\href{mailto:[email protected]}{[email protected]}.
\textbf{You are officially a lab member once you have completed all
tasks in this manual and receipt of your signed and filled-out
signature page and checklist has been acknowledged by \director.}}
\newthought{Why is it worth my time to read through the manual?}
Aside from pursuing your own curiosity, a major reason that you've
decided to join an academic research lab is probably because you want
to gain training or career-advancing experiences. This manual briefly
summarizes the collective wisdom of past and present lab members in a
way that we think will best allow you to achieve your objectives.
\textit{Learn from it}, \textit{challenge it}, and \textit{add to it}.
\newthought{What ``isn't'' this lab manual?}
\noindent This lab manual is \textit{not} intended to provide a
comprehensive overview of everything you need to know to do your
research projects. As described next, you may not even \textit{know}
what you need to know to do your projects! Nevertheless, you need
somewhere to start, and this is that place.
We also maintain a repository of
\href{https://github.com/ContextLab/CDL-tutorials}{lab tutorials} that
provide guidance on specific tasks. If you are looking for help on a
particular task (or understanding a particular concept) that isn't
covered by the existing set of tutorials, please consider contributing
a tutorial of your own once you've figured things out!
\chapter{Bill of rights and responsibilities}\label{ch:billofrights}
\marginnote{\texttt{TASK:} Read
\href{https://www.sciencemag.org/careers/2018/11/what-can-we-learn-dartmouth}{this
letter} about defining and characterizing boundaries between lab
members and noticing unhealthy norms.} As a member of the
Contextual Dynamics Lab, you are entitled to certain rights, and you
agree to take on certain responsibilities.
\newthought{Your rights as a lab member}
\begin{enumerate}
\item You are entitled to a safe work environment free from
harassment, abuse, violence, and discrimination in any form.
\item You are entitled to be supported and respected by all lab
members.
\item You are entitled to openly share your scientific ideas and
constructive feedback with all lab members.
\item You are entitled to appropriate credit (e.g.\ authorship,
acknowledgement, letter of recommendation) for your work and
ideas.
\end{enumerate}
\newthought{Your responsibilities as a lab member}
\begin{enumerate}
\item You agree to contribute to a safe work environment and to refrain
from behaviors that harass, abuse, expose to violence, or
discriminate.
\item You agree to support and respect all lab members, including
yourself.
\item You agree to openly share your scientific ideas and constructive
feedback with other lab members.
\item You agree to clearly communicate and document your
contributions to each research project (e.g.\ through GitHub
commits and issues, reports, updates on Slack, etc.).
\item You agree to establish open lines of communication between
yourself and other lab members, and to address concerns or issues
promptly and directly with the relevant parties (to the extent
that you feel safe doing so).
\item You agree to carry out your work with integrity and diligence,
adhering to the highest possible standards of scientific
excellence.
\item You agree to utilize lab resources (including equipment,
money, time, etc.) responsibly and sustainably.
\item You agree to maintain a clean workspace free from clutter,
including both personal spaces (e.g.\ desks) and shared
areas (couch, sink, testing rooms, etc.).
\end{enumerate}
\newthought{Recourse}
\noindent If you feel your rights as a lab member have been, or are in
danger of being, violated, it is your duty to report those violations
immediately to a senior staff member (e.g.\ \director, Department
Chair, Deans, police, Title IX coordinator, ombudsman, etc.).
Similarly, if you notice others endangering others' rights, or
neglecting their responsibilities, it is your duty to report those
violations to a senior staff member.
\chapter{Official lab practices and policies}\label{ch:policy}
Our lab's practices and policies are intended to provide a framework
for \textit{maximizing efficiency}. Achieving our peak efficiency as
a lab means we are being as scientifically productive as possible, in
terms of knowledge discovery (learning new stuff) and dissemination
(papers, talks, conference presentations, publicly released datasets,
software, etc.). It also means that our fellow lab members are
achieving their training and career objectives. To achieve peak
efficiency, we need to succeed on three fronts:
\begin{itemize}
\item \textbf{Communication.} We want to foster an environment where
everyone feels comfortable contributing to the collective dialogue.
Our lab meets regularly to discuss logistical (e.g.\ scheduling, financial,
sociological) and technical issues. We also use a variety of
software packages to synchronize and facilitate communication within
our lab and between our lab and the broader scientific community.
\item \textbf{Resource allocation.} \marginnote{\texttt{NOTE:}
resources, links, and discussions related to grants and other
funding opportunities may be found in the \#grants Slack channel.
All senior lab personel (and any interested junior personel) should join this channel to participate in
discussions pertaining to lab resources.} Our lab resources (e.g.\
equipment, time, money, attention) are finite. We want to foster an
environment where lab resources are used as efficiently as possible
to achieve our collective goals. We also want to foster
sustainable use of resources by regularly pursuing research funding opportunities.
\item \textbf{Adaptability.} The whole point of \textit{research} is that we
don't already know the answers to the questions we're exploring or
how to create the tools we're working on. That means that we won't
necessarily be able to plan out everything in advance. We often need to
be focused and efficient \textit{without knowing the end goal}!
\end{itemize}
Your job as a contributing lab member is to help us to achieve our
collective peak efficiency (as a lab) while also maximizing your own
training and career potential. To do this, the Contextual Dynamics
Lab practices \textbf{agile research}, as described in the next section.
\newthought{Doing agile research}
\noindent The agile approach to research we use in the Contextual
Dynamics Lab is inspired by the
\href{http://scrumtrainingseries.com/}{Agile Movement} in the software
development world. The idea is to create learning, adaptable teams to
work on very small bite-sized tasks. Specifically, project teams are
designed to respond to unpredictability in research through
incremental, iterative work ``sprints.'' Each sprint lasts
approximately 1--2 weeks, and results in a demonstrable research
product (e.g.\ a draft of a paper, a draft of a grant, a completed
analysis or figure, a poster, a software tool, etc.).
This is different from traditional approaches that you may have
encountered in other labs or work environments, where a research team
might try to plan out every part of a project in advance in a series
of small steps. We still try to break projects into tiny bite-sized
chunks, but the key insight of the agile approach is that we only need
to know what the \textit{next} chunk is, rather than attempting to
forecast out over an extended timeline. Although it's often helpful
to have a general (if vague) sense of where things are going, we never
actually need to know where a project will ultimately end up. The
goals and process are constantly evolving. Perhaps the best
justification for this approach is that \textbf{the first day of a new
research project is when you're the most clueless about what you'll
find}. So how could that possibly be the ideal time to plan out the
entire project?\marginnote{\texttt{NOTE:} Our adapted approach also
draws inspiration from
\href{http://technocalifornia.blogspot.com/2008/06/agile-research.html}{this
blog}.}
Our \href{http://agilemanifesto.org/}{agile research manifesto} has three key
tenets:
\begin{enumerate}
\item Value \textbf{individuals and interactions} over
\textit{processes and tools}. To be clear, processes and tools are
important. But we must always keep the user or consumer in mind.
In practice, this means that a simpler (but potentially less
comprehensive) tool or approach may be preferable in that it could
be easier for a reader or user to make sense of.
\item Value \textbf{working, intuitive tools and research products}
over \textit{comprehensive documentation}. Documentation is
important! But if our research products are designed in an
intuitive way, they can (in some sense) serve as their own
documentation. An intuitive tool or research product with decent
documentation is always preferable to an unintuitive tool or
research product with comprehensive documentation.
\item Value \textbf{responding to change} over \textit{following a
plan}. Each new step of the research process brings new insights
and potentially uncovers mistakes or inefficiencies. Those
discoveries may imply that a new direction is better than a
previously planned one. These are opportunities that should be
leveraged and embraced as part of the scientific process.
\end{enumerate}
While there is value to the \textit{italicized} items, we value the
\textbf{bolded} items more. There are
\href{http://www.agilemanifesto.org/principles.html}{twelve
principles} we use to achieve these tenets:
\begin{enumerate}
\item Our highest priority is to benefit the research community
through the early and continuous delivery of scientific outputs
(ideas, presentations, papers, tutorials, tools, devices, etc.).
\item We welcome changing goals and requirements, even late in the
process. Doing awesome science means keeping an open mind. Your
original goals and plans may no longer apply as your project
progresses. Your original hypotheses may be proven false. Your
assumptions may be incompatible with your data. Learn from these
challenges and grow with them. Avoid getting ``stuck'' by refusing
to change, and allow your questions to follow where your data lead,
rather than be constrained by your initial ideas.
\item We deliver research products frequently, in intervals ranging
from a couple of weeks to a couple of months, with a preference for
shorter timescales. Before you have a concrete manifestation of
your work (a figure, a statistic, a presentation, a paper draft, a
dataset, a GitHub commit, etc.) you have nothing you can show the
world for your efforts. Produce research products, even if they're
small and seemingly insignificant, as often as possible. You can
always improve on an already produced research product.
\item The product itself (software, paper, poster, presentation,
grant) is the primary measure of progress. Before you've
incorporated your latest efforts into a shareable or communicable
research product, it (effectively) doesn't exist.
\item Continuous attention to technical excellence and good design
enhances agility. Getting research products out regularly requires
avoiding the temptation of aiming for perfection. Nevertheless,
there are often several almost-as-efficient ways to accomplishing
tasks that vary in their design quality. For example, consider
whether the solution to a problem you're working on might also apply
to other similar problems in the lab (that you or others are working
on or have discussed). Can you make your solution general enough to
cover those cases? Or, after completing a draft of a research
product, you will likely have some insights into alternative
(potentially better) approaches. Can you tweak the product to
leverage those insights?
\item Simplicity---the art of maximizing the amount of work not
done---is essential. Keep in mind the scope of your task. What's
the minimum viable set of accomplishments that will allow you to
complete that task? Get those done first and ``release'' your
product (e.g.\ commit to GitHub, share via Slack, etc.). You can
always define a new set of goals for your next task centered around
extending your just-released research product. This will help to
avoid aimless drift, whereby you spend large amounts of time on
tasks that are, in retrospect, tangential to the main scope of work.
\item Aim to get some amount of work done \textit{every single day} on
your project. Commit your changes to GitHub, or document your
progress in Slack or a Google Doc. Maintain careful records and
logs so that someone can pick up your work in the future (and that
future someone might be you!). Remember that your greatest
collaborator is your past self, but they don't respond to emails or
Slack messages! Help ``future you'' maintain peak efficiency
through methodical and well-documented work. (Note: don't spend
\textit{too} much time on documentation; e.g. GitHub commits are
themselves often sufficient for documentation, since one can always
compare different versions of a particular file.)
\item Build projects around motivated individuals. Give them the
environment and support they need, and trust them to get the job
done. Each day, ask yourself: ``am I motivated to do my best work
on my project today?'' If the answer is ``no,'' try to understand
why. Is it lack of resources? Lack of support? Distractions?
Ambiguous goals or research directions? Talk to your fellow lab
members and see how they'd approach the challenges you're facing.
\item The best architectures, requirements, and designs emerge from
self-organizing teams. Have you been chatting with a fellow lab
member and you're excited about what they're working on? Or do you
have ideas for building on that work? Or has a new potential team
project emerged from a spontaneous conversation? Think about how
you can leverage these opportunities into research products that
you're excited to work on!
\item The most effective and efficient method of conveying information within a
research team is face-to-face conversation. We use the \hyperref[sec:
scheduling]{CDL Google calendar} to coordinate formal meetings between lab
members. You can also sign up for meetings with \director~via~\meeting. We also
use Slack to coordinate, share notes/data, etc. But the \textit{ideal} form of
communication in the lab is face-to-face (or over Zoom), and it often involves
a whiteboard.
\item Agile research is sustainable research. Researchers should be
able to maintain a constant pace indefinitely. To be sure, we
sometimes have crunch times where we absolutely must meet a deadline
(e.g.\ a grant submission, project milestone, etc.). However, it is
far more efficient to make steady progress over an extended
timeframe than to fluctuate between periods of high and low
productivity. By distributing your workload you'll help yourself
avoid burnout, preserve your mental and physical health, and allow
yourself time to ``step back'' and think about the big picture
(effectively getting stuff done between your work sessions!).
Sustainable work habits also promote good communication and
coordination between project team members.
\item At regular intervals, the team reflects on how to become more effective,
then tunes and adjusts its behavior accordingly. At minimum, all active lab
members need to reflect on their projects once each week in your \textit{Weekly
Snippet} (defined below). You should also schedule regular meetings with your
project team and/or~\director~(via~\meeting) to discuss progress, goals,
roadblocks, and project logistics.
\end{enumerate}
\newthought{Papers}
\noindent Research papers are the primary research output of our lab.
Publications are the ``currency of academia,'' in that they are
central to career advancement. With each allocation of lab resources
(equipment, money, time) we should be asking ourselves how this
contributes to a paper.
\subsection{General procedure}
All lab papers should be coordinated with \director. A paper starts
with a discussion of:
\begin{enumerate}
\item What the paper is going to be about
\item What the key results are
\item What the overall ``story'' is
\item The current status of various components of the project
(e.g.\ data collection, analyses, figures, interpretation,
literature review, etc.)
\item Who the potential candidates for authorship on the paper are
\end{enumerate}
We draft papers in \LaTeX, either on GitHub or on
\href{https://www.overleaf.com/}{Overleaf} (an online platform that
supports text editing and compiling PDFs in the browser). Progress
should be shared regularly via Slack.
\subsection{Authorship guidelines}
\marginnote{\texttt{TASK:} Review the
\href{https://oir.nih.gov/sites/default/files/uploads/sourcebook/documents/ethical_conduct/guidelines-authorship_contributions.pdf}{NIH
Guidelines for Authorship}.} The Contextual Dynamics Lab follows
the
\href{https://oir.nih.gov/sites/default/files/uploads/sourcebook/documents/ethical_conduct/guidelines-authorship_contributions.pdf}{NIH
Guidelines for Authorship} in considering whether your contribution
to a project merits authorship on the paper. If you have made a
non-trivial contribution to a project but did not meet the
requirements for authorship, you will instead receive a citation in
the acknowledgements section of the paper. In general, you likely
meet the requirements for authorship if you contributed in any of the
following ways:
\begin{enumerate}
\item Drafted the manuscript (this warrants first authorship)
\item Came up with the idea or made other substantial intellectual
contributions that meaningfully shaped the trajectory of the project
\item Carried out an original experimental study (e.g.\ that you
designed or implemented)
\item Carried out non-trivial data analyses (e.g.\ more complicated
than $t$-tests)
\item Contributed novel tools or resources to the project that haven't
been published yet
\end{enumerate}
\marginnote{\texttt{NOTE:} Conference posters and abstracts generally
have substantially less stringent authorship requirements than
formal papers. The general rule of thumb for posters is that all
project team members should be co-authors.} You are unlikely to
meet the requirements for authorship if your contributions were
limited to the following:
\begin{enumerate}
\item Running experimental participants for an already-designed and
coded-up study
\item Running trivial data analyses (e.g.\ $t$-tests or similar)
\item Getting trained by one of the other project members on a
project-related task
\item Training another project member on a project-related task
\item Sharing already-published tools or resources
\item Editing or commenting on a draft of the manuscript
\end{enumerate}
The final determination for who will be an author on each lab paper
(and in what order) will be made by \director, following open
discussions with project team members.
\newthought{Making mistakes}
\noindent The work we do is complicated, and mistakes happen. When
you notice a mistake (a bug, misinterpretation, mislabeling, or any
other error), it is critical that you report the mistake immediately.
Whereas mistakes are unavoidable in science, negative impacts can be
minimized by fostering a workplace where reporting mistakes is
celebrated and accepted as part of the natural course of getting
things done. Mistakes are opportunities to learn and grow, and
identifying or noticing mistakes should be celebrated as part of our
growth as scientists. However, real harm can come from failing to
report mistakes soon enough. There is a proverb that says ``the best
time to plant a tree was 20 years ago; the second best time is now.''
Analogously, the best time to identify and correct a mistake may have
been in the past-- but the second best time is right now!
Example scenarios (not an exhaustive list):
\begin{enumerate}
\item You've shared a figure, statistic, or other result, and
you've realized there's a bug in your code.
\item You tried to collect some data and the experiment crashed or
yielded corrupted data.
\item You're re-reading a paper that you shared, and you notice a
mistake or typo.
\item You made a plan with your project team and you realized it's
flawed in some way, or that there's potentially a better solution
or approach.
\item You released a software package and you've found a bug or error.
\end{enumerate}
Appropriate actions for each of the above scenarios (this should
happen immediately after you notice the mistake):
\begin{enumerate}
\item Double check, to the best of your ability, that the mistake is
real. This may involve checking over code, rebooting a computer and
restarting an experiment, re-reading reference text, etc.
\item Create a GitHub issue describing the problem. Provide
information about how to reproduce the problem (if applicable), the
expected behavior, and the observed behavior. Also, provide any
relevant system or environment information that may be necessary for
reproducing the problem (e.g. details of the computing environment).
\item Coordinate over Slack with your project team to formulate an
action plan.
\item Ask other lab members for help if the course of action isn't
clear. Also, try Google and/or Stack Exchange.
\end{enumerate}
\noindent \textit{If you think you might have caught a mistake but aren't
sure, consult with another lab member! It never hurts to be safe!}
\newthought{Project roles}
\noindent Every project has four possible roles. You will play one or more of
these roles on your project:
\begin{enumerate}
\item \textbf{Project Owner.} This is the person responsible for
maximizing ``return on investment'' of the project effort. The project owner:
\begin{enumerate}
\item Is responsible for project vision
\item Constantly re-prioritizes the research backlog, adjusting any
long-term expectations such as publication and release plans
\item Acts as the final arbiter of requirements questions
\item Accepts or rejects each project increment
\item Decides whether to publish/ship the project
\item Decides whether to continue development
\item Considers interests of funding bodies (e.g. NIH, NSF, DARPA,
private organizations) and the scientific community
\item May contribute as a team member
\item Has a leadership role
\item Will usually be \director
\end{enumerate}
\item \textbf{Team Member.} Team members are responsible for carrying
out the project work. Team members:
\begin{enumerate}
\item Are cross-functional: includes members with development skills
(write code or papers/grants), testing skills (e.g.\ data
collection, test software, proofread papers/grants), and/or domain
expertise (e.g.\ knowledge or interest in a relevant research area)
\item Are self-organizing and self-managing without externally assigned
roles
\item Negotiate commitments with the Project Owner, one ``sprint'' at
a time
\item Have autonomy regarding how to reach commitments
\item Are intensely collaborative
\item Are (ideally) located in one team room (usually this will be the lab)
\item Are (ideally) committed to long-term, consistent lab membership
\item Are (ideally) focused on a single team/project at a time
\item Have a leadership role
\end{enumerate}
\item \textbf{Project Coordinator.} The Project Coordinator facilitates
the agile research process both directly and indirectly. The Project Coordinator:
\begin{enumerate}
\item Helps to resolve impediments \marginnote{\texttt{NOTE:} The lab
coordinator role is currently vacant. The necessary functions of
the Project Coordinator role will need to be satisfied by other
project team members during this time.}
\item Creates an environment conducive to team self-organization
\item Captures empirical data to adjust forecasts (e.g.\ weekly Slack
reports summarizing progress)
\item Shields the team from external interference and distraction to
keep it ``in the zone''
\item Enforces timelines
\item Has no management authority over the team (anyone with authority
over the team is by definition not its Project
Coordinator)
\item Has a leadership role
\item Will usually be either the Lab Coordinator (note: this position is currently vacant) or \director. %(\href{mailto:[email protected]}{\coordinator})
\end{enumerate}
\item \textbf{Collaborator.} Collaborators are not formally part of
the project team and generally will not attend regular meetings as
part of the team. Importantly, collaborators do \textit{not} have a leadership role in
the project. They may carry out one or more of the
following roles:
\begin{enumerate}
\item Provide data or share equipment \marginnote{\texttt{NOTE:} A
project may never be held up by a collaborator. If the
collaborator fails to provide a promised service, the project team
must adapt. If the collaborator fails to meet a non-critical
deadline, the project will proceed without that component of the
project. Involvement as a collaborator is fluid.}
\item Provide occasional consulting services
\item Provide occasional feedback on project results
\item Carry out minor analyses
\item Proofread documents
\item Help with administrative tasks such as scheduling
\item Help with information technology tasks such as computer
maintenance
\end{enumerate}
By definition, collaborators play a minor role in the project, and they are not
responsible for managing any aspect of the project. They may become Team
Members if their involvement increases. Generally, collaborators will
be included in a paper's acknowledgement section, but collaborators
are not normally co-authors.
\end{enumerate}
\newthought{Meetings}
\noindent Our lab has largely been operating in a ``hybrid'' mode of
work (i.e., partially remote and partially in-person), and in recent
years our meeting schedule and requirements have reflected this
reality. Moving forward, we are now gradually starting to incorporate
more in-person interactions and meetings to facilitate more
``spontaneous'' interactions, discussions, and collaborations.
Effective lab communication requires forums for communicating. As
described below, we use \href{http://www.slack.com}{Slack} to
facilitate non-in-person communications. We also encourage
in-person interactions as often as possible---ideally several times a
week for group projects. We'll have the following regularly scheduled
meetings:
\begin{itemize}
\item \textbf{Lab meetings.} Starting in the winter, 2024 term, we will be re-instating weekly lab
meetings, to be held on Tuesdays from 1:30 -- 2:30 PM (Hanover time)
in our main lab space (Moore Hall, Room 416). If you are an active
lab member, you are expected to attend our lab meetings unless you
let \director~know that you have a conflict (e.g., a course that meets
at the same time, another commitment that comes up, etc.). It is
important to prioritize lab meeting attendance so that we can build
and maintain a lab culture of collaboration and ongoing participation.
You are also expected to \textbf{present} at one lab meeting per
term. Possible presentation topics include (but are not limited to):
\begin{itemize}
\item A half-baked idea you have
\item An interesting paper you read
\item An interesting tool or software package you learned about
\item A tutorial
\item A (brief) hackathon
\item Something you're confused about that you want help with from
other lab members
\item A practice presentation (poster, talk, etc.) you'd like
feedback on
\item Lead a discussion about some topic you think would be of
interest to the group
\end{itemize}
Each presenter can choose their own format (e.g., informal discussion,
slide-based presentation, whiteboard-led discussion, interpretive
song or dance, a creative artwork--- it's up to you!). We recommend
that you start off by setting the ``topic and tone'' for
that day's meeting. For example:
\begin{itemize}
\item Quickly introduce yourself (name and current role in the
lab)
\item Say a sentence about what you're going to be doing with your
time
\item Set any ``ground rules'' you'd like others to follow and
make it clear what your ``goals'' are. For
example, do you want people to jump in with questions or random
thoughts as they arise? Take notes and wait until the end to
ask more in-depth questions? What sorts of feedback would be
most helpful to you? What are you hoping people will take away?
(Not all of these will apply to every type of presentation or
discussion, and there may be other elements you'd like to
consider; just use your best judgement!)
\end{itemize}
You can take up to an hour for your presentation or discussion,
although taking less than an hour is great too. You can also share
a meeting slot with one or more other lab members if you wish. (A
presentation with another lab member can still ``count'' as a
presentation for the given term.) \director~will send out a Google Sheets
link where you can add yourself to the meeting schedule at the start
of each term.
\item \textbf{Project meetings.} Several of our collaborative
projects involve regular coordination within the lab and/or with external lab members.
These are organized on an ad-hoc basis for each project.
Attendees: all project team members and any other interested active
lab members.
\item \textbf{Hackathons.} We occasionally organize hackathon
style events whereby spontaneously organized groups work towards
one or more very short term projects or goals. These are
scheduled on an \textit{ad hoc} basis. Attendees: all interested
lab members, any interested member of the Dartmouth community, and
external collaborators.
\marginnote{\texttt{NOTE:} Department talks and colloquia are
listed on the \hyperref[sec: scheduling]{PBS Department Events}
calendar.}
\item \textbf{Department talks and colloquia.} Each week the
Department of Psychological and Brain Sciences invites internal and
external researchers to present on a wide variety of research
topics. You are encouraged to attend any that seem interesting.
Attendees: all interested lab and non-lab Dartmouth community
members.
\item \textbf{Weekly snippets.} Each week, all
paid employees must fill out a ``weekly snippet''
with brief answers to the following questions:
\begin{enumerate}
\item What did you work on over this past week?
\item What are you planning to work on this coming week?
\item What is impeding your progress (if anything)?
\item Anything else you'd like to add?
\end{enumerate}
Reminders to fill out your weekly snippet are automatically sent out (via
Slack) each Monday at 9 AM. Whereas weekly snippets are required for all paid
employees, they are optional for all other lab members. If you are an unpaid
employee but are likely to request a letter of recommendation, weekly snippets
are a good way for me to maintain a detailed sense of what you are working on
from week to week and how you are progressing over time. I'll also refer to
your snippets during check-in meetings (e.g., to discuss project progress and
contributions, letters of recommendation, annual reviews or other evaluations,
etc.) You should submit your snippet using the ``Fill out your snippet!''
workflow on Slack. You can access this workflow in the \texttt{\#general}
channel through the Workflows menu (usually near the top left of the window).
(Virtual) attendees: all paid lab members and any other lab members who want to
participate.
\end{itemize}
%\newpage
\newthought{Getting started in the lab}
\noindent
The very first thing you need to do is to get set up on the following
platforms, which will enable you to interact with the rest of the lab,
download and use the lab's software packages, and accomplish various
necessary administrative tasks: \marginnote{\texttt{TASK:} Create
(free) Google and GitHub accounts. Also initiate a request to join our slack workspace via
\href{https://dartmouth.enterprise.slack.com/workspace/T0W0TEQNA}{this
link}.}
\begin{enumerate}
\item \href{https://context-lab.slack.com}{\textbf{Slack.}} This is where
almost all not-in-person lab communications take place. It provides
an interface for asking questions, storing notes, and sharing
ideas. If you have a~\ourschool~NetID you should be able to join the workspace by clicking the link.
If you do \textit{not} have a NetID, you'll need to \href{https://services.dartmouth.edu/TDClient/1806/Portal/Requests/ServiceDet?ID=30581}{request one here}.
\marginnote{\texttt{TASK:} When you join our Slack workspace, initiate our onboarding process using the ``Join the lab!'' workflow. You can access this workflow in the \texttt{\#general} channel
through the Workflows menu (usually near the top left of the window). Once you initiate the workflow, you'll be guided through the onboarding process.}
\item \href{https://www.github.com}{\textbf{GitHub.}}
\marginnote{\texttt{TASK:} If you've never used GitHub (Git) before,
please work through these \href{https://try.github.io/}{GitHub
Tutorials}. You may also find it useful to refer to this
\href{https://github.com/ContextLab/lab-manual/blob/master/resources/cheatsheets/git-cheatsheet.pdf}{Git
cheat sheet} and this
\href{https://github.com/ContextLab/lab-manual/blob/master/resources/cheatsheets/workflow-of-version-control.pdf}{Git
workflow} sheet when using Git/GitHub at first. We also maintain a \href{https://www.youtube.com/playlist?list=PLjQYT8Fwp984zMjN5rJChfdI5Z8jtaWww}{set of GitHub tutorials on YouTube}.} This is used
to manage all code, papers, grants, presentations, and posters. In
other words, anything where it'd be useful to track multiple
versions, anything that we might ultimately want to release to the
public, and/or anything that multiple lab members will be
collaborating on. Each project has one or more GitHub repositories. You should treat GitHub as a digital version of a ``lab notebook''
that contains a formal record of every contribution you make to your projects. We use GitHub logs to assign credit for ideas, code or writing contributions,
determine authorship order, and more. It is therefore critical that you regularly check in (commit) your work via GitHub so that you receive appropriate credit for your
ideas and maintain a continuous traceable log for your project.
\item \href{https://1password.com/}{\textbf{1Password.}}
\marginnote{\texttt{TASK:} If you are a senior lab member, request a
1Password invite from \director.} This platform is used by senior
lab members to manage secure notes and passwords (e.g.\ shared
software licenses, card numbers and chart strings, etc.).
\end{enumerate}
Once you've created those accounts, you can ask any questions through
Slack (use the
\href{https://context-lab.slack.com/messages/general/}{\#general}
channel or the channel specific your project). Depending on your role
in the lab, you may be added on Slack as a single-channel guest
(access to only one channel) or a full member (access to all lab
channels). This generally depends on how long you've been in the lab
and/or how many projects you are expecting to interface with. If you
feel you don't have the appropriate account type, please communicate
your concerns to \director.
\newthought{CITI training}
\noindent Our lab's work seeks to answer questions about human memory.
As such, our research frequently involves interacting with (and
analyzing data collected from) human subjects. It is essential to
understand how to ethically and responsibly maintain the safety,
comfort and privacy of participants when conducting research with
human subjects. Before beginning work on any lab projects, you'll need
to complete an online tutorial through the
\href{https://about.citiprogram.org} {Collaborative Institutional
Training Initiative (CITI) Program}.
\noindent All lab members are required to complete CITI's
\textbf{Group 2: Social/Behavioral Basic Course} module. To complete
the module, you will need to:
\begin{enumerate}
\marginnote{\texttt{NOTE:} If you have previously conducted research
through a class or another lab, you may already have completed the
\textbf{Group 2: Social/Behavioral Basic Course} module. If your
certificate is valid (i.e., it is less than 3 years old), you may
send it to \coordinator~without completing the module again.}
\item Create an account on \href{https://about.citiprogram.org}{CITI's
website}. If you are a Dartmouth student or employee, choose
Dartmouth College as your organization affiliation and use your
\textit{@Dartmouth.edu} email address to create your account.
Dartmouth will cover your registration fee.
\item Continue the registration process until you reach step 7. Select
Human Subjects Research. Then select \textbf{Group 2:
Social/Behavioral Basic Course} as your registration course. If
you also need to complete the biomedical module, you will be able to
add it after completing the social/behavioral module.
\item There are 16 required modules that need to be
completed. Read/watch the material and complete the quiz at the
end of each module. You will need to achieve a score of at least an
80\% to pass. Quizzes may be reviewed and retaken.
\end{enumerate}
\marginnote{\texttt{NOTE:} If you will be working on a project where
data is collected from DHMC patients, you may need to complete the
\textbf{Group 1: Biomedical Basic Course} module \textit{in
addition} to the social/behavioral module. If you will be working
on a NSF-funded project, you may also need to complete the
\textbf{Responsible Conduct of Research (RCR)} module.}
\noindent Once you have finished the training module, send your
\textbf{Completion Certificate} to \coordinator. To access your
certificate:
\begin{enumerate}
\item Sign into your CITI account and select \textbf{Records} at the
top of your home page.
\item Select \textbf{View-Print-Share} under \textbf{Completion
Record}.
\item Under \textbf{Completion Certificate}, select \textbf{View /
Print}. You do not need to share your Completion Report.
\item Download the PDF and send it to
\href{mailto:[email protected]}
\end{enumerate}
\newthought{Miscellaneous administrata}
\noindent You can pick up a lab key from Michelle Powers (Moore Hall
administrative office) by
\href{mailto:[email protected]}{emailing her} and cc'ing
\director. You will need to pay a \$5 deposit, which will be returned
to you when you return your key at the end of your tenure in the lab.
If you are the last one in the lab for the day, please be sure to lock
the door when you leave.
\newthought{Starting a new project}
\noindent
Our lab uses a number of project management tools and policies to
promote continuity across projects and lab members. First, make sure
that your project doesn't already exist (generally this involves
asking \director).
The general steps to starting a project are:
\begin{enumerate}
\item Create a Slack channel or decide on existing channel appropriate
for project use. \marginnote{\texttt{NOTE:} If you create a new
Slack channel for your project, invite \director~and other team
members to join.}
\item Coordinate with \director~to set up a
\href{https://get.slack.help/hc/en-us/articles/232289568-GitHub-for-Slack}{GitHub
for Slack} integration between your project and channel by sending
a link to the GitHub repo in the project's Slack channel with a note
asking to set up a Slack integration.