Commit c1aeba3c32717ca75a3d8656877cc4c268d81285
1 parent
f537aec0
Exists in
master
and in
3 other branches
[ieeeSW] Improving SPB technical presentation and minor fixes
Showing
1 changed file
with
109 additions
and
116 deletions
Show diff stats
ieeeSW/releaseEng3/IEEE_ThemeIssue_ReleaseEng_CD.md
| @@ -72,21 +72,21 @@ benefits [2]. | @@ -72,21 +72,21 @@ benefits [2]. | ||
| 72 | 72 | ||
| 73 | SPB is a governmental program created to foster sharing and collaboration on | 73 | SPB is a governmental program created to foster sharing and collaboration on |
| 74 | Open Source Software (OSS) development for the Brazilian public administration. | 74 | Open Source Software (OSS) development for the Brazilian public administration. |
| 75 | -In their own projects, the Ministry managed both software requirements and server | ||
| 76 | -infrastructure. However, its hierarchical and traditional processes made them | ||
| 77 | -unfamiliar with new software development techniques, such as CD. Any of our | ||
| 78 | -requests had to pass through layers of bureaucracy before being answered; | 75 | +In their own projects, the Ministry managed both software requirements and |
| 76 | +server infrastructure. However, its hierarchical and traditional processes made | ||
| 77 | +them unfamiliar with new software development techniques, such as CD. Any of | ||
| 78 | +our requests had to pass through layers of bureaucracy before being answered; | ||
| 79 | accessing their infrastructure to deploy updated software was not different. | 79 | accessing their infrastructure to deploy updated software was not different. |
| 80 | The difficulties were aggravated because the new SPB portal is an unprecedented | 80 | The difficulties were aggravated because the new SPB portal is an unprecedented |
| 81 | platform in the Brazilian government, with a complicated deployment process. | 81 | platform in the Brazilian government, with a complicated deployment process. |
| 82 | 82 | ||
| 83 | -The project suffered significant interference from the | ||
| 84 | -board of directors throughout time because the portal represents an interface between | ||
| 85 | -government and society. In light of political interests, directors continually | ||
| 86 | -imposed changes to the platform while ignoring our technical advice. In 2015, | ||
| 87 | -the board of directors was changed and, with it, the vision of the project. New | ||
| 88 | -directors had different political agendas which affected the project's | ||
| 89 | -requirements previously approved. | 83 | +The project suffered significant interference from the board of directors |
| 84 | +throughout time because the portal represents an interface between government | ||
| 85 | +and society. In light of political interests, directors continually imposed | ||
| 86 | +changes to the platform while ignoring our technical advice. In 2015, the board | ||
| 87 | +of directors was changed and, with it, the vision of the project. New directors | ||
| 88 | +had different political agendas which affected the project's requirements | ||
| 89 | +previously approved. | ||
| 90 | 90 | ||
| 91 | <!--- | 91 | <!--- |
| 92 | mudar em todas as ocorrências de agents por staff, mas checar com o Fabio. | 92 | mudar em todas as ocorrências de agents por staff, mas checar com o Fabio. |
| @@ -96,22 +96,24 @@ In this context, we overcame two distinct challenges: (1) deconstructing | @@ -96,22 +96,24 @@ In this context, we overcame two distinct challenges: (1) deconstructing | ||
| 96 | the widespread belief among government staff that any project in partnership | 96 | the widespread belief among government staff that any project in partnership |
| 97 | with a University is doomed to fail, and (2) dealing with bureaucracies | 97 | with a University is doomed to fail, and (2) dealing with bureaucracies |
| 98 | involved in the deployment process. | 98 | involved in the deployment process. |
| 99 | + | ||
| 99 | <!-- Melissa: Acho que no segundo, seria bom falar: lidar com a aritmia que as burocracias do governo causavam ao nosso processo de deploy? --> | 100 | <!-- Melissa: Acho que no segundo, seria bom falar: lidar com a aritmia que as burocracias do governo causavam ao nosso processo de deploy? --> |
| 100 | 101 | ||
| 101 | Firstly, our team was not from a typical company, consisting mainly of | 102 | Firstly, our team was not from a typical company, consisting mainly of |
| 102 | -undergraduate students supported senior developers and designers, all coordinated by two professors. Accordingly, time and | ||
| 103 | -resources allocation, accountability, and team continuity might be construed | ||
| 104 | -as "unprofessional." On the government side, the SPB portal evolution was the | ||
| 105 | -first software development collaboration between universities and the Ministry | ||
| 106 | -staff involved, raising disbelief. | ||
| 107 | - | ||
| 108 | -Secondly, our team approached software deployment differently from the Ministry. | ||
| 109 | -We believed frequent delivery is better for the project’s success. In contrast, | ||
| 110 | -the Ministry is used to the idea of a single deployment at the end of the | ||
| 111 | -project, and neither their bureaucratic structure nor their technical expertise | ||
| 112 | -were conducive with this style of work. That ended up hampering the benefits of | ||
| 113 | -the tool and preventing us from showing off the fruits of the project to those | ||
| 114 | -responsible for evaluating it. | 103 | +undergraduate students supported senior developers and designers, all |
| 104 | +coordinated by two professors. Accordingly, time and resources allocation, | ||
| 105 | +accountability, and team continuity might be construed as "unprofessional". On | ||
| 106 | +the government side, the SPB portal evolution was the first software | ||
| 107 | +development collaboration between universities and the Ministry staff involved, | ||
| 108 | +raising disbelief. | ||
| 109 | + | ||
| 110 | +Secondly, our team approached software deployment differently from the | ||
| 111 | +Ministry. We believed frequent delivery is better for the project’s success. | ||
| 112 | +In contrast, the Ministry is used to the idea of a single deployment at the end | ||
| 113 | +of the project, and neither their bureaucratic structure nor their technical | ||
| 114 | +expertise were conducive with this style of work. That ended up hampering the | ||
| 115 | +benefits of the tool and preventing us from showing off the fruits of the | ||
| 116 | +project to those responsible for evaluating it. | ||
| 115 | 117 | ||
| 116 | <!-- Melissa: tentar dividir esse último parágrafo em 2? Tá cansativo ler ele todo - não consigo respirar :P --> | 118 | <!-- Melissa: tentar dividir esse último parágrafo em 2? Tá cansativo ler ele todo - não consigo respirar :P --> |
| 117 | 119 | ||
| @@ -123,10 +125,10 @@ deploy one version of the project onto our infrastructure and showed it to the | @@ -123,10 +125,10 @@ deploy one version of the project onto our infrastructure and showed it to the | ||
| 123 | government evaluators. This strategy proved them we could efficiently provide | 125 | government evaluators. This strategy proved them we could efficiently provide |
| 124 | new features, fulfill their expectations regarding the delivery of the | 126 | new features, fulfill their expectations regarding the delivery of the |
| 125 | requirements, and incited them to demand the latest version to be deployed in | 127 | requirements, and incited them to demand the latest version to be deployed in |
| 126 | -the Ministry infrastructure. This efficiency generated more pressure on the IT department | ||
| 127 | -responsible for the deployment routines. With each CD cycle, we gradually built | ||
| 128 | -a new relationship among all parties and, by the end of the project, we became | ||
| 129 | -active participants in the deploy operations. | 128 | +the Ministry infrastructure. This efficiency generated more pressure on the IT |
| 129 | +department responsible for the deployment routines. With each CD cycle, we | ||
| 130 | +gradually built a new relationship among all parties and, by the end of the | ||
| 131 | +project, we became active participants in the deploy operations. | ||
| 130 | 132 | ||
| 131 | <!-- | 133 | <!-- |
| 132 | In | 134 | In |
| @@ -137,14 +139,13 @@ team shrinked to 20 students, one designer, and two developers. | @@ -137,14 +139,13 @@ team shrinked to 20 students, one designer, and two developers. | ||
| 137 | --> | 139 | --> |
| 138 | ## Our Continuous Delivery Pipeline | 140 | ## Our Continuous Delivery Pipeline |
| 139 | 141 | ||
| 140 | -SPB portal is a CDE with additional social features. We built | ||
| 141 | -system-of-systems, adapting and integrating five existing OSS projects: Colab | 142 | +SPB portal is a CDE with additional social features. We built system-of-systems |
| 143 | +adapting and integrating five existing OSS projects: Colab | ||
| 142 | (www.github.com/colab), Noosfero (www.noosfero.org), Gitlab (www.gitlab.com), | 144 | (www.github.com/colab), Noosfero (www.noosfero.org), Gitlab (www.gitlab.com), |
| 143 | -Mezuro (www.mezuro.org), and Mailman (www.list.org). All integrated system | ||
| 144 | -represents a total of more than 106.253 commits and 1.347.421 lines of code. | ||
| 145 | -That solution orchestrated these multiple components and allowed us to smoothly | ||
| 146 | -provide a unified interface for final users, including single sign-on and | ||
| 147 | -global searches [1]. | 145 | +Mezuro (www.mezuro.org), and Mailman (www.list.org). Colab orchestrates these |
| 146 | +multiple components and allowed us to smoothly provide a unified interface for | ||
| 147 | +final users, including single sign-on and global searches [1]. All integrated | ||
| 148 | +system represents a total of 106.253 commits and 1.347.421 lines of code. | ||
| 148 | 149 | ||
| 149 |  | 150 |  |
| 150 | 151 | ||
| @@ -154,25 +155,24 @@ practices, as presented in Figure 1. | @@ -154,25 +155,24 @@ practices, as presented in Figure 1. | ||
| 154 | 155 | ||
| 155 | ### Automated Tests | 156 | ### Automated Tests |
| 156 | 157 | ||
| 157 | -Each integrated system had to be tested with its own test suite. This checking was not | ||
| 158 | -enough, however: we even had to test the platform as a whole. Given that the | ||
| 159 | -plugins also have their own test suites and these suites assume a double role | ||
| 160 | -as both plugin tests and as integration tests. | ||
| 161 | -If any test suite failed, by either a test error or coverage | ||
| 162 | -reduction below a certain threshold, the process stopped. Only when all tests | ||
| 163 | -passed, the pipeline proceeded to the step of release preparation. | 158 | +Each integrated system had to be tested with its own test suite. This checking |
| 159 | +was not enough, however: we even had to test the platform as a whole. Given | ||
| 160 | +that the plugins also have their own test suites and these suites assume a | ||
| 161 | +double role as both plugin tests and as integration tests. If any test suite | ||
| 162 | +failed, by either a test error or coverage reduction below a certain threshold, | ||
| 163 | +the process stopped. Only when all tests passed, the pipeline proceeded to the | ||
| 164 | +step of release preparation. | ||
| 164 | 165 | ||
| 165 | ### Preparing a New Release | 166 | ### Preparing a New Release |
| 166 | 167 | ||
| 167 | Each software component was hosted in a separate Git repository. A new release | 168 | Each software component was hosted in a separate Git repository. A new release |
| 168 | -of a component was tagged referencing a specific new feature or bug | ||
| 169 | -fix. SPB had its own Git repository | ||
| 170 | -(www.softwarepublico.gov.br/gitlab/softwarepublico). An SPB portal release was | ||
| 171 | -an aggregate of versions of all of its components. When a new component release | ||
| 172 | -passed all of the SPB integration tests, we manually created a corresponding | ||
| 173 | -new tag in its repository. Therefore, a new tag on any software component | ||
| 174 | -yielded a new SPB portal release. At the end of this process, we started | ||
| 175 | -packaging. | 169 | +of a component was tagged referencing a specific new feature or bug fix. SPB |
| 170 | +had its own Git repository (www.softwarepublico.gov.br/gitlab/softwarepublico). | ||
| 171 | +An SPB portal release was an aggregate of versions of all of its components. | ||
| 172 | +When a new component release passed all of the SPB integration tests, we | ||
| 173 | +manually created a corresponding new tag in its repository. Therefore, a new | ||
| 174 | +tag on any software component yielded a new SPB portal release. At the end of | ||
| 175 | +this process, we started packaging. | ||
| 176 | 176 | ||
| 177 | ### Packaging | 177 | ### Packaging |
| 178 | 178 | ||
| @@ -202,19 +202,18 @@ the next step in the pipeline. | @@ -202,19 +202,18 @@ the next step in the pipeline. | ||
| 202 | 202 | ||
| 203 | ### Acceptance Tests | 203 | ### Acceptance Tests |
| 204 | 204 | ||
| 205 | -After a new SPB portal deployment in the VE, the Ministry was | ||
| 206 | -responsible for checking the required features and bug fixes. If they | ||
| 207 | -identified a problem, they would notify the developers via | ||
| 208 | -comments on the SPB portal's issue tracker, prompting the team to fix | ||
| 209 | -it and restart the pipeline. Otherwise, we could move forward. | 205 | +After a new SPB portal deployment in the VE, the Ministry was responsible for |
| 206 | +checking the required features and bug fixes. If they identified a problem, | ||
| 207 | +they would notify the developers via comments on the SPB portal's issue | ||
| 208 | +tracker, prompting the team to fix it and restart the pipeline. Otherwise, we | ||
| 209 | +could move forward. | ||
| 210 | 210 | ||
| 211 | ### Production Environment Deployment | 211 | ### Production Environment Deployment |
| 212 | 212 | ||
| 213 | -After the VE check, we could finally begin the | ||
| 214 | -deployment in the PE, with the same configuration management tool, | ||
| 215 | -scripts, and package versions as in the VE. After the deploy was completed, | ||
| 216 | -both VE and PE were identical. At that point, new features and bug | ||
| 217 | -fixes were finally available to end users. | 213 | +After the VE check, we could finally begin the deployment in the PE, with the |
| 214 | +same configuration management tool, scripts, and package versions as in the VE. | ||
| 215 | +After the deploy was completed, both VE and PE were identical. At that point, | ||
| 216 | +new features and bug fixes were finally available to end users. | ||
| 218 | 217 | ||
| 219 | ## Benefits | 218 | ## Benefits |
| 220 | 219 | ||
| @@ -227,8 +226,9 @@ project and associates them with the creation of a DevOps team. | @@ -227,8 +226,9 @@ project and associates them with the creation of a DevOps team. | ||
| 227 |  | 226 |  |
| 228 | 227 | ||
| 229 | In the time of 30 months, we deployed a total of 84 versions. Over 64% of these | 228 | In the time of 30 months, we deployed a total of 84 versions. Over 64% of these |
| 230 | -activities happened in the second half of 2015, with the DevOps team creation. Even with the reduction of the team as a whole, in the last months of | ||
| 231 | -the project, this pace of deployment was maintained until we finished all our | 229 | +activities happened in the second half of 2015, with the DevOps team creation. |
| 230 | +Even with the reduction of the team as a whole, in the last months of the | ||
| 231 | +project, this pace of deployment was maintained until we finished all our | ||
| 232 | activities. | 232 | activities. |
| 233 | 233 | ||
| 234 | Besides these results, working with the government, we noticed the following | 234 | Besides these results, working with the government, we noticed the following |
| @@ -236,33 +236,33 @@ additional benefits. | @@ -236,33 +236,33 @@ additional benefits. | ||
| 236 | 236 | ||
| 237 | ### Strengthening Trust in the Relationship with the Government | 237 | ### Strengthening Trust in the Relationship with the Government |
| 238 | 238 | ||
| 239 | -CD helped strengthen trust in the relationship between developers and | ||
| 240 | -the Ministry staff. Before using CD, they could validate features | ||
| 241 | -developed only at the end of the release cycle, usually every four months. | ||
| 242 | -With the implementation of CD, intermediate and candidate versions became | ||
| 243 | -available, allowing them to perform small validations over time. | ||
| 244 | -Constant monitoring of the development work brought greater security to the | ||
| 245 | -Ministry leaders and improved the interactions with our team. | 239 | +CD helped strengthen trust in the relationship between developers and the |
| 240 | +Ministry staff. Before using CD, they could validate features developed only at | ||
| 241 | +the end of the release cycle, usually every four months. With the | ||
| 242 | +implementation of CD, intermediate and candidate versions became available, | ||
| 243 | +allowing them to perform small validations over time. Constant monitoring of | ||
| 244 | +the development work brought greater security to the Ministry leaders and | ||
| 245 | +improved the interactions with our team. | ||
| 246 | 246 | ||
| 247 | ### Responsiveness to Change | 247 | ### Responsiveness to Change |
| 248 | 248 | ||
| 249 | Responsiveness was one of the direct benefits of adopting the CD pipeline. | 249 | Responsiveness was one of the direct benefits of adopting the CD pipeline. |
| 250 | Political interests may change requirements and priorities at any time. The | 250 | Political interests may change requirements and priorities at any time. The |
| 251 | ability to react quickly to changes requested by the Ministry was vital to the | 251 | ability to react quickly to changes requested by the Ministry was vital to the |
| 252 | -project’s survival for 30 months. We noticed that if we took too | ||
| 253 | -long to meet their demands, they would threaten to reduce financial support and | ||
| 254 | -even cancel the project. | 252 | +project’s survival for 30 months. We noticed that if we took too long to meet |
| 253 | +their demands, they would threaten to reduce financial support and even cancel | ||
| 254 | +the project. | ||
| 255 | 255 | ||
| 256 | CD helped us keep the PE up-to-date, even with partial versions of a feature. | 256 | CD helped us keep the PE up-to-date, even with partial versions of a feature. |
| 257 | -Therefore, we always had something to show on meetings, easing their | ||
| 258 | -concerns about the final delivery of the platform. For our team, CD made | ||
| 259 | -developers more confident that the project would last a little longer. | 257 | +Therefore, we always had something to show on meetings, easing their concerns |
| 258 | +about the final delivery of the platform. For our team, CD made developers more | ||
| 259 | +confident that the project would last a little longer. | ||
| 260 | 260 | ||
| 261 | ### Shared Responsibility | 261 | ### Shared Responsibility |
| 262 | 262 | ||
| 263 | According to the conventional Ministry process, the development team could not | 263 | According to the conventional Ministry process, the development team could not |
| 264 | -track what happened to the code after its delivery, since their staff was | ||
| 265 | -the only ones responsible for deployment. The implementation of CD made our | 264 | +track what happened to the code after its delivery, since their staff was the |
| 265 | +only ones responsible for deployment. The implementation of CD made our | ||
| 266 | development team feel equally responsible for what was getting into production | 266 | development team feel equally responsible for what was getting into production |
| 267 | and take ownership of the project. | 267 | and take ownership of the project. |
| 268 | 268 | ||
| @@ -290,18 +290,11 @@ Fabio sugeriu Lessons Learned, mas vamos mostrar exemplos da revista para ele ol | @@ -290,18 +290,11 @@ Fabio sugeriu Lessons Learned, mas vamos mostrar exemplos da revista para ele ol | ||
| 290 | ## Lessons Learned | 290 | ## Lessons Learned |
| 291 | 291 | ||
| 292 | Due to the successful building of the CD pipeline, we improved the Ministry | 292 | Due to the successful building of the CD pipeline, we improved the Ministry |
| 293 | -deployment process and kept the project alive. We now look at the lessons learned. | 293 | +deployment process and kept the project alive. We now look at the lessons |
| 294 | +learned. | ||
| 294 | 295 | ||
| 295 | ### Build CD From Scratch | 296 | ### Build CD From Scratch |
| 296 | 297 | ||
| 297 | -<!--- | ||
| 298 | -We started with a team composed of 24 undergraduate students, one designer, and | ||
| 299 | -two senior developers. In 2015, our team grew to 36 students, two designers, | ||
| 300 | -eight senior developers. For 2016, due to budget constraints, our team shrinked | ||
| 301 | -to 20 students, one designer, and two developers; however, in the last 3 | ||
| 302 | -months, only 6 students closed the project. | ||
| 303 | ---> | ||
| 304 | - | ||
| 305 | Taking on the responsibility for implementing CD impacted the whole team. Most | 298 | Taking on the responsibility for implementing CD impacted the whole team. Most |
| 306 | of our team members did not have CD know-how, and we had few working hours | 299 | of our team members did not have CD know-how, and we had few working hours |
| 307 | available to build the pipeline. The construction and maintenance of the CD | 300 | available to build the pipeline. The construction and maintenance of the CD |
| @@ -318,45 +311,45 @@ deployment process. The solution enabled us to automate the deployment, even | @@ -318,45 +311,45 @@ deployment process. The solution enabled us to automate the deployment, even | ||
| 318 | though the process was, initially, still rudimentary. | 311 | though the process was, initially, still rudimentary. |
| 319 | 312 | ||
| 320 | 2. _Interchange team members and encourage teammates to migrate to the DevOps | 313 | 2. _Interchange team members and encourage teammates to migrate to the DevOps |
| 321 | -team._ The benefits were twofold: mitigating the difficulty | ||
| 322 | -in sharing knowledge between DevOps developers and feature developers, and | ||
| 323 | -evolving the process on-the-fly. | 314 | +team._ The benefits were twofold: mitigating the difficulty in sharing |
| 315 | +knowledge between DevOps developers and feature developers, and evolving the | ||
| 316 | +process on-the-fly. | ||
| 324 | 317 | ||
| 325 | ### Overcoming Mistrust | 318 | ### Overcoming Mistrust |
| 326 | 319 | ||
| 327 | <!-- Precisa 'dessuavizar' o porque das mudanças de requisitos - a motivação para ela não era tão natural como as que ocorrem em métodos ágeis --> | 320 | <!-- Precisa 'dessuavizar' o porque das mudanças de requisitos - a motivação para ela não era tão natural como as que ocorrem em métodos ágeis --> |
| 328 | Adopting an unfamiliar approach requires trust. In the Ministry, traditionally, | 321 | Adopting an unfamiliar approach requires trust. In the Ministry, traditionally, |
| 329 | a software was the product delivered at the end of a development contract; they | 322 | a software was the product delivered at the end of a development contract; they |
| 330 | -expected and were prepared to validate and deploy a single deliverable. This process | ||
| 331 | -was not adequate for the SPB: because the SPB portal is a system-of-systems, | ||
| 332 | -the steady growth of its complexity made large deliveries unsustainable. | ||
| 333 | -Therefore, the CD approach was necessary, but how | ||
| 334 | -to build trust and gain autonomy to implement a process that was not yet part | ||
| 335 | -of the dynamics of the Ministry? | 323 | +expected and were prepared to validate and deploy a single deliverable. This |
| 324 | +process was not adequate for the SPB: because the SPB portal is a | ||
| 325 | +system-of-systems, the steady growth of its complexity made large deliveries | ||
| 326 | +unsustainable. Therefore, the CD approach was necessary, but how to build | ||
| 327 | +trust and gain autonomy to implement a process that was not yet part of the | ||
| 328 | +dynamics of the Ministry? | ||
| 336 | 329 | ||
| 337 | 1. _Demonstrate actual results, do not simply tell._ Initially, we did not have | 330 | 1. _Demonstrate actual results, do not simply tell._ Initially, we did not have |
| 338 | access to the Ministry infrastructure, so we created our own validation | 331 | access to the Ministry infrastructure, so we created our own validation |
| 339 | -environment. Thus, we were able to follow the CD pipeline until | ||
| 340 | -production deployment, when we faced two problems. First, our pace of | ||
| 341 | -intermediate deliveries to the government was faster than the deployment to | ||
| 342 | -production by the Ministry staff. Second, specific issues of the Ministry | ||
| 343 | -infrastructure made some validated features not work as expected in the PE. | ||
| 344 | -That situation gave us arguments to negotiate access to the PE. | ||
| 345 | - | ||
| 346 | -2. _Make project management transparent and collaborative for government staff._ | ||
| 347 | -Allowing the Ministry staff to track our development process showed them | ||
| 348 | -we were fulfilling our commitments. They started to interact more actively in | ||
| 349 | -the generation of versions and became involved in the CD. After understanding it, | ||
| 350 | -the Ministry staff helped us negotiate access to a VE with the Ministry leaders, | ||
| 351 | -creating as an isolated replica of the PE. | ||
| 352 | - | ||
| 353 | -3. _Gain the confidence of government staff._ With the PE replica, we | ||
| 354 | -were able to run the entire pipeline and win the trust of the Ministry staff | ||
| 355 | -involved in the process. They saw the mobilization and responsiveness of our | ||
| 356 | -team to generate each new version package. They also recognized the quality of our | ||
| 357 | -work and deployment process. In the end, the Ministry staff realized | ||
| 358 | -that it would be beneficial for the project if they granted us access to the | ||
| 359 | -infrastructure, both VE, and PE. | 332 | +environment. Thus, we were able to follow the CD pipeline until production |
| 333 | +deployment, when we faced two problems. First, our pace of intermediate | ||
| 334 | +deliveries to the government was faster than the deployment to production by | ||
| 335 | +the Ministry staff. Second, specific issues of the Ministry infrastructure made | ||
| 336 | +some validated features not work as expected in the PE. That situation gave us | ||
| 337 | +arguments to negotiate access to the PE. | ||
| 338 | + | ||
| 339 | +2. _Make project management transparent and collaborative for government | ||
| 340 | +staff._ Allowing the Ministry staff to track our development process showed | ||
| 341 | +them we were fulfilling our commitments. They started to interact more actively | ||
| 342 | +in the generation of versions and became involved in the CD. After | ||
| 343 | +understanding it, the Ministry staff helped us negotiate access to a VE with | ||
| 344 | +the Ministry leaders, creating as an isolated replica of the PE. | ||
| 345 | + | ||
| 346 | +3. _Gain the confidence of government staff._ With the PE replica, we were able | ||
| 347 | +to run the entire pipeline and win the trust of the Ministry staff involved in | ||
| 348 | +the process. They saw the mobilization and responsiveness of our team to | ||
| 349 | +generate each new version package. They also recognized the quality of our work | ||
| 350 | +and deployment process. In the end, the Ministry staff realized that it would | ||
| 351 | +be beneficial for the project if they granted us access to the infrastructure, | ||
| 352 | +both VE, and PE. | ||
| 360 | 353 | ||
| 361 | ## References | 354 | ## References |
| 362 | 355 |