-
Notifications
You must be signed in to change notification settings - Fork 1
/
employee-orientation.html
158 lines (146 loc) · 3.96 KB
/
employee-orientation.html
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
<h1 id="new-employee-introduction-to-ebi-ecosystem-modeling-program">
New Employee Introduction to EBI Ecosystem Modeling Program
</h1>
<h2 id="scope">
Scope
</h2>
<p>
Program overview
</p>
<h2 id="protocols">
Protocols
</h2>
<h3 id="expectations">
Expectations
</h3>
<ul>
<li>
Schedules: <br>
<ul><li>
Provide planned work schedules, including any known vacations / absences.
</li>
<li>
In office during normal working hours
</li>
<li>
Give supervisor a minimum of 24 hour notice for any unexpected absences (rare exceptions).
</li></ul></li>
<li>
Skills: After the first week, you will be expected to know <br>
<ul><li>
Location of contents in the PEcAn wiki
</li>
<li>
How to edit the wiki
</li>
<li>
How to create, respond to, and resolve issues.
</li>
<li>
How to use git version control (at minimum: you should have a Github/Bitbucket fork and a local copy of source code for the project you are working on).
</li></ul></li>
<li>
Working environment <br>
<ul><li>
Dress appropriately
</li>
<li>
Be nice
</li>
<li>
Ask Questions
</li></ul></li>
</ul>
<h3 id="best-practices-overview">
Best Practices Overview
</h3>
<p>
The first required reading for all is <a href="http://www.plosbiology.org/article/info%3Adoi%2F10.1371%2Fjournal.pbio.1001745">“Best Practices for Scientific Computing” by White et al 2014</a>.
</p>
<ul>
<li>
Write programs for people, not computers <br>
<ul><li>
Consistent Style, meaningful variable names
</li></ul></li>
<li>
Let the computer do the work <br>
<ul><li>
Automated builds, workflows
</li></ul></li>
<li>
Make incremental changes: <br>
<ul><li>
Commit frequently.
</li>
<li>
everything written (created manually) goes in version control
</li></ul></li>
<li>
Don’t repeat yourself <br>
<ul><li>
modular code
</li>
<li>
reuse or refactor code instead of re-writing it: don’t re-invent the wheel. Before writing a new function, ask “is there an existing package/ gem/ library that already does this?
</li></ul></li>
<li>
plan for mistakes <br>
<ul><li>
add assertions
</li>
<li>
write tests (and examples)
</li>
<li>
these are important for collaborative coding
</li></ul></li>
<li>
Document design and purpose, not mechanics <br>
<ul><li>
Use vignettes (R), tests, and examples for documentation
</li>
<li>
vignettes > publications (and vice-versa)
</li></ul></li>
<li>
collaborate <br>
<ul><li>
Ask each other questions. Review each other’s code.
</li>
<li>
Most technical questions should be asked either as an issue in Redmine, Github, Bitbucket. If a generic programming question, Stackexchange is very useful.
</li></ul></li>
</ul>
<h3 id="project-specific">
Project-Specific
</h3>
<p>
Everyone will need to use Redmine, as well as GitHub and perhaps Bitbucket. We use Redmine for managing tasks within Scrum. Github and Bitbucket are used for project-specific bug and feature tracking (there will be overlap). In addition to reading the wikis listed below, you should familiarize yourself with using git and markdown. Update wikis with incorrect information.
</p>
<ul>
<li>
The ‘go to’ place for general, cross-project protocols is the <a href="https://github.com/PecanProject/pecan/wiki">PEcAn wiki</a> on GitHub. <br>
<ul><li>
<a href="https://github.com/PecanProject/pecan/wiki/Using-Git">using Git</a>
</li>
<li>
<a href="https://github.com/PecanProject/pecan/wiki/Github-issues">reporting bugs and requesting features</a>
</li>
<li>
<a href="https://github.com/PecanProject/pecan/wiki/Installing-PEcAn#install-build-environment">installing a build environment</a>
</li>
<li>
<a href="https://github.com/PecanProject/pecan/wiki/Coding-style">R coding style</a> for anyone working on PEcAn or BioCro (which are largely implemented in R).
</li></ul></li>
<li>
BETYdb wiki: <a href="https://github.com/PecanProject/bety/wiki">https://github.com/PecanProject/bety/wiki</a> <br>
<ul><li>
This wiki is specific to the Ruby-on-Rails interface
</li></ul></li>
<li>
Other projects (BioCro) <br>
<ul><li>
Writing should be aimed at documentation and publication
</li></ul></li>
</ul>