Commit 1928b7fae0836dfc91a0478246b73beb23157c64
1 parent
7344b937
Exists in
master
and in
3 other branches
09-lessons.tex: review
Showing
1 changed file
with
120 additions
and
86 deletions
Show diff stats
opensym2017/content/09-lessons.tex
| 1 | -\section{Lessons Learned and Conclusion} | |
| 1 | +\section{Lessons Learned} | |
| 2 | 2 | \label{sec:lessons} |
| 3 | 3 | |
| 4 | -%%% Acho que podemos organizar em algo assim, explicitando a lição%%% | |
| 5 | -%(Lesson 1 -- Students in real-world project interacting with real customers) | |
| 6 | - | |
| 7 | -The multidisciplinary of our development team - mainly composed of software | |
| 8 | -engineers undergraduate students, senior developers, and designers - makes that | |
| 9 | -naturally fit the project requirements and consequently achieve a high quality. | |
| 10 | -To collaborate to that, there was a stakeholder team of technicians and | |
| 11 | -managers from the Brazilian Government, as well as the management team from the | |
| 12 | -UnB. In particular at the being of the project, the different perceptions of | |
| 13 | -the Brazilian Government stakeholders generated a high complex communication | |
| 14 | -and management environment. Once we were practicing an empirical development | |
| 15 | -approach based on FOSS and agile methods, our development team also interacted | |
| 16 | -directly with the stakeholders to mitigate several moments of management | |
| 17 | -overhead, supporting the UnB professors those were responsible for the project | |
| 18 | -management. The interaction with professionals, that have different expertises, | |
| 19 | -and the participation in all levels of the software development process | |
| 20 | -contributed with a great learning opportunity for the students, which majority | |
| 21 | -have their first professional experience. | |
| 22 | - | |
| 23 | - | |
| 24 | -At the initial phases of the project, by political and personal motivation, the | |
| 25 | -main stakeholders from the Brazilian government imposed the use of Colab to | |
| 26 | -guide the development of the new SPB platform. Our team were totally against | |
| 27 | -the idea because we already knew that Colab was a very experimental project and | |
| 28 | -its adoption could dramatically increase the project complexity. Even though | |
| 29 | -we provided technical reasons to not utilize Colab, MP enforces it to us and we | |
| 30 | -had to manage this problem. As explained in section \ref{sec:architecture} we | |
| 31 | -did a massive change in it, and at the end of the project we completely rewrite | |
| 32 | -Colab and made it stable. It is important to notice that the MP compelled us to | |
| 33 | -accept a technical issue based only on political interests, without considering | |
| 34 | -all the money they would spend with their decision. At the end of the project, | |
| 35 | -we verified that Colab consumed a vast amount of the budget and indeed | |
| 36 | -increased the project complexity. In the end of the project and after our | |
| 37 | -analyses on the decisions made by the MP, we understand that MP's managers are | |
| 38 | -capable of ignoring technical reasons in favor to a political decision. | |
| 39 | - | |
| 40 | -In the process of deploying the SPB platform in the MP structure, we had to | |
| 41 | -interact with the MP's technicians. We did several workshops, training and a | |
| 42 | -meticulous documentation describing all the required procedures to update the | |
| 43 | -platform, however, we realized that the MP's technicians constantly avoid the | |
| 44 | -responsibility. After notice the aforementioned situation, we organized a | |
| 45 | -specific team to start a DevOps activities and interacts with all the UnB | |
| 46 | -teams. After a year of work, we completely automated all the deployment | |
| 47 | -procedure. We simplified all the platform implantation to a few steps: (1) | |
| 48 | -initial configurations (just ssh configuration) and (2) the execution of simple | |
| 49 | -commands to completely update the platform. In the end of the project, we | |
| 50 | -observed that the MP technical invariably depends on our support to update the | |
| 51 | -platform even with all the automation provided by us. | |
| 52 | - | |
| 53 | -From the point of view of management and development processes, we had to | |
| 54 | -develop strategies that would support different organizational cultures. As | |
| 55 | -reported in Section \ref{sec:process}, the MP is organized in a functional | |
| 56 | -hierarchical organizational structure, typically, a traditional development | |
| 57 | -paradigm. The UnB team works based on agile manifest values and FOSS community | |
| 58 | -practices. Therefore, we had to create a translation process to communicate | |
| 59 | -with MP managers who manage their project based on the PMBoK ideas. On the one | |
| 60 | -hand, in the intermediary and final project's phases, we had matured this | |
| 61 | -process, mainly due to the perception of the results by the MP, on the other | |
| 62 | -hand, in the initial phase we had a lot of intervention in our work style, | |
| 63 | -which ended up focusing strategic discussions for operational discussions. The | |
| 64 | -aforementioned situation created an overload to the professors because they | |
| 65 | -were responsible for maintaining the strategic alignment of the MP synchronized | |
| 66 | -with the development team. | |
| 67 | - | |
| 68 | -Another important factor for the students was the composition of the teams with | |
| 69 | -the participation of senior professionals from the FOSS communities. These | |
| 70 | -professionals and professors promoted a work environment where the students | |
| 71 | -could develop their skills in a didactic way without transferring any pressure | |
| 72 | -to the students. Addition, these experienced professionals were responsible for | |
| 73 | -the most relevant technical decisions related to the SPB software product. | |
| 74 | - | |
| 4 | +\textbf{How to involve students real-world projects, interacting with | |
| 5 | +real customers.} | |
| 6 | +% | |
| 7 | +Our team was mainly composed of software engineering undergraduate | |
| 8 | +student, who had the opportunity to interact with senior developers and | |
| 9 | +designers inside the team, as well as with the team of technicians and | |
| 10 | +managers from the Brazilian Government, and the management team from | |
| 11 | +UnB. | |
| 12 | +% | |
| 13 | +They interacted with professionals that had diverse expertises, and were | |
| 14 | +able to participate in all levels of the software development process. | |
| 15 | +This contribted to a great learning opportunity, and for a majority of | |
| 16 | +them this was their first professional experience. | |
| 17 | + | |
| 18 | +\textbf{The participation of experienced professionals is crucial to | |
| 19 | +success of the project.} | |
| 20 | +One important factor for the students was the composition of the teams | |
| 21 | +with the participation of experienced professionals. | |
| 22 | +% | |
| 23 | +On the technical side, the senior developers and designers would handle | |
| 24 | +the more difficult technical decisions, creating a work environment | |
| 25 | +where the students could develop their skills in a didactic way without | |
| 26 | +pressure. | |
| 27 | +% | |
| 28 | +On the management side, the active participation of professors -- who | |
| 29 | +are, in the end, the ones responsible for the project -- is crucial to | |
| 30 | +make sure student participation is conducted in a healthy way, and is an | |
| 31 | +instance of leading by example. | |
| 32 | + | |
| 33 | +\textbf{A balanced relationship between academia and industry.} | |
| 34 | +The experience of the SPB project led UnB to develop a work style which | |
| 35 | +proved to be appropriate for an educational environment that brings | |
| 36 | +academia and industry together. | |
| 37 | +% | |
| 38 | +The highest priority from the university's point of view is the | |
| 39 | +students. Considering this, the activities of the project were never | |
| 40 | +prioritized to the detriment of classes and other pedagogical | |
| 41 | +activities. In summary, we had students working at different times, part | |
| 42 | +time, remotely or locally, always respecting their individual | |
| 43 | +conditions, but doing the work in a collective, collaborative and open | |
| 44 | +way. | |
| 45 | +% | |
| 46 | +And even under a potentially adverse environment, the project delivered | |
| 47 | +the desired solution with success. | |
| 48 | +% | |
| 49 | +At the end of the project, we noted that the skills developed by the | |
| 50 | +students were at the state of art of the software engineering practice. | |
| 51 | +After the project ended, we had team members successfully embracing | |
| 52 | +opportunities in public, private, national and international | |
| 53 | +organizations, in addition to those students that went into | |
| 54 | +entrepreneurship and opened their own companies. | |
| 55 | + | |
| 56 | +\textbf{Managing different organizational cultures.} | |
| 57 | +In the beginning of the project, the Brazilian Government stakeholders | |
| 58 | +had certain expectations about the development of project that, let's | |
| 59 | +say, didn't exactly match our work based on agile and FOSS practices. | |
| 60 | +% | |
| 61 | +We had to develop strategies that would support different these | |
| 62 | +organizational cultures. As reported in Section \ref{sec:process}, the | |
| 63 | +MP is organized in a functional hierarchical organizational structure, | |
| 64 | +typically, a traditional development paradigm. Therefore, we had to | |
| 65 | +create a translation process between our team and the MP managers who | |
| 66 | +managed the project on their side assuming a traditional, waterfall | |
| 67 | +process. | |
| 68 | + | |
| 69 | +\textbf{Manage higher-level and lower-level goals separately.} | |
| 70 | +During the initial phase of the project the MP team would often bring | |
| 71 | +strategic discussions to technical/operational meetings, where we were | |
| 72 | +supposed to discuss practical, technical decisions. | |
| 73 | +% | |
| 74 | +This produced a highly complex communication and management environment, | |
| 75 | +overloading the professors because they were supposed to be responsible | |
| 76 | +for maintaining the strategic alignment of the MP synchronized with | |
| 77 | +implementation plans of the development team, specially in light of the | |
| 78 | +aforementioned culture mismatch. Mixing both concerns in the same | |
| 79 | +discussions caused confusion on both sides. | |
| 80 | +% | |
| 81 | +Towards the middle and end of the project we were able to keep those | |
| 82 | +concerns separated, what eased the work of everyone involved. | |
| 83 | + | |
| 84 | +\textbf{Living with ill-advised political decisions.} | |
| 85 | +At the initial phases of the project, by political and personal | |
| 86 | +motivation, the main stakeholders from the Brazilian government imposed | |
| 87 | +the use of Colab to guide the development of the new SPB platform. Our | |
| 88 | +team was totally against the idea because we already knew that Colab was | |
| 89 | +a very experimental project and its adoption could dramatically increase | |
| 90 | +the project complexity. Even though we provided technical reasons to | |
| 91 | +not utilize Colab, MP was adamant and we had to manage this problem. As | |
| 92 | +explained in section \ref{sec:architecture} we did massive changes to | |
| 93 | +it, and at the end of the project we completely rewrote Colab and made | |
| 94 | +it stable. It is important to notice that the MP compelled us to accept | |
| 95 | +a technical issue based only on political interests, without considering | |
| 96 | +all the resources that would be spent due to that decision. At the end | |
| 97 | +of the project, we verified that Colab indeed consumed a vast amount of | |
| 98 | +the budget and increased the project complexity. In the end of the | |
| 99 | +project and after our analysis on the decision made by the MP, we | |
| 100 | +understand that MP's managers are capable of ignoring technical reasons | |
| 101 | +in favor to a political decision. | |
| 102 | + | |
| 103 | +\textbf{Consider sustainability from the beginning.} | |
| 104 | +In the process of deploying the SPB platform in the MP structure, we had | |
| 105 | +to interact with the MP technicians. We did several workshops, training | |
| 106 | +and a meticulous documentation describing all the required procedures to | |
| 107 | +update the platform, however, we realized that the MP technicians | |
| 108 | +constantly avoid the responsibility. After noticing the aforementioned | |
| 109 | +situation, we organized a specific DevOps that completely automated all | |
| 110 | +the deployment procedure. We simplified all the platform deployment to a | |
| 111 | +few steps: (1) initial configurations (just ssh configuration) and (2) | |
| 112 | +the execution of simple commands to completely update the platform. By | |
| 113 | +the end of the project, we observed that the MP technicians invariably | |
| 114 | +still depended on our support to update the platform even with all the | |
| 115 | +automation provided by us. We were sadly left with a feeling of | |
| 116 | +uncertainty about the future of the platform after the project ended. In | |
| 117 | +hindsight, we realize that the MP dedicated systems analysts and | |
| 118 | +managers to the project, but not operations technicians. The later | |
| 119 | +should have been more involved with the process so they could at least | |
| 120 | +comfortable with managing the platform infrastructure. | |
| 121 | + | |
| 75 | 122 | % * Gestão dos recursos: Fizemos mais por menos (2.6M de 3.2M) --- sem os dados |
| 76 | 123 | %% (escopo, custo, tempo e qualidade) bem discutidos é difícil sustentar essa |
| 77 | 124 | %% afirmação, embora eu e Paulo consigamos perceber isso. |
| 78 | 125 | |
| 79 | -The experience of the SPB project led UnB to develop a work style which proved | |
| 80 | -to be appropriated to the characteristics of an educational environment and | |
| 81 | -brings the academy closer to the industry. The highest priority from the | |
| 82 | -university's point of view is the students, considering this, the activities of | |
| 83 | -the project were never prioritized to the detriment of the classes and other | |
| 84 | -pedagogical activities. In summary, we had students working at different times, | |
| 85 | -part time, remotely or locally, always respecting their individual conditions, | |
| 86 | -but doing the work in a collective, collaborative and open way. At the end of | |
| 87 | -the project, we realized that the skills developed by the students empowered | |
| 88 | -them with the state in the practice of software engineering. The members of the | |
| 89 | -teams got opportunities to work in public, private, national and international | |
| 90 | -organizations, in addition to those students they preferred entrepreneurship, | |
| 91 | -opening their own companies. | |
| 92 | - | |
| 93 | 126 | %=========== |
| 94 | 127 | % Conclusion |
| 95 | 128 | %=========== |
| 96 | 129 | |
| 130 | +\textbf{Final remarks.} | |
| 97 | 131 | The portal is available at \url{softwarepublico.gov.br}. All |
| 98 | 132 | documentation, including detailed architecture and operation manuals are |
| 99 | 133 | also available\footnote{\url{https://softwarepublico.gov.br/doc/} | ... | ... |