Compare View

switch
from
...
to
 
Commits (121)
oss2018/.gitignore 0 → 100644
@@ -0,0 +1,26 @@ @@ -0,0 +1,26 @@
  1 +*.pdf
  2 +*.log
  3 +*.aux
  4 +*.cfg
  5 +*.glo
  6 +*.idx
  7 +*.toc
  8 +*.ilg
  9 +*.ind
  10 +*.out
  11 +*.lof
  12 +*.lot
  13 +*.bbl
  14 +*.blg
  15 +*.gls
  16 +*.cut
  17 +*.hd
  18 +*.dvi
  19 +*.ps
  20 +*.thm
  21 +*.tgz
  22 +*.zip
  23 +*.rpi
  24 +*~
  25 +*.fdb_latexmk
  26 +*.fls
oss2018/Makefile 0 → 100755
@@ -0,0 +1,15 @@ @@ -0,0 +1,15 @@
  1 +TARGET=spb-oss-2018
  2 +
  3 +all: $(TARGET).tex
  4 + pdflatex $(TARGET).tex
  5 + bibtex $(TARGET)
  6 + pdflatex $(TARGET).tex
  7 + pdflatex $(TARGET).tex
  8 + evince $(TARGET).pdf &
  9 +
  10 +edit:
  11 + gedit Makefile *.bib *.tex &
  12 +
  13 +clean:
  14 + rm -f $(TARGET).pdf *.out *.aux *.log *.blg *.bbl *.dvi *.ps *.toc *.lot *.lof *.idx *~
  15 +
oss2018/content/.keep 0 → 100644
oss2018/content/00-abstract.tex 0 → 100644
@@ -0,0 +1,17 @@ @@ -0,0 +1,17 @@
  1 +\begin{abstract}
  2 +
  3 +Government and academia can collaborate on bringing innovation and filling
  4 +design-reality gaps in e-government projects. However, differences in project
  5 +management methods employed by the organizations is often a challenge for
  6 +collaborative works. Bearing that in mind, we investigated a 30-month
  7 +government-academia partnership to find appropriate ways to get around this
  8 +obstacle. From the analysis of \textit{post-mortem} data as well as the results
  9 +of questionnaires and interviews with project participants, we present a set of
  10 +best practices based on FLOSS and agile software development approaches that
  11 +favors team management in government-academia collaborations in e-government
  12 +development projects.
  13 +
  14 +\end{abstract}
  15 +
  16 +\keywords{Open Source Software, Free Software, Agile Methods, Best Practices,
  17 +Project Management, E-Government.}
oss2018/content/01-introduction.tex 0 → 100644
@@ -0,0 +1,49 @@ @@ -0,0 +1,49 @@
  1 +\section{Introduction}
  2 +
  3 +E-government projects differ from others due to their complexity and extension
  4 +\cite{anthopoulos2016egovernment}. They are complex because they combine
  5 +development, innovation, information \& communications technologies, politics,
  6 +and social impact. They are extensive, on the other hand, regarding their
  7 +scope, target audience, organizational size, time, and the corresponding
  8 +resistance to change. Developing an innovative e-government project that meets
  9 +the needs of society is a issue that may be addressed alternatively through
  10 +collaborative projects between government and academia. However, this
  11 +collaborative work has challenges, such as organizing the collaboration
  12 +project, aligning goals, synchronizing the pace of between government and
  13 +academia, and overcoming the failure trend of e-government projects
  14 +\cite{goldfinch2007pessimism}.
  15 +
  16 +One of the leading causes of e-government project failure is poor project
  17 +management \cite{anthopoulos2016egovernment}. In this sense, the proper
  18 +management of the collaboration project should be a relevant concern when
  19 +government and academia combine efforts to develop an e-government solution.
  20 +Academia commonly works on cutting-edge development methodologies while the
  21 +government still relies on traditional techniques. Changing the development
  22 +process of one of this large-size institutions represents an organizational
  23 +disturbance with impacts on structure, culture, and management practices
  24 +\cite{nerur2015challenges}. As a result, government and academia have to
  25 +harmonize their view to increasing the chances of success in projects with
  26 +tight deadlines and short budgets.
  27 +
  28 +We have investigated the adoption of recommended community standards from
  29 +Free/Libre and Open Source Software (FLOSS) and agile values as a strategy to
  30 +harmonize different management approaches, due to the plurality of FLOSS
  31 +ecosystems and the diversity favored by agile methodologies. Open
  32 +communication, project modularity, the community of users, and fast response to
  33 +problems are just a few of the FLOSS ecosystem practices \cite{capiluppi,
  34 +warsta}. Individuals and interactions, working software, customer
  35 +collaboration, responding to change are the values agile
  36 +development~\cite{beck}. With this in mind, FLOSS and agile practices may
  37 +improve the cooperation of distinct teams.
  38 +
  39 +In this work, we examine the empirical method developed during 30 months
  40 +of a government-academia project that helped to harmonize the differences
  41 +between both organization management cultures. We discuss both quantitative
  42 +and qualitative analyses of the benefits of FLOSS and agile practices in an
  43 +e-government project. We identify and trace the best practices based on
  44 +FLOSS ecosystems and agile methodology. We collect and analyze data from the
  45 +project repository. Finally, we conduct a survey target at projects
  46 +participants to find their perception around the set of best practices, and
  47 +which of them are useful to government-academia collaboration. In doing so, we
  48 +aim to help academia better understand critical issues they will be confronted
  49 +with when engaging in a government-academia software project.
oss2018/content/02-relatedwork.tex 0 → 100644
@@ -0,0 +1,60 @@ @@ -0,0 +1,60 @@
  1 +\section{Related work}
  2 +\label{sec:relatedwork}
  3 +
  4 +Discussions on how to introduce new management methods into an organization are
  5 +present in several works. Nerur et al. recognized critical issues concerning
  6 +the migration from traditional to agile software development by comparing
  7 +practices of both methodologies \cite{nerur2015challenges}. The authors point
  8 +out managerial, organizational, people, process, and technological issues to be
  9 +rethought and reconfigured in an organization for a successful migration.
  10 +Strode et al. investigated the relationship between the adoption of agile
  11 +methodologies and organizational culture \cite{impactOfOrganizationalCulture}
  12 +by evaluating nine projects. They identified a set of six factors directly
  13 +linked to agile methods and concluded that the presence of these aspects in an
  14 +organization is proportional to the value of agile methodologies usage for
  15 +their projects. As Nerur et al., Strode et al. also said that the adoption of
  16 +agile development techniques does indeed produce changes in an organization's
  17 +culture.
  18 +
  19 +Some works also discuss how academia can collaborate with the industry in the
  20 +management of software projects. Chookittikul et al. evaluated the increasing
  21 +use of the agile techniques in software development companies in Thailand. The
  22 +authors suggested that universities should create curricula that develop in
  23 +their undergraduate students practical skills required by industry (mainly
  24 +agile practices) to promote growth in local software businesses
  25 +\cite{cho2011gap}. Sandberg et al. report the use of Scrum in an
  26 +industry-academia research consortium (involving ten industry partners and five
  27 +universities in Sweden) \cite{sandberg2017iacollaboration}. Through a case
  28 +study, they demonstrate that being able to bring together the meaningful
  29 +activities of the stakeholders is essential to the success of collaborative
  30 +research between industry and academia.
  31 +
  32 +Complex and large-scale organizations, such as the public administration, have
  33 +to deal with multiple project variables. Alleman et al. describe a production
  34 +deployment for the US government, focusing on the methodology applied to
  35 +address long-term planning and value estimation \cite{alleman2003making}. In
  36 +the Brazilian context, Melo et al. \cite{melo2013agileBr} investigates the
  37 +growing adoption of agile methodologies in this country's IT industry. The
  38 +results of their survey highlight some mismatch that companies faces when
  39 +developing software for public administration.
  40 +
  41 +Several works tried to highlight the FLOSS practices, while others attempted to
  42 +determine the relationship between FLOSS practices and agile methods. Capiluppi
  43 +et al. examined about 400 projects to find FLOSS project properties
  44 +\cite{capiluppi}. In their work, they extracted generic characterization
  45 +(project size, age, license, and programming language), analyzed the average
  46 +number of people involved in the project, the community of users, and
  47 +documentation characteristics. Warsta et al. found differences and similarities
  48 +between agile development and FLOSS practices \cite{warsta}. The authors argued
  49 +that FLOSS development may differ from agile in their philosophical and
  50 +economic perspectives, on the other hand, both share the definition of work.
  51 +Finally, Eric Raymond describes many of his experiences and decisions in his
  52 +work with FLOSS communities \cite{raymond}, and his report in 1999 has many
  53 +intersections with the agile manifesto in 2001.
  54 +
  55 +This paper differs itself from others by studying the government-academia
  56 +collaboration for developing a production-level solution. From questionnaires,
  57 +interviews, and development activities data, we extracted best practices that
  58 +helped to harmonize the interactions between two different development process
  59 +and satisfied the management process of both sides. We analyzed the decisions
  60 +made from the FLOSS and agile perspectives.
oss2018/content/03-methods.tex 0 → 100644
@@ -0,0 +1,135 @@ @@ -0,0 +1,135 @@
  1 +\section{Research Design}
  2 +\label{sec:researchdesign}
  3 +
  4 +We studied practical alternatives to harmonize the software project lifecycle
  5 +when confronting different development processes from crucial stakeholders. We
  6 +are interested in the relationship between government and academia from the
  7 +project management perspective, without the enforcement of changing their
  8 +internal processes. We present two research questions that guided this work:
  9 +
  10 +\textbf{RQ1. }\textit{How to introduce FLOSS and agile best practices into
  11 +government-academia collaboration projects?}
  12 +
  13 +\textbf{RQ2. }\textit{What practices favor effective team management in
  14 +government-academia collaborative projects?}
  15 +
  16 +To answer these questions, we used the case study as research method. We
  17 +selected as a case the evolution of the Brazilian Public Software (SPB) portal
  18 +\cite{meirelles2017spb}, a government-academia collaborative project based on
  19 +FLOSS systems. To validate our answers, we covered three different points of
  20 +view: developers, government agent, and data collected from the project
  21 +repository.
  22 +
  23 +\subsection{The case study}
  24 +
  25 +The project to evolve the SPB portal was a partnership between government and
  26 +academia held between 2014 and 2016 \cite{meirelles2017spb}. The old version of
  27 +SPB suffered from maintenance problems and design-reality gaps. In this sense,
  28 +The Ministry of Planning (MPOG) decided to join the University of Brasília
  29 +(UnB) and the University of São Paulo (USP) to develop a new platform. This
  30 +platform had as its primary requirement to be based on existing FLOSS projects
  31 +and integrate multiple systems into one, providing the end user with a unified
  32 +experience.
  33 +
  34 +In short, the SPB portal evolved into a Collaborative Development Environment
  35 +(CDE) \cite{booch2003}. It was a novelty in the context of the Brazilian
  36 +government, due to the technologies employed and its diverse features. The
  37 +portal includes social networking, mailing lists, version control system, and
  38 +source code quality monitoring. All software is integrated using a
  39 +system-of-systems framework \cite{meirelles2017spb}.
  40 +
  41 +The platform development took place at the Advanced Laboratory of Production,
  42 +Research, and Innovation in Software Engineering (LAPPIS/UnB) and the FLOSS
  43 +Competence Center at USP (CCSL/USP). Undergraduate interns, IT professionals and
  44 +professors formed a partially distributed development team. While interns and
  45 +professors worked in-person, most IT professionals worked remotely. Their
  46 +activities followed the workflow of biweekly sprints and 4-month releases.
  47 +
  48 +On the managerial aspect, at the project
  49 +beginning, the collaboration management and strategic discussions happened only
  50 +once a month, when project leaders and MPOG directors met in person at the
  51 +ministry's headquarters. Table~\ref{tab:gov-academia-diff} summarizes the
  52 +organizational differences in both involved sides.
  53 +
  54 +\vspace*{-.5cm}
  55 +
  56 +\begin{table}[h]
  57 +\centering
  58 +\def\arraystretch{1.2}
  59 +\setlength\tabcolsep{0.2cm}
  60 +\resizebox{\textwidth}{!}{%
  61 +\begin{tabular}{m{4.3cm}!{\color{white}\vrule}m{7cm}!{\color{white}\vrule}m{8cm}}
  62 +\rowcolor[HTML]{c0d6e4}
  63 +\textbf{Collaboration peaces} & \textbf{Academia} & \textbf{Goverment} \\
  64 +\rowcolor[HTML]{f2f2f2}
  65 +\textbf{Responsibilities} & Platform development activites & Contracts and collaboration management \\
  66 +\rowcolor[HTML]{fafafa}
  67 +\textbf{Team size} &
  68 +\begin{tabular}[c]{@{}l@{}} 42 undergraduate interns \\ 2 professors \\ 6 senior developers with significant \\ experience in FLOSS projects\\ 2 Designers (UX specialists) \end{tabular} &
  69 +\begin{tabular}[c]{@{}l@{}} 1 director \\ 1 coordinator \\ 2 requirement analysts \end{tabular} \\
  70 +\rowcolor[HTML]{f2f2f2}
  71 +\textbf{Workplace} & LAPPIS at UnB and CCSL at USP & MPOG headquarters \\
  72 +\rowcolor[HTML]{fafafa}
  73 +\begin{tabular}[c]{@{}l@{}}\textbf{Management} \textbf{approaches}\end{tabular} & FLOSS practices and Agile values & Mindset from RUP, CMMI, and PMBOK \\
  74 +\end{tabular}%
  75 +}
  76 +\caption{Differences between academia and government sides.}
  77 +\label{tab:gov-academia-diff}
  78 +\end{table}
  79 +
  80 +\vspace*{-1cm}
  81 +
  82 +During the project progress, this workflow proved to be inefficient. Conflicts
  83 +between the internal management processes and differences in pace and goals of
  84 +each institution were compromising the platform development. To improve the
  85 +project management process and reducing the mismatching between government and
  86 +academia, professors, with the senior developers' collaboration, incrementally
  87 +employed a set of best practices based on FLOSS and agile values. Throughout
  88 +the project, the development leaders made decisions in a non-systematic way to
  89 +promote the usage of these techniques. In this paper, we analyzed and codified
  90 +these decisions and how they favored the collaboration progress.
  91 +
  92 +\subsection{Survey, Interview and Data Collection}
  93 +
  94 +We separated the project team into three groups: undergraduate interns, IT
  95 +professionals (senior developers and designers), and MPOG analysts. For the
  96 +first two we sent online questionnaires, and for the last one, we conducted
  97 +2-hour interviews. Table \ref{survey-table} presents the details of these
  98 +processes.
  99 +
  100 +\vspace*{-.5cm}
  101 +
  102 +\begin{table}[h]
  103 +\centering
  104 +\def\arraystretch{1.2}
  105 +\setlength\tabcolsep{0.2cm}
  106 +\resizebox{\textwidth}{!}{%
  107 +\begin{tabular}{m{4cm}!{\color{white}\vrule}m{5cm}!{\color{white}\vrule}m{6cm}!{\color{white}\vrule}m{6cm}}
  108 +\rowcolor[HTML]{c6b3df}
  109 +\textbf{} & \textbf{\nohyphens{Undergraduate Interns}} & \textbf{Senior Developers} & \textbf{MPOG Analysts} \\
  110 +\rowcolor[HTML]{fafafa}
  111 +\textbf{Research technique} & Online questionnaire & Online questionnaire & Interview \\
  112 +\rowcolor[HTML]{f2f2f2}
  113 +\textbf{Discussed topics} & \multicolumn{2}{l!{\color{white}\vrule}}{\begin{tabular}[c]{@{}l@{}}(1) project organization\\ (2) the development process\\ (3) communication and relationship with members\\ (4) knowledge sharing\\ (5) experience with FLOSS projects\end{tabular}} & \begin{tabular}[c]{@{}l@{}}(1) professional profile\\ (2) organization, communication \\ and development methodologies\\ (3) satisfaction with \\ the developed platform\\ (4) lessons learned\end{tabular} \\
  114 +\rowcolor[HTML]{fafafa}
  115 +\textbf{Number of interviewed} & 42 & 8 & 2 \\
  116 +\rowcolor[HTML]{f2f2f2}
  117 +\textbf{Rate of responses} & 88\% (37) & 100\% & 100\% \\
  118 +\rowcolor[HTML]{fafafa}
  119 +\textbf{Average age at the end of the project} & 22 years old & 30 years old & 30 years old \\
  120 +\rowcolor[HTML]{f2f2f2}
  121 +\textbf{Gender} & \begin{tabular}[c]{@{}l@{}}8\% women \\ 92\% man\end{tabular} & \begin{tabular}[c]{@{}l@{}}13\% women \\ 87\% man\end{tabular} & 100\% women \\
  122 +\rowcolor[HTML]{fafafa}
  123 +\begin{tabular}[c]{@{}l@{}}\textbf{Experience} \\ \textbf{background}\end{tabular} & 43\% of the interns had the SPB project as their first contact with FLOSS & 11 years of experience; worked in at least 5 companies; participated in 4 to 80 distinct projects; 86\%of them had some background with FLOSS before the SPB project & more than 7 years working in the government; SPB project represented their first experience of government-academia collaboration \\
  124 +\end{tabular}%
  125 +}
  126 +\caption{Surveying the project participants}
  127 +\label{survey-table}
  128 +\end{table}
  129 +
  130 +\vspace*{-1cm}
  131 +
  132 +Finally, we analyzed the data from the central project repository considering
  133 +all the issues and commits. From April 2015 to June 2016, 59 distinct authors
  134 +opened 879 issues, 64 different users made the total of 4,658 comments. The
  135 +development team made 3,256 commits in this abovementioned repository.
oss2018/content/04-results.tex 0 → 100644
@@ -0,0 +1,188 @@ @@ -0,0 +1,188 @@
  1 +\section{Results}
  2 +\label{sec:results}
  3 +
  4 +The SPB portal project had two phases according to the traceability of project
  5 +management activities. The first one, between January 2014 and March 2015, is
  6 +non-traceable since only the universities managed the development activities.
  7 +The communication between government and academia was, generally, in private
  8 +channels, such as professional e-mails, personal meetings, and telephone calls.
  9 +Therefore, the quantitative data found for this period are not conclusive or
  10 +have little expressiveness, and we do not examine them.
  11 +
  12 +The second phase, from April 2015 to the end of the project (June 2016), has
  13 +meaningful data. Much of the management and communication activities were
  14 +recorded and published on online channels and tools. During this period, the
  15 +development leaders consolidated several FLOSS practices and agile values
  16 +employed in the development process. At the end of the project, the academic
  17 +team had an empirical management approach for meeting the government
  18 +bureaucracies.
  19 +
  20 +\subsection{Use of the system under development to develop the system itself}
  21 +
  22 +Due to the platform features for software development and social network, the
  23 +development coordinators decided to use the platform under construction to
  24 +develop the system itself. Gradually, in addition to development activities,
  25 +government and academia migrated the project management and the communication
  26 +between teams to the portal environment.
  27 +
  28 +In short, the wiki feature was used for logging meetings, defining goals,
  29 +planning sprints, documenting deployment procedures and user guides. The issue
  30 +tracker was used for discussing requirements, monitoring features under
  31 +development, requesting and recording changes, and validating the delivered
  32 +functionalities. Finally, the mailing list was used for collaborative
  33 +construction of requirements, defining schedules, and scheduling meetings
  34 +between institutions.
  35 +
  36 +Our surveys report Mailing list (100\%) and Issue Tracker (62.5\%) as the main
  37 +means of interaction between senior developers and interns. The development
  38 +team and MPOG staff also interacted mostly via Mailing List (87.5\%) and Issue
  39 +tracker (50\%). According to one of the interviewees, this movement made the
  40 +\textbf{communication more transparent and efficient}. An MPOG analyst said
  41 +that \textit{``Communicating well goes far beyond the speed. It means enabling
  42 +someone to tell everyone about everything that is happening in the project. We
  43 +did not use emails, we use more mailing list and avoid emails. This usage
  44 +helped us considerably. Everything was public and did not pollute our email
  45 +box. So, when you wanted to know something, you could access the SPB list and
  46 +see everything''}.
  47 +
  48 +Migrating to the SPB platform also \textbf{easied monitoring of activities and
  49 +increased interactions between developers and public servants}. The data
  50 +collected from the repository highlight the frequent use of the platform by
  51 +both sides teams. In the last 15 months of the project, 59 different authors
  52 +opened the central repository issues, 8 of them were MPOG agents. These issues
  53 +received comments from 64 distinct users, 9 of them from MPOG. When we consider
  54 +the issues with more interactions, those which had ten comments or more, we
  55 +notice that the government team also felt comfortable in using the tool to
  56 +interact directly with the development team. In a set of 102 active issues,
  57 +MPOG staff created 43 of them (this represents 42\% of the most active issues).
  58 +
  59 +For the MPOG analysts, interaction via repository improved communication.
  60 +\textit{``There was a big evolution, we increased our communication via
  61 +Gitlab''}. Migrating to the platform also led MPOG staff to \textbf{trust the
  62 +developed code}: \textit{``Everything was validated. We tested the
  63 +functionalities and developed the project on the SPB platform itself. Hence,
  64 +the use of the system homologated most of its features. From the moment we
  65 +began to use it for developing, this validation was constant. We felt confident
  66 +in the code produced''}.
  67 +
  68 +The abovementioned decision also collaborated to meet the government's demand
  69 +for meticulous documentation of the software design and stages of development
  70 +without bureaucratizing or modifying the development process. The usage of the
  71 +platform for project team management conducted \textbf{the organic production
  72 +of documentation and records}, as mentioned in one of the MPOG responses:
  73 +\textit{``It was a great learning experience. There are many things documented
  74 +in emails as well as in the portal itself. We can access the tools at any time
  75 +and find out how we develop a solution. We can remember the positive project
  76 +points''}.
  77 +
  78 +\subsection{Brings together government staff and development team}
  79 +
  80 +In the first phase of the project, the interviewed MPOG analysts did not
  81 +participate in any direct interaction with any university representative, even
  82 +though they were the ones in charge of the government in ensuring the
  83 +collaboration agreement and the delivery of the products. Because of this, they
  84 +relied on feedback from their superiors on inter-institutional meetings. They
  85 +reported that there was significant communication noise in the internal
  86 +dialogues with their superiors, as well as between their superiors and the
  87 +development team.
  88 +
  89 +In the second phase of the project, these analysts became direct
  90 +representatives of the government and started to visit the university's
  91 +laboratory bi-weekly. One of the analysts believed that \textit{``at this
  92 +point, the communication started to change''}. The new dynamics \textbf{reduced
  93 +communication misunderstandings and unified both sides}, as reported by another
  94 +interviewee: \textit{``It was very positive. We liked to go there and to
  95 +interact with the team. I think it brought more unity, more integration into
  96 +the project''}. {73\%} of the interns considered positive the direct
  97 +participation of the MPOG staff, and {81\%} of them believed the presence of
  98 +government staff in sprint ceremonies was relevant for the project development.
  99 +For 76\% of the interns, writing the requirements together with the MPOG staff
  100 +was very important to \textbf{better meet expectations of both sides}.
  101 +According to one of them, \textit{``Joint planning and timely meetings were
  102 +very important for understanding the needs of MPOG''}.
  103 +
  104 +The closest dialogue between government and academia generated empathy, as
  105 +reported by one of the interviewees: \textit{``Knowing people in person makes a
  106 +big difference in the relationship because it causes empathy. You know who that
  107 +person is. He's not merly a name''}. Consequently, this empathy helped to
  108 +\textbf{synchronize the execution pace of activities}: \textit{``Visiting the
  109 +lab and meeting the developers encouraged us to validate resources faster and
  110 +give faster feedback to the team. In return, they also quickly answered us any
  111 +question''}.
  112 +
  113 +The implementation of a Continuous Delivery pipeline also reinforced the teams'
  114 +synchronization \cite{siqueira2018cd} . For 81\% of the interns and 75\% of
  115 +the IT professionals, deploying new versions of the SPB portal in production
  116 +was a motivator during the project. On the government side, this approach
  117 +helped to \textbf{overcome the government bias toward low productivity of
  118 +collaborative projects with academia}, as mentioned by themselves:
  119 +\textit{``Government staff has a bias that universities do not deliver
  120 +products. However, in this project, we made many deliveries with high quality.
  121 +Nowadays, I think if we had paid the same amount for a company, it would not
  122 +have done the amount of features we did with the technical quality we have''}.
  123 +Additionally, the deployment of each new version also \textbf{share a common
  124 +understanding of the process from one side to the other}, as mentioned by a
  125 +MPOG analyst: \textit{``We had only the strategic vision of the project. When
  126 +we needed to deal with technical issues, we had some difficulty planning the
  127 +four-month releases. However, in the last stages of the project I realized
  128 +that this was not a problem. The team was delivering and the results were
  129 +available in production. The team was qualified, the code had quality, and the
  130 +project was well executed. So in practice, our difficulty in interpreting the
  131 +technical details did not impact the release planning''}.
  132 +
  133 +\subsection{Organized development team into priority fronts, and for each one, hire at least one specialist from the IT market}
  134 +
  135 +The development team had four work areas divided by the main demands of the
  136 +project: User Experience, DevOps, Integration of Systems, and Social
  137 +Networking. For each segment, at least one professional in the IT market was
  138 +hired to raise the quality of the product. Senior developers have been selected
  139 +based on their vast experience in FLOSS systems and their knowledge on tools
  140 +used in the project.
  141 +
  142 +The presence of senior developers in the project contributed to
  143 +\textbf{conciliate the development processes of each institution and make
  144 +better technical decisions}, as quoted in one of the answers to the senior
  145 +developer's questionnaire: \textit{``I think my main contribution was to
  146 +balance the relations between the MPOG staff and the university team''}. {63\%}
  147 +of the IT professionals believed they have collaborated to conciliate the
  148 +management and development process between the two institutions and also {63\%}
  149 +of them helped MPOG staff express their requests more clearly. Government
  150 +analysts were also more open to suggestions from these developers:
  151 +\textit{``They are upstream developers of the systems that integrate the
  152 +platform. They conveyed trust, and then we trust in the developed code''}.
  153 +According to questionnaire responses, IT professionals largely agreed with the
  154 +project development process. For 63\%, this process has close similarity to
  155 +their previous experiences. In contrast, {62.5\%} of them did not understand
  156 +the MPOG's project management process and {50\%} believed this process could
  157 +affect their project productivity.
  158 +
  159 +The senior developers were also responsible for \textbf{improving the
  160 +management and technical knowledge} of the interns about practices from
  161 +industry and open source projects. {91\%} of the interns believed that working
  162 +with professionals was essential for learning, and, for all of them, working
  163 +with IT professionals was important during the project. {75\%} of the IT
  164 +professionals believed that ``Working in pairs with a senior'' and 63\% that
  165 +``Participate in joint review tasks'' were the tasks with the involvement of
  166 +them that most contributed to the evolution of the interns in the project.
  167 +{75\%} believed that the knowledge shared by them to one intern was widespread
  168 +among the others in the team. Government analysts also pointed this knowledge
  169 +sharing: \textit{``On the university side, we noticed a significant improvement
  170 +in the platform with the hiring of the systems original developers. They had a
  171 +guide on how to best develop each feature and were able to solve non-trivial
  172 +problems quickly''}.
  173 +
  174 +Organizing the development team and hiring of the IT professionals allowed each
  175 +team to \textbf{self-organize and gain more autonomy in the management of their
  176 +tasks}. There was a development coach to lead each team, and a ``meta-coach''
  177 +supported all of them in their internal management activities. The coaches
  178 +(most advanced interns) were points of reference in the development process.
  179 +{89\%} of the interns said that the presence of the coach was essential to the
  180 +sprint's running, and for {88\%} of the of the IT professionals the coaches was
  181 +essential for their interaction with the development team. MPOG analysts saw
  182 +the coaches as facilitators their activities and communication with the
  183 +development team. They said \textit{``I interacted more with the project
  184 +coordinator (professor) and team coaches (interns)''}, \textit{``Usually, we
  185 +contact a coach to clarify some requirements or to understand some feature. The
  186 +coaches were more available than senior developers and, sometimes, they would
  187 +take our question to a senior developer''}.
  188 +
oss2018/content/05-discussion.tex 0 → 100644
@@ -0,0 +1,110 @@ @@ -0,0 +1,110 @@
  1 +\section{Discussion}
  2 +\label{sec:discussion}
  3 +
  4 +Our results reveal a set of nine management practices successfully employed in
  5 +abovementioned case. We analyzed unsystematic decisions made during a 30-month
  6 +collaborative project and identified three macro-decisions that harmonized the
  7 +differences of the management processes of each organization. We evidenced from
  8 +data collection, and responses of the members of both sides to the
  9 +questionnaires and interviews, the benefits obtained through the adoption of
  10 +this empirical method. The Table \ref{practices-table} summarizes
  11 +macro-decisions, practices, and benefits.
  12 +
  13 +\vspace*{-.5cm}
  14 +
  15 +\begin{table}[h]
  16 +\centering
  17 +\def\arraystretch{1.5}
  18 +\setlength\tabcolsep{0.5cm}
  19 +\resizebox{\textwidth}{!}{%
  20 +\begin{tabular}{ m{4cm} m{9cm} m{9cm} }
  21 +\rowcolor[HTML]{b7d0b9}
  22 +\textbf{Decision} & \textbf{Practice Explanation} & \textbf{Benefits} \\
  23 +\rowcolor[HTML]{fafafa}
  24 +\begin{flushleft}
  25 +\textbf{Use of the system under development to develop the system itself}
  26 +\end{flushleft} &
  27 +\begin{flushleft}
  28 +\begin{itemize}
  29 +\setlength{\itemsep}{2pt}
  30 +\item The features and tools of the platform under development supported the project management and communication activities.
  31 +\end{itemize}
  32 +\end{flushleft} &
  33 +\begin{flushleft}
  34 +\begin{itemize}
  35 +\setlength{\itemsep}{2pt}
  36 +\item Communicating with transparency and efficiency.
  37 +\item Easy monitoring of activities.
  38 +\item More interactions between developers and public servants.
  39 +\item Confidence in the developed code.
  40 +\item Organic documentation.
  41 +\end{itemize}
  42 +\end{flushleft} \\
  43 +\rowcolor[HTML]{f2f2f2}
  44 +\begin{flushleft}
  45 +\textbf{Bring together government staff and development team}
  46 +\end{flushleft} &
  47 +\begin{flushleft}
  48 +\begin{itemize}
  49 +\setlength{\itemsep}{2pt}
  50 +\item Government staff, academic coordinators, senior developers and team coaches biweekly meet at the university lab, academia headquarters, for sprint planning and review.
  51 +\item Conduct on the platform technical discussions between government staff and the development team.
  52 +\item Involve government board directors only in strategic planning of the project.
  53 +\item Build a continuous delivery pipeline with stages involving both sides.
  54 +\end{itemize} \end{flushleft} &
  55 +\begin{flushleft}
  56 +\begin{itemize}
  57 +\setlength{\itemsep}{2pt}
  58 +\item Reducing communication misunderstanding.
  59 +\item Better meeting expectations of both sides.
  60 +\item Improvement of the decision-making process.
  61 +\item Overcoming the government bias regarding low productivity of collaborative projects with academia.
  62 +\item Synchronizing the execution pace of activities.
  63 +\item Sharing a common understanding of the process from one side to the other.
  64 +\end{itemize} \end{flushleft} \\
  65 +\rowcolor[HTML]{fafafa}
  66 +\begin{flushleft}
  67 +\textbf{Organize the development team into priority fronts, and for each one, hire at least one specialist from the IT market}
  68 +\end{flushleft} &
  69 +\begin{itemize}
  70 +\setlength{\itemsep}{2pt}
  71 +\item The coordinators separated the development team into priority work areas considering the main demands of the project.
  72 +\item IT market professionals with recognized experience on each front were hired to work in person or remotely.
  73 +\item Define among the interns the leadership roles: a coach for each front, and a meta-coach of the entire development team.
  74 +\item Each team has certain self-organization, being guided by one intern-coach and at least one senior developer.
  75 +\end{itemize} &
  76 +\begin{itemize}
  77 +\setlength{\itemsep}{2pt}
  78 +\item Conciliating the development processes of each institution, taking better technical decisions.
  79 +\item Improving the management and technical knowledge.
  80 +\item Self-organizing and gaining autonomy in the management of their tasks.
  81 +\end{itemize}\\
  82 +\end{tabular}%
  83 +}
  84 +\caption{Empirical SPB management decisions and its benefits.}
  85 +\label{practices-table}
  86 +\end{table}
  87 +
  88 +\vspace*{-1cm}
  89 +
  90 +The results of this current work corroborate the lessons learned in our
  91 +previous work on studying the SPB project case \cite{meirelles2017spb}.
  92 +Evidence from the data collected, responses to questionnaires, and interviews
  93 +reinforce what has been reported by the academic coordination of the project,
  94 +adding the point of views of government and other roles involved on the
  95 +academic side. In short, the government staff took time to understand how
  96 +collaboration works and to realize that the project was not a client-executor
  97 +relationship and both organizations were at the same hierarchical level in the
  98 +work plan.
  99 +
  100 +The decisions, practices, and benefits presented in the Table
  101 +\ref{practices-table} should be evaluated and used in contexts with more
  102 +substantial plurality and diversity of government stakeholders. This study has
  103 +a few obvious limitations. Firstly, we point out the lack of communication
  104 +records and low traceability of the management data referring to the first
  105 +phase of the project. Secondly, we consider a drawback the hiatus between the
  106 +completion of the project and the conduction of interviews and questionnaires,
  107 +since we rely on the memory of the interviewees to rescue the events. Lastly,
  108 +the current situation of the respondents, such as their current working midset,
  109 +may also alter their perception on the on the topics addressed in the
  110 +questionnaire and consequently their responses.
oss2018/content/06-conclusion.tex 0 → 100644
@@ -0,0 +1,41 @@ @@ -0,0 +1,41 @@
  1 +\section{Conclusion}
  2 +\label{sec:conclusion}
  3 +
  4 +Organizational culture is built and reinforced every life year of a large-size
  5 +organization. These cultural values reflect on the internal management
  6 +processes and the norms of communication among its members. In the context of
  7 +software development projects, each institution adopts development methods that
  8 +best meet its managerial procedures and organizational routines. When two
  9 +large-size organizations decide to develop a solution collaboratively, the
  10 +development methods and workflow of one may conflict with the interests of the
  11 +other. In a case of government-academia collaboration, conciliating their
  12 +different management processes is crucial, since the poor and unadaptable
  13 +management could lead the project to fail, resulting in the waste of
  14 +population-funded resources.
  15 +
  16 +In this study, we investigated the management method employed at the SPB portal
  17 +project, a partnership between the Brazilian government and universities. As a
  18 +result, we identified a set of FLOSS and agile best practices, empirically
  19 +employed by the development leaders, which improved the workflow and
  20 +relationship between the organizations involved.
  21 +
  22 +Regarding our first research question \textit{``How to introduce FLOSS and
  23 +agile best practices into government-academia collaboration projects?''}, we
  24 +examined the SPB project and identified three macro-decisions taken by the
  25 +academic coordinators that drove them to intuitively and unsystematically adopt
  26 +nine FLOSS and agile best practices in the development process.
  27 +
  28 +The interviewed responses allowed us to understand how FLOSS and agile
  29 +practices have benefited the people and project management. Based on that, we
  30 +answered our second research question \textit{``What practices favor effective
  31 +team management in government-academia collaborative projects?''}, making to
  32 +explicit 14 benefits obtained from the use of the nine best practices, all
  33 +presented in Table \ref{practices-table}.
  34 +
  35 +Finally, we collected a significant amount of data and testimonials related to
  36 +the teaching of software engineering. We consider the studied project an
  37 +educational case, an example of teaching FLOSS and agile techniques applied to
  38 +real-world software development. As future work, we intend to analyze this
  39 +collected information to propose improvements in education methodologies of
  40 +software engineering undergraduate students as well.
  41 +
oss2018/content/out-background.tex 0 → 100644
@@ -0,0 +1,49 @@ @@ -0,0 +1,49 @@
  1 +\section{Layered Approach}
  2 +\label{sec:background}
  3 +
  4 +Combine many teams with different processes in the same project might be
  5 +challenging. To address this problem, we got inspiration from Operating Systems
  6 +(OS) concepts and extended the notion of layered approach design
  7 +\cite{layeredApproach}. This technique breaks the OS into distinct layers with
  8 +different proposes. The inner layer represents the hardware, while the external
  9 +layer represents the user interface. Layered approach demands a careful
  10 +definition of each layer responsibility and how they communicate. After the
  11 +layers and communication definition, it is simple to change a single layer
  12 +without affecting other layers. This approach presents two drawbacks: (1) it
  13 +creates an overhead of communication from the upper layer to the lower layer,
  14 +and (2) it is a hard to define the correct interface between layers.
  15 +
  16 +We extended the layered approach for handling the interaction with development
  17 +teams and the Brazilian government. We realized that multiple teams interacting
  18 +with the government have different expectations about the project. Furthermore,
  19 +we noticed that government can transfer political pressures to the development
  20 +team and sometimes they try to impose their processes to the project. For
  21 +handling all the different processes and keep the multiple expectations under
  22 +control, we implemented the layered approach for project management.
  23 +
  24 +\begin{figure}[!h]
  25 + \centering
  26 + \includegraphics[width=.30\textwidth]{project_layers}
  27 + \caption{Layered Approach for managing multiple processes}
  28 + \label{fig:layered_processes}
  29 +\end{figure}
  30 +
  31 +Figure \ref{fig:layered_processes} illustrates our set of layers. The inner
  32 +layer comprises the development team composed of agile teams. Next, is a layer
  33 +that includes the coordinators responsible for handling the bureaucratic issues
  34 +coming from the government to the development team. Subsequent, the analyst
  35 +layer covers the government employees with the understanding about the
  36 +requirements, but they working guided by the traditional methodology. Finally,
  37 +there is the directory layer responsible for the political issues.
  38 +
  39 +The communication between layers is an important problem in the Layered
  40 +approach, which still an important issue to be addressed in our propose. For
  41 +solving the problem, we designed a common channel of communication that passes
  42 +through all layers. For keeping the layer separation, some members of each
  43 +layer worked as a filter. This was possible because we created a proper
  44 +infrastructure based on transparency. We used the following tools to implement
  45 +the communication between layers: issue tracker (from Gitlab), mailing list,
  46 +IRC, and wiki. The coordination layer has to filter the interaction between the
  47 +government and the development team.
  48 +
  49 +
oss2018/llncs.cls 0 → 100644
@@ -0,0 +1,1208 @@ @@ -0,0 +1,1208 @@
  1 +% LLNCS DOCUMENT CLASS -- version 2.18 (27-Sep-2013)
  2 +% Springer Verlag LaTeX2e support for Lecture Notes in Computer Science
  3 +%
  4 +%%
  5 +%% \CharacterTable
  6 +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
  7 +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
  8 +%% Digits \0\1\2\3\4\5\6\7\8\9
  9 +%% Exclamation \! Double quote \" Hash (number) \#
  10 +%% Dollar \$ Percent \% Ampersand \&
  11 +%% Acute accent \' Left paren \( Right paren \)
  12 +%% Asterisk \* Plus \+ Comma \,
  13 +%% Minus \- Point \. Solidus \/
  14 +%% Colon \: Semicolon \; Less than \<
  15 +%% Equals \= Greater than \> Question mark \?
  16 +%% Commercial at \@ Left bracket \[ Backslash \\
  17 +%% Right bracket \] Circumflex \^ Underscore \_
  18 +%% Grave accent \` Left brace \{ Vertical bar \|
  19 +%% Right brace \} Tilde \~}
  20 +%%
  21 +\NeedsTeXFormat{LaTeX2e}[1995/12/01]
  22 +\ProvidesClass{llncs}[2013/09/27 v2.18
  23 +^^J LaTeX document class for Lecture Notes in Computer Science]
  24 +% Options
  25 +\let\if@envcntreset\iffalse
  26 +\DeclareOption{envcountreset}{\let\if@envcntreset\iftrue}
  27 +\DeclareOption{citeauthoryear}{\let\citeauthoryear=Y}
  28 +\DeclareOption{oribibl}{\let\oribibl=Y}
  29 +\let\if@custvec\iftrue
  30 +\DeclareOption{orivec}{\let\if@custvec\iffalse}
  31 +\let\if@envcntsame\iffalse
  32 +\DeclareOption{envcountsame}{\let\if@envcntsame\iftrue}
  33 +\let\if@envcntsect\iffalse
  34 +\DeclareOption{envcountsect}{\let\if@envcntsect\iftrue}
  35 +\let\if@runhead\iffalse
  36 +\DeclareOption{runningheads}{\let\if@runhead\iftrue}
  37 +
  38 +\let\if@openright\iftrue
  39 +\let\if@openbib\iffalse
  40 +\DeclareOption{openbib}{\let\if@openbib\iftrue}
  41 +
  42 +% languages
  43 +\let\switcht@@therlang\relax
  44 +\def\ds@deutsch{\def\switcht@@therlang{\switcht@deutsch}}
  45 +\def\ds@francais{\def\switcht@@therlang{\switcht@francais}}
  46 +
  47 +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
  48 +
  49 +\ProcessOptions
  50 +
  51 +\LoadClass[twoside]{article}
  52 +\RequirePackage{multicol} % needed for the list of participants, index
  53 +\RequirePackage{aliascnt}
  54 +
  55 +\setlength{\textwidth}{12.2cm}
  56 +\setlength{\textheight}{19.3cm}
  57 +\renewcommand\@pnumwidth{2em}
  58 +\renewcommand\@tocrmarg{3.5em}
  59 +%
  60 +\def\@dottedtocline#1#2#3#4#5{%
  61 + \ifnum #1>\c@tocdepth \else
  62 + \vskip \z@ \@plus.2\p@
  63 + {\leftskip #2\relax \rightskip \@tocrmarg \advance\rightskip by 0pt plus 2cm
  64 + \parfillskip -\rightskip \pretolerance=10000
  65 + \parindent #2\relax\@afterindenttrue
  66 + \interlinepenalty\@M
  67 + \leavevmode
  68 + \@tempdima #3\relax
  69 + \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
  70 + {#4}\nobreak
  71 + \leaders\hbox{$\m@th
  72 + \mkern \@dotsep mu\hbox{.}\mkern \@dotsep
  73 + mu$}\hfill
  74 + \nobreak
  75 + \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5}%
  76 + \par}%
  77 + \fi}
  78 +%
  79 +\def\switcht@albion{%
  80 +\def\abstractname{Abstract.}
  81 +\def\ackname{Acknowledgement.}
  82 +\def\andname{and}
  83 +\def\lastandname{\unskip, and}
  84 +\def\appendixname{Appendix}
  85 +\def\chaptername{Chapter}
  86 +\def\claimname{Claim}
  87 +\def\conjecturename{Conjecture}
  88 +\def\contentsname{Table of Contents}
  89 +\def\corollaryname{Corollary}
  90 +\def\definitionname{Definition}
  91 +\def\examplename{Example}
  92 +\def\exercisename{Exercise}
  93 +\def\figurename{Fig.}
  94 +\def\keywordname{{\bf Keywords:}}
  95 +\def\indexname{Index}
  96 +\def\lemmaname{Lemma}
  97 +\def\contriblistname{List of Contributors}
  98 +\def\listfigurename{List of Figures}
  99 +\def\listtablename{List of Tables}
  100 +\def\mailname{{\it Correspondence to\/}:}
  101 +\def\noteaddname{Note added in proof}
  102 +\def\notename{Note}
  103 +\def\partname{Part}
  104 +\def\problemname{Problem}
  105 +\def\proofname{Proof}
  106 +\def\propertyname{Property}
  107 +\def\propositionname{Proposition}
  108 +\def\questionname{Question}
  109 +\def\remarkname{Remark}
  110 +\def\seename{see}
  111 +\def\solutionname{Solution}
  112 +\def\subclassname{{\it Subject Classifications\/}:}
  113 +\def\tablename{Table}
  114 +\def\theoremname{Theorem}}
  115 +\switcht@albion
  116 +% Names of theorem like environments are already defined
  117 +% but must be translated if another language is chosen
  118 +%
  119 +% French section
  120 +\def\switcht@francais{%\typeout{On parle francais.}%
  121 + \def\abstractname{R\'esum\'e.}%
  122 + \def\ackname{Remerciements.}%
  123 + \def\andname{et}%
  124 + \def\lastandname{ et}%
  125 + \def\appendixname{Appendice}
  126 + \def\chaptername{Chapitre}%
  127 + \def\claimname{Pr\'etention}%
  128 + \def\conjecturename{Hypoth\`ese}%
  129 + \def\contentsname{Table des mati\`eres}%
  130 + \def\corollaryname{Corollaire}%
  131 + \def\definitionname{D\'efinition}%
  132 + \def\examplename{Exemple}%
  133 + \def\exercisename{Exercice}%
  134 + \def\figurename{Fig.}%
  135 + \def\keywordname{{\bf Mots-cl\'e:}}
  136 + \def\indexname{Index}
  137 + \def\lemmaname{Lemme}%
  138 + \def\contriblistname{Liste des contributeurs}
  139 + \def\listfigurename{Liste des figures}%
  140 + \def\listtablename{Liste des tables}%
  141 + \def\mailname{{\it Correspondence to\/}:}
  142 + \def\noteaddname{Note ajout\'ee \`a l'\'epreuve}%
  143 + \def\notename{Remarque}%
  144 + \def\partname{Partie}%
  145 + \def\problemname{Probl\`eme}%
  146 + \def\proofname{Preuve}%
  147 + \def\propertyname{Caract\'eristique}%
  148 +%\def\propositionname{Proposition}%
  149 + \def\questionname{Question}%
  150 + \def\remarkname{Remarque}%
  151 + \def\seename{voir}
  152 + \def\solutionname{Solution}%
  153 + \def\subclassname{{\it Subject Classifications\/}:}
  154 + \def\tablename{Tableau}%
  155 + \def\theoremname{Th\'eor\`eme}%
  156 +}
  157 +%
  158 +% German section
  159 +\def\switcht@deutsch{%\typeout{Man spricht deutsch.}%
  160 + \def\abstractname{Zusammenfassung.}%
  161 + \def\ackname{Danksagung.}%
  162 + \def\andname{und}%
  163 + \def\lastandname{ und}%
  164 + \def\appendixname{Anhang}%
  165 + \def\chaptername{Kapitel}%
  166 + \def\claimname{Behauptung}%
  167 + \def\conjecturename{Hypothese}%
  168 + \def\contentsname{Inhaltsverzeichnis}%
  169 + \def\corollaryname{Korollar}%
  170 +%\def\definitionname{Definition}%
  171 + \def\examplename{Beispiel}%
  172 + \def\exercisename{\"Ubung}%
  173 + \def\figurename{Abb.}%
  174 + \def\keywordname{{\bf Schl\"usselw\"orter:}}
  175 + \def\indexname{Index}
  176 +%\def\lemmaname{Lemma}%
  177 + \def\contriblistname{Mitarbeiter}
  178 + \def\listfigurename{Abbildungsverzeichnis}%
  179 + \def\listtablename{Tabellenverzeichnis}%
  180 + \def\mailname{{\it Correspondence to\/}:}
  181 + \def\noteaddname{Nachtrag}%
  182 + \def\notename{Anmerkung}%
  183 + \def\partname{Teil}%
  184 +%\def\problemname{Problem}%
  185 + \def\proofname{Beweis}%
  186 + \def\propertyname{Eigenschaft}%
  187 +%\def\propositionname{Proposition}%
  188 + \def\questionname{Frage}%
  189 + \def\remarkname{Anmerkung}%
  190 + \def\seename{siehe}
  191 + \def\solutionname{L\"osung}%
  192 + \def\subclassname{{\it Subject Classifications\/}:}
  193 + \def\tablename{Tabelle}%
  194 +%\def\theoremname{Theorem}%
  195 +}
  196 +
  197 +% Ragged bottom for the actual page
  198 +\def\thisbottomragged{\def\@textbottom{\vskip\z@ plus.0001fil
  199 +\global\let\@textbottom\relax}}
  200 +
  201 +\renewcommand\small{%
  202 + \@setfontsize\small\@ixpt{11}%
  203 + \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@
  204 + \abovedisplayshortskip \z@ \@plus2\p@
  205 + \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
  206 + \def\@listi{\leftmargin\leftmargini
  207 + \parsep 0\p@ \@plus1\p@ \@minus\p@
  208 + \topsep 8\p@ \@plus2\p@ \@minus4\p@
  209 + \itemsep0\p@}%
  210 + \belowdisplayskip \abovedisplayskip
  211 +}
  212 +
  213 +\frenchspacing
  214 +\widowpenalty=10000
  215 +\clubpenalty=10000
  216 +
  217 +\setlength\oddsidemargin {63\p@}
  218 +\setlength\evensidemargin {63\p@}
  219 +\setlength\marginparwidth {90\p@}
  220 +
  221 +\setlength\headsep {16\p@}
  222 +
  223 +\setlength\footnotesep{7.7\p@}
  224 +\setlength\textfloatsep{8mm\@plus 2\p@ \@minus 4\p@}
  225 +\setlength\intextsep {8mm\@plus 2\p@ \@minus 2\p@}
  226 +
  227 +\setcounter{secnumdepth}{2}
  228 +
  229 +\newcounter {chapter}
  230 +\renewcommand\thechapter {\@arabic\c@chapter}
  231 +
  232 +\newif\if@mainmatter \@mainmattertrue
  233 +\newcommand\frontmatter{\cleardoublepage
  234 + \@mainmatterfalse\pagenumbering{Roman}}
  235 +\newcommand\mainmatter{\cleardoublepage
  236 + \@mainmattertrue\pagenumbering{arabic}}
  237 +\newcommand\backmatter{\if@openright\cleardoublepage\else\clearpage\fi
  238 + \@mainmatterfalse}
  239 +
  240 +\renewcommand\part{\cleardoublepage
  241 + \thispagestyle{empty}%
  242 + \if@twocolumn
  243 + \onecolumn
  244 + \@tempswatrue
  245 + \else
  246 + \@tempswafalse
  247 + \fi
  248 + \null\vfil
  249 + \secdef\@part\@spart}
  250 +
  251 +\def\@part[#1]#2{%
  252 + \ifnum \c@secnumdepth >-2\relax
  253 + \refstepcounter{part}%
  254 + \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
  255 + \else
  256 + \addcontentsline{toc}{part}{#1}%
  257 + \fi
  258 + \markboth{}{}%
  259 + {\centering
  260 + \interlinepenalty \@M
  261 + \normalfont
  262 + \ifnum \c@secnumdepth >-2\relax
  263 + \huge\bfseries \partname~\thepart
  264 + \par
  265 + \vskip 20\p@
  266 + \fi
  267 + \Huge \bfseries #2\par}%
  268 + \@endpart}
  269 +\def\@spart#1{%
  270 + {\centering
  271 + \interlinepenalty \@M
  272 + \normalfont
  273 + \Huge \bfseries #1\par}%
  274 + \@endpart}
  275 +\def\@endpart{\vfil\newpage
  276 + \if@twoside
  277 + \null
  278 + \thispagestyle{empty}%
  279 + \newpage
  280 + \fi
  281 + \if@tempswa
  282 + \twocolumn
  283 + \fi}
  284 +
  285 +\newcommand\chapter{\clearpage
  286 + \thispagestyle{empty}%
  287 + \global\@topnum\z@
  288 + \@afterindentfalse
  289 + \secdef\@chapter\@schapter}
  290 +\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
  291 + \if@mainmatter
  292 + \refstepcounter{chapter}%
  293 + \typeout{\@chapapp\space\thechapter.}%
  294 + \addcontentsline{toc}{chapter}%
  295 + {\protect\numberline{\thechapter}#1}%
  296 + \else
  297 + \addcontentsline{toc}{chapter}{#1}%
  298 + \fi
  299 + \else
  300 + \addcontentsline{toc}{chapter}{#1}%
  301 + \fi
  302 + \chaptermark{#1}%
  303 + \addtocontents{lof}{\protect\addvspace{10\p@}}%
  304 + \addtocontents{lot}{\protect\addvspace{10\p@}}%
  305 + \if@twocolumn
  306 + \@topnewpage[\@makechapterhead{#2}]%
  307 + \else
  308 + \@makechapterhead{#2}%
  309 + \@afterheading
  310 + \fi}
  311 +\def\@makechapterhead#1{%
  312 +% \vspace*{50\p@}%
  313 + {\centering
  314 + \ifnum \c@secnumdepth >\m@ne
  315 + \if@mainmatter
  316 + \large\bfseries \@chapapp{} \thechapter
  317 + \par\nobreak
  318 + \vskip 20\p@
  319 + \fi
  320 + \fi
  321 + \interlinepenalty\@M
  322 + \Large \bfseries #1\par\nobreak
  323 + \vskip 40\p@
  324 + }}
  325 +\def\@schapter#1{\if@twocolumn
  326 + \@topnewpage[\@makeschapterhead{#1}]%
  327 + \else
  328 + \@makeschapterhead{#1}%
  329 + \@afterheading
  330 + \fi}
  331 +\def\@makeschapterhead#1{%
  332 +% \vspace*{50\p@}%
  333 + {\centering
  334 + \normalfont
  335 + \interlinepenalty\@M
  336 + \Large \bfseries #1\par\nobreak
  337 + \vskip 40\p@
  338 + }}
  339 +
  340 +\renewcommand\section{\@startsection{section}{1}{\z@}%
  341 + {-18\p@ \@plus -4\p@ \@minus -4\p@}%
  342 + {12\p@ \@plus 4\p@ \@minus 4\p@}%
  343 + {\normalfont\large\bfseries\boldmath
  344 + \rightskip=\z@ \@plus 8em\pretolerance=10000 }}
  345 +\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
  346 + {-18\p@ \@plus -4\p@ \@minus -4\p@}%
  347 + {8\p@ \@plus 4\p@ \@minus 4\p@}%
  348 + {\normalfont\normalsize\bfseries\boldmath
  349 + \rightskip=\z@ \@plus 8em\pretolerance=10000 }}
  350 +\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
  351 + {-18\p@ \@plus -4\p@ \@minus -4\p@}%
  352 + {-0.5em \@plus -0.22em \@minus -0.1em}%
  353 + {\normalfont\normalsize\bfseries\boldmath}}
  354 +\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
  355 + {-12\p@ \@plus -4\p@ \@minus -4\p@}%
  356 + {-0.5em \@plus -0.22em \@minus -0.1em}%
  357 + {\normalfont\normalsize\itshape}}
  358 +\renewcommand\subparagraph[1]{\typeout{LLNCS warning: You should not use
  359 + \string\subparagraph\space with this class}\vskip0.5cm
  360 +You should not use \verb|\subparagraph| with this class.\vskip0.5cm}
  361 +
  362 +\DeclareMathSymbol{\Gamma}{\mathalpha}{letters}{"00}
  363 +\DeclareMathSymbol{\Delta}{\mathalpha}{letters}{"01}
  364 +\DeclareMathSymbol{\Theta}{\mathalpha}{letters}{"02}
  365 +\DeclareMathSymbol{\Lambda}{\mathalpha}{letters}{"03}
  366 +\DeclareMathSymbol{\Xi}{\mathalpha}{letters}{"04}
  367 +\DeclareMathSymbol{\Pi}{\mathalpha}{letters}{"05}
  368 +\DeclareMathSymbol{\Sigma}{\mathalpha}{letters}{"06}
  369 +\DeclareMathSymbol{\Upsilon}{\mathalpha}{letters}{"07}
  370 +\DeclareMathSymbol{\Phi}{\mathalpha}{letters}{"08}
  371 +\DeclareMathSymbol{\Psi}{\mathalpha}{letters}{"09}
  372 +\DeclareMathSymbol{\Omega}{\mathalpha}{letters}{"0A}
  373 +
  374 +\let\footnotesize\small
  375 +
  376 +\if@custvec
  377 +\def\vec#1{\mathchoice{\mbox{\boldmath$\displaystyle#1$}}
  378 +{\mbox{\boldmath$\textstyle#1$}}
  379 +{\mbox{\boldmath$\scriptstyle#1$}}
  380 +{\mbox{\boldmath$\scriptscriptstyle#1$}}}
  381 +\fi
  382 +
  383 +\def\squareforqed{\hbox{\rlap{$\sqcap$}$\sqcup$}}
  384 +\def\qed{\ifmmode\squareforqed\else{\unskip\nobreak\hfil
  385 +\penalty50\hskip1em\null\nobreak\hfil\squareforqed
  386 +\parfillskip=0pt\finalhyphendemerits=0\endgraf}\fi}
  387 +
  388 +\def\getsto{\mathrel{\mathchoice {\vcenter{\offinterlineskip
  389 +\halign{\hfil
  390 +$\displaystyle##$\hfil\cr\gets\cr\to\cr}}}
  391 +{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr\gets
  392 +\cr\to\cr}}}
  393 +{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr\gets
  394 +\cr\to\cr}}}
  395 +{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
  396 +\gets\cr\to\cr}}}}}
  397 +\def\lid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil
  398 +$\displaystyle##$\hfil\cr<\cr\noalign{\vskip1.2pt}=\cr}}}
  399 +{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr<\cr
  400 +\noalign{\vskip1.2pt}=\cr}}}
  401 +{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr<\cr
  402 +\noalign{\vskip1pt}=\cr}}}
  403 +{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
  404 +<\cr
  405 +\noalign{\vskip0.9pt}=\cr}}}}}
  406 +\def\gid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil
  407 +$\displaystyle##$\hfil\cr>\cr\noalign{\vskip1.2pt}=\cr}}}
  408 +{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr>\cr
  409 +\noalign{\vskip1.2pt}=\cr}}}
  410 +{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr>\cr
  411 +\noalign{\vskip1pt}=\cr}}}
  412 +{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
  413 +>\cr
  414 +\noalign{\vskip0.9pt}=\cr}}}}}
  415 +\def\grole{\mathrel{\mathchoice {\vcenter{\offinterlineskip
  416 +\halign{\hfil
  417 +$\displaystyle##$\hfil\cr>\cr\noalign{\vskip-1pt}<\cr}}}
  418 +{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr
  419 +>\cr\noalign{\vskip-1pt}<\cr}}}
  420 +{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr
  421 +>\cr\noalign{\vskip-0.8pt}<\cr}}}
  422 +{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
  423 +>\cr\noalign{\vskip-0.3pt}<\cr}}}}}
  424 +\def\bbbr{{\rm I\!R}} %reelle Zahlen
  425 +\def\bbbm{{\rm I\!M}}
  426 +\def\bbbn{{\rm I\!N}} %natuerliche Zahlen
  427 +\def\bbbf{{\rm I\!F}}
  428 +\def\bbbh{{\rm I\!H}}
  429 +\def\bbbk{{\rm I\!K}}
  430 +\def\bbbp{{\rm I\!P}}
  431 +\def\bbbone{{\mathchoice {\rm 1\mskip-4mu l} {\rm 1\mskip-4mu l}
  432 +{\rm 1\mskip-4.5mu l} {\rm 1\mskip-5mu l}}}
  433 +\def\bbbc{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm C$}\hbox{\hbox
  434 +to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}
  435 +{\setbox0=\hbox{$\textstyle\rm C$}\hbox{\hbox
  436 +to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}
  437 +{\setbox0=\hbox{$\scriptstyle\rm C$}\hbox{\hbox
  438 +to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}
  439 +{\setbox0=\hbox{$\scriptscriptstyle\rm C$}\hbox{\hbox
  440 +to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}}}
  441 +\def\bbbq{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm
  442 +Q$}\hbox{\raise
  443 +0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}}
  444 +{\setbox0=\hbox{$\textstyle\rm Q$}\hbox{\raise
  445 +0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}}
  446 +{\setbox0=\hbox{$\scriptstyle\rm Q$}\hbox{\raise
  447 +0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}}
  448 +{\setbox0=\hbox{$\scriptscriptstyle\rm Q$}\hbox{\raise
  449 +0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}}}}
  450 +\def\bbbt{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm
  451 +T$}\hbox{\hbox to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}
  452 +{\setbox0=\hbox{$\textstyle\rm T$}\hbox{\hbox
  453 +to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}
  454 +{\setbox0=\hbox{$\scriptstyle\rm T$}\hbox{\hbox
  455 +to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}
  456 +{\setbox0=\hbox{$\scriptscriptstyle\rm T$}\hbox{\hbox
  457 +to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}}}
  458 +\def\bbbs{{\mathchoice
  459 +{\setbox0=\hbox{$\displaystyle \rm S$}\hbox{\raise0.5\ht0\hbox
  460 +to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox
  461 +to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}}
  462 +{\setbox0=\hbox{$\textstyle \rm S$}\hbox{\raise0.5\ht0\hbox
  463 +to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox
  464 +to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}}
  465 +{\setbox0=\hbox{$\scriptstyle \rm S$}\hbox{\raise0.5\ht0\hbox
  466 +to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0\hbox
  467 +to0pt{\kern0.5\wd0\vrule height0.45\ht0\hss}\box0}}
  468 +{\setbox0=\hbox{$\scriptscriptstyle\rm S$}\hbox{\raise0.5\ht0\hbox
  469 +to0pt{\kern0.4\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0\hbox
  470 +to0pt{\kern0.55\wd0\vrule height0.45\ht0\hss}\box0}}}}
  471 +\def\bbbz{{\mathchoice {\hbox{$\mathsf\textstyle Z\kern-0.4em Z$}}
  472 +{\hbox{$\mathsf\textstyle Z\kern-0.4em Z$}}
  473 +{\hbox{$\mathsf\scriptstyle Z\kern-0.3em Z$}}
  474 +{\hbox{$\mathsf\scriptscriptstyle Z\kern-0.2em Z$}}}}
  475 +
  476 +\let\ts\,
  477 +
  478 +\setlength\leftmargini {17\p@}
  479 +\setlength\leftmargin {\leftmargini}
  480 +\setlength\leftmarginii {\leftmargini}
  481 +\setlength\leftmarginiii {\leftmargini}
  482 +\setlength\leftmarginiv {\leftmargini}
  483 +\setlength \labelsep {.5em}
  484 +\setlength \labelwidth{\leftmargini}
  485 +\addtolength\labelwidth{-\labelsep}
  486 +
  487 +\def\@listI{\leftmargin\leftmargini
  488 + \parsep 0\p@ \@plus1\p@ \@minus\p@
  489 + \topsep 8\p@ \@plus2\p@ \@minus4\p@
  490 + \itemsep0\p@}
  491 +\let\@listi\@listI
  492 +\@listi
  493 +\def\@listii {\leftmargin\leftmarginii
  494 + \labelwidth\leftmarginii
  495 + \advance\labelwidth-\labelsep
  496 + \topsep 0\p@ \@plus2\p@ \@minus\p@}
  497 +\def\@listiii{\leftmargin\leftmarginiii
  498 + \labelwidth\leftmarginiii
  499 + \advance\labelwidth-\labelsep
  500 + \topsep 0\p@ \@plus\p@\@minus\p@
  501 + \parsep \z@
  502 + \partopsep \p@ \@plus\z@ \@minus\p@}
  503 +
  504 +\renewcommand\labelitemi{\normalfont\bfseries --}
  505 +\renewcommand\labelitemii{$\m@th\bullet$}
  506 +
  507 +\setlength\arraycolsep{1.4\p@}
  508 +\setlength\tabcolsep{1.4\p@}
  509 +
  510 +\def\tableofcontents{\chapter*{\contentsname\@mkboth{{\contentsname}}%
  511 + {{\contentsname}}}
  512 + \def\authcount##1{\setcounter{auco}{##1}\setcounter{@auth}{1}}
  513 + \def\lastand{\ifnum\value{auco}=2\relax
  514 + \unskip{} \andname\
  515 + \else
  516 + \unskip \lastandname\
  517 + \fi}%
  518 + \def\and{\stepcounter{@auth}\relax
  519 + \ifnum\value{@auth}=\value{auco}%
  520 + \lastand
  521 + \else
  522 + \unskip,
  523 + \fi}%
  524 + \@starttoc{toc}\if@restonecol\twocolumn\fi}
  525 +
  526 +\def\l@part#1#2{\addpenalty{\@secpenalty}%
  527 + \addvspace{2em plus\p@}% % space above part line
  528 + \begingroup
  529 + \parindent \z@
  530 + \rightskip \z@ plus 5em
  531 + \hrule\vskip5pt
  532 + \large % same size as for a contribution heading
  533 + \bfseries\boldmath % set line in boldface
  534 + \leavevmode % TeX command to enter horizontal mode.
  535 + #1\par
  536 + \vskip5pt
  537 + \hrule
  538 + \vskip1pt
  539 + \nobreak % Never break after part entry
  540 + \endgroup}
  541 +
  542 +\def\@dotsep{2}
  543 +
  544 +\let\phantomsection=\relax
  545 +
  546 +\def\hyperhrefextend{\ifx\hyper@anchor\@undefined\else
  547 +{}\fi}
  548 +
  549 +\def\addnumcontentsmark#1#2#3{%
  550 +\addtocontents{#1}{\protect\contentsline{#2}{\protect\numberline
  551 + {\thechapter}#3}{\thepage}\hyperhrefextend}}%
  552 +\def\addcontentsmark#1#2#3{%
  553 +\addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}\hyperhrefextend}}%
  554 +\def\addcontentsmarkwop#1#2#3{%
  555 +\addtocontents{#1}{\protect\contentsline{#2}{#3}{0}\hyperhrefextend}}%
  556 +
  557 +\def\@adcmk[#1]{\ifcase #1 \or
  558 +\def\@gtempa{\addnumcontentsmark}%
  559 + \or \def\@gtempa{\addcontentsmark}%
  560 + \or \def\@gtempa{\addcontentsmarkwop}%
  561 + \fi\@gtempa{toc}{chapter}%
  562 +}
  563 +\def\addtocmark{%
  564 +\phantomsection
  565 +\@ifnextchar[{\@adcmk}{\@adcmk[3]}%
  566 +}
  567 +
  568 +\def\l@chapter#1#2{\addpenalty{-\@highpenalty}
  569 + \vskip 1.0em plus 1pt \@tempdima 1.5em \begingroup
  570 + \parindent \z@ \rightskip \@tocrmarg
  571 + \advance\rightskip by 0pt plus 2cm
  572 + \parfillskip -\rightskip \pretolerance=10000
  573 + \leavevmode \advance\leftskip\@tempdima \hskip -\leftskip
  574 + {\large\bfseries\boldmath#1}\ifx0#2\hfil\null
  575 + \else
  576 + \nobreak
  577 + \leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern
  578 + \@dotsep mu$}\hfill
  579 + \nobreak\hbox to\@pnumwidth{\hss #2}%
  580 + \fi\par
  581 + \penalty\@highpenalty \endgroup}
  582 +
  583 +\def\l@title#1#2{\addpenalty{-\@highpenalty}
  584 + \addvspace{8pt plus 1pt}
  585 + \@tempdima \z@
  586 + \begingroup
  587 + \parindent \z@ \rightskip \@tocrmarg
  588 + \advance\rightskip by 0pt plus 2cm
  589 + \parfillskip -\rightskip \pretolerance=10000
  590 + \leavevmode \advance\leftskip\@tempdima \hskip -\leftskip
  591 + #1\nobreak
  592 + \leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern
  593 + \@dotsep mu$}\hfill
  594 + \nobreak\hbox to\@pnumwidth{\hss #2}\par
  595 + \penalty\@highpenalty \endgroup}
  596 +
  597 +\def\l@author#1#2{\addpenalty{\@highpenalty}
  598 + \@tempdima=15\p@ %\z@
  599 + \begingroup
  600 + \parindent \z@ \rightskip \@tocrmarg
  601 + \advance\rightskip by 0pt plus 2cm
  602 + \pretolerance=10000
  603 + \leavevmode \advance\leftskip\@tempdima %\hskip -\leftskip
  604 + \textit{#1}\par
  605 + \penalty\@highpenalty \endgroup}
  606 +
  607 +\setcounter{tocdepth}{0}
  608 +\newdimen\tocchpnum
  609 +\newdimen\tocsecnum
  610 +\newdimen\tocsectotal
  611 +\newdimen\tocsubsecnum
  612 +\newdimen\tocsubsectotal
  613 +\newdimen\tocsubsubsecnum
  614 +\newdimen\tocsubsubsectotal
  615 +\newdimen\tocparanum
  616 +\newdimen\tocparatotal
  617 +\newdimen\tocsubparanum
  618 +\tocchpnum=\z@ % no chapter numbers
  619 +\tocsecnum=15\p@ % section 88. plus 2.222pt
  620 +\tocsubsecnum=23\p@ % subsection 88.8 plus 2.222pt
  621 +\tocsubsubsecnum=27\p@ % subsubsection 88.8.8 plus 1.444pt
  622 +\tocparanum=35\p@ % paragraph 88.8.8.8 plus 1.666pt
  623 +\tocsubparanum=43\p@ % subparagraph 88.8.8.8.8 plus 1.888pt
  624 +\def\calctocindent{%
  625 +\tocsectotal=\tocchpnum
  626 +\advance\tocsectotal by\tocsecnum
  627 +\tocsubsectotal=\tocsectotal
  628 +\advance\tocsubsectotal by\tocsubsecnum
  629 +\tocsubsubsectotal=\tocsubsectotal
  630 +\advance\tocsubsubsectotal by\tocsubsubsecnum
  631 +\tocparatotal=\tocsubsubsectotal
  632 +\advance\tocparatotal by\tocparanum}
  633 +\calctocindent
  634 +
  635 +\def\l@section{\@dottedtocline{1}{\tocchpnum}{\tocsecnum}}
  636 +\def\l@subsection{\@dottedtocline{2}{\tocsectotal}{\tocsubsecnum}}
  637 +\def\l@subsubsection{\@dottedtocline{3}{\tocsubsectotal}{\tocsubsubsecnum}}
  638 +\def\l@paragraph{\@dottedtocline{4}{\tocsubsubsectotal}{\tocparanum}}
  639 +\def\l@subparagraph{\@dottedtocline{5}{\tocparatotal}{\tocsubparanum}}
  640 +
  641 +\def\listoffigures{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
  642 + \fi\section*{\listfigurename\@mkboth{{\listfigurename}}{{\listfigurename}}}
  643 + \@starttoc{lof}\if@restonecol\twocolumn\fi}
  644 +\def\l@figure{\@dottedtocline{1}{0em}{1.5em}}
  645 +
  646 +\def\listoftables{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
  647 + \fi\section*{\listtablename\@mkboth{{\listtablename}}{{\listtablename}}}
  648 + \@starttoc{lot}\if@restonecol\twocolumn\fi}
  649 +\let\l@table\l@figure
  650 +
  651 +\renewcommand\listoffigures{%
  652 + \section*{\listfigurename
  653 + \@mkboth{\listfigurename}{\listfigurename}}%
  654 + \@starttoc{lof}%
  655 + }
  656 +
  657 +\renewcommand\listoftables{%
  658 + \section*{\listtablename
  659 + \@mkboth{\listtablename}{\listtablename}}%
  660 + \@starttoc{lot}%
  661 + }
  662 +
  663 +\ifx\oribibl\undefined
  664 +\ifx\citeauthoryear\undefined
  665 +\renewenvironment{thebibliography}[1]
  666 + {\section*{\refname}
  667 + \def\@biblabel##1{##1.}
  668 + \small
  669 + \list{\@biblabel{\@arabic\c@enumiv}}%
  670 + {\settowidth\labelwidth{\@biblabel{#1}}%
  671 + \leftmargin\labelwidth
  672 + \advance\leftmargin\labelsep
  673 + \if@openbib
  674 + \advance\leftmargin\bibindent
  675 + \itemindent -\bibindent
  676 + \listparindent \itemindent
  677 + \parsep \z@
  678 + \fi
  679 + \usecounter{enumiv}%
  680 + \let\p@enumiv\@empty
  681 + \renewcommand\theenumiv{\@arabic\c@enumiv}}%
  682 + \if@openbib
  683 + \renewcommand\newblock{\par}%
  684 + \else
  685 + \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}%
  686 + \fi
  687 + \sloppy\clubpenalty4000\widowpenalty4000%
  688 + \sfcode`\.=\@m}
  689 + {\def\@noitemerr
  690 + {\@latex@warning{Empty `thebibliography' environment}}%
  691 + \endlist}
  692 +\def\@lbibitem[#1]#2{\item[{[#1]}\hfill]\if@filesw
  693 + {\let\protect\noexpand\immediate
  694 + \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces}
  695 +\newcount\@tempcntc
  696 +\def\@citex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi
  697 + \@tempcnta\z@\@tempcntb\m@ne\def\@citea{}\@cite{\@for\@citeb:=#2\do
  698 + {\@ifundefined
  699 + {b@\@citeb}{\@citeo\@tempcntb\m@ne\@citea\def\@citea{,}{\bfseries
  700 + ?}\@warning
  701 + {Citation `\@citeb' on page \thepage \space undefined}}%
  702 + {\setbox\z@\hbox{\global\@tempcntc0\csname b@\@citeb\endcsname\relax}%
  703 + \ifnum\@tempcntc=\z@ \@citeo\@tempcntb\m@ne
  704 + \@citea\def\@citea{,}\hbox{\csname b@\@citeb\endcsname}%
  705 + \else
  706 + \advance\@tempcntb\@ne
  707 + \ifnum\@tempcntb=\@tempcntc
  708 + \else\advance\@tempcntb\m@ne\@citeo
  709 + \@tempcnta\@tempcntc\@tempcntb\@tempcntc\fi\fi}}\@citeo}{#1}}
  710 +\def\@citeo{\ifnum\@tempcnta>\@tempcntb\else
  711 + \@citea\def\@citea{,\,\hskip\z@skip}%
  712 + \ifnum\@tempcnta=\@tempcntb\the\@tempcnta\else
  713 + {\advance\@tempcnta\@ne\ifnum\@tempcnta=\@tempcntb \else
  714 + \def\@citea{--}\fi
  715 + \advance\@tempcnta\m@ne\the\@tempcnta\@citea\the\@tempcntb}\fi\fi}
  716 +\else
  717 +\renewenvironment{thebibliography}[1]
  718 + {\section*{\refname}
  719 + \small
  720 + \list{}%
  721 + {\settowidth\labelwidth{}%
  722 + \leftmargin\parindent
  723 + \itemindent=-\parindent
  724 + \labelsep=\z@
  725 + \if@openbib
  726 + \advance\leftmargin\bibindent
  727 + \itemindent -\bibindent
  728 + \listparindent \itemindent
  729 + \parsep \z@
  730 + \fi
  731 + \usecounter{enumiv}%
  732 + \let\p@enumiv\@empty
  733 + \renewcommand\theenumiv{}}%
  734 + \if@openbib
  735 + \renewcommand\newblock{\par}%
  736 + \else
  737 + \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}%
  738 + \fi
  739 + \sloppy\clubpenalty4000\widowpenalty4000%
  740 + \sfcode`\.=\@m}
  741 + {\def\@noitemerr
  742 + {\@latex@warning{Empty `thebibliography' environment}}%
  743 + \endlist}
  744 + \def\@cite#1{#1}%
  745 + \def\@lbibitem[#1]#2{\item[]\if@filesw
  746 + {\def\protect##1{\string ##1\space}\immediate
  747 + \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces}
  748 + \fi
  749 +\else
  750 +\@cons\@openbib@code{\noexpand\small}
  751 +\fi
  752 +
  753 +\def\idxquad{\hskip 10\p@}% space that divides entry from number
  754 +
  755 +\def\@idxitem{\par\hangindent 10\p@}
  756 +
  757 +\def\subitem{\par\setbox0=\hbox{--\enspace}% second order
  758 + \noindent\hangindent\wd0\box0}% index entry
  759 +
  760 +\def\subsubitem{\par\setbox0=\hbox{--\,--\enspace}% third
  761 + \noindent\hangindent\wd0\box0}% order index entry
  762 +
  763 +\def\indexspace{\par \vskip 10\p@ plus5\p@ minus3\p@\relax}
  764 +
  765 +\renewenvironment{theindex}
  766 + {\@mkboth{\indexname}{\indexname}%
  767 + \thispagestyle{empty}\parindent\z@
  768 + \parskip\z@ \@plus .3\p@\relax
  769 + \let\item\par
  770 + \def\,{\relax\ifmmode\mskip\thinmuskip
  771 + \else\hskip0.2em\ignorespaces\fi}%
  772 + \normalfont\small
  773 + \begin{multicols}{2}[\@makeschapterhead{\indexname}]%
  774 + }
  775 + {\end{multicols}}
  776 +
  777 +\renewcommand\footnoterule{%
  778 + \kern-3\p@
  779 + \hrule\@width 2truecm
  780 + \kern2.6\p@}
  781 + \newdimen\fnindent
  782 + \fnindent1em
  783 +\long\def\@makefntext#1{%
  784 + \parindent \fnindent%
  785 + \leftskip \fnindent%
  786 + \noindent
  787 + \llap{\hb@xt@1em{\hss\@makefnmark\ }}\ignorespaces#1}
  788 +
  789 +\long\def\@makecaption#1#2{%
  790 + \small
  791 + \vskip\abovecaptionskip
  792 + \sbox\@tempboxa{{\bfseries #1.} #2}%
  793 + \ifdim \wd\@tempboxa >\hsize
  794 + {\bfseries #1.} #2\par
  795 + \else
  796 + \global \@minipagefalse
  797 + \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
  798 + \fi
  799 + \vskip\belowcaptionskip}
  800 +
  801 +\def\fps@figure{htbp}
  802 +\def\fnum@figure{\figurename\thinspace\thefigure}
  803 +\def \@floatboxreset {%
  804 + \reset@font
  805 + \small
  806 + \@setnobreak
  807 + \@setminipage
  808 +}
  809 +\def\fps@table{htbp}
  810 +\def\fnum@table{\tablename~\thetable}
  811 +\renewenvironment{table}
  812 + {\setlength\abovecaptionskip{0\p@}%
  813 + \setlength\belowcaptionskip{10\p@}%
  814 + \@float{table}}
  815 + {\end@float}
  816 +\renewenvironment{table*}
  817 + {\setlength\abovecaptionskip{0\p@}%
  818 + \setlength\belowcaptionskip{10\p@}%
  819 + \@dblfloat{table}}
  820 + {\end@dblfloat}
  821 +
  822 +\long\def\@caption#1[#2]#3{\par\addcontentsline{\csname
  823 + ext@#1\endcsname}{#1}{\protect\numberline{\csname
  824 + the#1\endcsname}{\ignorespaces #2}}\begingroup
  825 + \@parboxrestore
  826 + \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
  827 + \endgroup}
  828 +
  829 +% LaTeX does not provide a command to enter the authors institute
  830 +% addresses. The \institute command is defined here.
  831 +
  832 +\newcounter{@inst}
  833 +\newcounter{@auth}
  834 +\newcounter{auco}
  835 +\newdimen\instindent
  836 +\newbox\authrun
  837 +\newtoks\authorrunning
  838 +\newtoks\tocauthor
  839 +\newbox\titrun
  840 +\newtoks\titlerunning
  841 +\newtoks\toctitle
  842 +
  843 +\def\clearheadinfo{\gdef\@author{No Author Given}%
  844 + \gdef\@title{No Title Given}%
  845 + \gdef\@subtitle{}%
  846 + \gdef\@institute{No Institute Given}%
  847 + \gdef\@thanks{}%
  848 + \global\titlerunning={}\global\authorrunning={}%
  849 + \global\toctitle={}\global\tocauthor={}}
  850 +
  851 +\def\institute#1{\gdef\@institute{#1}}
  852 +
  853 +\def\institutename{\par
  854 + \begingroup
  855 + \parskip=\z@
  856 + \parindent=\z@
  857 + \setcounter{@inst}{1}%
  858 + \def\and{\par\stepcounter{@inst}%
  859 + \noindent$^{\the@inst}$\enspace\ignorespaces}%
  860 + \setbox0=\vbox{\def\thanks##1{}\@institute}%
  861 + \ifnum\c@@inst=1\relax
  862 + \gdef\fnnstart{0}%
  863 + \else
  864 + \xdef\fnnstart{\c@@inst}%
  865 + \setcounter{@inst}{1}%
  866 + \noindent$^{\the@inst}$\enspace
  867 + \fi
  868 + \ignorespaces
  869 + \@institute\par
  870 + \endgroup}
  871 +
  872 +\def\@fnsymbol#1{\ensuremath{\ifcase#1\or\star\or{\star\star}\or
  873 + {\star\star\star}\or \dagger\or \ddagger\or
  874 + \mathchar "278\or \mathchar "27B\or \|\or **\or \dagger\dagger
  875 + \or \ddagger\ddagger \else\@ctrerr\fi}}
  876 +
  877 +\def\inst#1{\unskip$^{#1}$}
  878 +\def\fnmsep{\unskip$^,$}
  879 +\def\email#1{{\tt#1}}
  880 +\AtBeginDocument{\@ifundefined{url}{\def\url#1{#1}}{}%
  881 +\@ifpackageloaded{babel}{%
  882 +\@ifundefined{extrasenglish}{}{\addto\extrasenglish{\switcht@albion}}%
  883 +\@ifundefined{extrasfrenchb}{}{\addto\extrasfrenchb{\switcht@francais}}%
  884 +\@ifundefined{extrasgerman}{}{\addto\extrasgerman{\switcht@deutsch}}%
  885 +\@ifundefined{extrasngerman}{}{\addto\extrasngerman{\switcht@deutsch}}%
  886 +}{\switcht@@therlang}%
  887 +\providecommand{\keywords}[1]{\par\addvspace\baselineskip
  888 +\noindent\keywordname\enspace\ignorespaces#1}%
  889 +}
  890 +\def\homedir{\~{ }}
  891 +
  892 +\def\subtitle#1{\gdef\@subtitle{#1}}
  893 +\clearheadinfo
  894 +%
  895 +%%% to avoid hyperref warnings
  896 +\providecommand*{\toclevel@author}{999}
  897 +%%% to make title-entry parent of section-entries
  898 +\providecommand*{\toclevel@title}{0}
  899 +%
  900 +\renewcommand\maketitle{\newpage
  901 +\phantomsection
  902 + \refstepcounter{chapter}%
  903 + \stepcounter{section}%
  904 + \setcounter{section}{0}%
  905 + \setcounter{subsection}{0}%
  906 + \setcounter{figure}{0}
  907 + \setcounter{table}{0}
  908 + \setcounter{equation}{0}
  909 + \setcounter{footnote}{0}%
  910 + \begingroup
  911 + \parindent=\z@
  912 + \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
  913 + \if@twocolumn
  914 + \ifnum \col@number=\@ne
  915 + \@maketitle
  916 + \else
  917 + \twocolumn[\@maketitle]%
  918 + \fi
  919 + \else
  920 + \newpage
  921 + \global\@topnum\z@ % Prevents figures from going at top of page.
  922 + \@maketitle
  923 + \fi
  924 + \thispagestyle{empty}\@thanks
  925 +%
  926 + \def\\{\unskip\ \ignorespaces}\def\inst##1{\unskip{}}%
  927 + \def\thanks##1{\unskip{}}\def\fnmsep{\unskip}%
  928 + \instindent=\hsize
  929 + \advance\instindent by-\headlineindent
  930 + \if!\the\toctitle!\addcontentsline{toc}{title}{\@title}\else
  931 + \addcontentsline{toc}{title}{\the\toctitle}\fi
  932 + \if@runhead
  933 + \if!\the\titlerunning!\else
  934 + \edef\@title{\the\titlerunning}%
  935 + \fi
  936 + \global\setbox\titrun=\hbox{\small\rm\unboldmath\ignorespaces\@title}%
  937 + \ifdim\wd\titrun>\instindent
  938 + \typeout{Title too long for running head. Please supply}%
  939 + \typeout{a shorter form with \string\titlerunning\space prior to
  940 + \string\maketitle}%
  941 + \global\setbox\titrun=\hbox{\small\rm
  942 + Title Suppressed Due to Excessive Length}%
  943 + \fi
  944 + \xdef\@title{\copy\titrun}%
  945 + \fi
  946 +%
  947 + \if!\the\tocauthor!\relax
  948 + {\def\and{\noexpand\protect\noexpand\and}%
  949 + \protected@xdef\toc@uthor{\@author}}%
  950 + \else
  951 + \def\\{\noexpand\protect\noexpand\newline}%
  952 + \protected@xdef\scratch{\the\tocauthor}%
  953 + \protected@xdef\toc@uthor{\scratch}%
  954 + \fi
  955 + \addtocontents{toc}{\noexpand\protect\noexpand\authcount{\the\c@auco}}%
  956 + \addcontentsline{toc}{author}{\toc@uthor}%
  957 + \if@runhead
  958 + \if!\the\authorrunning!
  959 + \value{@inst}=\value{@auth}%
  960 + \setcounter{@auth}{1}%
  961 + \else
  962 + \edef\@author{\the\authorrunning}%
  963 + \fi
  964 + \global\setbox\authrun=\hbox{\small\unboldmath\@author\unskip}%
  965 + \ifdim\wd\authrun>\instindent
  966 + \typeout{Names of authors too long for running head. Please supply}%
  967 + \typeout{a shorter form with \string\authorrunning\space prior to
  968 + \string\maketitle}%
  969 + \global\setbox\authrun=\hbox{\small\rm
  970 + Authors Suppressed Due to Excessive Length}%
  971 + \fi
  972 + \xdef\@author{\copy\authrun}%
  973 + \markboth{\@author}{\@title}%
  974 + \fi
  975 + \endgroup
  976 + \setcounter{footnote}{\fnnstart}%
  977 + \clearheadinfo}
  978 +%
  979 +\def\@maketitle{\newpage
  980 + \markboth{}{}%
  981 + \def\lastand{\ifnum\value{@inst}=2\relax
  982 + \unskip{} \andname\
  983 + \else
  984 + \unskip \lastandname\
  985 + \fi}%
  986 + \def\and{\stepcounter{@auth}\relax
  987 + \ifnum\value{@auth}=\value{@inst}%
  988 + \lastand
  989 + \else
  990 + \unskip,
  991 + \fi}%
  992 + \begin{center}%
  993 + \let\newline\\
  994 + {\Large \bfseries\boldmath
  995 + \pretolerance=10000
  996 + \@title \par}\vskip .8cm
  997 +\if!\@subtitle!\else {\large \bfseries\boldmath
  998 + \vskip -.65cm
  999 + \pretolerance=10000
  1000 + \@subtitle \par}\vskip .8cm\fi
  1001 + \setbox0=\vbox{\setcounter{@auth}{1}\def\and{\stepcounter{@auth}}%
  1002 + \def\thanks##1{}\@author}%
  1003 + \global\value{@inst}=\value{@auth}%
  1004 + \global\value{auco}=\value{@auth}%
  1005 + \setcounter{@auth}{1}%
  1006 +{\lineskip .5em
  1007 +\noindent\ignorespaces
  1008 +\@author\vskip.35cm}
  1009 + {\small\institutename}
  1010 + \end{center}%
  1011 + }
  1012 +
  1013 +% definition of the "\spnewtheorem" command.
  1014 +%
  1015 +% Usage:
  1016 +%
  1017 +% \spnewtheorem{env_nam}{caption}[within]{cap_font}{body_font}
  1018 +% or \spnewtheorem{env_nam}[numbered_like]{caption}{cap_font}{body_font}
  1019 +% or \spnewtheorem*{env_nam}{caption}{cap_font}{body_font}
  1020 +%
  1021 +% New is "cap_font" and "body_font". It stands for
  1022 +% fontdefinition of the caption and the text itself.
  1023 +%
  1024 +% "\spnewtheorem*" gives a theorem without number.
  1025 +%
  1026 +% A defined spnewthoerem environment is used as described
  1027 +% by Lamport.
  1028 +%
  1029 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1030 +
  1031 +\def\@thmcountersep{}
  1032 +\def\@thmcounterend{.}
  1033 +
  1034 +\def\spnewtheorem{\@ifstar{\@sthm}{\@Sthm}}
  1035 +
  1036 +% definition of \spnewtheorem with number
  1037 +
  1038 +\def\@spnthm#1#2{%
  1039 + \@ifnextchar[{\@spxnthm{#1}{#2}}{\@spynthm{#1}{#2}}}
  1040 +\def\@Sthm#1{\@ifnextchar[{\@spothm{#1}}{\@spnthm{#1}}}
  1041 +
  1042 +\def\@spxnthm#1#2[#3]#4#5{\expandafter\@ifdefinable\csname #1\endcsname
  1043 + {\@definecounter{#1}\@addtoreset{#1}{#3}%
  1044 + \expandafter\xdef\csname the#1\endcsname{\expandafter\noexpand
  1045 + \csname the#3\endcsname \noexpand\@thmcountersep \@thmcounter{#1}}%
  1046 + \expandafter\xdef\csname #1name\endcsname{#2}%
  1047 + \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#4}{#5}}%
  1048 + \global\@namedef{end#1}{\@endtheorem}}}
  1049 +
  1050 +\def\@spynthm#1#2#3#4{\expandafter\@ifdefinable\csname #1\endcsname
  1051 + {\@definecounter{#1}%
  1052 + \expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}%
  1053 + \expandafter\xdef\csname #1name\endcsname{#2}%
  1054 + \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#3}{#4}}%
  1055 + \global\@namedef{end#1}{\@endtheorem}}}
  1056 +
  1057 +\def\@spothm#1[#2]#3#4#5{%
  1058 + \@ifundefined{c@#2}{\@latexerr{No theorem environment `#2' defined}\@eha}%
  1059 + {\expandafter\@ifdefinable\csname #1\endcsname
  1060 + {\newaliascnt{#1}{#2}%
  1061 + \expandafter\xdef\csname #1name\endcsname{#3}%
  1062 + \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#4}{#5}}%
  1063 + \global\@namedef{end#1}{\@endtheorem}}}}
  1064 +
  1065 +\def\@spthm#1#2#3#4{\topsep 7\p@ \@plus2\p@ \@minus4\p@
  1066 +\refstepcounter{#1}%
  1067 +\@ifnextchar[{\@spythm{#1}{#2}{#3}{#4}}{\@spxthm{#1}{#2}{#3}{#4}}}
  1068 +
  1069 +\def\@spxthm#1#2#3#4{\@spbegintheorem{#2}{\csname the#1\endcsname}{#3}{#4}%
  1070 + \ignorespaces}
  1071 +
  1072 +\def\@spythm#1#2#3#4[#5]{\@spopargbegintheorem{#2}{\csname
  1073 + the#1\endcsname}{#5}{#3}{#4}\ignorespaces}
  1074 +
  1075 +\def\@spbegintheorem#1#2#3#4{\trivlist
  1076 + \item[\hskip\labelsep{#3#1\ #2\@thmcounterend}]#4}
  1077 +
  1078 +\def\@spopargbegintheorem#1#2#3#4#5{\trivlist
  1079 + \item[\hskip\labelsep{#4#1\ #2}]{#4(#3)\@thmcounterend\ }#5}
  1080 +
  1081 +% definition of \spnewtheorem* without number
  1082 +
  1083 +\def\@sthm#1#2{\@Ynthm{#1}{#2}}
  1084 +
  1085 +\def\@Ynthm#1#2#3#4{\expandafter\@ifdefinable\csname #1\endcsname
  1086 + {\global\@namedef{#1}{\@Thm{\csname #1name\endcsname}{#3}{#4}}%
  1087 + \expandafter\xdef\csname #1name\endcsname{#2}%
  1088 + \global\@namedef{end#1}{\@endtheorem}}}
  1089 +
  1090 +\def\@Thm#1#2#3{\topsep 7\p@ \@plus2\p@ \@minus4\p@
  1091 +\@ifnextchar[{\@Ythm{#1}{#2}{#3}}{\@Xthm{#1}{#2}{#3}}}
  1092 +
  1093 +\def\@Xthm#1#2#3{\@Begintheorem{#1}{#2}{#3}\ignorespaces}
  1094 +
  1095 +\def\@Ythm#1#2#3[#4]{\@Opargbegintheorem{#1}
  1096 + {#4}{#2}{#3}\ignorespaces}
  1097 +
  1098 +\def\@Begintheorem#1#2#3{#3\trivlist
  1099 + \item[\hskip\labelsep{#2#1\@thmcounterend}]}
  1100 +
  1101 +\def\@Opargbegintheorem#1#2#3#4{#4\trivlist
  1102 + \item[\hskip\labelsep{#3#1}]{#3(#2)\@thmcounterend\ }}
  1103 +
  1104 +\if@envcntsect
  1105 + \def\@thmcountersep{.}
  1106 + \spnewtheorem{theorem}{Theorem}[section]{\bfseries}{\itshape}
  1107 +\else
  1108 + \spnewtheorem{theorem}{Theorem}{\bfseries}{\itshape}
  1109 + \if@envcntreset
  1110 + \@addtoreset{theorem}{section}
  1111 + \else
  1112 + \@addtoreset{theorem}{chapter}
  1113 + \fi
  1114 +\fi
  1115 +
  1116 +%definition of divers theorem environments
  1117 +\spnewtheorem*{claim}{Claim}{\itshape}{\rmfamily}
  1118 +\spnewtheorem*{proof}{Proof}{\itshape}{\rmfamily}
  1119 +\if@envcntsame % alle Umgebungen wie Theorem.
  1120 + \def\spn@wtheorem#1#2#3#4{\@spothm{#1}[theorem]{#2}{#3}{#4}}
  1121 +\else % alle Umgebungen mit eigenem Zaehler
  1122 + \if@envcntsect % mit section numeriert
  1123 + \def\spn@wtheorem#1#2#3#4{\@spxnthm{#1}{#2}[section]{#3}{#4}}
  1124 + \else % nicht mit section numeriert
  1125 + \if@envcntreset
  1126 + \def\spn@wtheorem#1#2#3#4{\@spynthm{#1}{#2}{#3}{#4}
  1127 + \@addtoreset{#1}{section}}
  1128 + \else
  1129 + \def\spn@wtheorem#1#2#3#4{\@spynthm{#1}{#2}{#3}{#4}
  1130 + \@addtoreset{#1}{chapter}}%
  1131 + \fi
  1132 + \fi
  1133 +\fi
  1134 +\spn@wtheorem{case}{Case}{\itshape}{\rmfamily}
  1135 +\spn@wtheorem{conjecture}{Conjecture}{\itshape}{\rmfamily}
  1136 +\spn@wtheorem{corollary}{Corollary}{\bfseries}{\itshape}
  1137 +\spn@wtheorem{definition}{Definition}{\bfseries}{\itshape}
  1138 +\spn@wtheorem{example}{Example}{\itshape}{\rmfamily}
  1139 +\spn@wtheorem{exercise}{Exercise}{\itshape}{\rmfamily}
  1140 +\spn@wtheorem{lemma}{Lemma}{\bfseries}{\itshape}
  1141 +\spn@wtheorem{note}{Note}{\itshape}{\rmfamily}
  1142 +\spn@wtheorem{problem}{Problem}{\itshape}{\rmfamily}
  1143 +\spn@wtheorem{property}{Property}{\itshape}{\rmfamily}
  1144 +\spn@wtheorem{proposition}{Proposition}{\bfseries}{\itshape}
  1145 +\spn@wtheorem{question}{Question}{\itshape}{\rmfamily}
  1146 +\spn@wtheorem{solution}{Solution}{\itshape}{\rmfamily}
  1147 +\spn@wtheorem{remark}{Remark}{\itshape}{\rmfamily}
  1148 +
  1149 +\def\@takefromreset#1#2{%
  1150 + \def\@tempa{#1}%
  1151 + \let\@tempd\@elt
  1152 + \def\@elt##1{%
  1153 + \def\@tempb{##1}%
  1154 + \ifx\@tempa\@tempb\else
  1155 + \@addtoreset{##1}{#2}%
  1156 + \fi}%
  1157 + \expandafter\expandafter\let\expandafter\@tempc\csname cl@#2\endcsname
  1158 + \expandafter\def\csname cl@#2\endcsname{}%
  1159 + \@tempc
  1160 + \let\@elt\@tempd}
  1161 +
  1162 +\def\theopargself{\def\@spopargbegintheorem##1##2##3##4##5{\trivlist
  1163 + \item[\hskip\labelsep{##4##1\ ##2}]{##4##3\@thmcounterend\ }##5}
  1164 + \def\@Opargbegintheorem##1##2##3##4{##4\trivlist
  1165 + \item[\hskip\labelsep{##3##1}]{##3##2\@thmcounterend\ }}
  1166 + }
  1167 +
  1168 +\renewenvironment{abstract}{%
  1169 + \list{}{\advance\topsep by0.35cm\relax\small
  1170 + \leftmargin=1cm
  1171 + \labelwidth=\z@
  1172 + \listparindent=\z@
  1173 + \itemindent\listparindent
  1174 + \rightmargin\leftmargin}\item[\hskip\labelsep
  1175 + \bfseries\abstractname]}
  1176 + {\endlist}
  1177 +
  1178 +\newdimen\headlineindent % dimension for space between
  1179 +\headlineindent=1.166cm % number and text of headings.
  1180 +
  1181 +\def\ps@headings{\let\@mkboth\@gobbletwo
  1182 + \let\@oddfoot\@empty\let\@evenfoot\@empty
  1183 + \def\@evenhead{\normalfont\small\rlap{\thepage}\hspace{\headlineindent}%
  1184 + \leftmark\hfil}
  1185 + \def\@oddhead{\normalfont\small\hfil\rightmark\hspace{\headlineindent}%
  1186 + \llap{\thepage}}
  1187 + \def\chaptermark##1{}%
  1188 + \def\sectionmark##1{}%
  1189 + \def\subsectionmark##1{}}
  1190 +
  1191 +\def\ps@titlepage{\let\@mkboth\@gobbletwo
  1192 + \let\@oddfoot\@empty\let\@evenfoot\@empty
  1193 + \def\@evenhead{\normalfont\small\rlap{\thepage}\hspace{\headlineindent}%
  1194 + \hfil}
  1195 + \def\@oddhead{\normalfont\small\hfil\hspace{\headlineindent}%
  1196 + \llap{\thepage}}
  1197 + \def\chaptermark##1{}%
  1198 + \def\sectionmark##1{}%
  1199 + \def\subsectionmark##1{}}
  1200 +
  1201 +\if@runhead\ps@headings\else
  1202 +\ps@empty\fi
  1203 +
  1204 +\setlength\arraycolsep{1.4\p@}
  1205 +\setlength\tabcolsep{1.4\p@}
  1206 +
  1207 +\endinput
  1208 +%end of file llncs.cls
oss2018/llncsdoc.sty 0 → 100644
@@ -0,0 +1,42 @@ @@ -0,0 +1,42 @@
  1 +% This is LLNCSDOC.STY the modification of the
  2 +% LLNCS class file for the documentation of
  3 +% the class itself.
  4 +%
  5 +\def\AmS{{\protect\usefont{OMS}{cmsy}{m}{n}%
  6 + A\kern-.1667em\lower.5ex\hbox{M}\kern-.125emS}}
  7 +\def\AmSTeX{{\protect\AmS-\protect\TeX}}
  8 +%
  9 +\def\ps@myheadings{\let\@mkboth\@gobbletwo
  10 +\def\@oddhead{\hbox{}\hfil\small\rm\rightmark
  11 +\qquad\thepage}%
  12 +\def\@oddfoot{}\def\@evenhead{\small\rm\thepage\qquad
  13 +\leftmark\hfil}%
  14 +\def\@evenfoot{}\def\sectionmark##1{}\def\subsectionmark##1{}}
  15 +\ps@myheadings
  16 +%
  17 +\setcounter{tocdepth}{2}
  18 +%
  19 +\renewcommand{\labelitemi}{--}
  20 +\newenvironment{alpherate}%
  21 +{\renewcommand{\labelenumi}{\alph{enumi})}\begin{enumerate}}%
  22 +{\end{enumerate}\renewcommand{\labelenumi}{enumi}}
  23 +%
  24 +\def\bibauthoryear{\begingroup
  25 +\def\thebibliography##1{\section*{References}%
  26 + \small\list{}{\settowidth\labelwidth{}\leftmargin\parindent
  27 + \itemindent=-\parindent
  28 + \labelsep=\z@
  29 + \usecounter{enumi}}%
  30 + \def\newblock{\hskip .11em plus .33em minus -.07em}%
  31 + \sloppy
  32 + \sfcode`\.=1000\relax}%
  33 + \def\@cite##1{##1}%
  34 + \def\@lbibitem[##1]##2{\item[]\if@filesw
  35 + {\def\protect####1{\string ####1\space}\immediate
  36 + \write\@auxout{\string\bibcite{##2}{##1}}}\fi\ignorespaces}%
  37 +\begin{thebibliography}{}
  38 +\bibitem[1982]{clar:eke3} Clarke, F., Ekeland, I.: Nonlinear
  39 +oscillations and boundary-value problems for Hamiltonian systems.
  40 +Arch. Rat. Mech. Anal. 78, 315--333 (1982)
  41 +\end{thebibliography}
  42 +\endgroup}
oss2018/spb-oss-2018.bib 0 → 100644
@@ -0,0 +1,235 @@ @@ -0,0 +1,235 @@
  1 +@article{anthopoulos2016egovernment,
  2 + title={Why e-government projects fail? An analysis of the Healthcare. gov website},
  3 + author={Anthopoulos, Leonidas and Reddick, Christopher G and Giannakidou, Irene and Mavridis, Nikolaos},
  4 + journal={Government Information Quarterly},
  5 + volume={33},
  6 + pages={161--173},
  7 + year={2016},
  8 + publisher={Elsevier}
  9 +}
  10 +
  11 +@inproceedings{sandberg2017iacollaboration,
  12 + author = {Sandberg, Anna B\"{o}rjesson and Crnkovic, Ivica},
  13 + title = {Meeting Industry: Academia Research Collaboration Challenges with Agile Methodologies},
  14 + booktitle = {Proceedings of the 39th International Conference on Software Engineering: Software Engineering in Practice Track},
  15 + series = {ICSE-SEIP '17},
  16 + year = {2017},
  17 + location = {Buenos Aires, Argentina},
  18 + pages = {73--82},
  19 + publisher = {IEEE Press},
  20 +}
  21 +
  22 +
  23 +@article{goldfinch2007pessimism,
  24 + author={Shaun Goldfinch},
  25 + journal={Public Administration Review},
  26 + pages={917-929},
  27 + publisher={[American Society for Public Administration, Wiley]},
  28 + title={Pessimism, Computer Failure, and Information Systems Development in the Public Sector},
  29 + volume={67},
  30 + year={2007}
  31 +}
  32 +
  33 +@article{highsmith2001agileSoftwareDevelopment,
  34 + title={Agile software development: The business of innovation},
  35 + author={Highsmith, Jim and Cockburn, Alistair},
  36 + journal={Computer},
  37 + volume={34},
  38 + pages={120--127},
  39 + year={2001},
  40 + publisher={IEEE}
  41 +}
  42 +
  43 +@inproceedings{maurer2002onTheProductivityOfAgile,
  44 + title={On the productivity of agile software practices: An industrial case study},
  45 + author={Maurer, Frank and Martel, Sebastien},
  46 + booktitle={Proceedings of the International Workshop on Global Software Development},
  47 + year={2002}
  48 +}
  49 +
  50 +@article{mcilroy1968software,
  51 + title={Software Engineering: Report on a conference sponsored by the NATO Science Committee},
  52 + author={McIlroy, MD},
  53 + year={1968},
  54 + publisher={NATO Scientific Affairs Division}
  55 +}
  56 +
  57 +@inproceedings{nguyen2011anAnalysisOfTrends,
  58 + title={An analysis of trends in productivity and cost drivers over years},
  59 + author={Nguyen, Vu and Huang, LiGuo and Boehm, Barry},
  60 + booktitle={Proceedings of the 7th International Conference on Predictive Models in Software Engineering},
  61 + pages={3},
  62 + year={2011},
  63 + organization={ACM}
  64 +}
  65 +
  66 +@article{awad2005comparisonAgileTrad,
  67 + title={A comparison between agile and traditional software development methodologies},
  68 + author={Awad, MA},
  69 + journal={University of Western Australia},
  70 + year={2005}
  71 +}
  72 +
  73 +@article{fowler2001newMethod,
  74 + title={The new methodology},
  75 + author={Fowler, Martin},
  76 + journal={Wuhan University Journal of Natural Sciences},
  77 + volume={6},
  78 + pages={12--24},
  79 + year={2001},
  80 + publisher={Springer}
  81 +}
  82 +
  83 +@article{cockburn2001peopleFactor,
  84 + title={Agile software development, the people factor},
  85 + author={Cockburn, Alistair and Highsmith, Jim},
  86 + journal={Computer},
  87 + volume={34},
  88 + pages={131--133},
  89 + year={2001},
  90 + publisher={IEEE}
  91 +}
  92 +
  93 +@book{highsmith2002agileEco,
  94 + title={Agile software development ecosystems},
  95 + author={Highsmith, James A},
  96 + volume={13},
  97 + year={2002},
  98 + publisher={Addison-Wesley Professional}
  99 +}
  100 +
  101 +@article{nerur2015challenges,
  102 + author = {Nerur, Sridhar and Mahapatra, RadhaKanta and Mangalaraj, George},
  103 + title = {Challenges of Migrating to Agile Methodologies},
  104 + journal = {Commun. ACM},
  105 + volume = {48},
  106 + number = {5},
  107 + year = {2005},
  108 + pages = {72--78},
  109 + publisher = {ACM},
  110 +}
  111 +
  112 +@inproceedings{meirelles2017spb,
  113 + author = {Meirelles, Paulo and Wen, Melissa and Terceiro, Antonio and Siqueira, Rodrigo and Kanashiro, Lucas and Neri, Hilmer},
  114 + title = {Brazilian Public Software Portal: An Integrated Platform for Collaborative Development},
  115 + booktitle = {Proceedings of the 13th International Symposium on Open Collaboration},
  116 + series = {OpenSym '17},
  117 + year = {2017},
  118 + location = {Galway, Ireland},
  119 + pages = {16:1--16:10},
  120 + publisher = {ACM},
  121 + keywords = {Free Software, Management Team, Software Integration}
  122 +}
  123 +
  124 +@inproceedings{impactOfOrganizationalCulture,
  125 + title={The impact of organizational culture on agile method use},
  126 + author={Strode, Diane E and Huff, Sid L and Tretiakov, Alexei},
  127 + booktitle={System Sciences, 2009. HICSS'09. 42nd Hawaii International Conference on},
  128 + pages={1--9},
  129 + year={2009},
  130 + organization={IEEE}
  131 +}
  132 +
  133 +@article{dybaa2008empirical,
  134 + title={Empirical studies of agile software development: A systematic review},
  135 + author={Dyb{\aa}, Tore and Dings{\o}yr, Torgeir},
  136 + journal={Information and software technology},
  137 + volume={50},
  138 + pages={833--859},
  139 + year={2008},
  140 + publisher={Elsevier}
  141 +}
  142 +
  143 +@inproceedings{melo2013agileBr,
  144 + author = {Melo, Claudia and Santos, Viviane and Katayama, Eduardo and Corbucci, Hugo and Prikladnicki, Rafael and Goldman, Alfredo and Kon, Fabio},
  145 + year = {2013},
  146 + title = {The evolution of agile software development in Brazil},
  147 + volume = {19},
  148 + booktitle = {Journal of the Brazilian Computer Society}
  149 +}
  150 +
  151 +@inproceedings{alleman2003making,
  152 + title={Making agile development work in a government contracting environment-measuring velocity with earned value},
  153 + author={Alleman, Glen B and Henderson, Michael and Seggelke, Ray},
  154 + booktitle={Agile Development Conference, 2003. ADC 2003. Proceedings of the},
  155 + pages={114--119},
  156 + year={2003},
  157 + organization={IEEE}
  158 +}
  159 +
  160 +@inproceedings{anderson2005stretching,
  161 + title={Stretching agile to fit CMMI level 3-the story of creating MSF for CMMI/spl reg/process improvement at Microsoft corporation},
  162 + author={Anderson, David J},
  163 + booktitle={Agile Conference, 2005. Proceedings},
  164 + pages={193--201},
  165 + year={2005},
  166 + organization={IEEE}
  167 +}
  168 +
  169 +@article{cho2011gap,
  170 + author = {Chookittikul, Wajee and Kourik, Janet and E. Maher, Peter},
  171 + year = {2011},
  172 + pages = {239-244},
  173 + title = {Reducing the Gap between Academia and Industry: The Case for Agile Methods in Thailand},
  174 + booktitle = {Proceedings of the 2011 Eighth International Conference on Information Technology: New Generations}
  175 +}
  176 +
  177 +@ARTICLE{siqueira2018cd,
  178 +author={R. Siqueira and D. Camarinha and M. Wen and P. Meirelles and F. Kon},
  179 +journal={IEEE Software},
  180 +title={Continuous Delivery: Building Trust in a Large-scale, Complex Government Organization},
  181 +year={2018},
  182 +volume={PP},
  183 +number={99},
  184 +pages={1-1},
  185 +keywords={Buildings;Computer science;Government;Object recognition;Pipelines;Portals;Software;applications;computing methodologies;government;pattern recognition;soft;software;software engineering;software engineering software;software release management and delivery configuration management},
  186 +doi={10.1109/MS.2018.111095426},
  187 +ISSN={0740-7459},
  188 +month={},}
  189 +
  190 +@inproceedings{capiluppi,
  191 + title={Characteristics of open source projects},
  192 + author={Capiluppi, Andrea and Lago, Patricia and Morisio, Maurizio},
  193 + booktitle={Software Maintenance and Reengineering, 2003. Proceedings. Seventh European Conference on},
  194 + pages={317--327},
  195 + year={2003},
  196 + organization={IEEE}
  197 +}
  198 +
  199 +@inproceedings{warsta,
  200 + title={Is open source software development essentially an agile method},
  201 + author={Warsta, Juhani and Abrahamsson, Pekka},
  202 + booktitle={Proceedings of the 3rd Workshop on Open Source Software Engineering},
  203 + pages={143--147},
  204 + year={2003}
  205 +}
  206 +
  207 +@article{beck,
  208 + title={Manifesto for Agile Software Development. Agile Alliance (2001)},
  209 + author={Beck, Kent and Beedle, M and Bennekum, A and others},
  210 + journal={Retrieved June},
  211 + volume={14},
  212 + year={2010}
  213 +}
  214 +
  215 +@article{raymond,
  216 + title={The cathedral and the bazaar},
  217 + author={Raymond, Eric},
  218 + journal={Philosophy \& Technology},
  219 + volume={12},
  220 + number={3},
  221 + pages={23},
  222 + year={1999},
  223 + publisher={Springer}
  224 +}
  225 +
  226 +@incollection{booch2003,
  227 +title = "Collaborative Development Environments",
  228 +series = "Advances in Computers",
  229 +publisher = "Elsevier",
  230 +volume = "59",
  231 +pages = "1 - 27",
  232 +year = "2003",
  233 +issn = "0065-2458",
  234 +author = "Grady Booch and Alan W. Brown"
  235 +}
oss2018/spb-oss-2018.tex 0 → 100644
@@ -0,0 +1,50 @@ @@ -0,0 +1,50 @@
  1 +
  2 +\documentclass{llncs}
  3 +\usepackage[table,xcdraw]{xcolor}
  4 +\usepackage{llncsdoc}
  5 +\usepackage{graphicx,url}
  6 +\usepackage[utf8]{inputenc}
  7 +\usepackage{float}
  8 +\usepackage{setspace}
  9 +\usepackage{hyphenat}
  10 +\usepackage{tabularx}
  11 +\usepackage{cite}
  12 +\usepackage{hyperref}
  13 +\usepackage{comment}
  14 +\usepackage{todonotes}
  15 +\usepackage{colortbl}
  16 +%------------------------------------------------------------------------------
  17 +
  18 +\begin{document}
  19 +\sloppy
  20 +\title{FLOSS Project Management in Government-Academia Collaboration}
  21 +%\subtitle{A three-year empirical study from the evolution of an open source government platform}
  22 +
  23 +\titlerunning{OSS in Gov-Academia Collab}
  24 +
  25 +\author{Melissa Wen\inst{1}, Paulo Meirelles\inst{1,2}, Rodrigo Siqueira\inst{1}, Fabio Kon\inst{1}}
  26 +
  27 +\authorrunning{Wen et al.}
  28 +
  29 +\institute{FLOSS Competence Center -- University of S\~ao Paulo \\
  30 + \texttt{\{wen,siqueira,fabio.kon\}@ime.usp.br}
  31 +\and UnB Faculty in Gama -- University of Bras\'ilia\\
  32 + \texttt{paulormm@unb.br}
  33 +}
  34 +
  35 +\maketitle
  36 +
  37 +%------------------------------------------------------------------------------
  38 +
  39 +\input{content/00-abstract}
  40 +\input{content/01-introduction}
  41 +\input{content/02-relatedwork}
  42 +\input{content/03-methods}
  43 +\input{content/04-results}
  44 +\input{content/05-discussion}
  45 +\input{content/06-conclusion}
  46 +
  47 +\bibliographystyle{splncs03}
  48 +\bibliography{spb-oss-2018}
  49 +
  50 +\end{document}
oss2018/splncs03.bst 0 → 100644
@@ -0,0 +1,1519 @@ @@ -0,0 +1,1519 @@
  1 +%% BibTeX bibliography style `splncs03'
  2 +%%
  3 +%% BibTeX bibliography style for use with numbered references in
  4 +%% Springer Verlag's "Lecture Notes in Computer Science" series.
  5 +%% (See Springer's documentation for llncs.cls for
  6 +%% more details of the suggested reference format.) Note that this
  7 +%% file will not work for author-year style citations.
  8 +%%
  9 +%% Use \documentclass{llncs} and \bibliographystyle{splncs03}, and cite
  10 +%% a reference with (e.g.) \cite{smith77} to get a "[1]" in the text.
  11 +%%
  12 +%% This file comes to you courtesy of Maurizio "Titto" Patrignani of
  13 +%% Dipartimento di Informatica e Automazione Universita' Roma Tre
  14 +%%
  15 +%% ================================================================================================
  16 +%% This was file `titto-lncs-02.bst' produced on Wed Apr 1, 2009
  17 +%% Edited by hand by titto based on `titto-lncs-01.bst' (see below)
  18 +%%
  19 +%% CHANGES (with respect to titto-lncs-01.bst):
  20 +%% - Removed the call to \urlprefix (thus no "URL" string is added to the output)
  21 +%% ================================================================================================
  22 +%% This was file `titto-lncs-01.bst' produced on Fri Aug 22, 2008
  23 +%% Edited by hand by titto based on `titto.bst' (see below)
  24 +%%
  25 +%% CHANGES (with respect to titto.bst):
  26 +%% - Removed the "capitalize" command for editors string "(eds.)" and "(ed.)"
  27 +%% - Introduced the functions titto.bbl.pages and titto.bbl.page for journal pages (without "pp.")
  28 +%% - Added a new.sentence command to separate with a dot booktitle and series in the inproceedings
  29 +%% - Commented all new.block commands before urls and notes (to separate them with a comma)
  30 +%% - Introduced the functions titto.bbl.volume for handling journal volumes (without "vol." label)
  31 +%% - Used for editors the same name conventions used for authors (see function format.in.ed.booktitle)
  32 +%% - Removed a \newblock to avoid long spaces between title and "In: ..."
  33 +%% - Added function titto.space.prefix to add a space instead of "~" after the (removed) "vol." label
  34 +%% ================================================================================================
  35 +%% This was file `titto.bst',
  36 +%% generated with the docstrip utility.
  37 +%%
  38 +%% The original source files were:
  39 +%%
  40 +%% merlin.mbs (with options: `vonx,nm-rvvc,yr-par,jttl-rm,volp-com,jwdpg,jwdvol,numser,ser-vol,jnm-x,btit-rm,bt-rm,edparxc,bkedcap,au-col,in-col,fin-bare,pp,ed,abr,mth-bare,xedn,jabr,and-com,and-com-ed,xand,url,url-blk,em-x,nfss,')
  41 +%% ----------------------------------------
  42 +%% *** Tentative .bst file for Springer LNCS ***
  43 +%%
  44 +%% Copyright 1994-2007 Patrick W Daly
  45 + % ===============================================================
  46 + % IMPORTANT NOTICE:
  47 + % This bibliographic style (bst) file has been generated from one or
  48 + % more master bibliographic style (mbs) files, listed above.
  49 + %
  50 + % This generated file can be redistributed and/or modified under the terms
  51 + % of the LaTeX Project Public License Distributed from CTAN
  52 + % archives in directory macros/latex/base/lppl.txt; either
  53 + % version 1 of the License, or any later version.
  54 + % ===============================================================
  55 + % Name and version information of the main mbs file:
  56 + % \ProvidesFile{merlin.mbs}[2007/04/24 4.20 (PWD, AO, DPC)]
  57 + % For use with BibTeX version 0.99a or later
  58 + %-------------------------------------------------------------------
  59 + % This bibliography style file is intended for texts in ENGLISH
  60 + % This is a numerical citation style, and as such is standard LaTeX.
  61 + % It requires no extra package to interface to the main text.
  62 + % The form of the \bibitem entries is
  63 + % \bibitem{key}...
  64 + % Usage of \cite is as follows:
  65 + % \cite{key} ==>> [#]
  66 + % \cite[chap. 2]{key} ==>> [#, chap. 2]
  67 + % where # is a number determined by the ordering in the reference list.
  68 + % The order in the reference list is alphabetical by authors.
  69 + %---------------------------------------------------------------------
  70 +
  71 +ENTRY
  72 + { address
  73 + author
  74 + booktitle
  75 + chapter
  76 + edition
  77 + editor
  78 + eid
  79 + howpublished
  80 + institution
  81 + journal
  82 + key
  83 + month
  84 + note
  85 + number
  86 + organization
  87 + pages
  88 + publisher
  89 + school
  90 + series
  91 + title
  92 + type
  93 + url
  94 + volume
  95 + year
  96 + }
  97 + {}
  98 + { label }
  99 +INTEGERS { output.state before.all mid.sentence after.sentence after.block }
  100 +FUNCTION {init.state.consts}
  101 +{ #0 'before.all :=
  102 + #1 'mid.sentence :=
  103 + #2 'after.sentence :=
  104 + #3 'after.block :=
  105 +}
  106 +STRINGS { s t}
  107 +FUNCTION {output.nonnull}
  108 +{ 's :=
  109 + output.state mid.sentence =
  110 + { ", " * write$ }
  111 + { output.state after.block =
  112 + { add.period$ write$
  113 +% newline$
  114 +% "\newblock " write$ % removed for titto-lncs-01
  115 + " " write$ % to avoid long spaces between title and "In: ..."
  116 + }
  117 + { output.state before.all =
  118 + 'write$
  119 + { add.period$ " " * write$ }
  120 + if$
  121 + }
  122 + if$
  123 + mid.sentence 'output.state :=
  124 + }
  125 + if$
  126 + s
  127 +}
  128 +FUNCTION {output}
  129 +{ duplicate$ empty$
  130 + 'pop$
  131 + 'output.nonnull
  132 + if$
  133 +}
  134 +FUNCTION {output.check}
  135 +{ 't :=
  136 + duplicate$ empty$
  137 + { pop$ "empty " t * " in " * cite$ * warning$ }
  138 + 'output.nonnull
  139 + if$
  140 +}
  141 +FUNCTION {fin.entry}
  142 +{ duplicate$ empty$
  143 + 'pop$
  144 + 'write$
  145 + if$
  146 + newline$
  147 +}
  148 +
  149 +FUNCTION {new.block}
  150 +{ output.state before.all =
  151 + 'skip$
  152 + { after.block 'output.state := }
  153 + if$
  154 +}
  155 +FUNCTION {new.sentence}
  156 +{ output.state after.block =
  157 + 'skip$
  158 + { output.state before.all =
  159 + 'skip$
  160 + { after.sentence 'output.state := }
  161 + if$
  162 + }
  163 + if$
  164 +}
  165 +FUNCTION {add.blank}
  166 +{ " " * before.all 'output.state :=
  167 +}
  168 +
  169 +
  170 +FUNCTION {add.colon}
  171 +{ duplicate$ empty$
  172 + 'skip$
  173 + { ":" * add.blank }
  174 + if$
  175 +}
  176 +
  177 +FUNCTION {date.block}
  178 +{
  179 + new.block
  180 +}
  181 +
  182 +FUNCTION {not}
  183 +{ { #0 }
  184 + { #1 }
  185 + if$
  186 +}
  187 +FUNCTION {and}
  188 +{ 'skip$
  189 + { pop$ #0 }
  190 + if$
  191 +}
  192 +FUNCTION {or}
  193 +{ { pop$ #1 }
  194 + 'skip$
  195 + if$
  196 +}
  197 +STRINGS {z}
  198 +FUNCTION {remove.dots}
  199 +{ 'z :=
  200 + ""
  201 + { z empty$ not }
  202 + { z #1 #1 substring$
  203 + z #2 global.max$ substring$ 'z :=
  204 + duplicate$ "." = 'pop$
  205 + { * }
  206 + if$
  207 + }
  208 + while$
  209 +}
  210 +FUNCTION {new.block.checka}
  211 +{ empty$
  212 + 'skip$
  213 + 'new.block
  214 + if$
  215 +}
  216 +FUNCTION {new.block.checkb}
  217 +{ empty$
  218 + swap$ empty$
  219 + and
  220 + 'skip$
  221 + 'new.block
  222 + if$
  223 +}
  224 +FUNCTION {new.sentence.checka}
  225 +{ empty$
  226 + 'skip$
  227 + 'new.sentence
  228 + if$
  229 +}
  230 +FUNCTION {new.sentence.checkb}
  231 +{ empty$
  232 + swap$ empty$
  233 + and
  234 + 'skip$
  235 + 'new.sentence
  236 + if$
  237 +}
  238 +FUNCTION {field.or.null}
  239 +{ duplicate$ empty$
  240 + { pop$ "" }
  241 + 'skip$
  242 + if$
  243 +}
  244 +FUNCTION {emphasize}
  245 +{ skip$ }
  246 +FUNCTION {tie.or.space.prefix}
  247 +{ duplicate$ text.length$ #3 <
  248 + { "~" }
  249 + { " " }
  250 + if$
  251 + swap$
  252 +}
  253 +FUNCTION {titto.space.prefix} % always introduce a space
  254 +{ duplicate$ text.length$ #3 <
  255 + { " " }
  256 + { " " }
  257 + if$
  258 + swap$
  259 +}
  260 +
  261 +
  262 +FUNCTION {capitalize}
  263 +{ "u" change.case$ "t" change.case$ }
  264 +
  265 +FUNCTION {space.word}
  266 +{ " " swap$ * " " * }
  267 + % Here are the language-specific definitions for explicit words.
  268 + % Each function has a name bbl.xxx where xxx is the English word.
  269 + % The language selected here is ENGLISH
  270 +FUNCTION {bbl.and}
  271 +{ "and"}
  272 +
  273 +FUNCTION {bbl.etal}
  274 +{ "et~al." }
  275 +
  276 +FUNCTION {bbl.editors}
  277 +{ "eds." }
  278 +
  279 +FUNCTION {bbl.editor}
  280 +{ "ed." }
  281 +
  282 +FUNCTION {bbl.edby}
  283 +{ "edited by" }
  284 +
  285 +FUNCTION {bbl.edition}
  286 +{ "edn." }
  287 +
  288 +FUNCTION {bbl.volume}
  289 +{ "vol." }
  290 +
  291 +FUNCTION {titto.bbl.volume} % for handling journals
  292 +{ "" }
  293 +
  294 +FUNCTION {bbl.of}
  295 +{ "of" }
  296 +
  297 +FUNCTION {bbl.number}
  298 +{ "no." }
  299 +
  300 +FUNCTION {bbl.nr}
  301 +{ "no." }
  302 +
  303 +FUNCTION {bbl.in}
  304 +{ "in" }
  305 +
  306 +FUNCTION {bbl.pages}
  307 +{ "pp." }
  308 +
  309 +FUNCTION {bbl.page}
  310 +{ "p." }
  311 +
  312 +FUNCTION {titto.bbl.pages} % for journals
  313 +{ "" }
  314 +
  315 +FUNCTION {titto.bbl.page} % for journals
  316 +{ "" }
  317 +
  318 +FUNCTION {bbl.chapter}
  319 +{ "chap." }
  320 +
  321 +FUNCTION {bbl.techrep}
  322 +{ "Tech. Rep." }
  323 +
  324 +FUNCTION {bbl.mthesis}
  325 +{ "Master's thesis" }
  326 +
  327 +FUNCTION {bbl.phdthesis}
  328 +{ "Ph.D. thesis" }
  329 +
  330 +MACRO {jan} {"Jan."}
  331 +
  332 +MACRO {feb} {"Feb."}
  333 +
  334 +MACRO {mar} {"Mar."}
  335 +
  336 +MACRO {apr} {"Apr."}
  337 +
  338 +MACRO {may} {"May"}
  339 +
  340 +MACRO {jun} {"Jun."}
  341 +
  342 +MACRO {jul} {"Jul."}
  343 +
  344 +MACRO {aug} {"Aug."}
  345 +
  346 +MACRO {sep} {"Sep."}
  347 +
  348 +MACRO {oct} {"Oct."}
  349 +
  350 +MACRO {nov} {"Nov."}
  351 +
  352 +MACRO {dec} {"Dec."}
  353 +
  354 +MACRO {acmcs} {"ACM Comput. Surv."}
  355 +
  356 +MACRO {acta} {"Acta Inf."}
  357 +
  358 +MACRO {cacm} {"Commun. ACM"}
  359 +
  360 +MACRO {ibmjrd} {"IBM J. Res. Dev."}
  361 +
  362 +MACRO {ibmsj} {"IBM Syst.~J."}
  363 +
  364 +MACRO {ieeese} {"IEEE Trans. Software Eng."}
  365 +
  366 +MACRO {ieeetc} {"IEEE Trans. Comput."}
  367 +
  368 +MACRO {ieeetcad}
  369 + {"IEEE Trans. Comput. Aid. Des."}
  370 +
  371 +MACRO {ipl} {"Inf. Process. Lett."}
  372 +
  373 +MACRO {jacm} {"J.~ACM"}
  374 +
  375 +MACRO {jcss} {"J.~Comput. Syst. Sci."}
  376 +
  377 +MACRO {scp} {"Sci. Comput. Program."}
  378 +
  379 +MACRO {sicomp} {"SIAM J. Comput."}
  380 +
  381 +MACRO {tocs} {"ACM Trans. Comput. Syst."}
  382 +
  383 +MACRO {tods} {"ACM Trans. Database Syst."}
  384 +
  385 +MACRO {tog} {"ACM Trans. Graphic."}
  386 +
  387 +MACRO {toms} {"ACM Trans. Math. Software"}
  388 +
  389 +MACRO {toois} {"ACM Trans. Office Inf. Syst."}
  390 +
  391 +MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."}
  392 +
  393 +MACRO {tcs} {"Theor. Comput. Sci."}
  394 +
  395 +FUNCTION {bibinfo.check}
  396 +{ swap$
  397 + duplicate$ missing$
  398 + {
  399 + pop$ pop$
  400 + ""
  401 + }
  402 + { duplicate$ empty$
  403 + {
  404 + swap$ pop$
  405 + }
  406 + { swap$
  407 + pop$
  408 + }
  409 + if$
  410 + }
  411 + if$
  412 +}
  413 +FUNCTION {bibinfo.warn}
  414 +{ swap$
  415 + duplicate$ missing$
  416 + {
  417 + swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
  418 + ""
  419 + }
  420 + { duplicate$ empty$
  421 + {
  422 + swap$ "empty " swap$ * " in " * cite$ * warning$
  423 + }
  424 + { swap$
  425 + pop$
  426 + }
  427 + if$
  428 + }
  429 + if$
  430 +}
  431 +FUNCTION {format.url}
  432 +{ url empty$
  433 + { "" }
  434 +% { "\urlprefix\url{" url * "}" * }
  435 + { "\url{" url * "}" * } % changed in titto-lncs-02.bst
  436 + if$
  437 +}
  438 +
  439 +INTEGERS { nameptr namesleft numnames }
  440 +
  441 +
  442 +STRINGS { bibinfo}
  443 +
  444 +FUNCTION {format.names}
  445 +{ 'bibinfo :=
  446 + duplicate$ empty$ 'skip$ {
  447 + 's :=
  448 + "" 't :=
  449 + #1 'nameptr :=
  450 + s num.names$ 'numnames :=
  451 + numnames 'namesleft :=
  452 + { namesleft #0 > }
  453 + { s nameptr
  454 + "{vv~}{ll}{, jj}{, f{.}.}"
  455 + format.name$
  456 + bibinfo bibinfo.check
  457 + 't :=
  458 + nameptr #1 >
  459 + {
  460 + namesleft #1 >
  461 + { ", " * t * }
  462 + {
  463 + s nameptr "{ll}" format.name$ duplicate$ "others" =
  464 + { 't := }
  465 + { pop$ }
  466 + if$
  467 + "," *
  468 + t "others" =
  469 + {
  470 + " " * bbl.etal *
  471 + }
  472 + { " " * t * }
  473 + if$
  474 + }
  475 + if$
  476 + }
  477 + 't
  478 + if$
  479 + nameptr #1 + 'nameptr :=
  480 + namesleft #1 - 'namesleft :=
  481 + }
  482 + while$
  483 + } if$
  484 +}
  485 +FUNCTION {format.names.ed}
  486 +{
  487 + 'bibinfo :=
  488 + duplicate$ empty$ 'skip$ {
  489 + 's :=
  490 + "" 't :=
  491 + #1 'nameptr :=
  492 + s num.names$ 'numnames :=
  493 + numnames 'namesleft :=
  494 + { namesleft #0 > }
  495 + { s nameptr
  496 + "{f{.}.~}{vv~}{ll}{ jj}"
  497 + format.name$
  498 + bibinfo bibinfo.check
  499 + 't :=
  500 + nameptr #1 >
  501 + {
  502 + namesleft #1 >
  503 + { ", " * t * }
  504 + {
  505 + s nameptr "{ll}" format.name$ duplicate$ "others" =
  506 + { 't := }
  507 + { pop$ }
  508 + if$
  509 + "," *
  510 + t "others" =
  511 + {
  512 +
  513 + " " * bbl.etal *
  514 + }
  515 + { " " * t * }
  516 + if$
  517 + }
  518 + if$
  519 + }
  520 + 't
  521 + if$
  522 + nameptr #1 + 'nameptr :=
  523 + namesleft #1 - 'namesleft :=
  524 + }
  525 + while$
  526 + } if$
  527 +}
  528 +FUNCTION {format.authors}
  529 +{ author "author" format.names
  530 +}
  531 +FUNCTION {get.bbl.editor}
  532 +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ }
  533 +
  534 +FUNCTION {format.editors}
  535 +{ editor "editor" format.names duplicate$ empty$ 'skip$
  536 + {
  537 + " " *
  538 + get.bbl.editor
  539 +% capitalize
  540 + "(" swap$ * ")" *
  541 + *
  542 + }
  543 + if$
  544 +}
  545 +FUNCTION {format.note}
  546 +{
  547 + note empty$
  548 + { "" }
  549 + { note #1 #1 substring$
  550 + duplicate$ "{" =
  551 + 'skip$
  552 + { output.state mid.sentence =
  553 + { "l" }
  554 + { "u" }
  555 + if$
  556 + change.case$
  557 + }
  558 + if$
  559 + note #2 global.max$ substring$ * "note" bibinfo.check
  560 + }
  561 + if$
  562 +}
  563 +
  564 +FUNCTION {format.title}
  565 +{ title
  566 + duplicate$ empty$ 'skip$
  567 + { "t" change.case$ }
  568 + if$
  569 + "title" bibinfo.check
  570 +}
  571 +FUNCTION {output.bibitem}
  572 +{ newline$
  573 + "\bibitem{" write$
  574 + cite$ write$
  575 + "}" write$
  576 + newline$
  577 + ""
  578 + before.all 'output.state :=
  579 +}
  580 +
  581 +FUNCTION {n.dashify}
  582 +{
  583 + 't :=
  584 + ""
  585 + { t empty$ not }
  586 + { t #1 #1 substring$ "-" =
  587 + { t #1 #2 substring$ "--" = not
  588 + { "--" *
  589 + t #2 global.max$ substring$ 't :=
  590 + }
  591 + { { t #1 #1 substring$ "-" = }
  592 + { "-" *
  593 + t #2 global.max$ substring$ 't :=
  594 + }
  595 + while$
  596 + }
  597 + if$
  598 + }
  599 + { t #1 #1 substring$ *
  600 + t #2 global.max$ substring$ 't :=
  601 + }
  602 + if$
  603 + }
  604 + while$
  605 +}
  606 +
  607 +FUNCTION {word.in}
  608 +{ bbl.in capitalize
  609 + ":" *
  610 + " " * }
  611 +
  612 +FUNCTION {format.date}
  613 +{
  614 + month "month" bibinfo.check
  615 + duplicate$ empty$
  616 + year "year" bibinfo.check duplicate$ empty$
  617 + { swap$ 'skip$
  618 + { "there's a month but no year in " cite$ * warning$ }
  619 + if$
  620 + *
  621 + }
  622 + { swap$ 'skip$
  623 + {
  624 + swap$
  625 + " " * swap$
  626 + }
  627 + if$
  628 + *
  629 + remove.dots
  630 + }
  631 + if$
  632 + duplicate$ empty$
  633 + 'skip$
  634 + {
  635 + before.all 'output.state :=
  636 + " (" swap$ * ")" *
  637 + }
  638 + if$
  639 +}
  640 +FUNCTION {format.btitle}
  641 +{ title "title" bibinfo.check
  642 + duplicate$ empty$ 'skip$
  643 + {
  644 + }
  645 + if$
  646 +}
  647 +FUNCTION {either.or.check}
  648 +{ empty$
  649 + 'pop$
  650 + { "can't use both " swap$ * " fields in " * cite$ * warning$ }
  651 + if$
  652 +}
  653 +FUNCTION {format.bvolume}
  654 +{ volume empty$
  655 + { "" }
  656 + { bbl.volume volume tie.or.space.prefix
  657 + "volume" bibinfo.check * *
  658 + series "series" bibinfo.check
  659 + duplicate$ empty$ 'pop$
  660 + { emphasize ", " * swap$ * }
  661 + if$
  662 + "volume and number" number either.or.check
  663 + }
  664 + if$
  665 +}
  666 +FUNCTION {format.number.series}
  667 +{ volume empty$
  668 + { number empty$
  669 + { series field.or.null }
  670 + { output.state mid.sentence =
  671 + { bbl.number }
  672 + { bbl.number capitalize }
  673 + if$
  674 + number tie.or.space.prefix "number" bibinfo.check * *
  675 + series empty$
  676 + { "there's a number but no series in " cite$ * warning$ }
  677 + { bbl.in space.word *
  678 + series "series" bibinfo.check *
  679 + }
  680 + if$
  681 + }
  682 + if$
  683 + }
  684 + { "" }
  685 + if$
  686 +}
  687 +
  688 +FUNCTION {format.edition}
  689 +{ edition duplicate$ empty$ 'skip$
  690 + {
  691 + output.state mid.sentence =
  692 + { "l" }
  693 + { "t" }
  694 + if$ change.case$
  695 + "edition" bibinfo.check
  696 + " " * bbl.edition *
  697 + }
  698 + if$
  699 +}
  700 +INTEGERS { multiresult }
  701 +FUNCTION {multi.page.check}
  702 +{ 't :=
  703 + #0 'multiresult :=
  704 + { multiresult not
  705 + t empty$ not
  706 + and
  707 + }
  708 + { t #1 #1 substring$
  709 + duplicate$ "-" =
  710 + swap$ duplicate$ "," =
  711 + swap$ "+" =
  712 + or or
  713 + { #1 'multiresult := }
  714 + { t #2 global.max$ substring$ 't := }
  715 + if$
  716 + }
  717 + while$
  718 + multiresult
  719 +}
  720 +FUNCTION {format.pages}
  721 +{ pages duplicate$ empty$ 'skip$
  722 + { duplicate$ multi.page.check
  723 + {
  724 + bbl.pages swap$
  725 + n.dashify
  726 + }
  727 + {
  728 + bbl.page swap$
  729 + }
  730 + if$
  731 + tie.or.space.prefix
  732 + "pages" bibinfo.check
  733 + * *
  734 + }
  735 + if$
  736 +}
  737 +FUNCTION {format.journal.pages}
  738 +{ pages duplicate$ empty$ 'pop$
  739 + { swap$ duplicate$ empty$
  740 + { pop$ pop$ format.pages }
  741 + {
  742 + ", " *
  743 + swap$
  744 + n.dashify
  745 + pages multi.page.check
  746 + 'titto.bbl.pages
  747 + 'titto.bbl.page
  748 + if$
  749 + swap$ tie.or.space.prefix
  750 + "pages" bibinfo.check
  751 + * *
  752 + *
  753 + }
  754 + if$
  755 + }
  756 + if$
  757 +}
  758 +FUNCTION {format.journal.eid}
  759 +{ eid "eid" bibinfo.check
  760 + duplicate$ empty$ 'pop$
  761 + { swap$ duplicate$ empty$ 'skip$
  762 + {
  763 + ", " *
  764 + }
  765 + if$
  766 + swap$ *
  767 + }
  768 + if$
  769 +}
  770 +FUNCTION {format.vol.num.pages} % this function is used only for journal entries
  771 +{ volume field.or.null
  772 + duplicate$ empty$ 'skip$
  773 + {
  774 +% bbl.volume swap$ tie.or.space.prefix
  775 + titto.bbl.volume swap$ titto.space.prefix
  776 +% rationale for the change above: for journals you don't want "vol." label
  777 +% hence it does not make sense to attach the journal number to the label when
  778 +% it is short
  779 + "volume" bibinfo.check
  780 + * *
  781 + }
  782 + if$
  783 + number "number" bibinfo.check duplicate$ empty$ 'skip$
  784 + {
  785 + swap$ duplicate$ empty$
  786 + { "there's a number but no volume in " cite$ * warning$ }
  787 + 'skip$
  788 + if$
  789 + swap$
  790 + "(" swap$ * ")" *
  791 + }
  792 + if$ *
  793 + eid empty$
  794 + { format.journal.pages }
  795 + { format.journal.eid }
  796 + if$
  797 +}
  798 +
  799 +FUNCTION {format.chapter.pages}
  800 +{ chapter empty$
  801 + 'format.pages
  802 + { type empty$
  803 + { bbl.chapter }
  804 + { type "l" change.case$
  805 + "type" bibinfo.check
  806 + }
  807 + if$
  808 + chapter tie.or.space.prefix
  809 + "chapter" bibinfo.check
  810 + * *
  811 + pages empty$
  812 + 'skip$
  813 + { ", " * format.pages * }
  814 + if$
  815 + }
  816 + if$
  817 +}
  818 +
  819 +FUNCTION {format.booktitle}
  820 +{
  821 + booktitle "booktitle" bibinfo.check
  822 +}
  823 +FUNCTION {format.in.ed.booktitle}
  824 +{ format.booktitle duplicate$ empty$ 'skip$
  825 + {
  826 +% editor "editor" format.names.ed duplicate$ empty$ 'pop$ % changed by titto
  827 + editor "editor" format.names duplicate$ empty$ 'pop$
  828 + {
  829 + " " *
  830 + get.bbl.editor
  831 +% capitalize
  832 + "(" swap$ * ") " *
  833 + * swap$
  834 + * }
  835 + if$
  836 + word.in swap$ *
  837 + }
  838 + if$
  839 +}
  840 +FUNCTION {empty.misc.check}
  841 +{ author empty$ title empty$ howpublished empty$
  842 + month empty$ year empty$ note empty$
  843 + and and and and and
  844 + key empty$ not and
  845 + { "all relevant fields are empty in " cite$ * warning$ }
  846 + 'skip$
  847 + if$
  848 +}
  849 +FUNCTION {format.thesis.type}
  850 +{ type duplicate$ empty$
  851 + 'pop$
  852 + { swap$ pop$
  853 + "t" change.case$ "type" bibinfo.check
  854 + }
  855 + if$
  856 +}
  857 +FUNCTION {format.tr.number}
  858 +{ number "number" bibinfo.check
  859 + type duplicate$ empty$
  860 + { pop$ bbl.techrep }
  861 + 'skip$
  862 + if$
  863 + "type" bibinfo.check
  864 + swap$ duplicate$ empty$
  865 + { pop$ "t" change.case$ }
  866 + { tie.or.space.prefix * * }
  867 + if$
  868 +}
  869 +FUNCTION {format.article.crossref}
  870 +{
  871 + key duplicate$ empty$
  872 + { pop$
  873 + journal duplicate$ empty$
  874 + { "need key or journal for " cite$ * " to crossref " * crossref * warning$ }
  875 + { "journal" bibinfo.check emphasize word.in swap$ * }
  876 + if$
  877 + }
  878 + { word.in swap$ * " " *}
  879 + if$
  880 + " \cite{" * crossref * "}" *
  881 +}
  882 +FUNCTION {format.crossref.editor}
  883 +{ editor #1 "{vv~}{ll}" format.name$
  884 + "editor" bibinfo.check
  885 + editor num.names$ duplicate$
  886 + #2 >
  887 + { pop$
  888 + "editor" bibinfo.check
  889 + " " * bbl.etal
  890 + *
  891 + }
  892 + { #2 <
  893 + 'skip$
  894 + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
  895 + {
  896 + "editor" bibinfo.check
  897 + " " * bbl.etal
  898 + *
  899 + }
  900 + {
  901 + bbl.and space.word
  902 + * editor #2 "{vv~}{ll}" format.name$
  903 + "editor" bibinfo.check
  904 + *
  905 + }
  906 + if$
  907 + }
  908 + if$
  909 + }
  910 + if$
  911 +}
  912 +FUNCTION {format.book.crossref}
  913 +{ volume duplicate$ empty$
  914 + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
  915 + pop$ word.in
  916 + }
  917 + { bbl.volume
  918 + capitalize
  919 + swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word *
  920 + }
  921 + if$
  922 + editor empty$
  923 + editor field.or.null author field.or.null =
  924 + or
  925 + { key empty$
  926 + { series empty$
  927 + { "need editor, key, or series for " cite$ * " to crossref " *
  928 + crossref * warning$
  929 + "" *
  930 + }
  931 + { series emphasize * }
  932 + if$
  933 + }
  934 + { key * }
  935 + if$
  936 + }
  937 + { format.crossref.editor * }
  938 + if$
  939 + " \cite{" * crossref * "}" *
  940 +}
  941 +FUNCTION {format.incoll.inproc.crossref}
  942 +{
  943 + editor empty$
  944 + editor field.or.null author field.or.null =
  945 + or
  946 + { key empty$
  947 + { format.booktitle duplicate$ empty$
  948 + { "need editor, key, or booktitle for " cite$ * " to crossref " *
  949 + crossref * warning$
  950 + }
  951 + { word.in swap$ * }
  952 + if$
  953 + }
  954 + { word.in key * " " *}
  955 + if$
  956 + }
  957 + { word.in format.crossref.editor * " " *}
  958 + if$
  959 + " \cite{" * crossref * "}" *
  960 +}
  961 +FUNCTION {format.org.or.pub}
  962 +{ 't :=
  963 + ""
  964 + address empty$ t empty$ and
  965 + 'skip$
  966 + {
  967 + t empty$
  968 + { address "address" bibinfo.check *
  969 + }
  970 + { t *
  971 + address empty$
  972 + 'skip$
  973 + { ", " * address "address" bibinfo.check * }
  974 + if$
  975 + }
  976 + if$
  977 + }
  978 + if$
  979 +}
  980 +FUNCTION {format.publisher.address}
  981 +{ publisher "publisher" bibinfo.warn format.org.or.pub
  982 +}
  983 +
  984 +FUNCTION {format.organization.address}
  985 +{ organization "organization" bibinfo.check format.org.or.pub
  986 +}
  987 +
  988 +FUNCTION {article}
  989 +{ output.bibitem
  990 + format.authors "author" output.check
  991 + add.colon
  992 + new.block
  993 + format.title "title" output.check
  994 + new.block
  995 + crossref missing$
  996 + {
  997 + journal
  998 + "journal" bibinfo.check
  999 + "journal" output.check
  1000 + add.blank
  1001 + format.vol.num.pages output
  1002 + format.date "year" output.check
  1003 + }
  1004 + { format.article.crossref output.nonnull
  1005 + format.pages output
  1006 + }
  1007 + if$
  1008 +% new.block
  1009 + format.url output
  1010 +% new.block
  1011 + format.note output
  1012 + fin.entry
  1013 +}
  1014 +FUNCTION {book}
  1015 +{ output.bibitem
  1016 + author empty$
  1017 + { format.editors "author and editor" output.check
  1018 + add.colon
  1019 + }
  1020 + { format.authors output.nonnull
  1021 + add.colon
  1022 + crossref missing$
  1023 + { "author and editor" editor either.or.check }
  1024 + 'skip$
  1025 + if$
  1026 + }
  1027 + if$
  1028 + new.block
  1029 + format.btitle "title" output.check
  1030 + crossref missing$
  1031 + { format.bvolume output
  1032 + new.block
  1033 + new.sentence
  1034 + format.number.series output
  1035 + format.publisher.address output
  1036 + }
  1037 + {
  1038 + new.block
  1039 + format.book.crossref output.nonnull
  1040 + }
  1041 + if$
  1042 + format.edition output
  1043 + format.date "year" output.check
  1044 +% new.block
  1045 + format.url output
  1046 +% new.block
  1047 + format.note output
  1048 + fin.entry
  1049 +}
  1050 +FUNCTION {booklet}
  1051 +{ output.bibitem
  1052 + format.authors output
  1053 + add.colon
  1054 + new.block
  1055 + format.title "title" output.check
  1056 + new.block
  1057 + howpublished "howpublished" bibinfo.check output
  1058 + address "address" bibinfo.check output
  1059 + format.date output
  1060 +% new.block
  1061 + format.url output
  1062 +% new.block
  1063 + format.note output
  1064 + fin.entry
  1065 +}
  1066 +
  1067 +FUNCTION {inbook}
  1068 +{ output.bibitem
  1069 + author empty$
  1070 + { format.editors "author and editor" output.check
  1071 + add.colon
  1072 + }
  1073 + { format.authors output.nonnull
  1074 + add.colon
  1075 + crossref missing$
  1076 + { "author and editor" editor either.or.check }
  1077 + 'skip$
  1078 + if$
  1079 + }
  1080 + if$
  1081 + new.block
  1082 + format.btitle "title" output.check
  1083 + crossref missing$
  1084 + {
  1085 + format.bvolume output
  1086 + format.chapter.pages "chapter and pages" output.check
  1087 + new.block
  1088 + new.sentence
  1089 + format.number.series output
  1090 + format.publisher.address output
  1091 + }
  1092 + {
  1093 + format.chapter.pages "chapter and pages" output.check
  1094 + new.block
  1095 + format.book.crossref output.nonnull
  1096 + }
  1097 + if$
  1098 + format.edition output
  1099 + format.date "year" output.check
  1100 +% new.block
  1101 + format.url output
  1102 +% new.block
  1103 + format.note output
  1104 + fin.entry
  1105 +}
  1106 +
  1107 +FUNCTION {incollection}
  1108 +{ output.bibitem
  1109 + format.authors "author" output.check
  1110 + add.colon
  1111 + new.block
  1112 + format.title "title" output.check
  1113 + new.block
  1114 + crossref missing$
  1115 + { format.in.ed.booktitle "booktitle" output.check
  1116 + format.bvolume output
  1117 + format.chapter.pages output
  1118 + new.sentence
  1119 + format.number.series output
  1120 + format.publisher.address output
  1121 + format.edition output
  1122 + format.date "year" output.check
  1123 + }
  1124 + { format.incoll.inproc.crossref output.nonnull
  1125 + format.chapter.pages output
  1126 + }
  1127 + if$
  1128 +% new.block
  1129 + format.url output
  1130 +% new.block
  1131 + format.note output
  1132 + fin.entry
  1133 +}
  1134 +FUNCTION {inproceedings}
  1135 +{ output.bibitem
  1136 + format.authors "author" output.check
  1137 + add.colon
  1138 + new.block
  1139 + format.title "title" output.check
  1140 + new.block
  1141 + crossref missing$
  1142 + { format.in.ed.booktitle "booktitle" output.check
  1143 + new.sentence % added by titto
  1144 + format.bvolume output
  1145 + format.pages output
  1146 + new.sentence
  1147 + format.number.series output
  1148 + publisher empty$
  1149 + { format.organization.address output }
  1150 + { organization "organization" bibinfo.check output
  1151 + format.publisher.address output
  1152 + }
  1153 + if$
  1154 + format.date "year" output.check
  1155 + }
  1156 + { format.incoll.inproc.crossref output.nonnull
  1157 + format.pages output
  1158 + }
  1159 + if$
  1160 +% new.block
  1161 + format.url output
  1162 +% new.block
  1163 + format.note output
  1164 + fin.entry
  1165 +}
  1166 +FUNCTION {conference} { inproceedings }
  1167 +FUNCTION {manual}
  1168 +{ output.bibitem
  1169 + author empty$
  1170 + { organization "organization" bibinfo.check
  1171 + duplicate$ empty$ 'pop$
  1172 + { output
  1173 + address "address" bibinfo.check output
  1174 + }
  1175 + if$
  1176 + }
  1177 + { format.authors output.nonnull }
  1178 + if$
  1179 + add.colon
  1180 + new.block
  1181 + format.btitle "title" output.check
  1182 + author empty$
  1183 + { organization empty$
  1184 + {
  1185 + address new.block.checka
  1186 + address "address" bibinfo.check output
  1187 + }
  1188 + 'skip$
  1189 + if$
  1190 + }
  1191 + {
  1192 + organization address new.block.checkb
  1193 + organization "organization" bibinfo.check output
  1194 + address "address" bibinfo.check output
  1195 + }
  1196 + if$
  1197 + format.edition output
  1198 + format.date output
  1199 +% new.block
  1200 + format.url output
  1201 +% new.block
  1202 + format.note output
  1203 + fin.entry
  1204 +}
  1205 +
  1206 +FUNCTION {mastersthesis}
  1207 +{ output.bibitem
  1208 + format.authors "author" output.check
  1209 + add.colon
  1210 + new.block
  1211 + format.btitle
  1212 + "title" output.check
  1213 + new.block
  1214 + bbl.mthesis format.thesis.type output.nonnull
  1215 + school "school" bibinfo.warn output
  1216 + address "address" bibinfo.check output
  1217 + format.date "year" output.check
  1218 +% new.block
  1219 + format.url output
  1220 +% new.block
  1221 + format.note output
  1222 + fin.entry
  1223 +}
  1224 +
  1225 +FUNCTION {misc}
  1226 +{ output.bibitem
  1227 + format.authors output
  1228 + add.colon
  1229 + title howpublished new.block.checkb
  1230 + format.title output
  1231 + howpublished new.block.checka
  1232 + howpublished "howpublished" bibinfo.check output
  1233 + format.date output
  1234 +% new.block
  1235 + format.url output
  1236 +% new.block
  1237 + format.note output
  1238 + fin.entry
  1239 + empty.misc.check
  1240 +}
  1241 +FUNCTION {phdthesis}
  1242 +{ output.bibitem
  1243 + format.authors "author" output.check
  1244 + add.colon
  1245 + new.block
  1246 + format.btitle
  1247 + "title" output.check
  1248 + new.block
  1249 + bbl.phdthesis format.thesis.type output.nonnull
  1250 + school "school" bibinfo.warn output
  1251 + address "address" bibinfo.check output
  1252 + format.date "year" output.check
  1253 +% new.block
  1254 + format.url output
  1255 +% new.block
  1256 + format.note output
  1257 + fin.entry
  1258 +}
  1259 +
  1260 +FUNCTION {proceedings}
  1261 +{ output.bibitem
  1262 + editor empty$
  1263 + { organization "organization" bibinfo.check output
  1264 + }
  1265 + { format.editors output.nonnull }
  1266 + if$
  1267 + add.colon
  1268 + new.block
  1269 + format.btitle "title" output.check
  1270 + format.bvolume output
  1271 + editor empty$
  1272 + { publisher empty$
  1273 + { format.number.series output }
  1274 + {
  1275 + new.sentence
  1276 + format.number.series output
  1277 + format.publisher.address output
  1278 + }
  1279 + if$
  1280 + }
  1281 + { publisher empty$
  1282 + {
  1283 + new.sentence
  1284 + format.number.series output
  1285 + format.organization.address output }
  1286 + {
  1287 + new.sentence
  1288 + format.number.series output
  1289 + organization "organization" bibinfo.check output
  1290 + format.publisher.address output
  1291 + }
  1292 + if$
  1293 + }
  1294 + if$
  1295 + format.date "year" output.check
  1296 +% new.block
  1297 + format.url output
  1298 +% new.block
  1299 + format.note output
  1300 + fin.entry
  1301 +}
  1302 +
  1303 +FUNCTION {techreport}
  1304 +{ output.bibitem
  1305 + format.authors "author" output.check
  1306 + add.colon
  1307 + new.block
  1308 + format.title
  1309 + "title" output.check
  1310 + new.block
  1311 + format.tr.number output.nonnull
  1312 + institution "institution" bibinfo.warn output
  1313 + address "address" bibinfo.check output
  1314 + format.date "year" output.check
  1315 +% new.block
  1316 + format.url output
  1317 +% new.block
  1318 + format.note output
  1319 + fin.entry
  1320 +}
  1321 +
  1322 +FUNCTION {unpublished}
  1323 +{ output.bibitem
  1324 + format.authors "author" output.check
  1325 + add.colon
  1326 + new.block
  1327 + format.title "title" output.check
  1328 + format.date output
  1329 +% new.block
  1330 + format.url output
  1331 +% new.block
  1332 + format.note "note" output.check
  1333 + fin.entry
  1334 +}
  1335 +
  1336 +FUNCTION {default.type} { misc }
  1337 +READ
  1338 +FUNCTION {sortify}
  1339 +{ purify$
  1340 + "l" change.case$
  1341 +}
  1342 +INTEGERS { len }
  1343 +FUNCTION {chop.word}
  1344 +{ 's :=
  1345 + 'len :=
  1346 + s #1 len substring$ =
  1347 + { s len #1 + global.max$ substring$ }
  1348 + 's
  1349 + if$
  1350 +}
  1351 +FUNCTION {sort.format.names}
  1352 +{ 's :=
  1353 + #1 'nameptr :=
  1354 + ""
  1355 + s num.names$ 'numnames :=
  1356 + numnames 'namesleft :=
  1357 + { namesleft #0 > }
  1358 + { s nameptr
  1359 + "{ll{ }}{ ff{ }}{ jj{ }}"
  1360 + format.name$ 't :=
  1361 + nameptr #1 >
  1362 + {
  1363 + " " *
  1364 + namesleft #1 = t "others" = and
  1365 + { "zzzzz" * }
  1366 + { t sortify * }
  1367 + if$
  1368 + }
  1369 + { t sortify * }
  1370 + if$
  1371 + nameptr #1 + 'nameptr :=
  1372 + namesleft #1 - 'namesleft :=
  1373 + }
  1374 + while$
  1375 +}
  1376 +
  1377 +FUNCTION {sort.format.title}
  1378 +{ 't :=
  1379 + "A " #2
  1380 + "An " #3
  1381 + "The " #4 t chop.word
  1382 + chop.word
  1383 + chop.word
  1384 + sortify
  1385 + #1 global.max$ substring$
  1386 +}
  1387 +FUNCTION {author.sort}
  1388 +{ author empty$
  1389 + { key empty$
  1390 + { "to sort, need author or key in " cite$ * warning$
  1391 + ""
  1392 + }
  1393 + { key sortify }
  1394 + if$
  1395 + }
  1396 + { author sort.format.names }
  1397 + if$
  1398 +}
  1399 +FUNCTION {author.editor.sort}
  1400 +{ author empty$
  1401 + { editor empty$
  1402 + { key empty$
  1403 + { "to sort, need author, editor, or key in " cite$ * warning$
  1404 + ""
  1405 + }
  1406 + { key sortify }
  1407 + if$
  1408 + }
  1409 + { editor sort.format.names }
  1410 + if$
  1411 + }
  1412 + { author sort.format.names }
  1413 + if$
  1414 +}
  1415 +FUNCTION {author.organization.sort}
  1416 +{ author empty$
  1417 + { organization empty$
  1418 + { key empty$
  1419 + { "to sort, need author, organization, or key in " cite$ * warning$
  1420 + ""
  1421 + }
  1422 + { key sortify }
  1423 + if$
  1424 + }
  1425 + { "The " #4 organization chop.word sortify }
  1426 + if$
  1427 + }
  1428 + { author sort.format.names }
  1429 + if$
  1430 +}
  1431 +FUNCTION {editor.organization.sort}
  1432 +{ editor empty$
  1433 + { organization empty$
  1434 + { key empty$
  1435 + { "to sort, need editor, organization, or key in " cite$ * warning$
  1436 + ""
  1437 + }
  1438 + { key sortify }
  1439 + if$
  1440 + }
  1441 + { "The " #4 organization chop.word sortify }
  1442 + if$
  1443 + }
  1444 + { editor sort.format.names }
  1445 + if$
  1446 +}
  1447 +FUNCTION {presort}
  1448 +{ type$ "book" =
  1449 + type$ "inbook" =
  1450 + or
  1451 + 'author.editor.sort
  1452 + { type$ "proceedings" =
  1453 + 'editor.organization.sort
  1454 + { type$ "manual" =
  1455 + 'author.organization.sort
  1456 + 'author.sort
  1457 + if$
  1458 + }
  1459 + if$
  1460 + }
  1461 + if$
  1462 + " "
  1463 + *
  1464 + year field.or.null sortify
  1465 + *
  1466 + " "
  1467 + *
  1468 + title field.or.null
  1469 + sort.format.title
  1470 + *
  1471 + #1 entry.max$ substring$
  1472 + 'sort.key$ :=
  1473 +}
  1474 +ITERATE {presort}
  1475 +SORT
  1476 +STRINGS { longest.label }
  1477 +INTEGERS { number.label longest.label.width }
  1478 +FUNCTION {initialize.longest.label}
  1479 +{ "" 'longest.label :=
  1480 + #1 'number.label :=
  1481 + #0 'longest.label.width :=
  1482 +}
  1483 +FUNCTION {longest.label.pass}
  1484 +{ number.label int.to.str$ 'label :=
  1485 + number.label #1 + 'number.label :=
  1486 + label width$ longest.label.width >
  1487 + { label 'longest.label :=
  1488 + label width$ 'longest.label.width :=
  1489 + }
  1490 + 'skip$
  1491 + if$
  1492 +}
  1493 +EXECUTE {initialize.longest.label}
  1494 +ITERATE {longest.label.pass}
  1495 +FUNCTION {begin.bib}
  1496 +{ preamble$ empty$
  1497 + 'skip$
  1498 + { preamble$ write$ newline$ }
  1499 + if$
  1500 + "\begin{thebibliography}{" longest.label * "}" *
  1501 + write$ newline$
  1502 + "\providecommand{\url}[1]{\texttt{#1}}"
  1503 + write$ newline$
  1504 + "\providecommand{\urlprefix}{URL }"
  1505 + write$ newline$
  1506 +}
  1507 +EXECUTE {begin.bib}
  1508 +EXECUTE {init.state.consts}
  1509 +ITERATE {call.type$}
  1510 +FUNCTION {end.bib}
  1511 +{ newline$
  1512 + "\end{thebibliography}" write$ newline$
  1513 +}
  1514 +EXECUTE {end.bib}
  1515 +%% End of customized bst file
  1516 +%%
  1517 +%% End of file `titto.bst'.
  1518 +
  1519 +
oss2018/survey/mpog-interview.md 0 → 100644
@@ -0,0 +1,93 @@ @@ -0,0 +1,93 @@
  1 +### Projeto de pequisa - Entrevista
  2 +
  3 +### Contexto
  4 +Entre 2014 e 2016 foi desenvolvida uma plataforma para o Portal do Software Público Brasileiro. O objetivo do projeto era evoluiu um portal já existente adicionando funcionalidades a partir de requisitos préviamente mapeados pelo Ministério do Planejamento. Neste projeto, a plataforma passou a ser formada por diversos sistemas de software livre que foram integrados com a finalidade de atender todos os requisitos e prover facilidades na manutenção e atualização do portal como um todo. O projeto contava com uma equipe de analistas do Ministério do Planejamento, professores-coordenadores da UnB e uma equipe de desenvolvedores formada por alunos-bolsistas da universidade e profissionais do mercado de TI. A equipe do governo tinha sua própria dinâmica de trabalho e processo de desenvolvimento de software guiado por leis e diretrizes da natureza governamental. A equipe de desenvolvedores seguia práticas de desenvolvimento diferentes das do governo. Com auxílio e supervisão de professores (coordenadores do projeto) aplicavam metodólogias mais recentes, estudadas no universo acadêmico, visando melhorar a qualidade e produtividade do produto a ser entregue assim como as relações pessoais entre as equipes. Esta parceria entre duas equipes com processo de desenvolvimento distintos passaram por conflitos e adaptações. Durante os 3 anos de projetos foram pensadas, aplicadas e avaliadas diversas maneiras para conciliar os processos, aprimorar a comunicação e tornar todo o desenvolvimento da plataforma mais claro e transparente para quem acompanhava, gerenciava e desenvolvia a nova plataforma.
  5 +
  6 +### Qual o Foco:
  7 +* Explorar as possíveis maneiras de conciliar equipes com diferentes processos de gerenciamento e desenvolvimento em um projeto.
  8 +
  9 +### Onde eu estou no (qual a minha posição no contexto do) estudo:
  10 +* Trabalhando em um projeto temporário de desenvolvimento de software para o governo
  11 +
  12 +### Quais experiências anteriores (backgrounds) e crenças podem causar parcialidade (bias):
  13 +* Acreditamos que o desenvolvimento ágil é melhor que o desenvolvimento em cascata
  14 +* A equipe de desenvolvedores é maior que a equipe de analistas
  15 +* Diferenças de experiências de trabalho: iniciativa privada x estado
  16 +* Não temos relação com as burocracias internas no governo em relação ao projeto
  17 +* Não temos estabilidade no trabalho e o projeto possui tempo limitado (podendo ser precipitadamente cancelado se ocorrem falhas)
  18 +* Apesar de todos trabalharem para o sucesso do projeto, não nos sentíamos realmente unidos/ algumas vezes nos sentíamos rivais?
  19 +* A equipe de desenvolvedores era majoritáriamente composta por estudantes, sem experiência no mercado de trabalho
  20 +* Não participávamos do lado governamental de decisões, estratégias e relatórios.
  21 +
  22 +### Influências políticas:
  23 +* As analistas podem não querer expor os problemas internos ou mostrar descrença ou questionamento sobre seu contexto de trabalho
  24 +* Interferência das crenças poíticas/partidárias dos investigadores na relaçào do contexto do projeto e decisões do cliente
  25 +
  26 +### Questões gerais da pesquisa que queremos responder
  27 +1. Como harmonizar equipes com processos distintos de desenvolvimento de software em um mesmo projeto?
  28 + * Nível de satisfação dos clientes e motivação dos desenvolvedores (equipe). É possível manter uma equipe motivada e clientes satisfeitos, ambos confortáveis em se comunicar mesmo falando "línguas" diferentes?
  29 +2. Como estabelecer uma fronteira entre as questões gerenciais das organizações envolvidas (MPOG e UnB/CDT) e o gestão das equipes de desenvolvimento?
  30 + * Estamos argumentando que o processo de gerenciamento do projeto não necessariamente tem que ser o mesmo e influenciar diretamente na metodologia de desenvolvimento de software.
  31 + * Filtrar overheads de comunicação entre equipes com mentalidade/metodologia diferente
  32 + * "Ceder para vencer"
  33 +
  34 +----
  35 +
  36 +## Entrevista - Questões
  37 +
  38 +### Perfil pessoal e profissional
  39 +
  40 +1. Apresentação: Você poderia fazer uma pequena apresentação pessoal e profissional? Nome, idade, formação, tempo de experiência profissional, tempo no MPOG, setor/cargo atual, setor/cargo na época do projeto.
  41 +2. A exemplo do SPB, quais projetos de desenvolvimento de software em parceria entre MPOG e outras instituições você trabalhou?
  42 +3. Quais semelhanças e diferenças você consegue identificar entre estes projetos e o SPB?
  43 +4. O SPB foi sua primeira experiência de desenvolvimento de software em parceria com uma universidade? Quais vantagens e desvantagens você consegue identificar neste tipo de parceria?
  44 +
  45 +### Sobre o Projeto SPB
  46 +
  47 +#### Organização
  48 +
  49 +5. Inicialmente, como foi estruturado e organizado o projeto? Como era feita a comunicação, acompanhamento? Quem eram os atores/interlocutores?
  50 +6. Quais mudanças ocorreram ao longo do projeto em relação a sua formatação inicial?
  51 + 7. Para você essas mudanças foram positivas ou negativas? Porque?
  52 + 8. Você sentiu dificuldade em se adaptar a estas mudanças? Quais?
  53 +9. Ocorreram mudanças no decorrer do projeto em relação aos requisitos iniciais da plataforma? Se sim, você poderia citar algumas? Porque a mudança foi necessária?
  54 + 10. Como você descreveria a adaptação da equipe de desenvolvimento da UnB em relação a mudança dos requisitos?
  55 +11. Como eram realizadas as reuniões de planejamento de uma release? Onde, quem participava, quais objetivos, o que se discutia, quais dificuldades...
  56 +12. Como era feito o acompanhamento do desenvolvimento da release?
  57 +13. O planejamento e acompanhamento realizado no projeto era semelhante ao do MPOG?
  58 + 14. AS diferenças impactavam no desempenho do seu trabalho? Se sim, de que maneira?
  59 +
  60 +#### Comunicação
  61 +
  62 +15. De que maneira/por qual meio, você interagia com a equipe da UnB? Quem eram as pessoas/papéis na equipe da UnB que você mais interagia?
  63 +16. Você interagia com os seniors do projeto? Quando essas interações ocorriam, qual meio de comunicação era utilizado e qual era o motivo deste contato?
  64 +17. Você interagia com os alunos do projeto? Quando essas interações ocorriam, qual meio de comunicação era utilizado e qual era o motivo deste contato?
  65 +18. Como você pode descrever a comunicação entre o MPOG e a coordenação da equipe da UnB?
  66 +19. Como você pode descrever a comunicação entre o MPOG e a equipe de desenvolvimento?
  67 +20. Na organização da equipe de desenvolvimento, foram criados times específicos para cada software integrante da plataforma. Você se sentia atualizada com essas mudanças? Você sabia quem era quem durante a comunicação/interação? Você acredita que este conhecimento era importante / influênciava nas suas atividades de acompanhamento do projeto?
  68 +21. Ao longo do projeto, você sentiu que a comunicação melhorou ou piorou entre MPOG e equipe de desenvolvimento? A que fatores se deve isso?
  69 + 22. Você consegue se recordar de alguma interação entre as equipes que foi negativa ou difícil de lidar?
  70 + 24. Você consegue se recordar de algumas interação que foi positiva ou suave/esclarecedora?
  71 +
  72 +#### Metodologia de entrega/processo de desenvolvimento
  73 +
  74 +25. Em linhas gerais, como é o processo de desenvolvimento de software no MPOG? Como e quando são definidas os requisitos do software, como é feito o acompanhamento e como é feita a validação/homologação?
  75 +26. Como foi feita a concepção, o processo de desenvolvimento e manutenção da antiga plataforma do SPB?
  76 +27. Quais diferenças existiam entre este processo interno e o processo realizado pela equipe da UnB?
  77 + 28. Quais dificuldades/conflitos entre o processo de desenvolvimento do MPOG e do time da UnB eram mais impactantes para o trabalho/responsabilidade de vocês no MPOG? O que foi feito para amenizar este impacto?
  78 + 29. O processo incremental de desenvolvimento lhe trazia dificuldades ou incômodos? Por exemplo?
  79 +30. Na sua opinião, foi possível conciliar o processo de desenvolvimento mantido pelo MPOG e o processo de desenvolvimento mantido pela UnB? O que foi necessário adaptar para conciliar o que era exigido internamente pelo MPOG e as informações coletadas durante o desenvolvimento?
  80 +31. Ao longo do projeto, o MPOG passou a estar com mais frequência na universidade e participar presencialmente no laboratório das reuniões de planejamento e entrega. Quais vantagens e desvantagens você via nessa interação? Isso impactou de alguma maneira a qualidade o feedback e validação das funcionalidades?
  81 +32. Na homologação de uma entrega, como você descreveria a capacidade da equipe em corrigir/modificar uma funcionalidade a partir dos feedbacks do MPOG?
  82 +33. Em geral, qual era a satisfação do MPOG em relação ao que tinha sido planejado e o que foi entrega no final de cada release? Porque?
  83 +
  84 +#### A plataforma do SPB
  85 +34. Quão satisfeitos o MPOG e os usuários estavam em relação a plataforma anterior? Ela atendia os requisitos previamente planejado? Quais eram as principais queixas/novas solcitações?
  86 +35. Como você descreveria a plataforma desenvolvida para o SPB?
  87 +36. Você acha que a complexidade da plataforma está condizente com as suas funcionalidades?
  88 +37. Você teve dificuldade em compreender as ferramentas ou a plataforma como um todo? Exemplos?
  89 +38. Você sente confiança em relação ao código entregue?
  90 +39. Você sente confiança em relação as funcionalidades da plataforma?
  91 +
  92 +#### Considerações finais
  93 +40. Se você tivesse que avaliar uma futura parceria entre MPOG e universidade, quais pontos você estaria mais atenta e porque? Quais conselhos você daria a equipe do MPOG que faria o acompanhamento do projeto?