TY - JOUR
T1 - Software Engineering Need Not Be Difficult
AU - Carver, Jeffrey C
AU - Thiruvathukal, George K.
N1 - Carver, J. and G. K. Thiruvathukal. "Software Engineering Need not be Difficult." Workshop on Sustainable Software for Science: Practice and Experiences, SuperComputing Conference 2013. Available on figshare, http://dx.doi.org/10.6084/m9.figshare.830442
PY - 2013/10/23
Y1 - 2013/10/23
N2 - "Progress in scientific research is dependent on the quality and accessibility of software at all levels" (the overall premise of the workshop). We argue that true progress depends on embracing the best traditional--and emergent-- practices in software engineering, especially agile practices that intersect with the tradition of software engineering. Software engineering as practiced today is more than the stereotypical monolithic lifecycle processes (e.g. waterfall, spiral, etc.) that historically have impeded progress for small/medium sized development efforts. In addition, the discipline and practice of software engineering includes software quality (with an established tradition of software metrics ). Software processes can be pragmatic and use best features/practices of various models without impeding developer productivity. The embracement of these practices may also be important to prevent a brain drain of sorts, as students are increasingly eschewing traditional scientific/computation science research in favor of industry opportunities, where they can literally apply what they have learned in software development courses where pragmatic software engineering practices (e.g. test-driven design, RESTful architecture, etc.) are already prevalent.
AB - "Progress in scientific research is dependent on the quality and accessibility of software at all levels" (the overall premise of the workshop). We argue that true progress depends on embracing the best traditional--and emergent-- practices in software engineering, especially agile practices that intersect with the tradition of software engineering. Software engineering as practiced today is more than the stereotypical monolithic lifecycle processes (e.g. waterfall, spiral, etc.) that historically have impeded progress for small/medium sized development efforts. In addition, the discipline and practice of software engineering includes software quality (with an established tradition of software metrics ). Software processes can be pragmatic and use best features/practices of various models without impeding developer productivity. The embracement of these practices may also be important to prevent a brain drain of sorts, as students are increasingly eschewing traditional scientific/computation science research in favor of industry opportunities, where they can literally apply what they have learned in software development courses where pragmatic software engineering practices (e.g. test-driven design, RESTful architecture, etc.) are already prevalent.
KW - software engineering
KW - process
KW - quality
KW - scientific programming
KW - agile
UR - https://ecommons.luc.edu/cs_facpubs/75
UR - http://figshare.com/articles/WSSSPE/830442
U2 - 10.6084/m9.figshare.830442
DO - 10.6084/m9.figshare.830442
M3 - Article
JO - Computer Science: Faculty Publications and Other Works
JF - Computer Science: Faculty Publications and Other Works
ER -