summaryrefslogtreecommitdiff
path: root/reveal.js/flow.html
diff options
context:
space:
mode:
Diffstat (limited to 'reveal.js/flow.html')
-rwxr-xr-xreveal.js/flow.html194
1 files changed, 0 insertions, 194 deletions
diff --git a/reveal.js/flow.html b/reveal.js/flow.html
deleted file mode 100755
index c5b2ef3..0000000
--- a/reveal.js/flow.html
+++ /dev/null
@@ -1,194 +0,0 @@
1<!doctype html>
2<html lang="en">
3 <head>
4 <meta charset="utf-8">
5 <title>QA flow</title>
6 <meta name="author" content="Simeon Simeonov">
7 <meta name="apple-mobile-web-app-capable" content="yes">
8 <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
9 <meta name="viewport" content="width=device-width, initial-scale=1.0">
10
11 <link rel="stylesheet" href="dist/reset.css">
12 <link rel="stylesheet" href="dist/reveal.css">
13
14 <link rel="stylesheet" href="dist/theme/serif.css" id="theme">
15
16 <!-- Theme used for syntax highlighting of code -->
17 <link rel="stylesheet" href="plugin/highlight/monokai.css" id="highlight-theme">
18 </head>
19 <body>
20 <div class="reveal">
21
22 <!-- Any section element inside of this container is displayed as a slide -->
23 <div class="slides">
24 <section>
25 <h1>QA flow</h1>
26 <h3>Idas and thoughts</h3>
27 </br>
28 <p>
29 <small>Simeon Simeonov</small>
30 </p>
31 </section>
32
33 <section>
34 <section id="fragments">
35 <h2>Agenda</h2>
36 </br>
37 <ul>
38 <span class="fragment"><li>The problem with the current QA flow</li></span>
39 <span class="fragment"><li>Alternatives</li></span>
40 <span class="fragment"><li>Suggestions</li></span>
41 <span class="fragment"><li>Q&A and discussion</li></span>
42 </ul>
43 </section>
44 </section>
45
46
47 <section>
48 <section>
49 <h4>The problem with the current QA flow</h4>
50 <p><em>“Technical debt is a concept in software development that reflects the implied cost of additional rework caused by choosing an easy (limited) solution now instead of using a better approach that would take longer.”</em> - Wikipedia</p>
51 </br>
52 <p><em>“Accumulation of technical debt is not always a choice.”</em> - Simeon Simeonov, 21st century developer</p>
53 </section>
54
55 <section>
56 <h4>The problem with the current QA flow (2)</h4>
57 </br>
58 <ul>
59 <li>Based on pull-requests (tactical)</li>
60 <li>Poor or lack of technical (strategic) design</li>
61 <li>Lack of supervision</li>
62 </ul>
63 </section>
64
65 <section>
66 <h4>The problem with the current QA flow (3)</h4>
67 </br>
68 <p>Typical challenges</p>
69 <ul>
70 <li>What entities do we need and how will we name them? (module, package, a script...)</li>
71 <li>Where will the code reside?</li>
72 <li>What is the best way to interract? (Object-oriented design in the case of Python)</li>
73 <li>Is this the best way (even in pragmatic terms)?</li>
74 <li>Any known best practices?</li>
75 </ul>
76 </section>
77
78 </section>
79
80
81 <section>
82 <section>
83 <h3>Alternatives</h3>
84 </br>
85 <p>What do others do?</p>
86 </section>
87
88 <section>
89 <h3>Alternatives (2)</h3>
90 </br>
91 <p>Google, Microsoft...</p>
92 <ul>
93 <li>Detailed technical design is expensive and requires hierarchial structure</li>
94 <li>They do not exploit our logistical advantage of being in one place</li>
95 </ul>
96 </section>
97
98 <section>
99 <h3>Alternatives (3)</h3>
100 </br>
101 <p>Linux...</p>
102 <ul>
103 <li>Brutal and hierarchial structure with a lot of overhead</li>
104 <li>They do not exploit our logistical advantage of being in one place</li>
105 </ul>
106 </section>
107
108 </section>
109
110
111 <section>
112
113 <section>
114 <h3>Suggestions</h3>
115 </br>
116 <ul>
117 <li>Automate most of the current QA tasks through better test coverage, static checking and linting</li>
118 <li>Modify the QA flow</li>
119 <li>Consider a more detailed technical specification(s)</li>
120 </ul>
121 </section>
122
123 <section>
124 <h3>Automation</h3>
125 </br>
126 <ul>
127 <li>better test coverage - as much as possible, something is better than nothing</li>
128 <li>own flake / pylint modules, as well as disabling the annoying ones as part of CI</li>
129 </ul>
130 </section>
131
132 <section>
133 <h3>New QA flow</h3>
134 </br>
135 <ol>
136 <li>Decide whether the task is "strategical" during planning and mark it accordingly in Jira</li>
137 <li>Assign supervising developer once the task is picked</li>
138 <li>Commence the design phase(*)</li>
139 <li>Approval by the supervising developer should be required</li>
140 </ol>
141 </section>
142
143 <section>
144 <h3>New QA flow (2)</h3>
145 </br>
146 <p>Design phase</p>
147 <ol>
148 <li>Identify all entities, entry points and parameters (in case of CLI)</li>
149 <li>Decide on names, naming conventions and where different enteties will reside</li>
150 <li>Decide on code entities and define the public interface (OO design)</li>
151 </ol>
152 </section>
153
154 <section>
155 <h3>A more detailed technical specification?</h3>
156 </br>
157 <p>May be feasible when developing new systems and micro-services</p>
158 </section>
159
160 </section>
161
162
163 <section>
164 <h1>Q&A</h1>
165 </section>
166
167
168 </div>
169 </div>
170
171 <script src="dist/reveal.js"></script>
172 <script src="plugin/zoom/zoom.js"></script>
173 <script src="plugin/notes/notes.js"></script>
174 <script src="plugin/search/search.js"></script>
175 <script src="plugin/markdown/markdown.js"></script>
176 <script src="plugin/highlight/highlight.js"></script>
177 <script>
178
179 // Also available as an ES module, see:
180 // https://revealjs.netlify.app/initialization/
181 Reveal.initialize({
182 controls: true,
183 progress: true,
184 center: true,
185 hash: true,
186
187 // Learn about plugins: https://revealjs.netlify.app/plugins/
188 plugins: [ RevealZoom, RevealNotes, RevealSearch, RevealMarkdown, RevealHighlight ]
189 });
190
191 </script>
192
193 </body>
194</html>