330 likes | 441 Views
Putting the user back into software sustainability 16 December 2013, Scientific Software Days, Austin Neil Chue Hong (@ npch ), Software Sustainability Institute ORCID: 0000-0002-8876-7606 | N.ChueHong@software.ac.uk. Slides: http ://dx.doi.org/10.6084/m9.figshare. 878120.
E N D
Putting the user back into software sustainability16 December 2013, Scientific Software Days, AustinNeil Chue Hong (@npch), Software Sustainability InstituteORCID: 0000-0002-8876-7606 | N.ChueHong@software.ac.uk Slides: http://dx.doi.org/10.6084/m9.figshare.878120 Project fundingfrom Supported by Where indicatedslides licensed under
If I was a crossword compiler… Putting the user back into software sustainability But I’m not, so this talk is going to draw on my experiences with scientific software
OMII: Sowing the first seeds 11 initial projects funded by Managed Programme Many projects flourished But some wilted and decayed
OMII-UK: Cultivating and Nurturing • Emphasis on helping existing software grow • Extra gardeners brought in (Edinburgh and Manchester) with their own plant stock • Making the garden public through initiatives like Google Summer of Code and ENGAGE • Inviting specialists through the PALs scheme Cultivate and sustain community software important to research
The Software Sustainability Institute A national facility for cultivating world-class research through software • Better software enables better research • Software reaches boundaries in its development cycle that prevent improvement, growth and adoption • Providing the expertise and services needed to negotiate to the next stage • Developing the policy and tools tosupport the community developing andusing research software Better software Better research Supported by EPSRC Grant EP/H043160/1
Can we learn? Picture by Heisenberg Media Picture by nengard Picture by PNNL
Four stages of startups Are you solving a problem that others are interested in? Have you implemented core features that users want? Can you support new users by refining your processes? Ready to drive growth.Back-end scalability refactoring http://blog.startupcompass.co/pages/marmer-stages
Stage 1: Discovery • Are you solving a problem that others are interested in? • Many pieces of software created by researchers have small user bases – this is particularly true of scripts • Not a problem if you are writing the software for yourself only – but it affects how large the project to support the software can be
Case Study: Ligand Binding • Centre for Computational Chemistry, Bristol • New methods for rapid MC sampling of biomolecular systems modelled using QM/MM • Developed two codes ProtoMS (F77) + Sire (C++) • Water-Swap Reaction Coordinate method to calculate absolute protein-ligand binding free energies • SSI’s work helped assess users + scale devs • Ran user observations with 4 different users • ASPIRE/ACQUIRE framework has multiple devs • Split architecture between ASPIRE (adaptive multiresolution hybrid MD simulation) and ACQUIRE (WorkPacket scheduling system with optimisation for time to result vs “green-ness” • http://www.software.ac.uk/resources/case-studies/getting-grips-molecules • http://www.siremol.org/adaptive_dynamics
Stage 2: Validation • Have you implemented core features that users want? • Do you know who’s using your software? Why are they using it? • If you asked them “how would you feel if you can no longer use this software”, how many would be disappointed? • These are your core users: what do they want and how can you give it to them?
Case Study: Climate Policy Modelling • CIAS team at Tyndall Centre for Climate Change Research, University of East Anglia • Develop linked climate and economic models for detailed analysis • Their software was not ready to be used by other groups • One researcher/developer at UEA, several users • SSI’s work means the software is robust enough that it can be installed and used by others • Enabled use of the software by the WWFN’sClimascope project and James Cook University • Documented software to allow extensions by contributors • Made it easier to maintain and backup • Added job scheduling to improve modeling throughput • New modelling framework enables new models i.e. new science • http://www.tyndall.ac.uk/research/cias
Stage 3: Efficiency • Can you support new users by refining your processes? • If you had conflicting requirements from users, how would you deal with them? • What infrastructure changes do you need to make to support new/additional users? • At this point, scientific software projects often start designating specific community/product managers, user support staff
Case Study: ICAT • Science and Technology Facilities Council • Metadata catalogue, used by RAL UK (ISIS,DIAMOND, CLF), SNS US, ELLETRA Italy • ICAT operationally critical at sites • Huge projects looking to use ICAT (PaNdataODI, EuDAT) • Scalability issues and lack of proper processes • SSI’s work provided 33 recommendations • 15 interviews with different stakeholders • 92 observations set out in report • “…we must focus on doing the right things, andthis report will help us” • Alistair Mills, STFC • Governance and outreach changes to support additional users • http://www.software.ac.uk/preparing-icat-thousands-new-users • http://www.icatproject.org/
Stage 4: Scale • Are you ready to drive growth of users, to reengineer and refactor on an ongoing basis? • This is when software quality considerations become very important, as you have increased reputational risk • This is also the point where traditionally a PI would step aside to become Chief Technology Officer / Chief Scientist and enlist new management • After this, the next stage is sustain • Though this might be at a small scale if appropriate
Open source software projects are all about reaching sustainability
Open Source Software Projects • “Every good work of software starts byscratching a developer's personal itch.” • Eric Raymond, The Cathedral and the Bazaar • Producers start by having a direct interest in the success of the software • Just like in science • OSS projects need to satisfy two aims: • Acquire users (a.k.a. researchers) • Acquire contributors (a.k.a. collaborating researchers) • Producing Open Source Software: How to Run a Successful Free Software Project by Karl Fogel
Using infrastructure to become user aware Promotion: - website Communication: - mailing list, wiki Collaboration: - code repository Management: - issue tracker
No common baseline BhargenBasepair Bioinformatics RA Novice coding in Javaand Perl to test groupspattern algorithms Fan Fullerene Chemistry PhD Running analyseson behalf of hissupervisor Helen Helmet Mech Eng intern Exploratory codingbased on tinkeringwith legacy code Mehrdad Mapping Forestry student Field data collectioncurrently correlatingusing Matlab Slide courtesy of Greg Wilson
The modern researcher… • … worries about: • Data management and analysis • Reproducible research • Scalable simulations • Integration of models and workflows • Collaboration Where do they learn how to do this? Picture of Otto Stern courtesy of Emilio Segre Visual Archives
Why do you need users? • Funding • Direct: fees, subscriptions, … • Indirect funding: letters of support, citations, collaborations • Advertising: recommendations and referrals • Direction (indirection?) • Requirements, bug reports, change requests • Community • Users supporting other users • Users becoming contributors • Sustainability and success
4 Golden Rules- Act Amiably- Breakdown Barriers- Cultivate Contributors- Diaspora + Dispersion
A: Act Amiably • Bugzilla project did analysis of theircurrent and previous contributors • Once someone started contributing, whatkept them around? • Don’t freeze the trunk for long periods • Turnover is inevitable • Respond to contributions immediately • Be extremely kind and visibly appreciative • Encourage a total absence of negativity • Software sustainability relies on many people working happily together! http://www.codesimplicity.com/post/open-source-community-simplified/
B: Breakdown Barriers • Basics: Website, mailing list, code repository, issue resolution • Remove barriers to participation, increase efficiency • 1993: First public release; 2 devs • 1995: Code open sourced; 3 devs • 1996: r-testers list set up • 1997: lists split: r-announce, r-help,r-devel; public CVS; 11 devs • 2000: CRAN split and mirror • 2001: BioConductor • 2003: Namespaces • 2005: I8n, L8n • 2007: R-Forge • Today: BioConductor (33 core devs), R-Forge (532 projects, 1562 devs), CRAN (1400+ packages) http://cran.r-project.org/doc/html/interface98-paper/paper_2.html
C: Cultivate Contributors Building intellectual access ramps to support incremental engagement – building capacity and capability • Individual • Group • Consortium • W/ industry • Community • Active Teams change as project matures http://www.castep.org/
D: Diaspora + Dispersion • Sometimes, serendipity plays a part • E.g. GEOS-CHEM • Users spread acrossworld means theyhave to scale • But they also havegreat support andcontributor mechanisms http://acmg.seas.harvard.edu/geos/
Sustainability is also about choosing not to continue Not all software should make it to the next stage Consolidation is as importantas innovation in achievingsustainable scientific software Software proliferation Innovation Consolidation Customisation Time
Take home messageUnderstand and embrace your users and contributors if you want your scientific software to be sustainable and successful Slides: http://dx.doi.org/10.6084/m9.figshare.878120
Find out more about the SSI • Community Engagement (Lead: Shoaib Sufi) • Fellowship Programme • Events and Workshops • Consultancy (Lead: Steve Crouch) • Open Call for Projects /Collaborations • Software Evaluation • Policy and Publicity (Lead: Simon Hettrick) • Case Studies / Policy Campaigns • Software and Research Blog • Training (Lead: Aleksandra Pawlik) • Software Carpentry (300+ students/year) • Guides and Top Tips • Journal of Open Research Software (Editor: Neil Chue Hong) • Collaboration between universities of Edinburgh, Manchester, Oxford and Southampton Slides: http://dx.doi.org/10.6084/m9.figshare.878120
A national facility for cultivating world-class research through software Some of our collaborations Become our next collaborators! Website: www.software.ac.uk Email: info@software.ac.uk Twitter: twitter.com/SoftwareSaved