the relationship between development problems and use of software engineering practices in...
TRANSCRIPT
The Rela(onship between Development Problems and Use of So:ware Engineering Prac(ces in
Computa(onal Science & Engineering
Dus$n Heaton, Jeffrey C. Carver, Roscoe Bartle8, Kimberly Oakes, and Lorin Hochstein [email protected], [email protected]
Maintainable SoFware Prac$ces in e-‐Science
e-‐Science 2012
Introduc$on
• SoFware is used to: – Avoid dangerous/expensive experiments
– Process large amounts of data
• Why not have soFware engineers develop the code?
2
Previous Survey
• How much SE knowledge exists in the CSE Community?
• 92% of respondents claim they have sufficient knowledge of SE.
• 63% claim the CSE community has sufficient knowledge
• Specific Topics
3
Previous Survey
• Research vs Produc$on
• Relevance (almost) always higher than use
• Top 3 Most Relevant Prac$ces: – Version Control – Documenta$on – Verifica$on & Valida$on
4
Why perform a new survey?
• Did the respondents define the prac$ces the same way we did?
• What programming languages did the respondents use?
• Respondents repeated 4 problems – Rework
– Performance issues
– Regression errors
– Forgedng to fix bugs that were not tracked
5
Survey Respondents
• Target Audience: – Broad subset of the CSE community
– Mailing lists from mul$ple na$onal laboratories, numerical analysis, and other, more focused, CSE development lists
• 151 responses
6
Defini$ons
Yes 95%
No 5%
Respondents overwhelmingly agreed with our defini$ons
7
Programming Languages
0% 10% 20% 30% 40% 50% 60% 70%
Other
Perl
Python
Matlab
C
Fortran
C++
C++ most common, not Fortran
8
Self ra$ng of SE Knowledge vs Familiarity with SE topics
0%
5%
10%
15%
20%
25%
30%
35%
40%
45%
Somewhat Sufficient
Moderately Sufficient
Mostly Sufficient
Fully Sufficient
None
Low
Medium
High
Very High
Most people had a medium knowledge of SE topics
9
Rework
• Most frequent problem • What would help?
• Research developers: low-‐medium level
• Produc$on developers: high level
10
Rework
0%
5%
10%
15%
20%
25%
30%
35%
Research
Use
Relevance
0%
5%
10%
15%
20%
25%
30%
35%
Produc(on
Use
Relevance
High Relevance and Use from Produc$on Developers
11
Performance
• Least severe problem • What can help?
• Research Developers: low-‐medium
• Produc$on Developers: high
12
Performance
0%
5%
10%
15%
20%
25%
30%
35%
40%
Research
Use
Relevance
0%
5%
10%
15%
20%
25%
30%
35%
40%
Produc(on
Use
Relevance
High Relevance comes from Produc$on Developers
13
Regression Errors
• More important to produc$on than research developers
• What can help?
• Research developers: random
• Produc$on developers: very high
14
Regression Errors
0% 5% 10% 15% 20% 25% 30% 35% 40% 45% 50%
Research
Use
Relevance
0% 5% 10% 15% 20% 25% 30% 35% 40% 45% 50%
Produc(on
Use
Relevance
High Use and Relevance among Produc$on developers
15
Forgedng to Fix Bugs
• Least frequent, but most severe • What can help?
• Unit Tes$ng: everybody uses it • Code Reviews: moderate usage
• Issue/Bug Tracking soFware: Produc$on • Test-‐driven Development: Research
16
Forgedng to Fix Bugs
0%
5%
10%
15%
20%
25%
30%
Research
Use
Relevance
0%
5%
10%
15%
20%
25%
30%
Produc(on
Use
Relevance
High Relevance, medium-‐low use
17
Conclusion
• Produc$on developers – More likely to view a problem as severe and frequent
– More likely to use prac$ces
• Many prac$ces have not been adopted – Respondents did not know how to use the prac$ce or more basic prac$ces
18
The Rela(onship between Development Problems and Use of So:ware Engineering Prac(ces in
Computa(onal Science & Engineering
Dus$n Heaton, Jeffrey C. Carver, Roscoe Bartle8, Kimberly Oakes, and Lorin Hochstein [email protected], [email protected]
Maintainable SoFware Prac$ces in e-‐Science
e-‐Science 2012