Development of Auxiliary Functions: Should You Be Agile? An Empirical Assessment of Pair Programming and Test-First Programming

dc.contributor.authorLemos, Otávio Augusto Lazzarini [UNIFESP]
dc.contributor.authorFerrari, Fabiano Cutigi
dc.contributor.authorSilveira, Fabio Fagundes [UNIFESP]
dc.contributor.authorGarcia, Alessandro
dc.contributor.institutionUniversidade Federal de São Paulo (UNIFESP)
dc.date.accessioned2018-06-14T18:58:25Z
dc.date.available2018-06-14T18:58:25Z
dc.date.issued2012-01-01
dc.description.abstractA considerable part of software systems is comprised of functions that support the main modules, such as array or string manipulation and basic math computation. These auxiliary functions are usually considered less complex, and thus tend to receive less attention from developers. However, failures in these functions might propagate to more critical modules, thereby affecting the system's overall reliability. Given the complementary role of auxiliary functions, a question that arises is whether agile practices, such as pair programming and test-first programming, can improve their correctness without affecting time-to-market. This paper presents an empirical assessment comparing the application of these agile practices with more traditional approaches. Our study comprises independent experiments of pair versus solo programming, and test-first versus test-last programming. The first study involved 85 novice programmers who applied both traditional and agile approaches in the development of six auxiliary functions within three different domains. Our results suggest that the agile practices might bring benefits in this context. In particular, pair programmers delivered correct implementations much more often, and test-first programming encouraged the production of larger and higher coverage test sets. On the downside, the main experiment showed that both practices significantly increase total development time. A replication of the test-first experiment with professional developers shows similar results.en
dc.description.affiliationUniv Fed Sao Paulo, Sci & Technol Dept, Sao Jose Dos Campos, Brazil
dc.description.affiliationUnifespUniv Fed Sao Paulo, Sci & Technol Dept, Sao Jose Dos Campos, Brazil
dc.description.sourceWeb of Science
dc.format.extent529-539
dc.identifierhttp://dx.doi.org/10.1109/ICSE.2012.6227163
dc.identifier.citation2012 34th International Conference On Software Engineering (icse). New York: Ieee, p. 529-539, 2012.
dc.identifier.doi10.1109/ICSE.2012.6227163
dc.identifier.issn0270-5257
dc.identifier.urihttp://repositorio.unifesp.br/11600/41932
dc.identifier.wosWOS:000312908700049
dc.language.isoeng
dc.publisherIeee
dc.relation.ispartof2012 34th International Conference On Software Engineering (icse)
dc.rightsAcesso restrito
dc.rights.licensehttp://www.ieee.org/publications_standards/publications/rights/rights_policies.html
dc.subjectpair programmingen
dc.subjecttest-first programmingen
dc.subjectTDDen
dc.subjectexperimental software engineeringen
dc.subjectagile methodsen
dc.titleDevelopment of Auxiliary Functions: Should You Be Agile? An Empirical Assessment of Pair Programming and Test-First Programmingen
dc.typeTrabalho apresentado em evento
Arquivos