## 5 Research Results
### Survey for Defining Clarity of Objectives  
A set of interviews and surveys was created and delivered to 20 software development companies that already hired alumni from University. The goal was to analyze whether there was an increasing need for software based on MACH architecture by using a Z-test for proportion to check if there was any significant difference for this architectural approach. Additionally, a set of qualitative questions to further clarify the challenges of implementing MACH architecture was delivered. After that, a survey on the adoption of architectural patterns, the success of projects based on selected patterns, the time allocated to architectural design, and the tools and technologies used for MACH was conducted. The results of the survey are given in Table 2. \begin{table}
\begin{tabular}{p{113.8 pt} p{113.8 pt} p{113.8 pt}} \hline \hline
**Sprint 3** & **Security and Cloud-Native Development** & **Security and Cloud-Native Development** & **Security and Cloud-Native Development** \\ \hline
**Objective: deploy a cloud-native microservice using Kubernetes by containerizing the application** & **Tasks for first Sprint** & **Security and Cloud-Native Development** & **Security and Cloud-Native Development** \\ \hline
**Tasks** & **Deliverable** & **Security and Cloud-Native Development** & **Security and Cloud-Native Development** \\ \hline
**Create a Dockerfile to containerize the application, ensuring that all necessary dependencies and configurations are included.** & **Security and Cloud-Native Development** & **Security and Cloud-Native Development** \\ \hline
**Write a Kubernetes deployment file that specifies the desired state of the application, including replica counts, image details, and resource requests. Deploy the application to a Kubernetes cluster.** & **Security and Cloud-Native Development** & **Security and Cloud-Native Development** \\ \hline
**Develop a CI/CD pipeline using GitHub actions that automates the build, test, and deployment process for the application to the Kubernetes cluster.** & **Security and Cloud-Native Development** & **Security and Cloud-Native Development** \\ \hline
**Configure the Kubernetes deployment to support horizontal pod autoscaling (HPA) based on CPU/memory utilization and implement rolling updates to ensure zero downtime during deployments.** & **Security and Cloud-Native Development** & **Security and Cloud-Native Development** \\ \hline \hline \end{tabular}
\end{table} 
Table 1: _Cont._ \begin{table}
\begin{tabular}{p{113.8 pt} p{113.8 pt} p{113.8 pt}} \hline \hline
**Architectural Pattern** & **Number of Projects** & **Percentage (\%)** \\ \hline MACH & 90 & 36\% \\ \hline Microservices & 60 & 24\% \\ \hline Monolithic & 30 & 12\% \\ \hline Layered architecture & 40 & 16\% \\ \hline Event-driven & 20 & 8\% \\ \hline Service-oriented architecture & 10 & 4\% \\ \hline Total & 250 & 100\% \\ \hline \hline \end{tabular}
\end{table} 
Table 2: The survey results. To demonstrate a significant rise in MACH architecture adoption, a Z-test for proportions was performed to show this statistically significant difference. The null hypothesis was defined as the adoption of MACH architecture being equal to or less than the proportion of projects adopting the next most popular architecture, which in the research was microservices architecture. The alternative hypothesis was that the proportion of projects adopting MACH is greater than the proportion of projects following the next most popular architecture. The proportion of adoption for MACH was \(p1=0.36\), while the proportion of adoption for the next most popular architecture was \(p2=0.24\). The pooled proportion for these values was \(p=0.3\), and the standard error for the difference between the two proportions was SE = 0.041. Next, a Z-score of 2.93 was calculated, and the \(p\)-value for this score was 0.0017.