Commit 1928b7fae0836dfc91a0478246b73beb23157c64

Authored by Antonio Terceiro
1 parent 7344b937

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