Commit ec1ea2cba7a141303faeccd1d4d81ee368eb66f6
Exists in
master
and in
3 other branches
Merge branch 'master' of http://softwarepublico.gov.br/gitlab/softwarepublico/articles
Showing
2 changed files
with
135 additions
and
127 deletions
Show diff stats
opensym2017/content/05-features.tex
1 | \section{Features} | 1 | \section{Features} |
2 | \label{sec:spb} | 2 | \label{sec:spb} |
3 | 3 | ||
4 | -The new generation of the SPB portal combines adapted features of existing collaborative softwares | 4 | +The new generation of the SPB portal combines features adapted from existing collaborative software |
5 | and features developed by the SPB team. Whenever possible, new functions | 5 | and features developed by the SPB team. Whenever possible, new functions |
6 | -(newly developed or partially modified) were sent to official repositories, as a contribution. | 6 | +(newly developed or partially modified) were contributed back to the official repositories. |
7 | 7 | ||
8 | As a result, we have a platform that integrates and harmonizes different features such as | 8 | As a result, we have a platform that integrates and harmonizes different features such as |
9 | social networking, mailing list, version control system, content management and | 9 | social networking, mailing list, version control system, content management and |
10 | source code quality monitoring. Our aim was to develop functionalities by reusing | 10 | source code quality monitoring. Our aim was to develop functionalities by reusing |
11 | -functions of collaborative softwares already integrated to the platform. In | 11 | +functionality of collaborative software already integrated to the platform. In |
12 | addition, we tried to keep this integration transparent to end users. | 12 | addition, we tried to keep this integration transparent to end users. |
13 | 13 | ||
14 | \subsection{Software and Software Community} | 14 | \subsection{Software and Software Community} |
@@ -17,47 +17,47 @@ In the new SPB portal, each software has a standard set of pages and tools. | @@ -17,47 +17,47 @@ In the new SPB portal, each software has a standard set of pages and tools. | ||
17 | Besides accessing support pages (such as FAQ and installation guide) within the platform, users will be able to download | 17 | Besides accessing support pages (such as FAQ and installation guide) within the platform, users will be able to download |
18 | different versions of the software and find several mechanisms of software development management. | 18 | different versions of the software and find several mechanisms of software development management. |
19 | 19 | ||
20 | -Focusing on the collaborative development, the Mailman was integrated to the platform in order to allow | 20 | +Focusing on the collaborative development, Mailman was integrated to the platform in order to allow |
21 | the dialogue and communication between developers, users and | 21 | the dialogue and communication between developers, users and |
22 | enthusiasts of a determined software. The software has its own mailing list whose privacy | 22 | enthusiasts of a determined software. The software has its own mailing list whose privacy |
23 | can be configured/set by administrators. | 23 | can be configured/set by administrators. |
24 | 24 | ||
25 | -The software has a social interface area (aka "software community") where users can find other users, blogs, | 25 | +The software has a social interface area ("software community") where users can find other users, blogs, |
26 | summary of recent activities, or any other relevant community-produced content. | 26 | summary of recent activities, or any other relevant community-produced content. |
27 | Users logged to the platform can request membership to different software communities | 27 | Users logged to the platform can request membership to different software communities |
28 | and each community member can access and edit restricted content. For this purpose, | 28 | and each community member can access and edit restricted content. For this purpose, |
29 | -many Noosfero features related to social network and content management was integrated to the portal. | 29 | +many Noosfero features related to social networking and content management were integrated to the portal. |
30 | 30 | ||
31 | To assist decision-making, the new SPB has acquired assessment and statistical | 31 | To assist decision-making, the new SPB has acquired assessment and statistical |
32 | tools. Now, users will be able to rate the software and make comments and all | 32 | tools. Now, users will be able to rate the software and make comments and all |
33 | information will be avaiable to other users. Moreover, the software has a section | 33 | information will be avaiable to other users. Moreover, the software has a section |
34 | -containing its statistical data, where values are calculated through data | 34 | +containing its statistical data, where values are calculated based on data |
35 | provided by users and the system. | 35 | provided by users and the system. |
36 | 36 | ||
37 | The role of the administrator will be present in the software and in its community. The | 37 | The role of the administrator will be present in the software and in its community. The |
38 | administrator is responsible for moderating content, memberships and user | 38 | administrator is responsible for moderating content, memberships and user |
39 | -comments. He is also the one who can make changes in the software homepage | 39 | +comments. The administrator is also the one who can make changes in the software homepage |
40 | content. | 40 | content. |
41 | 41 | ||
42 | \subsection{Software Catalog and global search} | 42 | \subsection{Software Catalog and global search} |
43 | 43 | ||
44 | The platform also provides a search tool called Software Catalog, | 44 | The platform also provides a search tool called Software Catalog, |
45 | -which allows users to find softwares available in its directory. | 45 | +which allows users to find softwares available in the portal. |
46 | In this catalog, some search options were developed to make the navigation easier, | 46 | In this catalog, some search options were developed to make the navigation easier, |
47 | such as filters (by type of software or category), sorting and score. | 47 | such as filters (by type of software or category), sorting and score. |
48 | 48 | ||
49 | In order to expand the searching scope and cover more types of content, the SPB team | 49 | In order to expand the searching scope and cover more types of content, the SPB team |
50 | developed the global search tool. This tool unifies search mechanisms | 50 | developed the global search tool. This tool unifies search mechanisms |
51 | -provided by the mentioned collaborative softwares. Any user can | ||
52 | -find a public content in the context of social network, mailing list and | 51 | +provided by the different collaborative software used in the SPB protal. Any user can |
52 | +find a public content in the context of social networking, mailing list and | ||
53 | software development. | 53 | software development. |
54 | 54 | ||
55 | \subsection{Software development tools} | 55 | \subsection{Software development tools} |
56 | 56 | ||
57 | The new SPB also provides | 57 | The new SPB also provides |
58 | -tools to encourage developers to keep each source code and its | ||
59 | -developments within the platform. Any created software has, by default, a | ||
60 | -related git repository with wiki pages and issues tracking. These tools are | 58 | +tools to encourage developers to keep source code and its |
59 | +development activity within the platform. Any created software has, by default, a | ||
60 | +an associated git repository with wiki pages and issue tracking. These tools are | ||
61 | supplied by the integration of Gitlab into the platform. | 61 | supplied by the integration of Gitlab into the platform. |
62 | 62 | ||
63 | Developers can also evaluate the software source code to measure software | 63 | Developers can also evaluate the software source code to measure software |
@@ -67,7 +67,7 @@ public, which allows greater transparency between the developer and the | @@ -67,7 +67,7 @@ public, which allows greater transparency between the developer and the | ||
67 | community that uses the software. Thereby, the maintainers can decide if the | 67 | community that uses the software. Thereby, the maintainers can decide if the |
68 | given solution meets the source code quality requirements. | 68 | given solution meets the source code quality requirements. |
69 | 69 | ||
70 | -Thus, the SPB becomes a platform to stimulate the openness of the source code; | 70 | +Thus, the SPB becamr a platform to stimulate the openness of the source code; |
71 | dialogue between users and the development team; and also | 71 | dialogue between users and the development team; and also |
72 | maintenance and evolution of the software, which will provide more | 72 | maintenance and evolution of the software, which will provide more |
73 | transparency in government investments. | 73 | transparency in government investments. |
opensym2017/content/07-process.tex
@@ -5,19 +5,19 @@ The SPB team was composed of a variety of professionals with different levels | @@ -5,19 +5,19 @@ The SPB team was composed of a variety of professionals with different levels | ||
5 | and skills, where most of them were undergraduate students with major in | 5 | and skills, where most of them were undergraduate students with major in |
6 | software engineering (from 4th semester or upper). Since the students could | 6 | software engineering (from 4th semester or upper). Since the students could |
7 | not dedicate many hours per week to the project, they always had the | 7 | not dedicate many hours per week to the project, they always had the |
8 | -flexibility to negotiate their work schedule during the semester in order not | ||
9 | -to cause any damage to their grades. Their daily work routine in the project | ||
10 | -included programming and devops tasks. | 8 | +flexibility to negotiate their work schedule during the semester in |
9 | +order to not harm their classes and coursework. Their daily work routine | ||
10 | +in the project included programming and devops tasks. | ||
11 | 11 | ||
12 | The development of SPB project required a vast experience and background that | 12 | The development of SPB project required a vast experience and background that |
13 | -usually undergraduate students do not have yet. For this reason, some senior | ||
14 | -developers have joined to the project to help with hard issues and to transfer | 13 | +usually undergraduate students do not have yet. For this reason, a few senior |
14 | +developers have joined to the project to help with the more difficult issues and to transfer | ||
15 | knowledge to the students. Their main task was to provide solutions for complex | 15 | knowledge to the students. Their main task was to provide solutions for complex |
16 | -problems, in other words, they worked as a developer. As these professionals | 16 | +problems, in other words, they worked as developers. As these professionals |
17 | are very skillful and the project could not fund a full time work for them, | 17 | are very skillful and the project could not fund a full time work for them, |
18 | some of them worked partially on the project. In addition, they lived in a | 18 | some of them worked partially on the project. In addition, they lived in a |
19 | different states spread around Brazil which led much of the communication to be | 19 | different states spread around Brazil which led much of the communication to be |
20 | -made via Internet. | 20 | +online. |
21 | 21 | ||
22 | In short, our work process was based on open and collaborative software | 22 | In short, our work process was based on open and collaborative software |
23 | development practices. The development process was defined based on the | 23 | development practices. The development process was defined based on the |
@@ -26,70 +26,104 @@ high degree of automation resulting from DevOps practices. Thus, the work | @@ -26,70 +26,104 @@ high degree of automation resulting from DevOps practices. Thus, the work | ||
26 | process was executed in a cadenced and continuous way. | 26 | process was executed in a cadenced and continuous way. |
27 | 27 | ||
28 | Finally, the last group of actors of this project was composed of employees | 28 | Finally, the last group of actors of this project was composed of employees |
29 | -formally working for the Brazilian government, in the Ministery of Planning, | ||
30 | -Development, and Management (MP is the Brazilian acronyms). All the project | 29 | +formally working for the Brazilian government, in the Ministry of Planning, |
30 | +Development, and Management (MP is the Brazilian acronym). All the project | ||
31 | decisions, validations, and scope definitions were made by them. In this way we | 31 | decisions, validations, and scope definitions were made by them. In this way we |
32 | -developed software product increments, releases, aligned with business | ||
33 | -strategic objectives. As can be seen, the project had many kinds of profiles | ||
34 | -that had to be organized and synchronized. | 32 | +developed software product incrementally, with releases aligned to business |
33 | +strategic objectives. As one can see, the project had many different | ||
34 | +kinds of stakeholders that had to be organized and synchronized. | ||
35 | 35 | ||
36 | -\subsection{Teams organizations} | 36 | +\subsection{Team organization} |
37 | 37 | ||
38 | Approximately 70\% of the development teams were composed of software | 38 | Approximately 70\% of the development teams were composed of software |
39 | -engineering undergraduate students from UnB and they worked physically in the | ||
40 | -same laboratory in the opposite of the senior. Each student had their own | ||
41 | -scheduler based on their class, it made complicated to implement pair | ||
42 | -programming. Also, they had a different area of interests. To cope with those | ||
43 | -diversity, we had two basic rules which guided the project organization: | 39 | +engineering undergraduate students from UnB and they worked physically |
40 | +in the same laboratory. Each student had their own schedule based on | ||
41 | +their classes, what complicates the implementation of pair programming. | ||
42 | +The senior developers tried to synchronize their schedule with the | ||
43 | +students on their sub-team. To cope with this environment, we had a few | ||
44 | +basic rules which guided the project organization: | ||
44 | 45 | ||
45 | \begin{enumerate} | 46 | \begin{enumerate} |
46 | - \item Classes have to be the high priority for undergraduate students; | ||
47 | - \item Always work in pair (locally or remotely). | 47 | + \item Classes have high priority for undergraduate students; |
48 | + \item Work in pairs whenever possible (locally or remotely). | ||
49 | + \item There must be one morning or afternoon per week when | ||
50 | + \emph{everyone} should be together physically in the laboratory | ||
51 | + (except of course the remote team members). | ||
52 | + \item Every 3 to 4 months, the senior developers would fly in and work | ||
53 | + alongside the students for a few days. | ||
48 | \end{enumerate} | 54 | \end{enumerate} |
49 | 55 | ||
50 | -With the aforementioned rules we divided all the project into four different | ||
51 | -teams: Colab, Noosfero, Design, and DevOps. Each team had one coach responsible | ||
52 | -for reducing the communication problem with the other teams and help the | ||
53 | -members to organize itself in the best way for everyone (always respecting the | ||
54 | -work time). The coach, was a normal student working in some of the teams with | ||
55 | -the extra duty of register the current tasks developed in the sprint and with | ||
56 | -the responsibility to talk with other teams. One important thing to notice is | ||
57 | -the mutability of the team and the coach, during the project many students | ||
58 | -changed between the teams to try different areas. | ||
59 | - | ||
60 | -One characteristic of the teams was the presence of (at least) one senior per | ||
61 | -team. This was essential, because hard decisions and complex problems were | ||
62 | -usually addressed to them, this relieved the coach duty to take a complicated | ||
63 | -technical decisions and encouraged students to be a coach. Lastly, the senior | ||
64 | -had to respect a rule number two and work with students, this was important to | ||
65 | -gave the undergraduate the opportunity to interact with a savvy professional in | ||
66 | -his area and keeping the knowledge flow in the project. | ||
67 | - | ||
68 | -Finally, we had to add two last elements of the team organization, that was | ||
69 | -essential for the project harmony: the meta-coach and professors. The former | ||
70 | -was a software engineer recently graduated and which wanted to keep working on | ||
71 | -the project, the latter were professors that orchestrated all the interactions | ||
72 | -between all members of the project. The meta-coach usually worked in one | ||
73 | -specific team and had the extra task of knowing the current status of all | ||
74 | -teams. Professors and meta-coaches worked together to reduce the communication | ||
75 | -problem between all the teams. Lastly, all the bureaucracy tasks was | ||
76 | -centralized in the professors. | ||
77 | - | ||
78 | -\subsection{Meetings} | ||
79 | - | ||
80 | -Brazilian government used to work with software development in a very | ||
81 | -traditional way, frequently they claim on documents and does not focus on what | ||
82 | -really matter (running software). This way of thinking caused to us a | ||
83 | -communication noise with MP, because they constantly tried to leverage on our | ||
84 | -work style. It was especially hard to convince them to accept the idea of open | ||
85 | -scope and agile development, but after months of labor and showing results they | ||
86 | -stopped resisting. | ||
87 | - | ||
88 | -We defined some level of meeting granularity to avoid to generate overheads to | ||
89 | -the developers. We had a strategical and validating meeting with MP (the | ||
90 | -former once in a month and the latter each 15th day), release plaining with the | ||
91 | -entire team (one per month), and finally a sprint planning (one each 15th day). | ||
92 | -Figure \ref{fig:meeting} is a diagram that represents our meeting organization. | 56 | +With the aforementioned rules we divided all the project into four |
57 | +different teams: Colab, Noosfero, Design, and DevOps. Each team had one | ||
58 | +coach responsible for reducing the communication problem with the other | ||
59 | +teams and help the members to organize themselves in the best way for | ||
60 | +everyone (always respecting their work time). The coach was one of the | ||
61 | +students working in some of the teams with the extra duty of registering | ||
62 | +the current tasks developed in the sprint and with the responsibility to | ||
63 | +talk with other teams. One important thing to notice is the mutability | ||
64 | +of the team and the coach, during the project many students changed | ||
65 | +between the teams to try different areas. | ||
66 | + | ||
67 | +One characteristic of the teams was the presence of (at least) one | ||
68 | +senior per team. This was essential, because hard decisions and complex | ||
69 | +problems were usually referred to them. This kept having to take | ||
70 | +complicated technical decisions from the coach tole, what encouraged | ||
71 | +students to be coaches. Lastly, the senior developers worked directly | ||
72 | +with the students, and this was important to give the undergraduate the | ||
73 | +opportunity to interact with a savvy professional in his area and to | ||
74 | +keep the knowledge flowing in the project. | ||
75 | + | ||
76 | +Finally, we had to add two last elements of the team organization, that | ||
77 | +was essential for the project harmony: the meta-coach and professors. | ||
78 | +The former was a software engineer recently graduated and which wanted | ||
79 | +to keep working on the project, the latter were professors that | ||
80 | +orchestrated all the interactions between all members of the project. | ||
81 | +The meta-coach usually worked in one specific team and had the extra | ||
82 | +task of knowing the current status of all teams. Professors and | ||
83 | +meta-coaches worked together to reduce the communication problem between | ||
84 | +all the teams. Lastly, all the paperwork tasks, such as reporting on the | ||
85 | +project progress to the Ministry, was handled by the professors. | ||
86 | + | ||
87 | +\subsection{Communication and management} | ||
88 | + | ||
89 | +Our team had many people working together, and most of the seniors worked in a | ||
90 | +different city remotely. Also, we tried to keep our work completely clear to | ||
91 | +the Brazilian government and citizens interested in following the project. To | ||
92 | +handle those cases, we used a set of tools to communication and other to manage | ||
93 | +the project. | ||
94 | + | ||
95 | +For communication between member in different places, we used: Google | ||
96 | +handouts with tmate, IRC, and mailing lists. When one student had to | ||
97 | +work in pair with a senior, normally, they used Google hangout for | ||
98 | +communication and they shared a terminal session with tmate which allow | ||
99 | +them to share the same terminal, with both typing and seeing the screen. | ||
100 | +For questions and fast discussion, we used IRC. For general | ||
101 | +notification, we used the mailing lists. | ||
102 | + | ||
103 | +For managing the project we used the SPB Portal itself; first to | ||
104 | +validate it by ourselves, and also because it had all the required | ||
105 | +tools. We basically created one wiki page per release Gitlab, one | ||
106 | +milestone per sprint, and one or more issues for addressing each | ||
107 | +feature. With this approach we achieved two important goals: keeping all | ||
108 | +the management as close possible to to the source codem, and tracking | ||
109 | +every feature developed during the project. | ||
110 | + | ||
111 | +\subsection{High-level project management and reporting} | ||
112 | + | ||
113 | +The Brazilian government used to work with software development in a | ||
114 | +very traditional way. They would frequently focus on documents and not | ||
115 | +on what was, in our opinion, what really matters: working software. This | ||
116 | +dissonance caused us a communication noise with MP, because they would | ||
117 | +often question our work style. It was especially hard to convince them | ||
118 | +to accept the idea of open scope and agile development, but after months | ||
119 | +of labor and showing results they stopped resisting. | ||
120 | + | ||
121 | +We defined some level of meeting granularity to avoid generating too | ||
122 | +much overhead to the developers. We had a strategical and validating | ||
123 | +meeting with MP (the former once in a month and the latter each 15th | ||
124 | +day), release plaining with the entire team (one per month), and finally | ||
125 | +a sprint planning (one each 15th day). Figure \ref{fig:meeting} is a | ||
126 | +diagram that represents our meeting organization. | ||
93 | 127 | ||
94 | \begin{figure}[hbt] | 128 | \begin{figure}[hbt] |
95 | \centering | 129 | \centering |
@@ -98,36 +132,36 @@ Figure \ref{fig:meeting} is a diagram that represents our meeting organization. | @@ -98,36 +132,36 @@ Figure \ref{fig:meeting} is a diagram that represents our meeting organization. | ||
98 | \label{fig:meeting} | 132 | \label{fig:meeting} |
99 | \end{figure} | 133 | \end{figure} |
100 | 134 | ||
101 | -In the strategical meeting we usually defined the priorities and new features | ||
102 | -with the Brazilian government (we always had to negotiate next steps with | ||
103 | -them). Normally the professors, the coach of each team, the meta-coach, and | ||
104 | -some employees of the MP join in this meeting. We usually discussed what the | ||
105 | -team already produced since our last meeting, and we establish the new features | ||
106 | -for the next release. Notice that just part of the team join in this meeting | ||
107 | -to avoid generating unnecessary overhead to the developers, but all the | ||
108 | -students interested to participate was allowed to join (many students wanted | ||
109 | -this experience during the project). | 135 | +In the strategical meeting we usually defined the priorities and new |
136 | +features with the Brazilian government. Normally the professors, the | ||
137 | +coach of each team, the meta-coach, and some employees of the MP would | ||
138 | +participate in this meeting. We usually discussed what the team already | ||
139 | +produced since our last meeting, and established the new features for | ||
140 | +the next release. Notice that just part of the team would join this | ||
141 | +meeting to avoid generating unnecessary overhead to the developers, but | ||
142 | +all the students interested to participate were allowed to join (many | ||
143 | +students wanted this experience during the project). | ||
110 | 144 | ||
111 | After the strategical meeting with Brazilian government agents, we had a | 145 | After the strategical meeting with Brazilian government agents, we had a |
112 | planning turn with all teams together. In this part, each team worked together | 146 | planning turn with all teams together. In this part, each team worked together |
113 | -to convert the MP wishes into small parts which was represented by the epics of | 147 | +to convert the MP wishes into smaller parts which were represented by the epics of |
114 | the release. Each coach was responsible for conducting the planning, and after | 148 | the release. Each coach was responsible for conducting the planning, and after |
115 | -that register it on the project wiki (the wiki provided by Gitlab). With this | 149 | +that record it on the project wiki (the wiki provided by Gitlab). With this |
116 | epic, each 14th day the team have generated their sprint scheduler (with small | 150 | epic, each 14th day the team have generated their sprint scheduler (with small |
117 | -achievements mapped in issues). | 151 | +achievements mapped to issues). |
118 | 152 | ||
119 | -To keep the Brazilian government always updated, we invited them to work with | ||
120 | -us to validate the new features in progress. Normally we had a meeting each | ||
121 | -15th day. Basically, this was our work flow, we always kept everything | ||
122 | -extremely open to the MP (our way of work and open source projects) and to the | ||
123 | -team. | 153 | +To keep the Brazilian government always updated, we invited them to work |
154 | +with us to validate the new features in progress. Normally we had a | ||
155 | +meeting each 15th day. Basically, this was our work flow, we always kept | ||
156 | +everything extremely open to the MP (our way of working, and the one | ||
157 | +often used by open source projects) and to the team. | ||
124 | 158 | ||
125 | -To keep the track of all of those things we used the SPB, especially the | ||
126 | -Gitlab. Basically, we had: | 159 | +To keep the track of all of those things we used the SPB itself, |
160 | +especially Gitlab. Basically, we had: | ||
127 | 161 | ||
128 | \begin{enumerate} | 162 | \begin{enumerate} |
129 | \item Project repository: We have one organization with many repositories | 163 | \item Project repository: We have one organization with many repositories |
130 | - \item Milestones: Each milestone is used to register a release | 164 | + \item Milestones: Each milestone was used to register a release |
131 | \item Wiki: Each release has one page on wiki with the compilation of | 165 | \item Wiki: Each release has one page on wiki with the compilation of |
132 | strategical meeting | 166 | strategical meeting |
133 | \item Issues: Each sprint planning generated issues, which we associated to | 167 | \item Issues: Each sprint planning generated issues, which we associated to |
@@ -135,32 +169,6 @@ Gitlab. Basically, we had: | @@ -135,32 +169,6 @@ Gitlab. Basically, we had: | ||
135 | with them. Finally each developer assigned the issue to itself. | 169 | with them. Finally each developer assigned the issue to itself. |
136 | \end{enumerate} | 170 | \end{enumerate} |
137 | 171 | ||
138 | -Notice that this workflow gave to us and to the Brazilian government agents a | ||
139 | -full traceability from high view of the feature to the low view (code). This | ||
140 | -provided to them a way to validate all worked done and proof the concept that | ||
141 | -work with open source project can give a proper view to them check. | ||
142 | - | ||
143 | -\subsection{Tools for communication and management} | ||
144 | - | ||
145 | -Our team had many people worked together, and most of the seniors worked in a | ||
146 | -different city remotely. Also, we tried to keep our work completely clear to | ||
147 | -the Brazilian government and citizens interested in follow the project. To | ||
148 | -handle those cases, we used a set of tools to communication and other to manage | ||
149 | -the project. | ||
150 | - | ||
151 | -For communication between member in different places, we used: google-talk with | ||
152 | -tmate, IRC, and mailing-list. When one student had to work in pair with a | ||
153 | -senior, normally, they used google-hangout for communication and they shared a | ||
154 | -session with tmate which allow them to share the same terminal. For questions | ||
155 | -and fast discussion, we used IRC. For general notification, we used the | ||
156 | -mailing-list. | ||
157 | - | ||
158 | -For managing the project we used the SPB Portal to validate it by ourselves and | ||
159 | -because it had all the required tools. We basically create one wiki page per | ||
160 | -release in Gitlab, one milestone per sprint, and one or more issues for address | ||
161 | -one user history. With this approach we achieve two important things: keep all | ||
162 | -the management close to the source code and tracked every feature developed by | ||
163 | -the project. | ||
164 | - | ||
165 | -%TODO: Ainda falta adicionar a parte da visita dos seniors e o turno sagrado | ||
166 | - | 172 | +Notice that this workflow gave us and the Brazilian government agents |
173 | +full traceability from a high level view of each feature to the lowest | ||
174 | +level (code). |