-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathHowOurProjectsRun.html
More file actions
97 lines (78 loc) · 2.62 KB
/
HowOurProjectsRun.html
File metadata and controls
97 lines (78 loc) · 2.62 KB
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
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link href="style.css" rel="stylesheet" type="text/css"/>
<title>
A Guide to Our DevOps Projects
</title>
</head>
<body>
<h1>
A Guide to Our DevOps Projects
</h1>
<p>
<b>Our guiding principle:</b>
<br>
The goal of DevOps is to be able to rapidly and reliably deliver new
features to customers, thus delivering value and enabling rapid
feedback and learning.
</p>
<p>
To that end, we adopt the following practices:
</p>
<ul>
<li>
Work on all projects should proceed by regular, incremental
improvements. The "school model" of waiting until the end of the
semester and doing everything at once will result in significant points
lost. (It also results in significantly worse outcomes, which is the
real point here.)
</li>
<li>
Tasks in a project should appear on a kanban board.
</li>
<li>
Project discussions take place on Slack.
</li>
<li>
Every project should be under version control using git.
</li>
<li>
All relevant computer files relating to the project should be under
version control, not just source code. This includes statements of
goals, documentation, other sources used in the project, configuration
scripts, List of dependencies, diagrams.
</li>
<li>
All local products that can be built should be built with a makefile.
</li>
<li>
Every project should have an extensive, automated test coverage.
</li>
<li>
Every project should be deployed with scripts and configuration files,
not things run by hand and stored in participants' heads.
</li>
<li>
Each project should conduct regular code reviews.
</li>
<li>
We should use automated linting.
</li>
<li>
Commits should trigger a test so that testing is done even if an
individual programmer tries to skip it. Code should be pushed onto
production servers only if these tests pass.
We currently use Travis to that end.
</li>
<li>
Each project should be deployable in the Docker container, if possible.
</li>
<li>
If the project involves a server that should run on an ongoing basis,
that server should be monitored.
</li>
</ul>
</body>
</html>