Software Engineering Need Not Be Difficult
Workshop on Sustainable Software for Science: Practice and Experiences
"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.
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
Creative Commons License
This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 License.
© Jeffrey C. Carver and George K. Thiruvathukal.