text:
\section{Introduction}
\label{section:introduction}

Cyberattacks breaching corporate networks often result in catastrophic consequences ranging from exposure of sensitive and confidential data \cite{Equifaxwired, Equifaxbug} and betrayal of client trust to even human death \cite{Germancyberattack}. The most effective remediation of this problem is to apply security patches to the identified vulnerabilities through a process called software security patch management, referred to as security patch management hereafter, consisting of detecting, retrieving, assessing, installing, and verifying security patches \cite{souppaya2013guide}. Despite the gravity of the process, security patch management remains one of the most challenging endeavours due to the inherent technical and socio-technical interdependencies involved in the collaborative process of dealing with third-party vulnerabilities and vendor patches \cite{li2019keepers, tiefenau2020security, dissanayake2021grounded}. As a result, organisations struggle to apply timely patches often leaving myriad vulnerabilities open to exploits. Consequently, it has resulted in most security attacks targeting known vulnerabilities for which a patch existed but delayed application. Despite the demonstrated criticality of timely patching, the recent statistics \cite{Accenturereport2020} reveal that the situation has still not improved indicating serious concerns and the increased importance of the efforts aimed at reducing delays in security patch management in practice.

While the previous studies have investigated the socio-technical aspects of security patch management, particularly, the process followed \cite{li2019keepers, tiefenau2020security} and the role of collaboration in the process \cite{nicastro2003security}, these studies have not exclusively focused on the delays in applying security patches. Further, another set of studies have attempted to optimise the patch management process by synchronising the organisational patch cycle with the vendor \cite{nappa2015attack, cavusoglu2008security, cavusoglu2006economics}. Focused on the coordination aspect, our previous study \cite{dissanayake2021grounded} presented a grounded theory of the role of coordination in security patch management based on observations of 51 patch meetings between two case organisations over nine months. The theory explains the causes that define the need for coordination in the process (i.e., the socio-technical dependencies), constraints that can hinder effective coordination, the breakdowns resulting from ineffective coordination of the causes and constraints, and the mechanisms to manage the causes, constraints and breakdowns. Although previous studies have focused on approaches to reduce delays in security patch management and the effects of ineffective coordination on timely security patch management, to date, there has been no study that comprehensively explores why and how delays continue to happen when applying security patches. It adds to the demonstrated critical need for investigating the delays in patching, grounded in evidence from practice. Motivated by the need, we extended the longitudinal study of the two case organisations focusing on the delays in security patch management. The study findings are based on the analysis of the artefacts over four years following the Straussian Grounded Theory method for the data analysis. Our study was guided by the following key research questions (RQs):
 \begin{itemize}[label={}]
   \item \textbf{RQ1.} \textit{Why, how, and where do delays occur in software security patch management? }
   \item \textbf{RQ2.} \textit{How can the delays be mitigated?}
 \end{itemize}

Based on qualitative and quantitative analysis of the longitudinal data gathered from patch meeting minutes spanning over four years from October 2016 to May 2021 between two organisations in the healthcare domain, we attempt to answer these crucial overarching questions of delays in security patch management. The findings explain the causes of delays with a taxonomy comprising technology, people and organisation-related reasons and describe which reasons are more prominent based on their frequency distribution, and where the delays occur in the patch management process. This study also reports a classification of strategies applied in practice to mitigate the delays including when to apply them during the patch management process. To the best of our knowledge, this is the first study to provide a comprehensive understanding of the causes and strategies for delays in security patch management.

Grounded in descriptive evidence from practice, our research contributes to the state-of-the-art understanding of research and practice in several ways: (i) identifies a set of reasons for delays when applying security patches in practice; (ii) describes the most prominent reasons for delays with rationales explaining their variations; (iii) reports where a majority of delays occur in the patch management process presenting their distribution over the process phases; (iv) presents a collection of strategies employed in practice to mitigate the delays including when to apply them in the patch management process; (v) structures the understanding about delays in vulnerability patch management, drawing attention to a critical yet less explored phenomenon in the CSCW community; (vi) grounded in practical evidence, the findings lay a foundation for future researchers and tool designers to design and develop computer-supported solutions to reduce delays in patch application, and (vii) offers practical guidance for practitioners to identify what and where is improvement needed to mitigate patching delays and drive their decisions appropriately.

\section{Background and Motivation}
\label{section:background}

Software security patch management is defined as \textit{``a multifaceted process of identifying, acquiring, testing, installing, and verifying security patches for software products and systems"} \cite{dissanayake2020software}. A security patch is an additional piece of code developed to address security vulnerabilities identified in software \cite{mell2005creating}. Following the discovery of a new vulnerability, a candidate security patch is developed and released by third-party vendors to prevent exploitation by malicious entities. For example, the Meltdown \cite{217478} and Spectre \cite{kocher2019spectre} patches released in 2018 by vendors such as Microsoft, Google, IBM and Apple were aimed at fixing two critical vulnerabilities in modern processors allowing malicious programs to gain unauthorised access to the software system. In security contexts, patch management represents a critical concern in achieving and maintaining the security of the managed software systems. This is because applying a security patch is considered the most effective mechanism to mitigate the identified vulnerabilities \cite{souppaya2013guide}. Similarly, applying security patches with minimum delays is instrumental in significantly reducing the risks of cyberattacks that exploit software vulnerabilities (see Figure \ref{fig:delayfocus}) \cite{souppaya2013guide}. Despite the importance of timely patch management, it remains one of the most challenging processes facing modern organisations. To guide the process, several guidelines such as the National Institute of Standards and Technology (NIST)'s Special Publication (SP) 800-40 \cite{nist2002guide, nist2005guide, souppaya2013guide} have been published over the years.

\begin{figure*}[h]
  \centering
  \includegraphics[scale=0.8]{Figures/Delay-focus.pdf}
  \caption{The focus of the study in the vulnerability timeline.}
  \Description{An overview of the vulnerability timeline showing a delay in software security patch management.}
  \label{fig:delayfocus}
\end{figure*}

There have been several research efforts undertaken to explore the patch management process. Two recent studies \cite{li2019keepers, tiefenau2020security} have investigated the phases the practitioners proceed through patch management. Figure \ref{fig:pmprocess} shows an overview of the five main stages in the process. These stages represent the workflow in the patch cycle (i.e., from the patch retrieval to planned patch application) depicted in Figure \ref{fig:delayfocus}.

\begin{figure*}[h]
  \centering
  \includegraphics[scale=0.9]{Figures/PM_Process.pdf}
  \caption{The five phases of the security patch management process.}
  \Description{An overview of the security patch management process.}
  \label{fig:pmprocess}
\end{figure*}

The patch information retrieval (P1) phase refers to learning about new patches and downloading them from vendor websites. Next, practitioners scan systems to identify the existing vulnerabilities, assess them based on the applicability to managed systems, and prioritise based on vulnerability severity and patch type when deciding to patch (P2). Once the decision to patch is finalised, they prepare to deploy the patches whereby testing the patches for accuracy (P3) and preparing machines by changing configurations, followed by the patch deployment (P4) phase in which the patches are installed and rebooted. As the final step, the patch deployment is verified and post-deployment issues are handled, if any (P5).

In addition, prior research has invested effort in improving the patch management process through both technical and socio-technical aspects. In the scope of technical enhancements, advancing automation in the security patch management process, for example, automated detection of faulty patches \cite{dunagan2004towards, crameri2007staged, maurer2012tachyon} and mechanisms for reducing system downtime in reboots \cite{potter2005reducing, dumitracs2009upgrades, araujo2020improving}, have been widely studied. However, the literature presents little empirical evidence of the socio-technical aspects relating to security patch management. Existing socio-technical studies have primarily focused on the workflows of system administrators but did not focus on other roles (e.g., change manager) and external stakeholders (e.g., customer) involved in the patch management process. Crameri et al. \cite{crameri2007staged} were among the first to investigate system administrators' patch management practices. From a survey conducted with 50 system administrators, they reported that 70\% of administrators avoided deploying patches due to issues caused by a lack of integration between patch testing, deployment and post-deployment issue reporting. Dietrich et al. \cite{dietrich2018investigating} explored the system administrators' perspective on factors leading to security misconfigurations. Their findings confirmed that the situation has not changed even after a decade, reporting that delaying and avoiding security patches are among the most frequently reported security misconfigurations. However, these studies did not explain the reasons for such delays or missed patches.

Extending the study by Crameri et al., two recent studies \cite{li2019keepers, tiefenau2020security} have examined a larger sample of system administrators through a combination of surveys and interviews to perform a comprehensive investigation of the patch management process. Both studies explored system administrators' practices, behavior, and experiences in the patch management process. According to them, administrators rely on various sources such as security advisories, direct vendor notifications, patch management tools, mailing lists and online forums to retrieve meaningful patch information. Further investigating system administrators' patch information retrieval related needs and practices, Jenkins et al. \cite{jenkins2020anyone} studied how the mailing list of the website PatchManagement.org extends support in patch management activities. They argue that the mailing list acts as an online community of practice extending support not only in the patch information retrieval phase but throughout the process in various aspects such as guidance for patch prioritisation, workarounds for post-deployment issues and tool selection.

Another set of studies \cite{li2019keepers, tiefenau2020security, dissanayake2020software, nappa2015attack, huang2012patch, potter2005reducing} have explored the challenges in the patch management process. For example, the impact of organisational policies and culture \cite{li2019keepers, tiefenau2020security, nicastro2003security}, collaboration and coordination challenges due to conflicts between stakeholders \cite{nappa2015attack, li2019keepers, huang2012patch, potter2005reducing}, lack of resources in terms of skills and expertise required for handling complex patching tasks \cite{post2003computer, tiefenau2020security, jenkins2020anyone}, and the increasing rate of patch release \cite{post2003computer, tiefenau2020security, potter2005reducing} are some of the most common challenges faced by practitioners. In addition, challenges relating to the lack of dedicated patch testing environments \cite{li2019keepers, maurer2012tachyon, tucek2009efficient}, post-deployment patch verification \cite{chen2014identifying, li2019keepers}, and the system downtime during patch deployment \cite{li2019keepers, tiefenau2020security, potter2005reducing, dumitracs2009upgrades} have been widely discussed. Despite the widespread attempts for the adoption of automation in different phases of the process, it is revealed that the need for human interaction still presents an inevitable challenge \cite{post2003computer, dunagan2004towards, li2019keepers, tiefenau2020security, dissanayake2020software}.

To address some of these pressing socio-technical challenges, several studies have proposed tools, frameworks and practices. For example, a set of studies \cite{cavusoglu2006economics, cavusoglu2008security, dey2015optimal} have proposed synchronising an organisation's patch cycle with the vendor's patch release cycle to optimise the process, minimise stakeholder conflicts and reduce costs. Concerning the coordination challenges, Dissanayake et. al \cite{dissanayake2021grounded} have proposed a grounded theory of the role of coordination in security patch management explaining the causes that create the need for coordinating in the security patch management process, constraints for effective coordination, breakdowns resulting from ineffective handling of the coordination causes and constraints, and mechanisms for managing the causes while mediating the constraints. Although several approaches have been proposed to improve the patch management process to reduce delays, the reasons why such delays occur and how to mitigate them remain unexplored. Furthermore, given patch management is largely an industry-centric topic, relatively little has been done to understand the state of practice. For example, why do practitioners continue to delay applying the security patches leading to compromises that would have been easily prevented like the Equifax case \cite{Equifaxbug}?

In contrast, delays have been widely studied in related fields like software development. In the majority of these studies \cite{919083, 10.1145/358916.359003, 1205177, nguyen2008global}, the focus has been on delays in global software development (GSD). For example, they have explored the effect of distance on delays in a multi-site software development organisation and mechanisms to reduce delays.
Closely related to our study but focused on software development projects is the empirical analysis conducted over a decade ago by Genuchten \cite{van1991software}. By analysing the planning data of six projects in one software development department of an organisation, he provided a classification of reasons for delays in software development activities. The findings report that capacity-related reasons cause the majority of the delays in the studied context. Further, the study highlights the importance of understanding the causes of delays for software developers to take necessary actions for improvement. Similarly, the recent expediting attacks targeting software security flaws that are delayed in patching exhibit a pressing need towards understanding the practical causes of delays in patch management and suitable strategies to take appropriate actions, which is accomplished by this study.

\section{Research Method}
\label{section:researchmethod}

To understand why and how delays occur in practice, we conducted a longitudinal study with two organisations (Org A and B) involving 21 participants from 8 teams in Australia.\footnote{This study was conducted under the University of Adelaide Human Research Ethics Committee Application Id H-2020-035. Abiding by the guidelines, the details of the companies, participants, third-party vendors, and customers have been kept confidential.} In selecting the case organisations, we used a combination of purposive \cite{schwandt1997sage} and convenience \cite{marshall1996sampling} sampling to ensure that our data are representative of the substantive area through which the findings emerge.
The demographics of the studied teams are illustrated in Table~\ref{tab:observationdetails}. Org A is an Australian state government health services agency that outsourced its \textbf{OS security patching} to Org B, an American multinational corporation. Org B was responsible for patching Org A's 1500 servers representing the entire health sector in the state government. In addition, the non-security patches were handled by different teams in Org A, which is not included in our analysis. Org A consisted of several teams each managing different modules, for example, the teams T1-3 represented the main modules in Org A while the teams T5-6 were central to all other in-house teams overseeing their respective modules. The security patch management process was coordinated through bi-weekly patch meetings between the two organisations, attended by key stakeholders representing each team detailed in Table~\ref{tab:observationdetails}. Figure \ref{fig:orgsetup} shows the organisational setup in the studied cases.

\begin{table*}[h]
  \caption{Demographics of participants}
  \label{tab:observationdetails}
  \centering
  \small
  \begin{tabular} {p{.085\textwidth}  p{.03\textwidth} p{.23\textwidth} p{.05\textwidth} p{.485\textwidth}}
    \toprule
    Organisation & Team & Team's Domain & Team size \anote{$^*$} & Roles\\
    \midrule
    Org A & T1 & Electronic Medical Records (EMR) & 5 & Application Owner, System Administrator, Server Engineer, Server Manager \\
     & T2 & Digital Health Windows (Win) & 3 & Server Engineer, System Administrator, Application Services Manager  \\
     & T3 & Digital Health Non-Windows (Non-Win) & 2 & Unix Specialist, Server Engineer, System Administrator \\
     & T4 & Clinical and Pathology \newline{}Services & 1 & Pathology Server Engineer \\
     & T5 & Security & 1 & Security Advisor \\
     & T6 & Change Management & 1 & Change Manager \\
    \hline
    \addlinespace
     Org B & T1 & Server (Technical) & 7 & Server Engineer, Senior Server Engineer, Unix Engineer, Server Manager, Client Delivery Manager \\
     & T2 & Finance and Audit \newline{}(Non-technical) & 1 & Accounts Manager\\
    \bottomrule
  \end{tabular}
\smallskip
\parbox[t]{\textwidth}{ $^*$~The team size refers to the number of team participants in the patch meeting.}
\end{table*}

\begin{figure*}[h]
  \centering
  \includegraphics[width=0.95\linewidth]{Figures/Org_Setup.pdf}
  \caption{The organisational setup present in the studied context.}
  \Description{An overview of the organisational setup present in the studied context.}
  \label{fig:orgsetup}
\end{figure*}

\subsection{Data Collection}

We collected longitudinal data from patch meeting minutes maintained by the case organisations as the main artifact from patch meetings. In addition, we observed the patch meetings to supplement our understanding of the process, activities, and strategies documented in the meeting minutes and verify the emerged findings from the artifact analysis.

As the main source of data collection, we gathered patch meeting minutes referred to as the \textit{``patching tracker"} by the studied teams. The patching tracker, a detailed Excel spreadsheet, was used as a tracking tool between the collaborative parties to document the status of the tasks, similar to a centralised version control and issue tracking system. The three main teams of Org A (i.e., T1, T2, and T3) each maintained separate patching trackers to document their patch management tasks (i.e., activities) with details of the task number, subject, raised date, action required or taken, raised by, owner, assigned to and the status (including \textit{Closed}, \textit{In-progress}, \textit{New}, \textit{On-hold} and \textit{Monitor}), as shown in Figure \ref{fig:patchingtracker}. Each tracker was updated regularly with the date and action or decision taken when the task was discussed in detail at patch meetings.
\begin{figure*}[h]
  \centering
  \includegraphics[width=1.0\textwidth]{Figures/Patching_Tracker_Screenshot.png}
  \caption{A screenshot of an extract from the Patching Tracker - 19.05.2021.}
  \Description{An extract from Team T1's Patching Tracker on 19.05.2021.}
  \label{fig:patchingtracker}
\end{figure*}

Additionally, to understand what occurs in practice and to obtain a better understanding of the documented tasks in the patching tracker, we observed 66 patch meetings from March 2020 - May 2021. The meetings provided a collaborative platform for the participants to discuss and refine the patching process, plan monthly patch schedules, assess the progress, resolve problems, and make decisions about patch exemptions. The fortnightly meetings were held online through Microsoft Teams due to COVID-19 and lasted approximately an hour and a half. Additionally, the observations increased analytical validity and ensured triangulation in our findings \cite{yin2009case}.

\subsection{Data Analysis}

First, we qualitatively analysed the data employing the Grounded Theory's (GT) \cite{strauss1998basics, glaser1967discovery} data analysis procedures, particularly Strauss and Corbin's version of GT procedures (\textit{Straussian GT}) \cite{strauss1998basics}, as they offer well-structured and rigorous data analysis techniques well-suited to answer complex and practice-based \textit{why} and \textit{how} type questions \cite{strauss1998basics}. Second, to identify how the delays and the causes are distributed, we quantitatively analysed the data using frequency analysis, a widely used technique for producing descriptive statistics derived from the data.

We analysed the data at the task level as the previous studies \cite{van1991software, brooks1975essays} have shown that most of the project delays are caused by the delays in the smallest unit of work (i.e., task-level delays). A task in this study refers to a single row recorded in the patching tracker. Out of 268 tasks available in total, 232 tasks were closed. We only analysed closed tasks since we needed the end dates to calculate delays. Figure \ref{fig:patchingtracker} shows a screenshot of an extract from the patching tracker.
To define a delay according to the studied context, the first author held a discussion with Org A's Security Advisor about their policies to understand the defined time frames for any given task during the monthly patch cycle practised. Table~\ref{tab:definitionoftimeframes} presents a summary of the standard time frames as expected in the organisation. Correspondingly, we mapped the tasks to their relevant phase of the patch management process based on two existing studies \cite{li2019keepers, tiefenau2020security}.

\begin{table*}[h]
  \caption{Definition of standard time frames in the studied organisation}
  \label{tab:definitionoftimeframes}
  \centering
  \small
  \begin{tabular} {p{.03\textwidth} p{.3\textwidth} p{.1\textwidth}  p{.45\textwidth}}
    \toprule
    Phase ID & Patch management process phase & Standard time frame & Note \\
    \midrule
    P1 & Patch Information Retrieval & 2 days & Needs to be completed within two days of patch release \\
    P2 & Vulnerability Scanning, Assessment and Prioritisation & 1 week & Needs to be completed within the first week of patch release \\
    P3 & Patch Testing & 1 week & Needs to be completed within the second week of patch release \\
    P4 & Patch Deployment & 2 weeks & Needs to be completed within the fourth week of patch release \\
    P5 & Post-Deployment Patch Verification & 1 month & Any post-deployment issues must be resolved by the next patch cycle \\
    \bottomrule
  \end{tabular}
\end{table*}

The preliminary analysis revealed 132 delayed tasks from a total of 232 closed tasks that we analysed (56.9\%). While there were 57 tasks (24.6\%) not delayed, the remaining tasks were excluded for several reasons such as duplicate tasks, lack of information (e.g., no end date), and not being related to patch management specifically.

To understand the causes of delays and remediation mechanisms, we analysed in-depth the delays identified through preliminary analysis following \textbf{open}, \textbf{axial}, and \textbf{selective} coding procedures \cite{strauss1998basics}, as shown in Figure \ref{fig:dataanalysis}. The first author performed the data analysis while the second and third authors cross-checked all the codes throughout the process to increase the reliability of the findings and reduce bias \cite{strauss2007basics}. Any disagreements in the coding were resolved through weekly discussions among all authors involving multiple rounds of revisions. The patching tracker, codes, and memos were stored in NVivo, the data analysis tool, and shared with all authors.

\begin{figure*}[h]
  \centering
  \includegraphics[scale=0.7]{Figures/Data_analysis_procedure.pdf}
  \caption{Emergence of the category \textit{Reasons for delays} from the underlying concept of \textit{Capacity limitations} and codes.}
  \Description{Application of Straussian grounded theory data analysis procedure: open coding through axial coding to selective coding.}
  \label{fig:dataanalysis}
\end{figure*}

We started with \textbf{open coding}, whereby we analysed all columns row by row in the spreadsheet to identify \textit{key points} summarising the content. It was further summarised into \textit{codes} containing short phrases. Constant comparison of emerged codes between each team's patching tracker, different teams' patching trackers of a single meeting, and different meetings resulted in \textit{concepts} \cite{strauss1998basics}, a higher level of abstraction of the \textit{codes}. Similarly, we grouped \textit{sub-categories}, and continuously comparing sub-categories gave rise to \textit{categories}, the next level of abstraction. Next, we performed \textbf{axial coding} in which we linked categories to their subcategories based on the relationships between categories relating to their \textit{properties} (i.e., ``characteristics of a category") and \textit{dimensions} (i.e., ``variations within properties") \cite{strauss1998basics}. During the analysis, we created \textit{memos} for explaining the codes and their relationships which helped us during this process.
During the final phase of the analysis, we applied \textbf{selective coding} by which we identified the \textit{central} or \textit{core} category which represents the most recurrent and central problem in the studied phenomenon, or simply which explains \textit{``what this research is all about"} \cite{strauss1998basics}, in this case, \textbf{delays in security patch management}.

For confidentiality reasons, we do not share the raw data. However, we made our codebook containing the codes, descriptions and examples of raw data publicly available \footnote{\url{https://doi.org/10.5281/zenodo.5635608}}.

\subsection{Member checking}

We conducted a member checking \cite{merriam1998qualitative} session to ensure the credibility, accuracy, validity, and transferability of our study findings. Member checking, a technique of \textit{``taking ideas back to research participants for the confirmation"} \cite{charmaz2006constructing}, provides an opportunity to validate the findings with participants and resonance with their experiences \cite{birt2016member}. We presented the study findings at a session held at Org A. Three authors attended the session in person while nine patch meeting participants (six from Org A and three from Org B) and an executive director of Org A were present physically. In addition, seven patch meeting participants (four from Org A and three from Org B) attended the session virtually. The first author presented the findings for 20 minutes followed by a detailed feedback discussion lasting for 40 minutes. For the member checking, we revisited findings for each RQ and asked questions including if they agree with the findings, which reasons for delays they have encountered the most in their experience, any other reasons or strategies they use that are not captured in the findings, and if they can relate the findings with their experiences. The session was audio-recorded with permission and transcribed for analysis by the first author. The feedback and comments from member checking are presented in Section 4.5.

\section{Findings}
\label{section:findings}

In this section, we present the findings of our study. Figure \ref{fig:theory} presents an overarching representation of the findings from the qualitative analysis. We provide examples from the patching tracker chosen based on their representativeness, as supporting evidence and to increase the verifiability of our findings \cite{urquhart2012grounded}. In the examples, we include the subject of the task (see Figure \ref{fig:patchingtracker}) and evidence relating to the delay using unique identifiers for ease of reference, for example, \textit{``P[n]-AT1"} refers to a participant from Org A's EMR team, and \textit{``Win, Task ID 2"} refers to the 2nd task discussed in the Digital Health Windows meeting.
\begin{figure*}[ht]
  \centering
  \includegraphics[width=1\textwidth]{Figures/Overview_findings.pdf}
  \caption{High-level overview of the findings from the qualitative data analysis.}
  \Description{High-level overview of the reasons and strategies for delays in software security patch management emerged from a Grounded Theory analysis.}
  \label{fig:theory}
\end{figure*}

\subsection{Why, how, and where do delays occur in security patch management?}

We identified a set of reasons that cause delays in security patch management, presented as a taxonomy in Figure \ref{fig:detailreasons}. In summary, we found nine reasons, grouped into three main categories: technology-related reasons, people-related reasons and organisation-related reasons.
\begin{figure*}[ht!]
  \centering
  \includegraphics[width=1\textwidth]{Figures/Detailed-Reasons.pdf}
  \caption{Detailed overview of the causes of delays in software security patch management.}
  \Description{Reasons for delays in software security patch management.}
  \label{fig:detailreasons}
\end{figure*}
Next, we quantitatively analysed the identified set of reasons to understand the \textit{most prominent reasons} that need practitioners' and researchers' attention. To achieve this, we conducted a frequency analysis on the reasons for delays. An important observation was that in the majority of the delays, we found multiple reasons attributing to one delayed task. For example, a delay in applying a critical security patch was identified due to a combination of reasons such as delayed input by the vendor (R5), delays in coordination with the vendor (R4), and lack of expertise (R8). In total, we found 417 occurrences of the identified nine reasons ascribed to the 132 delayed tasks analysed. Figure \ref{fig:delaysfrequency} presents the frequency distribution of the reasons for delays. Accordingly, the most prominent causes for delays relate to people-related reasons, for example, delays in coordinating the patch management activities (24.9\%) and providing input requirements (16.8\%).

\begin{figure}
    \centering
    \begin{minipage}{0.49\textwidth}
        \centering
        \includegraphics[width=1\textwidth]{Figures/Frequency_of_reasons.pdf}
        \caption{Frequency distribution of the reasons for delays in security patch management from a total of 417 occurrences of delayed reasons.}
        \Description{Distribution of the reasons for delays in software security patch management based on the frequency analysis.}
        \label{fig:delaysfrequency}
    \end{minipage}\hfill
    \begin{minipage}{0.49\textwidth}
        \centering
        \includegraphics[width=1\textwidth]{Figures/Delay_distribution.pdf}
        \caption{Distribution of delays over the security patch management process and average delay duration in months in each phase. Total number of delayed tasks = 132.}
        \Description{An overview of how the delays are distributed over the patch management process and the average duration of the delays in each process phase.}
        \label{fig:delaysdistribution}
    \end{minipage}
\end{figure}

In determining \textit{where the aforementioned delays occur in the patch management process}, our quantitative data analysis revealed that the delays are distributed throughout the process with a majority of the delays, i.e., 54\% occurring during the patch deployment (P4) phase as shown in Figure \ref{fig:delaysdistribution}. We identify that it can be attributed to the inherent socio-technical complexities involved in the patch deployment tasks and decisions. The second-highest number of delays happen during patch testing (P3) and post-deployment patch verification (P5) phases where each account for 15\% of the delays. Possible explanations of these numbers can be recognised by the evident challenges in the respective stages, for example, managing the delays occurring due to the poor quality of patches, which may result in unanticipated post-patching failures leading to disastrous consequences and inconvenience to users, e.g., unavailability of service. Additionally, we have reported the average delay duration in months in each process phase. As shown in Figure \ref{fig:delaysdistribution}, the longest average delay is reported as 3.6 months belonging to patch testing and vulnerability scanning, assessment and prioritisation tasks. In the following, we describe the nine reasons for delays mentioned in \textit{italic} under their corresponding main categories.

\subsubsection{\textbf{Technology-related reasons.}} The technology-related reasons denote the compound characteristics intrinsic to software security patches, limitations of the tools used in patch management, and technological limitations resulting in the need of human intervention in the process. \\

Concerning the \textit{complexity of patches}, the patch interdependencies consisting of software, hardware, and firmware presented a major reason for delays in patch testing and deployment tasks. We identify that such complexities emerge from the existing dependencies in the source code, for example, function-level or library-level dependencies \cite{dissanayake2021grounded}. Patching large and complex software systems involves a diverse set of operating systems, tools, and software applications with multiple versions. It introduces additional challenges to match the compatibility of several versions which often leads to delays during patch testing.
Moreover, patch interdependencies with the legacy software were a recurrent cause of the delays in the studied context. This reason exacerbated problems with delays since the solutions, for example, upgrading or decommissioning the legacy system, or continuing to receive extended support (i.e., obtain patches) from the vendors presented even further challenges. This is because, besides the large costs involved in these workaround solutions, the teams were faced with high risks as most of the legacy systems operated critical medical services. In addition, due to the complex and business-critical nature of legacy systems, resolving legacy software dependencies often resulted in significant delays leading up to several months in some cases.

On the other hand, the unknown errors during patch testing, deployment, and post-deployment arising from faulty patches led to delays. In such instances, the practitioners spent a significant amount of time troubleshooting the error not knowing that it is caused by a faulty patch. Following the identification of the root cause as a faulty patch, the practitioners often pursued the vendor's support which further delayed the completion of the task.
We also observed that some security patches required extensive monitoring to verify the fixes for post-deployment errors. For example, the task was kept under monitoring for several weeks until the results confirmed the applied fix poses no unanticipated adverse effects to the managed systems. Furthermore, the increasing rate of patch release coupled with the patch heterogeneity adds to the complexity of patches creating delays in patching. This is because as the number and diversity of patches increase, the number and complexity of the patch interdependencies that need to be managed also increase. Consequently, it leaves myriad attack vectors vulnerable to cyberattacks increasing the risk of exploits.
\begin{quoting}
\textit{\emph{[Subject - Patch deployment error at the [server s1]} \\
``13/12/19 - Workaround applied and timings were all good. Keep open till January run for confirmation."} - EMR, Issue ID 35 \\
\end{quoting}

The analysis unveiled that some delays can be attributed to the \textit{limitations of tools}. In particular, the lack of accuracy in the output of current tools (e.g., missing some vulnerabilities during scanning, omitting patches during patch deployment) resulted in inaccurate vulnerability prioritisation and incomplete patch deployment respectively. Subsequently, the practitioners had to re-execute the tasks that resulted in delays in the task completion.
Another limitation is associated with the lack of scalability to handle diverse types of patches and their features.
In such cases, patches introduce complications to tool functionalities such as disabling some tool functions. Furthermore, we identified functionality limitations of the existing tools like the inability to detect patch compatibility arising from the patch dependencies and lack of capability to detect multi-reboot requirements that delayed the tasks.
\begin{quoting}
\textit{\emph{[Subject - Additional reboot required for .NET patching]} \\
``7/2/20 - Investigation is needed around the number of required reboots for EMR patching and window requirements as a result if more reboots are required. A new process needs to be fleshed out when patching is postponed to accommodate the identification of the number of reboots required."} - EMR, Task ID 35 \\
\end{quoting}

Another prominent cause of delays ascribed to the \textit{need of human expertise} throughout the patch management process. The need for human intervention emerges because of the inability to achieve complete automation in the process owing to technological limitations. Troubleshooting the issues, mostly related to the unknown errors during and post-deployment and faulty patches, consumed a lot of the practitioner's time and effort delaying the patch testing and deployment tasks.
Similarly, manual configurations, for example, selecting the suitable Group Policy Object (GPO) configurations based on the needs and making decisions about the patch process, e.g., changes to the patch cycle and patch window, needed to be thoroughly assessed of the impact on multiple aspects to avoid breakdowns. Moreover, we noticed that the practitioners undertook manual patch deployment during complex, erroneous, or business-critical patch installations, for example, legacy systems patching. Manual intervention was also required for re-executing failed patch deployments and re-planning patch schedules due to requirement changes.
\begin{quoting}
\textit{\emph{[Subject - [Hospital h1] patching stage 3 on 27th November]} \\
``18/10/19 - Patching needs to be moved to OOB due to the change freeze from 15th November to 3rd December. \\
31/10/19 - [B-T1] team putting in significant amounts of work, like 15-20 hours per month, to redo the schedules on custom dates each time the deployments move off standard windows."} - EMR, Task ID 30
\end{quoting}

\subsubsection{\textbf{People-related reasons}.} These refer to a group of reasons relating to the coordination of patch management, delivery of input requirements, and planning and execution of patch management tasks. \\

Delays occurring due to \textit{lack of coordination} presented the most recurrent reason for delays. It refers to the delays in getting things done in the patch management process. It is challenging because completing a single patching task (e.g., apply security patch X to server Y in Customer Z) involves multiple interdependent activities and several stakeholders. We found coordination delays stemming from both internal and external stakeholders.

\hspace{4 mm} Internal stakeholder coordination delays, in the studied context, relate to the delays from lack of coordination of dependencies deriving from the interactions between stakeholders of Org A and Org B. As several interdependent teams between the two organisations collaboratively worked towards an end goal of timely application of security patches to ensure systems' security, a delay of one party resulted in delays in task completion. Similarly, lack of awareness of task progression between teams also created delays in inter-team task progression.
As such, the multiteam system \cite{mathieu2001multi} in the studied context resulted in delays in decision approvals as they had to go through multiple teams (or levels).
In addition, a lack of understanding of shared roles and responsibilities led to delays in coordinating tasks between teams because the task assignee did not know whom to contact in the event of errors or who was handling the interdependent task.
We noticed that coordination delays also occurred due to missing information owing to an overload of emails. Email being the primary source of communication between the internal teams, there were cases where some emails had been missed resulting in delays in passing information on time. Moreover, poor communication and information misinterpretation contributed to delays in information passing.

\hspace{4 mm} Concerning external stakeholder coordination delays, we found delays attributed to the coordination with customers (e.g., hospitals), end-users (e.g., hospital patients and staff), and vendors (e.g., Microsoft). A dominant reason was the delays in obtaining customers' approval for patch deployment. Since patch deployment usually resulted in system downtime arising from the reboots, obtaining approval for patch deployment schedules was important.
\begin{quoting}
\textit{\emph{[Subject - Request to change patch window of [s1] server]} \\
``10/5/19 - currently set to 0000-0300, but the full backup of the server happening during this window causes slowness and issues with patching. Suggest changing the window to 0600-0900. [P1-AT2] checking on the status with business approval \\
14/6/19 - [P1-AT2] to follow up as no response from the business."} - Win, Task ID 19
\end{quoting}
The other reason was the delays in coordinating with vendors for support. Coordinating the vendor dependencies is integral to security patch management as the practitioners rely on vendors' support for errors encountered during patching and to obtain information about patch release.
Additional delays included the administrative overhead of coordinating with multiple customers for pre and post-patching verification and delegation delays due to conflicts of task ownership with other third-party vendors owing to lack of accountability. \\

Another instrumental people-related reason was the \textit{delays in providing input requirements}. This is because the patch management process represents a sequence of phases with tightly coupled activities whereby an output of one phase is the input to the next phase. Similar to coordination delays, we identified that the input requirements delays emerge internally and externally.

Internal input requirements delays occurred when requested information was not provided by the internal teams on time. This included delays in delivering the reports such as the vulnerability scan reports which led to delays in vulnerability assessment and prioritisation. Similarly, delays in delivering patch schedules-related information led to delays in planning and subsequently deploying patches.
Other reasons included delays in supplying other information requisites such as server details and providing the team's requirements in the patch cycle. An important observation was that the teams did not maintain an online repository with the server details that created the need for waiting for information about up-to-date server details (i.e., with the latest patched versions).

\hspace{4 mm} External input requirements delays are concerned with the requirements delivered late by vendors. For example, delays in the patch release, particularly the patches for fixing critical security vulnerabilities, can result in a significant increase in the risk of exposure to cyberattacks. Additionally, the delays in receiving vendor's support for patching errors and new patch release information caused delays in addressing the vulnerabilities.
\begin{quoting}
\textit{\emph{[Subject - New zero-day vulnerability warning]} \\
``12/6/20 - Monitor Microsoft patch release for critical vulnerability identified on [T1] servers. Font Type 1 expected as a zero-day soon, full report not available yet. \\
24/7/20 - No update from Microsoft."} - EMR, Task ID 43 \\
\end{quoting}

We noticed that some delays were caused by \textit{failures from poor planning and execution}. Security patch management in large and mission-critical domains like healthcare entails challenging tasks that need to be cautiously planned and executed to avoid system breakdowns. However, the complexity of patches, particularly, the unforeseen errors during deployment presented a major risk to deploying within the planned time frame. With regards to poor planning, inaccurate estimates of patch windows caused patch deployment exceeding the allocated patch windows resulting in inconvenience to customers and end-users. As a consequence, practitioners often halted patch deployment to avoid service disruptions resulting in patching delays.
\begin{quoting}
\textit{\emph{[Subject - Execution exceeding the patch window]} \\
``31/5/17 - Only 72.9\% of scheduled patch deployments were completed as of 11.20 am.  Two further windows to be raised to ensure the appropriate length of time is scheduled due to unknown 2016 updates that were required to be implemented, first window is 1st June 8 am to 12 pm."} - Win, Task ID 4
\end{quoting}
Of poor execution, missing patch pre-requisites such as registry changes, GPO configuration and installation of preparation packages halted execution due to errors during the deployment. Similarly, incomplete patch deployment (e.g., failing to reboot after deployment which resulted in the installed patch not taking effect), and inadequate post-deployment patch verification such as failing to monitor the status of patch deployment tasks caused the need to re-execute patch deployment. Insufficient post-deployment patch verification also resulted in operation disruptions due to unexpected errors. For instance, we observed a heated discussion during a patch meeting owing to an issue with the printers not working reported by the customers to Org A caused by a lack of post-deployment verification by Org B.

\subsubsection{\textbf{Organisation-related reasons}.} This category covers reasons relating to the organisation approvals, schedules, capacity to undertake patch management tasks and policies on service availability. \\

We found some reasons denoting to \textit{organisation delays} resulting from organisation policies and schedules. The need for compliance to organisation policies and the involvement of multiple parties (i.e., two organisations and several teams) has resulted in delays in obtaining approval from organisational management for monthly patch schedules and changes in the process.
Further, we also noticed that delays occur due to the changes in organisation schedules such as change freeze periods, testing schedules like regression testing plans, and holidays (e.g., year-end shutdown period) during which no patch deployments were allowed to be scheduled.
\begin{quoting}
\textit{\emph{[Subject - Patching for December 2019]} \\
``18/10/19 - OOB for November patching from 4th December instead of December patching. \\
31/10/19 - [AT1] patching for December month is off but November Microsoft patches will be applied in the first week of December instead to keep compliance up."} - EMR, Issue ID 29 \\
\end{quoting}

We also noticed a \textit{lack of capacity} concerning human resources, infrastructure, and time leading to delays. With regards to resource constraints, insufficient human resources appeared to be a major factor for the delays. For example, unavailability of task assignees due to high work overload and assignee being on leave held up the tasks in progress until the assignee was available. Another root cause was the lack of qualified personnel with sufficient experience to handle complex tasks such as legacy system upgrades. Thus, leading to an experienced practitioner getting overloaded with tasks that would end up queued for a long time.
Regarding infrastructure-related limitations, hardware and network limitations hindered task progression in ways such as performance delays. For example, the high patch load described in the \textit{complexity of patches (R1)} impacted the reboots following deployment and issues with the bandwidth required for patching due to lack of capacity to handle the load.
\begin{quoting}
\textit{\emph{[Subject - Backup server patching]} \\
``24/1/20 - Patching cannot go ahead when the active backup is running. The patch load can impact servers before reboot. Need a window change, proposal to be sent by [P1-BT1] to [P2-AT1]."} - EMR, Issue ID 39
\end{quoting}

Another reason stemmed from the periodic patch cycles as it presented the practitioners a time-bound restraint to progress with the tasks. In particular, some tasks such as testing the workarounds for failed deployments had to be delayed for weeks given the time-driven (i.e., monthly) patch cycle in practice. \\

Another crucial cause of delays stemmed from the \textit{service availability restrictions}. We noticed that patch deployment was often delayed due to organisations' inability to allow service downtime from reboots. Reboots were necessary for the patch to take effect after deployment and some patches required multiple reboots or multi reboots
depending on the level of complexity involved, for example, the number of patch interdependencies. As such, the multi reboots required longer and additional patch windows than the usually allocated 4-hour window. Consequently, in most cases, the patch schedules were delayed to be deployed in out-of-band windows to reduce service disruptions from longer patch windows during business hours.
\begin{quoting}
\textit{\emph{[Subject - [Servers s1 and s2] patching]} \\
``26/7/19 - OOB window is needed for the multi reboots to catch up. \\
9/8/19 - Waiting for the customer's confirmation of the new patch window, pending information from [P1-AT1]."} - EMR, Issue ID 20
\end{quoting}

However, getting customers' approval for a change of patch window presented an additional challenge to the practitioners as customers were always hesitant towards the risk of system downtime. Correspondingly, further delays occurred due to customers' requests to postpone the schedules to allow service continuity.\\

\noindent\fbox{%
    \parbox{\textwidth}{%
        \textbf{Summary for RQ1:} We identified nine causes for patching delays associated with technology, people and organisation-related reasons. In a majority of the delays, we found multiple reasons attributing to one delayed task. Among these reasons, people-related reasons, for example, coordination delays and input requirement delays appeared as the most prominent and recurrent reasons. Concerning where the delays occur, we found that the delays are distributed throughout the security patch management process, however, most of the delays, i.e., 54\% occurred during one phase, i.e., patch deployment. Yet, regarding the duration of delays, we found that tasks related to vulnerability scanning, assessment and prioritisation and patch testing phases account for the longest delays.

    }%
}

\subsection{Mitigation strategies for delays in software security patch management}

We identified a group of strategies implemented by the studied teams as corrective/reactive actions to reduce the delays. Further investigation enabled us to identify \textit{where} to apply the strategies in the patch management process. Figure \ref{fig:detailstrategies} presents the strategies grouped by the relevant patch management process phase with the number of references for each strategy (in parentheses).

\begin{figure*}[ht]
  \centering
  \includegraphics[width=1\textwidth]{Figures/Detailed-Strategies.pdf}
  \caption{Detailed overview of the strategies applied to mitigate delays in software security patch management.}
  \Description{Strategies for delays in software security patch management.}
  \label{fig:detailstrategies}
\end{figure*}

\subsubsection{\textbf{Strategies relating to the overall patch management process}.} The following set of \textit{common strategies} can be applied across all phases of the patch management process. \\

\textit{Frequent communication} with all internal and external stakeholders is vital in reducing the patching delays as it helped strengthen the collaboration and improve mutual understanding by bringing all stakeholders on the same page. Regarding internal communication, the studied practitioners held bi-weekly patch meetings to discuss patching issues, find solutions to the issues, report the status of patching tasks, and measure the progress of the patch cycle. Besides the patch meetings, they held informal discussions for complex and critical issues when required.
\begin{quoting}
\textit{\emph{[Subject - Post-deployment issue - Data Capture servers not able to communicate with [system s1]]} \\
``7/8/20 - [P1-AT1] checking with [P2-AT2] for the other three servers that do not have a commissioning request. \\
21/7/20 - Set up another meeting with BT1 to discuss this request (ID 1772737)."} - EMR, Issue ID 42
\end{quoting}

As to external communication, the practitioners frequently negotiated with customers about the patch deployment schedules. It involved getting consent for patch deployment at customers' premises, agreeing on the patch deployment dates and times (i.e., patch window), and establishing contact persons at the customer sites for emergency contact and notifying completion of the patch deployment task. Similarly, the practitioners regularly negotiated with the vendors regarding the delayed patch releases and support cases raised for faulty patches. Frequent communication helped all stakeholders gain awareness of the tasks and schedules, assisting them with up-front planning and coordination of the dependent tasks.
\begin{quoting}
\textit{\emph{[Subject - Unix patching schedule confirmation]} \\
``24/7/20 - The requirements analysis revealed a major OS upgrade, not simple patching. The schedule is still being negotiated with [customer c1]."} - Non-Win, Issue ID 7 \\
\end{quoting}

\textit{Collectively making decisions} about patch management, for example, patch prioritisation based on the vulnerability assessment results and organisation needs, selecting workarounds for delayed patching and post-deployment issues helped the team members gain insight into the prospective plans and activities. In addition, it allowed the individual team members to make well-informed decisions about their task assignments that reduced the impact of the delays from waiting for input from dependent tasks and changes in the organisation's schedules.
\begin{quoting}
\textit{\emph{[Subject - Proposal for a patch cycle change in [servers s1 and s2]]} \\
``4/4/18 - Discussions still ongoing for the decision. AT1 is still considering various options and has put them out in slides for discussion at the meeting."} - EMR, Issue ID 2 \\
\end{quoting}

We observed the patch meeting facilitator \textit{delegating the tasks} to BT1 team members based on their expertise and experience during the patch meetings. In rare cases, the practitioners voluntarily self-assigned the tasks based on their interest and due to the unavailability of task assignees. The delegated tasks including details of the task, task assignee, raised by, and date of the assignment were documented in the patching tracker during the meeting. It appeared a useful strategy to increase dependency awareness of the tasks, particularly, in scenarios like task B is dependent on task A (A $\rightarrow$ B) and the assignee of task B needs input from task A to progress with the task.
Moreover, employing this strategy ensured well-defined roles and responsibilities around patch management activities resulting in increased accountability for actions.
\begin{quoting}
\textit{\emph{[Subject - Vulnerabilities in .NET Core]} \\
``21/2/20 - .NET Core is not receiving updates. A new process is required to patch this version and a service request (SR) needs to be submitted for review and assessment. [P1-BT1] to raise the SR for the issue raised by BT1 on 7th Feb 2020."} - Win, Issue ID 40 \\
\end{quoting}

Another common strategy that emerged from the data analysis was having a systematic process to \textit{regularly review and update the documentation} about patch management process actions and decisions. It is important to consistently review the process and test any process changes internally before documenting them. A well-documented process ensures clarity in the process activities and decisions, and eases tracing back during troubleshooting post-deployment errors.
\begin{quoting}
\textit{\emph{[Subject - Update documentation for the split of [servers s1 and s2] patching into two procedures]} \\
``13/12/19 - Finalising the documentation after testing internally for handover to 24x7. \\
10/1/20 - Documentation to be tested in February, will be ready for handover in March."} - EMR, Task ID 24
\end{quoting}

\subsubsection{\textbf{Strategies relating to patch information retrieval (P1).}}

\textit{Setting tight timelines for patch download}, for example, within two days of the \textit{``Patch Tuesday"} when large vendors like Microsoft, Adobe, and others release the patches, was a strategy followed by the studied practitioners. It allowed them sufficient time to plan and coordinate the patch windows, negotiate with customers, obtain organisation approval, and undertake extensive patch testing before deployment. In the studied context, Org B provided a report to Org A teams containing a list of the retrieved patches each month that aided collaborative assessment of vulnerability risks.
\begin{quoting}
\textit{\emph{[Subject - Provide .NET report at the start of the patch cycle]} \\
``15/3/19 - Org A requests BT1 to provide an extract of .NET released patches every month and a report including what patches will be applied to what servers [...]"} - EMR, Task ID 53
\end{quoting}

\subsubsection{\textbf{Strategies relating to Vulnerability Scanning, Assessment and Prioritisation (P2).}}

We observed the practitioners \textit{planning alternatives} for scheduled patching that will be delayed due to known reasons. For example, a major upgrade for critical legacy software, a complex and time-consuming process that often involves several challenging subtasks like an intensive assessment of the cost-benefit analysis and impact on other services, and laborious data migration procedures. In such cases, the practitioners planned alternatives (i.e., \textit{what to do} and \textit{when to do}) for the time being until the software is patched to minimise the risks of attacks. We observed them collaboratively analysing various workarounds for suitability during delayed patch releases and delayed patching and assess the timing of those alternate remediation plans. \\

\textit{Defining priorities for vulnerability remediation} appeared beneficial in reducing the risk of exploitable attack vectors from delayed remediation due to the large number and diversity of patch releases. The studied practitioners prioritised vulnerabilities based on the patch severity and impact. In the studied context, the security team (AT4) prioritised security patches based on the global vulnerability rating and their own risk assessment. High-risk critical patches were prioritised to be deployed within 48 hours while the medium to low-risk patches were deployed in the next patching cycle. Prioritisation based on the patch type, for example, operating system patch vs software application patch, was another strategy employed for defining the priorities. In some cases, we observed them prioritising the operating system security patches over other security patches like .NET, IE, Adobe, and Java.
\begin{quoting}
\textit{\emph{[Subject - OS security patches need to be tracked separated in the vulnerability remediation]} \\
``15/5/20 - [P1-AT1] requesting the OS security patches to be tracked separately to all other vulnerability remediation. Org B's report should only be addressing OS security patches anyway but can make sure to separate any non-OS remediation tasks."} - EMR, Task ID 45
\end{quoting}

\subsubsection{\textbf{Strategies relating to Patch Testing (P3).}}

\textit{Definition of compliance policies}, for example, the standards imposed by the security team to reboot every legacy server even if there are no patches, and developing contingency plans in cases of failures appeared beneficial in mitigating the risk of delays caused by the erroneous patches. \\

Patch pre-requisites such as the registry changes and preparation package installation represent preconditions that needed to be set up for the patch to take effect during the deployment. As a strategy to avoid possible delays resulting from the runtime errors hindering patch deployment due to missing pre-requisites and delays in manual configurations associated with the pre-requisites, the BT1 team performed an \textit{investigation of pre-requisites} for the patches released every month as a separate task during patch testing.
\begin{quoting}
\textit{\emph{[Subject - Registry key missing for Knowledge Base (KB) ID [n] (LDAP)]} \\
``2/10/20 - Patches not installed on [servers s1 and s2] due to missing a registry key. [P1-BT1] to check settings and apply where missing."} - Win, Task ID 24 \\
\end{quoting}

In preparing the machines for patch deployment and avoid potential delays arising from complexities of patches due to patch dependencies, the practitioners dedicated a specific time to \textit{identify and modify the dependencies and configurations} during patch testing. For example, they created patch clusters based on the patch similarity and configured the group settings, also known as Group Policy Object (GPO), to reduce time spent on manual configurations on individual patches.

\subsubsection{\textbf{Strategies relating to Patch Deployment (P4).}}

\textit{Well-timed coordination of patch deployment schedules} can help mitigate several delays associated with the coordination delays, capacity limitations, organisation policies regarding service availability, organisation schedule changes, failures from poor planning, and increased rate of patch release during patch deployment. The activities involved internal planning and scheduling of the patch windows for each managed system (i.e., \textit{when to patch}), defining the teams' roles and responsibilities for contacting customer sites for patch deployment verification, and planning the servers' load to spread evenly through the patch windows to avoid performance issues and unexpected service disruptions during patch deployment (i.e., \textit{how to patch}). \\

Given the mission-critical nature of healthcare operations, the risk of system downtime from reboots presented a major challenge to the practitioners in reducing the risk of service disruptions during patch deployment. As a strategy to maximise service availability and reduce potential associated delays, they \textit{applied various countermeasures including clustering, load balancing, and failover}. Clustering refers to grouping patches based on their similarity. As such, configuring the group settings and deployment of the patch clusters significantly reduced the time spent in testing, deployment, and rebooting than comparable single-patch work resulting in increased service availability. Similarly, load balancing which refers to balancing the load on servers during deployment helped avoid unnecessary service disruptions. This is because the servers will be patched in batches reducing the risk of all services being interrupted at the same time. Failover or maintaining backup servers to concurrently run the services while being rebooted was another workaround employed to minimise the downtime. Subsequently, the backup servers' patching was carefully planned with separate patch windows. A few other countermeasures included planning extended windows for patches that required multi reboots in out-of-band windows and pre-loading the patches offline to avoid patch deployment exceeding the allocated patch window.
\begin{quoting}
\textit{\emph{[Subject - Patch deployment failed at [server s1]]} \\
``24/1/18 - Single point of failure for [server s1]. AT1 to review the proposed design for clustering for high availability. Currently hard to obtain reboot timings and only one reboot is allowed. Ask the customer for an extended window and move the patching to the weekend."} - Win, Task ID 6 \\
\end{quoting}

The practitioners decided to \textit{shift to manual patch deployment} for business-critical server patching, complex patches that involved multiple version dependencies, multi reboots and legacy software systems, and redeployment of erroneous patches. This strategy was deemed effective in minimising the damage (i.e., service operations left unstable post-deployment) caused by failed deployments and avoiding the risk of further delays.
However, we noticed that shifting to the manual deployment itself could lead to delays in patching as described in R3 in Section 4.1.1. \\

\textit{Agile deployment} was another strategy employed by the teams where they executed the changes to patch deployment procedures in small iterations. This was adopted as a precautionary measure against unexpected breakdowns since a small  change in the deployment process could result in disastrous consequences to service continuity and build confidence around the new changes.

\subsubsection{\textbf{Strategies relating to Post-Deployment Patch Verification (P5).}}

\textit{Having a defined set of procedures for post-deployment patch verification} helps reduce the risk of delays caused by failures from poor execution due to inadequate post-deployment verification. The studied teams verified the patch deployment status using several approaches such as monitoring the system for any functional, performance, or any unexpected issues, analysing the system logs, collecting user feedback (i.e., confirm with customers about any adverse impact on service continuity), and getting periodic scans to verify the targeted security vulnerabilities have been patched.
\begin{quoting}
\textit{\emph{[Subject - Automated second rescan for reboots]} \\
``31/10/19 - [P1-BT1] raised this issue, he has configured the window to rescan for missing patches and conduct a second reboot if required. No issues during patching, seeking client feedback for verification."} - EMR, Task ID 28 \\
\end{quoting}

Post-deployment issues such as unresponsive server or unavailability of service may have developed due to failures during patch testing and deployment, or lack of proper post-deployment verification. To avoid such issues leading to long delays causing unexpected service disruptions, the practitioners engaged in a \textit{collaborative problem handling approach}. We observed long discussions at the patch meetings about the investigations of the root causes for post-deployment issues and finding workarounds to failed deployments. Most commonly used workarounds in the studied context included reverting to the previous working software version, restoring from the backup, and patch redeployment in out-of-band windows. \\

The team members \textit{documented the deployment status of every patch} in the patching tracker. It served useful as a vulnerability wiki to keep track of the progress of every patch and as a reference in cases of errors encountered during the execution. Further, employing this strategy during post-deployment patch verification ensured all patches are properly deployed and audited. As a result, the delays that occurred due to tool limitations, for example, missing patches during deployment were minimised. \\

\noindent\fbox{%
    \parbox{\textwidth}{%
        \textbf{Summary for RQ2:} We identified 17 strategies applied by the practitioners as corrective/reactive actions to manage the delays. Among these strategies, frequent communication, collaborative decision-making, task delegation, and regularly reviewing and updating the documentation were common strategies applied across all phases of the security patch management process. Further, we found a group of strategies executed at each phase of the process to mitigate the delays that occurred during each step.
    }%
}

\subsection{Findings from Member checking}

The participants provided positive feedback for the study findings and agreed with the accuracy of the results.
Several participants including the executive complimented our research, saying \textit{``Thanks for all the information. Very interesting analysis"}- P1-Org A, \textit{``From my point of view, I think your analysis is very good and useful because it's not just looking at how good or bad things are but also highlights where the improvement could be"}- Executive-Org A. Further, it was interesting to see their motivation to improve the delays following the presentation. \textit{``I hate to see this good work going wasted, a really good analysis where we got some really good insights. So, I'd like to see our teams taking these on board, then revisit this to see how the pie chart changes when we address the top reasons for delays"}- Executive-Org A.
The participants did not mention any new information or variations to the findings and explained the challenges of dealing with some of the delays, for example, \textit{``The patching timeline is fixed by vendors such as Microsoft who use a monthly schedule so reducing the time frame of getting appropriate approvals and executing is an absolute necessity. And getting new patches tested, confirmed, and approved in a week is always a challenge before they are rolled out confidently to production"}- P1-Org A, \textit{``Also, not all environments have testing environments to test these patches. So, in a fair few cases application testing actually occurs in deployment environments which can cause many failures leading to delays"}- P2-Org B, \textit{``Yes, to add to it, vendors introducing application patches at the same time as OS patches can also cause delays and conflicts with OS security patching"}- P3-Org B. They also asked us several questions including how they can reduce the delays further, to which we suggested some improvements which are discussed in Section \ref{section:discussion}.

\section{Discussion}
\label{section:discussion}

In this section, we reflect upon our findings and discuss them in light of the existing literature. Further, we present the implications for research and practice. \\

Mitigating delays in security patch management is instrumental in maintaining the security, availability, and confidentiality of information technology (IT) systems \cite{nist2005guide}, and failure to do so has resulted in several devastating outcomes \cite{Equifaxbug}. Yet, the topic remains less explored in the literature, particularly, understanding the practical reasons for delays in applying the patches. Based on a comprehensive analysis of the gathered artifacts over a period of four years, we have identified why, how and where do delays happen in security patch management in practice and a set of corrective strategies to mitigate them.

Our findings unveil that the primary cause of the most prevalent delays (24.9\%) is coordination delays in the patch management process (Figure \ref{fig:delaysfrequency}). The need for effective coordination in patch management appears from a combination of complex technical dependencies inherent in patches and the collaborative environment in the patch management process demanding orchestrated social dependencies between a diverse group of stakeholders \cite{dissanayake2021grounded}. An interesting finding is that internal coordination delays were more recurrent than the delays occurring from external stakeholders, i.e., customers and vendors. This was confirmed during the member checking as described by the executive, \textit{``I'm not surprised by some of these reasons, especially the coordination delays as the difficulties in collaborating and communicating between the teams are evident in almost every aspect of the process."} Although it appears that such delays are within the control of the practitioners, our findings emphasize the need for further support on coordination across patch management tasks and stakeholders. Similarly, with regards to the second most recurrent reason, the input requirements delays (16.8\%), a majority of the delays emerged from internal teams as opposed to external vendors, indicating that adopting strategies like frequent communication (S1) and task delegation at meetings (S3) can help reduce such delays.

The next prominent reason, the complexity of patches (13.7\%) can be attributed to the inherent complex patch dependencies and unknown risks of faulty patches. Although the intrinsic factors are essentially in control of the third-party vendors in charge of patch development, strategies like extensive patch testing to identify the pre-requisites and inherent patch dependencies (S9, S10) \cite{li2019keepers, dissanayake2021grounded, dissanayake2020software} and defining contingency plans to handle faulty patch errors (S8) can help reduce delays arising from the patch complexity. The socio-technical endeavour in patch management constituting the fourth-most recurring delay (13.4\%) can be explained by the inevitable need for human intervention in the process. While it suggests a need for a better understanding of the human interaction in patch management, our findings can guide practitioners in the planning of patch schedules allowing sufficient time for manual intervention (S11). Regarding the delays caused by capacity limitations in human resources, infrastructure, and time (9.6\%), properly planning the task assignments with minimum task dependencies (S3), patch clustering and load balancing (S12), and implementing patch deployment changes in an agile manner (S14) can be helpful.

While organisation-related delays (7.4\%) can be implied to be within the control of practitioners, service availability restrictions (6\%) may appear difficult to always be taken control of. This is because service continuity presents a pressing need for modern enterprises, particularly in the context of mission-critical domains for which service disruptions even for a few seconds can result in severe consequences. As described by a participant during member checking, \textit{``it is very challenging with the service availability restrictions, one example is the ambulance service, even though we have received approval, we always have to call the service just to confirm if it's okay to patch because we don't want to shut down the system in the middle of an operation"}. However, applying workarounds such as failover, clustering, and load balancing (S12) can help reduce such delays. Concerning the least occurring delays, limitations of existing tools (4.6\%), although reflect reasons not within practitioners' control, having well-established roles, patch management practices, and policies can help mitigate such delays. Finally, the delays emerging from failures in poor planning and execution (3.6\%) can be addressed with careful planning and execution (S9-11, S17). \\

Further reflecting upon our findings and in comparison to previous works, we discuss that some of the identified reasons are not necessarily specific to security patching in the domain of healthcare, but could be also observed in other domains. For example, the \textbf{complexity of patches (R1)}. The patch interdependencies are found to be intrinsic characteristics present in the patches released by the vendors \cite{dissanayake2021grounded}. Therefore, the resultant delays from managing these patch interdependencies could be challenging in other domains as well. Similarly, the need of human expertise is a standard notion accepted in security patch management because the process is inherently a socio-technical endeavour, where the human and technical interactions are tightly interconnected \cite{nicastro2003security, dissanayake2020software}. Therefore, we find the reasons relating to the \textbf{need of human intervention (R3)} as reasons that could also apply beyond the studied context. In addition, we recognise the reasons relating to the \textbf{service availability restrictions (R9)} could be present in other domains as well. This is because the reboots following patch deployment are necessary for the applied patch to take effect. Further, the service interruptions caused by the reboots have been widely acknowledged as a major obstacle in patch management across several domains \cite{potter2005reducing, dumitracs2009upgrades, li2019keepers, tiefenau2020security, araujo2020improving}.

In contrast, we believe that some of the reasons are likely to be specific to the domain of healthcare and the context of studied organisations. For example, the reasons attributing to \textbf{organisation delays (R7)} and \textbf{capacity limitations (R8)}. Concerning organisation-related reasons, patching delays resulting from delayed approval from higher management may not directly apply to a small organisation with one team or to an organisation with a flat hierarchy where no line approvals are needed. Although these reasons may not necessarily represent reasons beyond the studied cases or the context, an understanding of the context-specific reasons enables researchers and practitioners to better appreciate the practical utility of the solutions and formulate appropriate plans for mitigating potential delays. We believe there are possibilities for future research to explore the reasons for delays in a broader context using these categories.

\subsection{Related Works}

Our study confirms the findings of the previous studies that suggest some challenges in security patch management could contribute to delays in patching. For example, our finding of coordination delays contributing towards the majority of the delays complements the existing research \cite{nicastro2003security, nappa2015attack, li2019keepers, huang2012patch, potter2005reducing}, which reported that coordination is one of the most pressing challenges of timely patch management. Our analysis extends the knowledge by showing how coordination delays are introduced internally and externally. Additionally, our findings further highlight the importance and the need to focus more on the socio-technical aspects such as coordination in the time-critical security patch management process as mentioned by previous literature \cite{nicastro2003security, li2019keepers, tiefenau2020security, dissanayake2020software, dissanayake2021grounded}.

Our analysis reveals that the complexity of patches causes the third-most frequent reason for delays; it complements the previous work \cite{nappa2015attack, dunagan2004towards, tiefenau2020security, jenkins2020anyone, crameri2007staged, nicastro2003security, tucek2009efficient}, which has mentioned that the faulty patches and configuring patch dependencies are challenging as they often lead to breakdowns during patch deployment. Similarly, the need of human expertise in the process \cite{li2019keepers, tiefenau2020security, crameri2007staged, dissanayake2021grounded} and capacity limitations, specifically, lack of human resources \cite{post2003computer, tiefenau2020security, jenkins2020anyone} are mentioned as challenges in security patch management in the related studies. Further, several studies (e.g., \cite{potter2005reducing, dumitracs2009upgrades, li2019keepers, tiefenau2020security, araujo2020improving}) have highlighted service disruption as a central challenge of patch deployment. Our study extends the knowledge on these challenges by showing how, why and when they contribute towards patching delays.

Alternatively, the previous studies \cite{cavusoglu2008security, cavusoglu2006economics} have predominantly focused on achieving timely patch management through optimising the process by attaining a balance between an organisation's patch cycle and a vendor's patch release cycle. Dey et al. \cite{dey2015optimal} have developed a quantitative framework that analyses and compares various patching policies to find the optimum policy considering the costs of periodic patching against the security risks from patching delays. By investigating vendors' patch release and practitioners' patch deployment practices, Nappa et al. \cite{nappa2015attack} revealed that only 14\% of the patches are deployed on time and the patching mechanism (e.g., automated vs manual patch deployment) impacts the rate of patch deployment. Despite the widespread attention towards timely security patch management, an important observation is the absence of an investigation of the root causes (i.e., reasons) for delays in security patch management. To the best of our knowledge, the existing studies have not explored why the application of patches is delayed rather proposed approaches to achieve a timely patch management process. Hence, our study contributes to the existing body of knowledge by: \\
  - providing a taxonomy of reasons explaining why delays occur when applying security patches in practice, \\
  - reporting what reasons for delays are more prominent based on frequency analysis, \\
  - demonstrating where the delays occur in the patch management process, \\
  - presenting a set of strategies to mitigate the delays and describing when they can be applied in the patching process, \\
  - providing practical implications for practitioners to identify and mitigate delays, and, \\
  - establishing a foundation for future research towards effective management of patching delays.

\subsection{Implications for Practitioners}

Our findings reveal why delays happen when applying security patches in practice with a set of reasons contributing to the delays, explain how the reasons vary, and how delays are distributed in the patch management process. As a direct practical implication of the provided understanding, the security analysts and system administrators will be able to identify and assess the factors associated with the causes of delays and take precautions to mitigate potential delays. Further, the understanding of the frequency analysis of reasons and distribution of the delays highlights \textit{what} reasons need practitioners' immediate attention and \textit{where} is improvement needed to overcome the delays.
In addition, the knowledge will help practitioners in suitable decision-making, prioritisation, and planning of patch management tasks with minimal impediments.

In addition to explaining why, how, and where do delays occur in patching, our findings describe how the delays can be mitigated. We present a set of strategies employed by the studied practitioners to rectify the delays. Knowing what to do and when to do can be useful for practitioners and organisations in taking prompt actions to mitigate the impact of the delays. The findings may also help predict a delay in a given scenario whereby practitioners can better plan patch cycles and refine the patching process in light of their organisational contexts. For example, practitioners can consider the development of new tools like Environment Diagrams as a visualisation tool, to keep track of the system dependencies that would save time in patch testing and deployment. Other approaches like maintaining an online shared repository documenting organisation schedules and regularly documenting patch exemptions in detail would assist teams with accurate planning of patch schedules. Towards overcoming delays of coordination in patching, adopting computer-supported collaborative tools like ``Slack" can benefit accomplishing timely communication, collaboration, information sharing between all stakeholders \cite{lin2016developers}. In this way, our findings offer guidance to practitioners to make suitable decisions to alleviate the threat of cyberattacks from delayed patching. \\

\subsection{Implications for Researchers}

Given our findings are based on the cases studied limiting to the domain of healthcare, other researchers can extend and adapt the results through future studies within the same domain involving different stakeholders or different domains. Further, future research exploring the viability of the findings based on the contextual factors, for example, variations in context-specific reasons for delays like capacity limitations (R8) and organisation delays (R7), can result in useful insights from additional cases with extended scope. With regards to the reported strategies in mitigating the delays, future studies can investigate their suitability and effectiveness depending on the context and organisation policies (e.g., similar to future work of \cite{li2019keepers, tiefenau2020security, dissanayake2021grounded}). In addition, the findings can be used in potential interview guides and surveys to verify the findings in other contexts and discover variations within them. Another possibility is to investigate the impact of patching delays on organisations and other stakeholders such as end-users.

The data analysis has revealed that the limitations in current tools contribute to delays in applying the patches. We believe that future research can address this limitation by developing advanced tools leveraging deep learning techniques. For example, an automated tool that provides dependency visibility by highlighting mismatches of patch dependencies. Considering the most recurrent delays occur due to a lack of coordination in the patching process and delays in providing the required inputs, future research can invest efforts into developing computer-supported tools and platforms that can support better coordination across patching tasks and reducing delays in collaborative tasks. Solutions could be further investigated on how automation support can be extended to assist the decision-making in patch management, for example, developing intelligent interactive systems like software bots \cite{10.1145/3274451} for collaborating with practitioners that guide them to decisions by asking rational questions. This further opens up an avenue for future research to explore how \textit{``human-AI collaboration"} \cite{kamar2016directions}, an emerging research paradigm in the CSCW community \cite{wang2019human}, can be extended in a crucial topic like security patch management. Moreover, there is room for research to explore how to improve the performance and accuracy of the patch management tools. Tool development needs to consider the diversity of operating systems, software applications, platforms, and programming languages in vulnerability patch management to overcome the obstacles of lack of accuracy and scalability in the current tools (R2). In addition, the researchers, particularly the usable security researchers, can study how to improve the design of such smart tools. \\

\section{Threats to Validity}
\label{section:threatstovalidity}

In this section, we discuss the potential threats to validity and how they were mitigated following the guidelines proposed by \cite{runeson2009guidelines, yin1994case, maxwell1992understanding}. \\

\textbf{External validity - Generalizability: }
This study is based on the empirical data collected from a particular context, i.e., security patch management in the healthcare domain. Hence, our findings do not claim for generalization to all other contexts of patch management, instead, this study focuses on performing a comprehensive investigation of the delays in security patch management within the studied setting to provide detailed explanations through rigorous data analysis. However, we do not assert the results to be absolute or final, rather they can be recreated and adapted in other contexts \cite{strauss1998basics, glaser1978theoretical, glaser1967discovery}.

Regarding data representativeness, the study includes data collected limited to the patching tracker. However, collecting data from two organisations with multiple teams including participants with diverse roles and wide experience increased the data reliability and assisted in ensuring participant triangulation \cite{maxwell1992understanding}. Although we have analysed data spanning over four years from October 2016 to May 2021, it is possible that we may have missed some variations in the findings, specifically the context-specific reasons and strategies. We suggest that any future studies on this topic include more data sources such as additional cases or interviews to extend the scope of our findings and verify their explanatory power in other contexts.

\textbf{Reliability: } To mitigate the threat of subjectivity
and ensure reliability in the data analysis, all the data collection and analysis procedures, emerged codes, and identified relationships were discussed in detail among all authors and finalised through multiple revisions. In addition, related to interpretive validity \cite{maxwell1992understanding}, we conducted member checking to verify the accuracy of our findings, which was attended by three authors, further ensuring investigator triangulation.

\textbf{Construct Validity: } To address the threat of construct validity, we used multiple sources of evidence, i.e., analysis of artifacts and observations, and multiple stakeholders, maintained a chain of evidence (e.g., the coding procedure following the Grounded Theory method \cite{rodriguez2020theory}), and had the findings reviewed through member checking.

\textbf{Internal Validity: } To mitigate the threat of internal validity and misrepresentation, we ensured participant triangulation by covering the entire population involved in security patch management representing all teams in both organisations. In addition, the participants had a wide experience in security patch management, which helps mitigate the risk of participants' lack of expertise.

\textbf{Evaluative Validity: } The verifiability of the findings that emerged from a grounded theory data analysis can be attained from the adequacy and soundness of the research methodology through which the findings emerge \cite{strauss1998basics, glaser1967discovery}. To achieve this, we have detailed our data analysis process of the application of the Straussian GT procedures in Section \ref{section:researchmethod}. Further, to alleviate the reporting bias, we have included quotes from the patching tracker in Section \ref{section:findings}.

\section{Conclusion}
\label{section:conclusion}

In this study, we empirically explore and systemically explain why, how, and where do delays occur when applying security patches in practice, and how the delays can be mitigated. Through a longitudinal study representing eight different teams from two organisations in the domain of healthcare, and based on a Grounded Theory data analysis of 132 delayed tasks documented in the patching tracker over a period of four years from October 2016 to May 2021, we identify a set of reasons relating to technology, people and organisation that cause delays in security patch management. We also provide an evidence-based understanding of the frequency distribution of reasons for delays and distribution of delays over the patch management process. Such information highlights the reasons that need immediate attention and the areas of improvement in the patch management process. Additionally, we report a set of strategies that can be used for mitigating the delays in applying security patches by practitioners.

Compared to the related literature, our study provides a holistic understanding of the delays when applying security patches in practice; it is the first attempt to empirically investigate the topic in-depth. We assert that the reported understanding of why, how, and where do delays occur during patching and how they can be mitigated will help practitioners take suitable decisions to mitigate delays and guide them towards taking timely actions to avoid potentially disastrous consequences from delays in patching. Furthermore, our findings lay the foundation for future research to investigate and develop computer-supported tools that can address the practical concerns causing delays in patch management, drawing attention to a topic, critical and timely, yet less explored in the CSCW community.

\begin{acks}
The authors sincerely thank our industry collaborators, without whose support this research would not have been possible. Thank you for opening us a window into your organisation and allowing us to verify our findings. We also thank the anonymous reviewers for their insightful feedback.
\end{acks}

\bibliographystyle{ACM-Reference-Format}

redpajama_set_name: RedPajamaArXiv


For information about clinical trials for kidney cancer in your country, please contact your national kidney cancer support organisation.
Organisations that are registered as Affiliate Organisations of the International Kidney Cancer Coalition are listed here.
Other patient support organisations may be available in your country. If you are unable to find an organisation in your country or region, please contact our office below for assistance.


I just couldn't help myself. See, here's what happened. I'm going to make a short story long right now… hold on tight.
All during August, I was following my friend Megan Lenhardt (more like acquaintance, but let's just say friend) as she committed to doing a vlog a day and calling it Vlaugust. There were some vlogs that I just skimmed (can you say that when it's a video? what's the correct term for that?), and some that I watched in its entirety.
I learned a few things about the internet by watching Megan. The first is follow-through. She did it, she posted 31 videos. Another thing was that it's okay to ask for help – there were a couple vlogs where her husband jumped in and took the lead. Another thing I learned was that content doesn't matter as much as actually getting it out there. I hope this doesn't offend her, but there were some vlogs that just didn't capture my interest.
That's okay. Not everything she posts will be perfect for her viewers. But she did it, she put it out there. Maybe she knew that some of the videos weren't going to have many views. Maybe it took her the whole month of posting her vlogs to build up the courage to post the last video.
She ended the month with the most amazing video of all – her first music video on YouTube. I am not going to lie, I've been listening to it on repeat all day, and the whole time I've been writing this post. It's one of those songs that just gets into me, stirs something, and makes me want to create and grow and think and share. I think it's a sign of artistic genius when something inspires someone to create their own kind of art in response. In this case, the genius obviously goes to Sara Bareilles who wrote the song, but also to Megan who sings it beautifully and truthfully.
So, back to me. Short story long and all that.
After watching Megan's vlogs and thinking about their impact on me, and listening to "Manhattan" over and over and over again, I was inspired to redesign my blog and get back into it. The song is beautiful and melancholy. So is Autumn. Beauty and melancholy always make me want to create, which is probably why Autumn is my favorite and so inspiring to me.
I also thought about what this blog is for, and why I do it. I put most of those thoughts in my newly written About Me section, so please go read that if you'd like to.
I had a couple hours to myself today while my car was having some work done, and I actually planned out a whole month of blog posts that I'm really excited about. So, here I am, inspired once again. Ready to create and share!
Another random thought to add to the end of this already jumbled, unorganized blog post: Today as I was walking to my car, I felt the crisp chill of Autumn sunlight on my face and it was magic. My favorite time is coming and I've never been more ready. I know that seasons are generic nouns and don't need to be capitalized, but let me just say that Autumn deserves to have a capital A.
My old preschool teacher posted a video of this on Facebook, so I thought we should try it. I mean, hey, she never steered me wrong in the past! (PS I love that my old preschool teacher is my friend on Facebook).
I saw the video while checking Facebook while the girls ate breakfast. I pulled out the 'ingredients' then and there. Why the heck not!?
Pour a good amount of milk in your plate – when I first tried it, I don't think I had enough milk, and it didn't work as well. You want enough that the food coloring and dish soap can sort of float on the top.
Add small drops of dish soap, and watch the colors spread and dance. It's really fascinating!
We used this as an opportunity to talk about primary, secondary, and tertiary colors as they blended and mixed. Just kidding, that's crazy.
We actually just used this as an opportunity to be amazed and have fun. Cause that's what childhood is.
So cool. Thanks for the continuing preschool education, Mrs. Jones!
Do I need to add that you shouldn't drink this milk? No, I don't think I need to add that. Right?


Buffalo wings tend to steal the spotlight on Super Bowl Sunday, and for good reason. The vinegary, buttery, sloppy red sauce has you sucking every last pinky finger.
We're not saying these non-Buffalo wings are better than the traditional Buffalos, we're just giving you more options to eat more wings. Some of them are grilled, others are oven-baked, and of course you can fry (or double-fry if you want them ridiculously crispy).