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 | \label{sec:lessons} | 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 | % * Gestão dos recursos: Fizemos mais por menos (2.6M de 3.2M) --- sem os dados | 122 | % * Gestão dos recursos: Fizemos mais por menos (2.6M de 3.2M) --- sem os dados |
76 | %% (escopo, custo, tempo e qualidade) bem discutidos é difícil sustentar essa | 123 | %% (escopo, custo, tempo e qualidade) bem discutidos é difícil sustentar essa |
77 | %% afirmação, embora eu e Paulo consigamos perceber isso. | 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 | % Conclusion | 127 | % Conclusion |
95 | %=========== | 128 | %=========== |
96 | 129 | ||
130 | +\textbf{Final remarks.} | ||
97 | The portal is available at \url{softwarepublico.gov.br}. All | 131 | The portal is available at \url{softwarepublico.gov.br}. All |
98 | documentation, including detailed architecture and operation manuals are | 132 | documentation, including detailed architecture and operation manuals are |
99 | also available\footnote{\url{https://softwarepublico.gov.br/doc/} | 133 | also available\footnote{\url{https://softwarepublico.gov.br/doc/} |