Download presentation
Presentation is loading. Please wait.
Published byEric Patrick Modified over 8 years ago
1
Research Software Group To save time, do this now… Go to: http://goo.gl/dqvnnS In the Etherpad, follow instructions under ‘When you arrive…’
2
What we think we know… Research Software Group Steve Crouch, Greg Wilson Software Carpentry Why should scientists understand how to write better software? This work is licensed under the Creative Commons Attribution License Copyright © Software Carpentry and The University of Edinburgh 2011-2012 See http://software-carpentry.org/license.html for more information.
3
Research Software Group The problem with (teaching) software development
4
What we think we know… Research Software Group Once upon a time… 7 Years War (1754-63) Britain loses 1512 sailors to enemy action… …and almost 100,000 to scurvy
5
What we think we know… Research Software Group But before then… Courtesy of the National Library of Medicine James Lind (1716-94) 1747: (possibly) first ever controlled medical experiment CiderSea water Sulphuric acid (!)Oranges VinegarBarley water
6
What we think we know… Research Software Group Oranges (and lemons)… Courtesy of the National Library of Medicine And no-one listened…he’s not an English gentleman! But in 1794 the Admiralty gave it a go… …and England came out on top! CiderSea water Sulphuric acidOranges VinegarBarley water James Lind (1716-94) 1747: (possibly) first ever controlled medical experiment
7
What we think we know… Research Software Group Modern medicine Medical profession eventually realised controlled studies were the right way to go David Sackett Pioneer of “evidence-based medicine” Randomised double-blind test is a “gold standard” Cochrane Collaboration http://www.cochrane.org/ Largest collection of records of randomised controlled trials in the world Image courtesy of Lab Science Career
8
What we think we know… Research Software Group What about software development? Martin Fowler IEEE Software, July/Aug 2009 “[Using domain specific language] leads to two primary benefits. The first, and simplest, is improved programmer productivity... The second... is... communication with domain experts.” Image courtesy of adewale_oshineye
9
What we think we know… Research Software Group Just one more thing… Two substantive claims… …without a single citation! Where’s the proof? “Many software researchers advocate rather than investigate” – Robert L. Glass (2002) Par for the course! Image courtesy of whatleydude Image courtesy of futureatlas.com
10
What we think we know… Research Software Group Simply the best? “Exploratory experimental studies comparing online and offline programming performance” Sackman, Erikson and Grant (1968) “The best programmers are up to 28 times more productive than the worst” So all we need are a few good people (apparently)… 1968! Designed to compare batch versus interactive 12 programmers for an afternoon
11
What we think we know… Research Software Group Times, they are a changin’ Growing emphasis on empirical studies since the mid-1990s Papers describing new tools or practices routinely include results from some kind of field study International Conference on Software Engineering Empirical Software Engineering “It will never work in theory”
12
Research Software Group So what do we know?
13
What we think we know… Research Software Group Understand your requirements “Some Experience with Automated Aids to the Design of Large-Scale Reliable Software” Boehm et al (1975) Most errors are introduced during requirements analysis and design The later an error is detected the more costly it is to address 1 hour to fix in the design 10 hours to fix in the code 100 hours to fix after it’s gone live… time number / cost
14
What we think we know… Research Software Group Invite others to read your code Rigorous inspections can remove 60-90% of errors before first test is run Fagan (1975) “Design and Code Inspections to Reduce Errors in Program Development" The first review and hour matter most Cohen (2006) “Best Kept Secrets of Peer Code Review” Develop code in small, readable, reviewable chunks
15
What we think we know… Research Software Group Errors of a feather… About 80% of the defects come from 20% of the modules, and about half the modules are error free Boehm and Basili (2001) When you identify more errors than expected in some program module, keep looking!
16
What we think we know… Research Software Group How did you learn to program? You don’t just go out and write War and Peace You’d read other skilled writers first Teach maintenance first Harlan Mills (1990) Image courtesy of dwyman “The best way to prepare [to be a programmer] is to write programs and to study great programs that other people have written” Susan Lammers, 1986, quoting a younger Bill Gates
17
What we think we know… Research Software Group Beware false prophets! “Anchoring and Adjustment in Software Estimation” Aranda & Easterbrook (2005) 23 computer science students/software developers Split into groups, each group given a spec with 1 change “How long do you think it will take to make a change to this program?” Control Group: “I’d like to give an estimate for this project myself, but I admit I have no experience estimating. We’ll wait for your calculations for an estimate.” Group A: “I admit I have no experience with software projects, but I guess this will take about 2 months to finish.” Group B: “… I guess this will take about 20 months to finish.”
18
What we think we know… Research Software Group Anchors drag you down Novice’s estimate mattered more than… Experience in software engineering Tools used Formality of estimation Group A (lowball)5.1 months Control Group7.8 months Group B (highball)15.4 months
19
What we think we know… Research Software Group And there are many more…! http://software-carpentry.org/4_0/softeng/ebse
20
What we think we know… Research Software Group So… Shouldn’t our development practices be built around these, and other, facts? +
21
What we think we know… Research Software Group One other thing we know… Software developers and researchers differ! Saying “this is good because software developers say it is good” is not good enough! We say “this is good because it helps your research” Good software development practices contribute to good research …which we hope to demonstrate!
22
Research Software Group Who are we? Instructors Ian Hawke Steve Crouch John Robinson Devasena Inupakutika Helpers Olivier Philippe Ian Emsley Olivia Wilson Alice Harpole Alan Ponce
23
What we think we know… Research Software Group Software Sustainability Institute Cultivate world-class research with software
24
Research Software Group Based in Electronics and Computer Science We help to improve software developed by researchers at Southampton, through: Direct collaboration: we provide skilled Research Software Engineers for projects Software development skills training: through Software Carpentry workshops Led by John Robinson Contact rsg-info@soton.ac.uk www.rsg.soton.ac.uk
25
Research Software Group Housekeeping Toilets As you exit the room, they are around the corner on the left No fire drills today! Evacuation route Directly out of main entrance Assemble in paved area outside
26
Research Software Group Wednesday 15th December 09.00 Arrival 09.30 Introduction - Steve Crouch 10.00 Automating tasks with Unix shell – Ian H 10.45 Break 11.15 Bash shell continued 12.00 Break (lunch not provided) 13.00 Introduction to Python – Steve 14.15 Break 14:45 Python continued 16:00 Wrap-up of Day 1 16:30 Close
27
Research Software Group Thursday 16th December 09.30 Version control – John 10.30 Break 11.00 Version control continued 12.00 Break (lunch not provided) 13.00 Writing robust code & unit testing with Python – Devasena 14.00 Break 14.30 Unit testing continued 15.30 Wrap-up and feedback – Steve 16.00 Close
28
Research Software Group So what’s the deal with these sticky notes anyway?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.