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

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

Author Lemos, Otávio Augusto Lazzarini Autor UNIFESP Google Scholar
Ferrari, Fabiano Cutigi Google Scholar
Silveira, Fabio Fagundes Autor UNIFESP Google Scholar
Garcia, Alessandro Google Scholar
Institution Universidade Federal de São Paulo (UNIFESP)
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.
Keywords pair programming
test-first programming
TDD
experimental software engineering
agile methods
Language English
Date 2012-01-01
Published in 2012 34th International Conference On Software Engineering (icse). New York: Ieee, p. 529-539, 2012.
ISSN 0270-5257 (Sherpa/Romeo, impact factor)
Publisher Ieee
Extent 529-539
Origin http://dx.doi.org/10.1109/ICSE.2012.6227163
Access rights Closed access
Type Conference paper
Web of Science ID WOS:000312908700049
URI http://repositorio.unifesp.br/11600/41932

Show full item record




File

File Size Format View

There are no files associated with this item.

This item appears in the following Collection(s)

Search


Browse

Statistics

My Account