01-introduction.tex
2.91 KB
\section{Introduction}
%Same SPB introduction from OSS articles plus a related work review and brief relevance to this article?
The difficulty of writing software is an old subject on computer science that dates back to 1968 \cite{mcilroy1968software} when the term software crisis has been first used. This refers to recurrent problems on software development such as exceeding time and budget expectations, inefficiency, low quality and maintainability among many others that usually culminate in the software not meeting the user expectations or not even being delivered.
Specially in the public sector the pessimism and failure ratios are even deeper than in the general industry \cite{goldfinch2007pessimism,anthopoulos2016government}. This is due governments having rigid processes and organizational structures for which is hard to apply techniques that have been achieving success on software development in the private sector such as the broad spectrum of agile methods \cite{dybaa2008empirical}.
Here we report our experiences on a three years long development project with the Brazilian government in a scenario with low budget, high political instability and a mostly unexperienced team formed mostly by students but, despite all that risks and many others, has been kept under active development for three years and since its final delivery one year ago has been maintained online.
There are similar previous works that we will review here. Agile methods application on the Brazilian public sector are approached by \cite{melo2010adoccao,de2016using}, but both are experiences limited to pilot projects. Not production-ready one that will provide more accurate data with the real world. On \cite{alleman2003making} the authors describe a production deployment for the US government, but it focus on describing the methodology applied to address long term planning and value estimation. And again on \cite{anderson2005stretching} we see a production software development case and the adaptation proposal that we will follow in this article, but focused on a specific methodology, the CMMI. This article differentiates itself from others by describing a production level software development to the public sector, but unconstrained to any specific aspect of the agile methods or an specific project management methodology on the government side. The focus on this article will be the whole experience of adapting agile methods to the public sector.
We will give a more detailed context at section \ref{sec:problem_context} for later detailing which development practices were adopted during the project and what were the observed results for each one. This report is not expect to be the final recipe on working with public sector software development, but has the objective to report on which techniques have been successful, what adaptations were necessary and what has failed as means to provide other developers a reference when they meet similar situations.