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/} | ... | ... |