You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
\item\textit{``[Reactive Programming is] a good way for \textbf{composing} multiple data sources.''}
167
-
\item\textit{``In \textbf{99\%} of all cases, I add \textbf{console.log} statements [\dots] trying to understand what's happening.''}
167
+
\item[\Large{``}] \textit{[Reactive Programming is] a good way for \textbf{composing} multiple data sources.}
168
+
\item[\Large{``}] \textit{In \textbf{99\%} of all cases, I add \textbf{console.log} statements [\dots] trying to understand what's happening.}
168
169
\end{vfilleditems}
169
170
\end{frame}
170
171
@@ -208,7 +209,13 @@ \subsection{War Stories}
208
209
\end{frame}
209
210
210
211
\note[itemize] {
211
-
\item Foo
212
+
\item Again: Common practice to modify code
213
+
\item Not only trace logs
214
+
\item Extraction of code parts to extraneous tools
215
+
\item Visualizers rx-viz \cite{rxviz}
216
+
\item Code sandboxes StackBlitz
217
+
\item Try to use debugger
218
+
\item Debuggers often not that useful
212
219
}
213
220
214
221
\subsection{Insights}
@@ -220,7 +227,7 @@ \subsection{Insights}
220
227
\begin{itemize}
221
228
\item The ``\textbf{to hammer a screw}''-problem\bigskip
222
229
\item Tendency to \textbf{manual} code \textbf{modifications}\bigskip
223
-
\item\textbf{Pessimistic} opinions on debugging of RxJS-based applications
230
+
\itemRather \textbf{negative} experience with debugging RxJS-based applications
224
231
\end{itemize}
225
232
\end{column}
226
233
\begin{column}{.4\linewidth}
@@ -234,24 +241,32 @@ \subsection{Insights}
234
241
\end{frame}
235
242
236
243
\note[itemize] {
237
-
\item ... todo
238
-
\item Based on this
239
-
\item Observational study to validate data
240
-
\item Using the following hypothesis:
244
+
\item Traditional debugger feels wrong
245
+
\item Ask a question which they cannot answer (hammer/screw) -> Stack trace
246
+
\item Fallback to manual code modification
247
+
\item Trace log statements
248
+
\item Extract pieces to sandboxes
249
+
\item Overall: Pessimistic view on debugging RxJS RP
250
+
\item Based on this:
251
+
\item Study to validate this...
252
+
\item Hypothesis coming up:
241
253
}
242
254
243
255
244
256
\section{Observational Study}
245
257
\subsection{Study Design}
246
258
247
259
\begin{frame}[fragile]{Hypothesis}
248
-
\begin{quote}
249
-
If software engineers must solve an RxJS-based problem, then they \textbf{will instrument the code manually} in order to understand its behavior.
250
-
\end{quote}
260
+
\begin{vfilleditems}
261
+
\item[\Large{``}] If software engineers must solve an RxJS-based problem, then they \textbf{will instrument the code manually} in order to understand its behavior.
262
+
\end{vfilleditems}
251
263
\end{frame}
252
264
253
265
\note[itemize] {
254
-
\item Foo
266
+
\item Manual intervention repeating theme
267
+
\item Both Interviews and War Stories
268
+
\item Thats why focus on this in validation study
269
+
\item Dont care what kind (logs vs extraction)
255
270
}
256
271
257
272
\begin{frame}{Study Design}
@@ -358,50 +373,104 @@ \subsection{Study Results}
358
373
\item -> Trace logs
359
374
\item Two tried traditional debugging
360
375
\item No one extracted code
361
-
\item No one used additional libraries
362
-
\itemOn told afterwards: Would have been their next step
363
-
\item Based on this evidence: Hypothesis is correct
376
+
\item No one used additional tools
377
+
\itemOne told afterwards: Would have been their next step
378
+
\item Based on experiment data: Hypothesis is correct
364
379
}
365
380
381
+
\section{Conclusion}
382
+
366
383
\begin{frame}[fragile]{Interpretation}
367
384
\begin{vfilleditems}
368
-
\item\textbf{Four} professional software engineers
369
-
\item Two currently \textbf{work} with RxJS
370
-
\item Three have \textbf{two or more years} of \textbf{experience} with RxJS
371
-
\item One of them uses RxJS to develop \textbf{backend applications}
385
+
\item Engineers \textbf{know} RP debugging tools, but \textbf{do not use} them
386
+
\item Engineers use \textbf{imperative}, but actually require ``\textbf{reactive}'' debuggers
387
+
\item\textbf{Manual intervention} is the ``\textbf{last resort}''
372
388
\end{vfilleditems}
373
389
\end{frame}
374
390
375
391
\note[itemize] {
376
-
\item All used manual trace logs
377
-
\item Two tried traditional debugging
378
-
\item No one extracted code
379
-
\item No one used additional libraries
380
-
\item On told afterwards: Would have been their next step
392
+
\item Interviews + War Stories + Study = ?
393
+
\item 7 of 14 peers know specific RxJS debugging tools
394
+
\item But they dont use them
395
+
\item Instead: Traditional tools \textbf{easily accessible}
396
+
\item Final way to go:
397
+
\item Trace logs and code extraction
381
398
}
382
399
400
+
\begin{frame}[fragile]{Answer}
401
+
\begin{enumerate}
402
+
\item[\color{gray}{RQ1}] \color{gray}{What challenges do software engineers face when debugging RxJS-based applications?}
403
+
\vfill\item[\Large{``}] \color{white}{The most significant challenge software engineers face [\dots] is to know \textbf{when} they should apply \textbf{what tool} to resolve their current problem in the \textbf{most efficient} way.}
404
+
\end{enumerate}
405
+
\end{frame}
383
406
384
-
\section{Conclusion}
385
-
\begin{frame}{}
407
+
\note[itemize] {
408
+
\item Challenge: What tool, when and how
409
+
\item Often: The "next best" as we saw: Traditional tools
410
+
\item Often: Modify code
411
+
\item Less often: Specific tools
412
+
\item What can we do about it?
413
+
\item Answer question 2
414
+
}
386
415
416
+
\begin{frame}[fragile]{Answer}
417
+
\begin{enumerate}
418
+
\item[\color{gray}{RQ2}] \color{gray}{How can the experience of software engineers during the debugging process of RxJS-based applications be improved?}
419
+
\vfill\item[\Large{``}] \color{white}{[\dots] \textbf{improve} the \textbf{experience} of debugging [\dots] by providing RP specific debugging utilities where software engineers expect them the most: \textbf{Fully integrated} [\dots] their IDE [\dots]}
420
+
\end{enumerate}
387
421
\end{frame}
388
422
423
+
\note[itemize] {
424
+
\item Improve the dev user experience
425
+
\item Lower the boundary to use the right tool
426
+
\item At the right time
427
+
\item Integrate the right tools where they are expected the most
428
+
\item Example: Async Stack Traces in Google Chrome \cite{chromeasync}
429
+
}
430
+
389
431
\section{Future Work}
432
+
390
433
\begin{frame}[fragile]{Future Work}
391
434
\begin{vfilleditems}
392
-
\item Manuel Alabor \cite{10.1145/2501654.2501666}
393
-
\item Manuel Alabor
394
-
\item Manuel Alabor
435
+
\item\textbf{Propose} and \textbf{implement} solution to \textbf{prevent} manual code \textbf{modification}
436
+
\item\textbf{Evaluate} proposal on \textbdf{effectiveness} to answer RQ3
0 commit comments