Development of Auxiliary Functions: Should You Be Agile? An Empirical Assessment of Pair Programming and Test-First Programming
dc.contributor.author | Lemos, Otávio Augusto Lazzarini [UNIFESP] | |
dc.contributor.author | Ferrari, Fabiano Cutigi | |
dc.contributor.author | Silveira, Fabio Fagundes [UNIFESP] | |
dc.contributor.author | Garcia, Alessandro | |
dc.contributor.institution | Universidade Federal de São Paulo (UNIFESP) | |
dc.date.accessioned | 2018-06-14T18:58:25Z | |
dc.date.available | 2018-06-14T18:58:25Z | |
dc.date.issued | 2012-01-01 | |
dc.description.abstract | A 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.affiliation | Univ Fed Sao Paulo, Sci & Technol Dept, Sao Jose Dos Campos, Brazil | |
dc.description.affiliationUnifesp | Univ Fed Sao Paulo, Sci & Technol Dept, Sao Jose Dos Campos, Brazil | |
dc.description.source | Web of Science | |
dc.format.extent | 529-539 | |
dc.identifier | http://dx.doi.org/10.1109/ICSE.2012.6227163 | |
dc.identifier.citation | 2012 34th International Conference On Software Engineering (icse). New York: Ieee, p. 529-539, 2012. | |
dc.identifier.doi | 10.1109/ICSE.2012.6227163 | |
dc.identifier.issn | 0270-5257 | |
dc.identifier.uri | http://repositorio.unifesp.br/11600/41932 | |
dc.identifier.wos | WOS:000312908700049 | |
dc.language.iso | eng | |
dc.publisher | Ieee | |
dc.relation.ispartof | 2012 34th International Conference On Software Engineering (icse) | |
dc.rights | Acesso restrito | |
dc.rights.license | http://www.ieee.org/publications_standards/publications/rights/rights_policies.html | |
dc.subject | pair programming | en |
dc.subject | test-first programming | en |
dc.subject | TDD | en |
dc.subject | experimental software engineering | en |
dc.subject | agile methods | en |
dc.title | Development of Auxiliary Functions: Should You Be Agile? An Empirical Assessment of Pair Programming and Test-First Programming | en |
dc.type | Trabalho apresentado em evento |