Skip to content

Commit 2fdbae4

Browse files
committed
Future Work
1 parent 6361ee7 commit 2fdbae4

File tree

2 files changed

+103
-34
lines changed

2 files changed

+103
-34
lines changed
311 KB
Loading

slides.tex

Lines changed: 103 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -107,12 +107,13 @@ \subsection{Why?}
107107

108108
\note[itemize] {
109109
\item Frustration -> Reason Research topic
110-
\item There are concepts and solutions for RP debugging
110+
\item There are good concepts and solutions for RP debugging
111111
\item Reactive Debugger, Scala \cite{10.1145/2884781.2884815}
112-
\item Improved logging tools rxjs-spy
113-
\item Visualizers rxviz, rxjs visualizer
112+
\item Improved logging tools rxjs-spy \cite{rxjsspy}
113+
\item Visualizers rxviz \cite{rxviz}
114+
\item Visualizers rxfiddle \cite{10.1145/3180155.3180156}
114115
\item But why does nobody seem to use them?
115-
\item Why are they not popular?
116+
\item Why unpopular?
116117
\item -> Research Questions
117118
}
118119

@@ -163,8 +164,8 @@ \subsection{Interviews}
163164

164165
\begin{frame}{Quotes}
165166
\begin{vfilleditems}
166-
\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.}
168169
\end{vfilleditems}
169170
\end{frame}
170171
@@ -208,7 +209,13 @@ \subsection{War Stories}
208209
\end{frame}
209210
210211
\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
212219
}
213220
214221
\subsection{Insights}
@@ -220,7 +227,7 @@ \subsection{Insights}
220227
\begin{itemize}
221228
\item The ``\textbf{to hammer a screw}''-problem\bigskip
222229
\item Tendency to \textbf{manual} code \textbf{modifications}\bigskip
223-
\item \textbf{Pessimistic} opinions on debugging of RxJS-based applications
230+
\item Rather \textbf{negative} experience with debugging RxJS-based applications
224231
\end{itemize}
225232
\end{column}
226233
\begin{column}{.4\linewidth}
@@ -234,24 +241,32 @@ \subsection{Insights}
234241
\end{frame}
235242
236243
\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:
241253
}
242254
243255
244256
\section{Observational Study}
245257
\subsection{Study Design}
246258
247259
\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}
251263
\end{frame}
252264
253265
\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)
255270
}
256271
257272
\begin{frame}{Study Design}
@@ -358,50 +373,104 @@ \subsection{Study Results}
358373
\item -> Trace logs
359374
\item Two tried traditional debugging
360375
\item No one extracted code
361-
\item No one used additional libraries
362-
\item On 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+
\item One told afterwards: Would have been their next step
378+
\item Based on experiment data: Hypothesis is correct
364379
}
365380
381+
\section{Conclusion}
382+
366383
\begin{frame}[fragile]{Interpretation}
367384
\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}''
372388
\end{vfilleditems}
373389
\end{frame}
374390
375391
\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
381398
}
382399
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}
383406
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+
}
386415
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}
387421
\end{frame}
388422
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+
389431
\section{Future Work}
432+
390433
\begin{frame}[fragile]{Future Work}
391434
\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
395437
\end{vfilleditems}
396438
\end{frame}
397439
440+
\note[itemize] {
441+
\item Wraps up our plans for the future
442+
\item Work on a concrete prototype
443+
\item Find solution for trace log problem
444+
\item Without manual intervention
445+
\item Validate effectiveness and answer RQ3
446+
}
447+
448+
\begin{frame}[fragile]{Sneak Preview}
449+
\begin{figure}[H]
450+
\centering
451+
\includegraphics[height=0.6\textheight]{figures/tweet-rxjs-debugging-extension.png}
452+
\caption{\tiny{Source: \url{https://twitter.com/swissmanu/status/1313412280072232960}}}
453+
\end{figure}
454+
\end{frame}
455+
456+
\note[itemize] {
457+
\item Small sneak preview
458+
\item Things are progressing
459+
\item Thank you for your time and attention!
460+
}
461+
398462
\begin{frame}[plain, noframenumbering]
399463
\centering
400464
\vfill
401-
{\fontsize{40}{50}\selectfont Q \& A}
465+
{\fontsize{40}{50}\selectfont\color{white}{Q \& A}}
402466
\vfill
403467
\end{frame}
404468
469+
\note[itemize] {
470+
\item Happy for input
471+
\item Happy to answer questions
472+
}
473+
405474
\appendix
406475
\begin{frame}[allowframebreaks]{References}
407476
\printbibliography

0 commit comments

Comments
 (0)