So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
(
What(is(so#ware( sustainability( anyway?(
( (
NSF(SI2(PI(Mee2ng,(17?18(January(2013( Neil(Chue(Hong((@npch)( N.ChueHong@so#ware.ac.uk( (
What( is (so#ware( sustainability( anyway? ( ( ( NSF(SI2(PI(Mee2ng - - PowerPoint PPT Presentation
( www.software.ac.uk- What( is (so#ware( sustainability( anyway? ( ( ( NSF(SI2(PI(Mee2ng ,( 17?18(January(2013( Neil(Chue(Hong((@npch)( N.ChueHong@so#ware.ac.uk( ( So#ware(Sustainability(Ins2tute( www.software.ac.uk-
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
( (
NSF(SI2(PI(Mee2ng,(17?18(January(2013( Neil(Chue(Hong((@npch)( N.ChueHong@so#ware.ac.uk( (
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
(
(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
we,want,others,to,take,the,so6ware,over, subject,to,IP,issues”,
complex,tools,we,want,to,conAnue,to,use,but, it’s,not,clear,how,they’ll,be,sustained”,
! Quotes(taken(from(ENGAGE(interviews(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
hRp://beyond?impact.org/?p=175(
impact(on(each(version(of(the( so#ware?(
component(when(authors(leave?((
(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
What%do%we%choose%to%keep:% ? %Workflow?% ? %So3ware%that%runs%workflow?% ? %So3ware%referenced%by%workflow?% ? %So3ware%dependencies?%% What’s%the%minimum%citable%part?%
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
Algorithm(
Func2on(
Program(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
Personal( v1( Personal( (v2( Personal( v3( Personal(( v2a( Public(( v1( Personal(( v3a( Personal(( v2a( Public(( v2( Public(( v3(
Why%do%we%version?% ? %To%indicate%a%change% ? %To%allow%sharing% ? %To%confer%special%status%
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
Novel(reuse(of(public(sector(data( hRp://www.mysociety.org(
What%do%we%sustain:% ? %Map?% ? %So3ware%that%creates%map?% ? %So3ware%that%uses%map?%%
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
Product( Management( Funding/( Effort( Community( Engagement( So#ware( Engineering(
So3ware% Sustainability%
Support(/( Contribu2ons( Market( Development(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
a,community,
growth,through,collaboraAon,
Leveraging,infrastructure,
Governing,sustainably,
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
! Cloud(compu2ng(and(workflows(
! Sensi2ve(to(changes(in(its(environment( ! May(require(expert(knowledge(outside(of(the(team(
! What(are(you(seeking(to(sustain?(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
Achieve(legal(compliance( ( Create(heritage(value( ( Enable(con2nued(access(to(data( ( Encourage(so#ware(reuse( ( Manage(systems(and(services(
Purpose(
hRp://www.so#ware.ac.uk/aRach/So#warePreserva2onBenefitsFramework.pdf(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
Preserva2on((techno?centric)( ( Emula2on((data?centric)( ( Migra2on((func2onality?centric)( ( Transi2on((process?centric)( ( Hiberna2on((knowledge?centric)(
Approach(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
Image,courtesy,of,RGB,Kew,–,not,for,reuse, Image,courtesy,of,London,Permaculture,under,CCJbyJncJsa,license,
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
approaches(we(have( iden2fied(that(could(be( classed(as( “sustainability”(
a(number(of(factors,( which(change(through( 2me(
Procras2na2on( Depreca2on( Hiberna2on( hRp://www.so#ware.ac.uk/resources/approaches?so#ware?sustainability(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
Models%
Consultancy(
merchandising)( Vehicles%
! University(based( ! Spin(out(company( ! Consultancy(and( Customisa2on( ! Industrial(knowledge(transfer( ! Contracts( ! Licensing( ! Cer2fica2on( ! Support(services(/(training( ! So#ware(as(a(Service( ! So#ware(Founda2on(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
! No(one(right(“solu2on”(but(many(examples(of(best( prac2ce(and(process(
! But(must(be(reviewed(regularly(
project,(but(considering(the(product,
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
From(xkcd.com(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
24(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
A(na2onal(facility(for(cul2va2ng(world?( class(research(through(so#ware(
development(cycle(that(prevent(( improvement,(growth(and(adop2on((
needed(to(nego2ate(to(the(next(stage(
support(the(community(developing(and( using(research(so#ware(
Supported(by(EPSRC(( Grant(EP/H043160/1((
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
so#ware(community(
intelligence(and(interac2ons(
! Keep(the(so#ware(in(its(respec2ve(community( ! Work(with(the(community,(to(increase(ability( ! Don’t(introduce(dependency(on(SSI(as(the(developer( ! Expand(and(exploit(networks(and(opportuni2es(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
advice:(
! They(want(to(be(more(produc2ve(in(their(research( ! They(don’t(want(to(be(embarrassed(by(appearing(worse( than(their(peers(
! Developing(the(scien2fic(compu2ng(/(so#ware( development(skill(base( ! The(role(and(reward(of(so#ware(in(research( ! Recogni2on(of(so#ware(career(paths( ! Reproducible(research(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
Re? search( Careers( Recogni2on(/( Reward( Skills(and(Capability( So#ware( So#ware( So#ware( Re?usable( ((((Re?producible(
www.so#ware.ac.uk/( ((so#ware?evalua2on?guide( ((resources/guides( ((so#ware?carpentry( ((training( www.so#ware.ac.uk/blog/( 2012?11?09?cra#sperson?and?scholar( so#ware.ac.uk/blog/2012?08?16?what?research?( so#ware?community?and?why?should?you?care( www.so#ware.ac.uk/blog/2011?05?02?( publish?or?be?damned?alterna2ve?( impact?manifesto?research?so#ware(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
! Fellowship(Programme( ! Events(and(Roadshows(
! Open(Call(for(Projects( ! So#ware(Evalua2on(
! Guides(and(Case(Studies( ! Best(Prac2ce(and(Policy(
! So#ware(Carpentry( ! So#ware(Surgeries((
Southampton.(9.5(FTEs(for(5(yrs(supplemented(by(addi2onal(project(funding.(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
Consultancy( Projects( Co?I’s(/( Advisors( Fellows( Partners(/( Collaborators( Community( Intelligence( Roadshows( Case(Studies( /(Guides( Best(Prac2ce( /(Policy( Workshops(/( Training(( Community( Interven2ons( Project( Selec2on( Research(Communi2es( Analysis(of( intelligence( Publicise( Informa2on(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
! Development(calls((project(staff)( ! Management(calls((inves2gators(+(( senior(staff)(
! Outreach(calls( ! Community(Engagement(calls(
! Mgmt/Ops( F2F(mee2ngs(
! Advisory(Board(( mee2ngs(
!
doi:(10.1098/rsta.2011.0141(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
! 3?6(months(dura2on( ! >(3(staff?months(funding((either(SSI(or(external)(
! Short,(intermiRent(interac2ons( ! Perhaps(over(extended(2mescales( ! Both(SSI(and(external(funding(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
disciplines(
Ins2tute(
! In(return(for(travel(expenses(and(career(progression(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
coastal(engineering,(medicine,(seman2c(web,(so#ware(development,( environmental(change,(glacial(geomorphology,(bioinforma2cs(
! 3D(Body(Scanning(Technologies( ! Terra(Cognita(and(Interna2onal(Seman2c(Web(Conference( ! Wellcome(Trust(Conference(on(Genome(Informa2cs( ! Digital(Engagement( ! ATLAS.2(workshop(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
! So#ware(development:(general(best(prac2ce( ! Ready(for(release?( ! Defending(your(code(against(dependency(problems(( ! Developing(maintainable(so#ware( ! Wri2ng(readable(source(code( ! Tes2ng(your(so#ware( ! How(to(frustrate(your(users,(annoy(other(developers(and(please(lawyers( ! How(do(I(figure(out(if(this(so#ware(is(“good”?(
! Choosing(the(right(open?source(so#ware(for(your(project( ! Choosing(project(and(product(names(
! Choosing(a(repository(for(your(so#ware(project(( ! Migra2ng(project(resources:(what(to(remember( ! Crea2ng(and(managing(SourceForge(projects( ! Retrieving(project(resources(from(NeSCForge(
! Adop2ng(an(open?source(licence( ! Suppor2ng(open?source(so#ware((
! Recrui2ng(champions(for(your(project( ! Recrui2ng(student(developers(
! Crea2ng(videos(for(so#ware(projects(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
! Ar2cles(on(so#ware( sustainability(and(related(issues( ! Contribu2ons(from(SSI(Staff,(SSI( Agents,(and(Guest(Contributors( ! Aiming(for(at(least(one(post(per( week,(increasing(as(more( contributors(come(on(board((
! “Your(so#ware(development( ques2ons(answered”( ! More(technical(–(focused(at( developers( ! Aiming(for(one(ques2on(per( month(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
! hRp://so#ware?carpentry.org( ! Interna2onal(ini2a2ve(to(teach(basics(of( so#ware(engineering(to(computa2onal( researchers(
! Phenomenally(successful(–(2x(oversubscrip2on( ! Cheap(to(run(but(budget(for(3x(the(coffee( ! 19(workshops(already(confirmed(in(Q1/Q2( 2013,(another(24(requested(
! “Bring(your(own(code”( ! “Code(Smells”( ! Run(at(exis2ng(conferences,(and(for(so#ware( funding(programmes( ! Offering(bespoke(advice(as(well(as(training(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
research(roadmap.(
engagement(of(so#ware(authors(with(process(and(the(likely(addi2onal( contribu2on(that(would(be(gained(from(the(community.((
significantly(improved(by(the(work?(This(is(a(measure(of(the(User(Demand( for(improvement.(
reach(a(new(stage(of(availability(e.g.(taking(it(from(within(one(collabora2on( to(make(it(fit(for(the(whole(research(community(or(a(new(community(
the(quality(or(performance(of(the(so#ware?(
collabora2on(with(other(groups,(commercialisa2on,(alterna2ve(funding(or( new(effort?(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
! New(methods(for(rapid(MC(sampling(of( biomolecular(systems(modelled(using(QM/MM( ! Developed(two(codes(ProtoMS((F77)(+(Sire((C++)( ! Water?Swap(Reac2on(Coordinate(method(to( calculate(absolute(protein?ligand(binding(free( energies(
! ProtoMS(and(Sire(both(single(developer(codes( ! ASPIRE/ACQUIRE(framework(has(mul2ple(devs(
mul2resolu2on(hybrid(MD(simula2on)(and(ACQUIRE( (WorkPacket(scheduling(system(with(op2misa2on( for(2me(to(result(vs(“green?ness”(
(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
! GS?2(used(to(study(low?frequency(turbulence(in(( magne2zed(plasma( ! No(common(visualisa2on(across(different(groups( ! Deliver(mutually(agreeable(framework(that(can(( be(extended(easily(and(can(be(maintained(by( the(small(fusion(community(
between(groups(
! Simplified(&(enhanced(plasma(visualisa2on(tool(
! Aim(to(allow(CCFE(to(contribute(back(to(GS?2(community( ! “I(am(very(confident(the(tool(will(be(invaluable”(
(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
! Develop(PrivacyGuard(so#ware,(a(DICOM(( image(deiden2fica2on(toolkit( ! Created(so#ware(to(support(new(mul2spectral(( colouring(modula2on(and(variance(( iden2fica2on(technique((“MCMxxxVI”)(to( iden2fy(white(maRer(lesions(that(are(indica2ve(
! BRIC(are(not(principally(so#ware(developers,(( but(do(provide(so#ware(to(other(researchers(
! Looked(at(exploita2on(
! Made(it(easier(for(BRIC(staff(to(maintain(and(develop(
(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
! Previous(SARoNGS(project(aimed(to(provide(a( simple(mechanism(to(obtain(the(security(( tokens(required(to(access(the(Na2onal(Grid(Service.(( ! This(service(uses(the(UK(Access(Management(Federa2on(( to(iden2fy(people(using(Shibboleth.(( ! First(in(ongoing(series(of(“NGS(recommends…”(
corrected(
! Iden2fied,(fixed(deep(bugs(in(SARoNGS(WMS(
! “Happy(with(the(report,(using(it(to(beat(people(now”(
(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
Research,(University(of(East(Anglia(
! Develop(linked(climate(and(economic(models(for( detailed(analysis( ! Their(so#ware(was(not(ready(to(be(used(by(other( groups(
it(can(be(installed(and(used(by(others(
! Enabled(use(of(the(so#ware(by(the(WWFN’s( Climascope(project(and(James(Cook(University(
science(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
! Developed(an(environment(which(is(used(to(integrate( various(tools(used(in(the(e?Humani2es(textual(studies( lifecycle( ! Builds(on(the(German(TextGrid(project,(and(many(other( exis2ng(tools(
the(box”(–(an(important(requirement(for(the( researchers(
! Developed(a(VM(image(containing(the(TextVRE( installa2on(
maintain(
! Feeding(back(work(to(TextGrid(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
measures(over(next(5/10/15(years(
about(the(city(
system(and(popula2on(
future(paRerns((conges2on,( health,(social(inequality)(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
49(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
50(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
52(
What%do%we%sustain:% ? %FuncCon?% ? %Form?% ? %Knowledge?%%
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
((
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
( 1)(Collec2ng(so#ware(in(repositories(sustains(it( (the,myth,of,preservaAon)( 2)(Scien2fic(so#ware(can(be(handed(off(to(experts( (the,myth,of,robustness)( 3)(One(heroic(programmer(can(keep(it(going( (the,myth,of,personality)( 4)(So#ware(in(one(domain(is(the(same(as(in(any(other( (the,myth,of,generalness)(( 5)(Open(sourcing(gives(me(free(effort( (the,myth,of,puppies,,or,build,it,and,they,won’t,come),
hRp://www.slideshare.net/npch/so#ware?sustainability?looking?past?the?myths(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
for(the(open(development((
( 1)(Don’t(reinvent(the(wheel( 2)(Code(well( 3)(Be(your(own(user( 4)(Be(transparent( 5)(Be(simple( 6)(Don’t(be(a(perfec2onist( 7)(Nurture(and(grow(your(community( 8)(Promote(your(project( 9)(Find(sponsors( 10)(Science(counts( (((
Prlić(A,(Procter(JB((2012)(Ten(Simple(Rules(for(the(Open(Development(of(Scien2fic(So#ware( (PLoS(Comput(Biol(8(12):(e1002802.(doi:10.1371/journal.pcbi.1002802(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
for(scien2fic(compu2ng(
( 1)(Write(programmes(for(people,(not(computers( 2)(Automate(repe22ve(tasks( 3)(Use(the(computer(to(record(history( 4)(Make(incremental(changes( 5)(Use(version(control( 6)(Don’t(repeat(yourself((or(others)( 7)(Plan(for(mistakes( 8)(Op2mise(so#ware(only(a#er(it(works(correctly( 9)(Document(the(design(and(purpose(of(the(code,(rather( than(its(mechanics( 10)(Conduct(code(reviews( (((
Wilson(G,(et(al.((2013)(Best(Prac2ces(for(Scien2fic(Compu2ng( (SubmiRed(to(PNAS.(hRp://arxiv.org/abs/1210.0530(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
( 1)%Idea((Seed)((one,person), 2)(Prototype((Start?Up):(1J2,people,contribuAng,,few, people,using,,normally,within,same,organisaAon,,informal, support( 3)(Research((SME):(few,people,contribuAng,,more,people, using,,a,few,different,organisaAons,mostly,known,to, creators,,limited,support( 4)(Supported((Expanding(company):(several,people, contribuAng,,many,people,using,,several,organisaAons,, formal,support,and,contribuAon,mechs.( 5)(Product((Established(company):(many,contributors,, users,,organisaAons,,support,mechanisms.,
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
market;(proximity(of(so#ware(to(market(
Idea( Prototype( Research( Idea( Prototype( Idea( Idea( Prototype( Research( Supported( Product( Idea( Prototype( Research( Supported(
An(idea(to(solve(a(problem( Scaling(to(work(for(others( Understand(the(func2onality( Allow(others( to(par2cipate(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
So#ware(prolifera2on( Time( CustomisaAon, InnovaAon, ConsolidaAon,
Not(all(so#ware(should(make(( it(to(the(next(stage( Management(changes(through(( 2me,(requiring(planning(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
(( ( Remove(the(barriers(to(each(and(you’ll(go(far(((
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
ISSUE( TRACKER( AUTOMATED( BUILD&TEST( CODING( STANDARDS( CODE( REPOSITORY( REAL(TIME( CHAT( DEVELOPER( EMAIL(LIST( GENERAL( EMAIL(LIST( ANNOUNCE( EMAIL(LIST( CRM( USAGE( TRACKING( CONTACT( EMAIL( REFERENCE( MANAGER( DOMAIN( NAME( PRIVATE(WIKI/ SITE( SOCIAL( NETWORKING( PUBLIC( WEBSITE( BLOG( FAQS( FORUMS( BROADCAST( SERVICES( GOVERNANCE( CONTINUOUS( INTEGRATION( STYLE( CHECKER( DEPENDENCY( REPOSITORY( SHARED( CALENDAR(
PROTOTYPE( RESEARCH( PRODUCT( SUPPORTED(
COLLABORATION( COMMUNICATION(
TRAINING(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
! Existence(–(there(is(accurate( metadata(that(defines(the(so#ware(( ! Availability(–(you(can(access(and(run( the(so#ware( ! Openness(–(the(so#ware(has(an(
! Linked(–(the(related(data,( dependencies(and(papers(are( indicated( ! Assured(–(the(so#ware(provides( ways(of(assuring(its(“correctness”(
c.f., 5,Stars,of,Linked,Data,, (BernersJLee), 5,Stars,of,Online,Journals,, (ShoZon),
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
current(and(previous(contributors(
! Once(someone(started(contribu2ng,(what( kept(them(around?(
! So#ware(sustainability(relies(on(many(people(working( happily(together!(
hRp://www.codesimplicity.com/post/open?source?community?simplified/(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
(r?devel;(public(CVS;(11(devs(
R?Forge((532(projects,(1562(devs),(( CRAN((1400+(packages)(
68(
hRp://cran.r?project.org/doc/html/interface98?paper/paper_2.html(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
Building(intellectual(access(ramps(to(support(incremental( engagement(–(building(capacity(and(capability(
Teams(change(as(( project(matures(
69( hRp://www.castep.org/(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
great(support(and( contributor(( mechanisms(
hRp://acmg.seas.harvard.edu/geos/(
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
! Data(management( and(analysis( ! Reproducible( research( ! Scalable(simula2ons( ! Integra2on(of( models(and( workflows( ! Collabora2on(
Picture(of(ORo(Stern( (of(( Emilio(Segre(Visual(Archives((
So#ware(Sustainability(Ins2tute(
www.software.ac.uk-
undergraduate(courses(
! Like(presenta2on(skills(
postgraduate(courses(
! Like(sta2s2cs(and(ethics(
methods(of(digital(research(
! Not(just(programming(101(