six principles of software design to empower scientists

54
David De Roure and Carole Goble Six Principles of Software Design to Empower Scientists

Upload: david-de-roure

Post on 11-May-2015

6.482 views

Category:

Technology


1 download

DESCRIPTION

Keynote talk for Workshop on Managing for Usability: Challenges and Opportunities for E-Science Project Management, 10-11 April 2008,OeRC, University of Oxford, UK

TRANSCRIPT

Page 1: Six Principles of Software Design to Empower Scientists

David De Roure and Carole Goble

Six Principles of Software Design to Empower Scientists

Six Principles of Software Design to Empower Scientists

Page 2: Six Principles of Software Design to Empower Scientists

Our e-Science context

6 principles of design for adoption

6 principles of user engagement

The myExperiment experience

Reflections

Page 3: Six Principles of Software Design to Empower Scientists

The e-Science Pilots, OMII-UK and myExperiment

Page 4: Six Principles of Software Design to Empower Scientists

CoAKTinGCoAKTinG MemeticMemetic CREWCREW

CombeChem platformCombeChem platform

OMII-UK myGridOMII-UK myGridmyGrid platformmyGrid platform

myExperimentmyExperiment

CombeChemCombeChem

myGridmyGrid Taverna

Page 5: Six Principles of Software Design to Empower Scientists

Box of Chemists

My Chemistry ExperimentMy Chemistry Experiment

Page 6: Six Principles of Software Design to Empower Scientists

X-Raye-Lab

Analysis

Properties

Propertiese-Lab

SimulationVideo

Diff

ract

omet

er

Grid Middleware

StructuresDatabase

www.combechem.org

Iconic CombeChem PictureIconic CombeChem Picture

Page 7: Six Principles of Software Design to Empower Scientists

scientists

LocalWeb

Repositories

Digital Libraries

Graduate Students

Undergraduate Students

Virtual Learning Environment

Technical Reports

Reprints

Peer-Reviewed Journal &

Conference Papers

Preprints &

Metadata

Certified Experimental

Results & Analyses

experimentation

Data, Metadata Provenance WorkflowsOntologies

The social process of science

The social process of science

Page 8: Six Principles of Software Design to Empower Scientists

www.smarttea.org

Smart TeaSmart Tea

Page 9: Six Principles of Software Design to Empower Scientists

Workflows are the new rock and roll

Machinery for coordinating the execution of (scientific) services and linking together (scientific) resources

The era of Service Oriented Applications

Repetitive and mundane boring stuff made easier

Iconic myGrid/Taverna SlideIconic myGrid/Taverna Slide

Carole Goble

Page 10: Six Principles of Software Design to Empower Scientists

Paul writes workflows for identifying biological pathways implicated in resistance to Trypanosomiasis in cattle

Paul meets Jo. Jo is investigating Whipworm in mouse.

Jo reuses one of Paul’s workflow without change.

Jo identifies the biological pathways involved in sex dependence in the mouse model, believed to be involved in the ability of mice to expel the parasite.

Previously a manual two year study by Jo had failed to do this.

Recycling, Reuse, RepurposingRecycling, Reuse, Repurposing

Page 11: Six Principles of Software Design to Empower Scientists

Kepler

Triana

BPEL

Ptolemy II

Page 12: Six Principles of Software Design to Empower Scientists

• Run on your laptop – no sysadmin required

• Access independent third party world-wide service providers of applications, tools and datasets– 850 databases, 166 web

servers Nucleic Acids Research Jan 2006

• My local applications, tools and datasets. In the Enterprise. In the laboratory

• Easily incorporate new services without coding

The Taverna SuperclientThe Taverna Superclient

Page 13: Six Principles of Software Design to Empower Scientists

20072006200520042003

40

Taverna downloads per day

Taverna downloads per day

taverna.sourceforge.net

Page 14: Six Principles of Software Design to Empower Scientists

OMII-UK provides free Open Source software and support to enable a sustained future for the UK e-Research community.

Our software includes Software Solutions, which are easy-to-use and easy-to-install software packages that solve common e-Research problems, and the Development Kit, which is a set of inter-operable software components that can be linked together to provide bespoke functionality.

OMII-UK supports Open Source software development by commissioning developers to produce software with the functionality required by our user community.

omii.ac.uk

Page 15: Six Principles of Software Design to Empower Scientists

e-Science Value Chaine-Science Value Chain

© 15

InfrastructureProvider

ComponentProvider

SolutionProvider

e-ScienceEnd User

OMII

OMII-UK

Page 16: Six Principles of Software Design to Empower Scientists

myExperiment.org is… “Facebook for Scientists”...but

different to Facebook! A community social network. A gateway to other publishing

environments A federated repository A platform for launching

workflows Publishing self-describing

Encapsulated myExperiment Objects

Mindful publication Started March 2007 Closed beta since July 2007 Open beta November 2007

myExperiment.org is...myExperiment.org is...

703 users, 67 groups, 146 workflows, 24 files

Page 17: Six Principles of Software Design to Empower Scientists
Page 18: Six Principles of Software Design to Empower Scientists
Page 19: Six Principles of Software Design to Empower Scientists

scientists

LocalWeb

Repositories

Graduate Students

Undergraduate Students

Virtual Learning Environment

Technical Reports

Reprints

Peer-Reviewed Journal &

Conference Papers

Preprints &

Metadata

Certified Experimental

Results & Analyses

experimentation

Data, Metadata Provenance WorkflowsOntologies

Digital Libraries

The social process of science 2.0

Page 20: Six Principles of Software Design to Empower Scientists

Our Six Principles of Design for Adoption

Page 21: Six Principles of Software Design to Empower Scientists

• No obligation on service providers to change their services to fit into Taverna

• Early users tolerated less-than-perfect interfaces because their favourite service was available

• myExperiment motto is to bring myExperiment to the user– Wikis, iGoogle, etc– www.myexperiment.org

1. Fit in, Don’t Force Change1. Fit in, Don’t Force Change

Page 22: Six Principles of Software Design to Empower Scientists

• This is about incentives • The activation energy required by users

to adopt a feature must be matched by the reward gained

• Get some core capability and quick wins out there as soon as you can

• Our scientists and developers travelled on the journey together

2. Jam Today and more Jam Tomorrow2. Jam Today and more Jam Tomorrow

Page 23: Six Principles of Software Design to Empower Scientists

• This is about delivery• Be better not perfect• Solve the problems users already know

they have – don’t make them wait for solutions to problems they don’t yet know they have and perhaps never will!

• With websites it’s easier to be incremental and to involve a distributed and disparate community of users in the design process

3. Just in Time and Just Enough3. Just in Time and Just Enough

Page 24: Six Principles of Software Design to Empower Scientists

Carole Goble

Page 25: Six Principles of Software Design to Empower Scientists

• We targeted a community we know really well, picked a few close ‘friends and family’ and just built it for them

• Experience suggests that customisation outvotes genericity, extensibility outvotes comprehensivity, and scruffy and flexible outvotes smart but rigid

• As Don Wells said, “Don’t Solve a Problem Before You Get to It”

4. Act Local, think Global4. Act Local, think Global

Page 26: Six Principles of Software Design to Empower Scientists

• This is about empowerment• Extensibility and customisation are crucial

to adoption• The small team associated with

myExperiment means maximal reuse and reusability is a necessity as well as a nicety

• As much use as possible of third party code and services, and our services available through a simple API

5. Enable Users to Add Value5. Enable Users to Add Value

Page 27: Six Principles of Software Design to Empower Scientists

• This is about community• Large number of scientists conducting the

routine processes of science on a daily basis

• Gathering usage data enables the community to benefit from usage without explicitly uploading new content

6. Design for Network Effects6. Design for Network Effects

Page 28: Six Principles of Software Design to Empower Scientists

• Both projects are just as much – or perhaps even more – about content as software

• We were reminded of this when we went open beta with myExperiment and the first bug report that came in was about a spelling error in a user-provided workflow description

NBNB

Page 29: Six Principles of Software Design to Empower Scientists

Building Trust between Users and Developers

Our Six Principles of User Engagement

Page 30: Six Principles of Software Design to Empower Scientists
Page 31: Six Principles of Software Design to Empower Scientists

• Local pioneers and external early adopters• OMII-UK operates a scheme of beta testers

and ‘Product/Area Liaisons’ (PALs), who are not directly working for OMII-UK but are the eyes and ears in the communities they work in

• Taverna has three very active PALs• myExperiment has community champions

1. Keep your Friends Close1. Keep your Friends Close

Page 32: Six Principles of Software Design to Empower Scientists

• We embed developers with users and users with developers, getting them to sit side by side for long periods

• We started myExperiment by embedding the developers in an end-user laboratory, to experience the work environment with respect to sharing and communication, and understanding non-functional requirements

2. Embed2. Embed

Page 33: Six Principles of Software Design to Empower Scientists

• Tendency of developers to get hung up on some point that a user doesn’t worry about in the overall scheme of things

• Our software is not the only software our users use, and they are only using it to do the research they really want to do

• They daily use complex tools they are familiar and comfortable with – mimic these tools and link with them

3. Keep Sight of the Bigger Picture3. Keep Sight of the Bigger Picture

Page 34: Six Principles of Software Design to Empower Scientists

• Building trust is a two-way activity, requiring compromise and favours

• For every pioneer, myGrid ‘sacrificed’ one developer in support – this was not wasted effort!

• We still develop, or help partners develop, bespoke code

• In myExperiment we prioritise tasks and allocate development effort based on the return in adoption

4. Favours will be in your Favour4. Favours will be in your Favour

Page 35: Six Principles of Software Design to Empower Scientists

• Rarely is there one kind of user:– Scientists– domain expert developers producing

applications– service developers– service providers– system administrators.

• Don’t forget young postdocs and postgraduates!

5. Know your Users5. Know your Users

Page 36: Six Principles of Software Design to Empower Scientists

• User needs and wants will change• Success will mean that scientific practice

will change, and so will expectations• The choice of pioneering friends will need

to change and new classes of user will emerge

• When we started out, we replicated current scientific practice – two years later we were inventing new practice

6. Expect and Anticipate Change6. Expect and Anticipate Change

Page 37: Six Principles of Software Design to Empower Scientists

The myExperiment Experience

www.myexperiment.org

Page 38: Six Principles of Software Design to Empower Scientists

24/5/2007 | myExperiment | Slide 38

Page 39: Six Principles of Software Design to Empower Scientists

Google GadgetGoogle Gadget

Page 40: Six Principles of Software Design to Empower Scientists

Ownership and AttributionOwnership and Attribution

Page 41: Six Principles of Software Design to Empower Scientists

`

users

descriptions

groups

friendships

tags

Enactor

blobsworkflows

HTMLXML

Snapshot map of resources with their relationships and versions

Page 42: Six Principles of Software Design to Empower Scientists
Page 43: Six Principles of Software Design to Empower Scientists

• Web 2.0 developers vs CS Software Engineers

• Core team + champions works really well• We’ve stuck to “only do what users ask

for” – features then refactoring• For the project manager it’s like driving a

very fast car!• Weekly update

Managing DevelopersManaging Developers

Page 44: Six Principles of Software Design to Empower Scientists

• Daily 5pm developer chat chaired by PM, Co-PI or PM delegate

• Weekly 10.30 management telephone conference

• Monthly team Face to face• Monthly hackfest• Monthly (at least) user workshop• PM has daily contact with developers• Influencing myGrid team

The regime!The regime!

Page 45: Six Principles of Software Design to Empower Scientists
Page 46: Six Principles of Software Design to Empower Scientists

e-ScienceTechnologyCreators& Integrators

ApplicationsResearch

EEResearch

Socio-economic&CommercialInnovation

e-Sciencebespoketailoring

MassUse byResearchers

5 years 5 years 5 years

CSResearch

e-Science

10s ofintegrators

100s ofembeddedconsultants

1000s ofresearch

users

The Arrow ProblemThe Arrow Problem e-Science Pipeline

Malcolm Atkinson

NB This isn’t wrong!

Page 47: Six Principles of Software Design to Empower Scientists

Don’t think rollout of technologies...

Think roll-in of researchers...

MassUse byResearchers

MassUse byResearchers

Knowledge co-production vs Service Delivery!

Page 48: Six Principles of Software Design to Empower Scientists

Web Services RESTful APIs cmd lines ssh http

Web Browser Mobile phone iPod Car Equipment PDA

P2P

mashups

workflows

services

applicationsSubjectICT experts Computer

Scientists

Software Companies

Workflowtools

Ruby on Rails

ecosystem

Scientists

open sourceSoftwareEngineers

nescOeRC

Page 49: Six Principles of Software Design to Empower Scientists

N2

N

N

Page 50: Six Principles of Software Design to Empower Scientists

One MiddlewareOne Middleware2N

N

N

Page 51: Six Principles of Software Design to Empower Scientists

MiddlewareMiddleware?

N

N

MiddlewareMiddleware

MiddlewareMiddleware

MiddlewareMiddleware

MiddlewareMiddleware

MiddlewareMiddlewarePolynomial involving N1,N2 and M

Page 52: Six Principles of Software Design to Empower Scientists

Don’t think rollout of technology, think roll-in of users

Take homeTake home

Page 53: Six Principles of Software Design to Empower Scientists

1. Fit in, Don’t Force Change2. Jam today and more jam

tomorrow3. Just in Time and Just

Enough 4. Act Local, think Global 5. Enable Users to Add Value6. Design for Network

Effects

1. Fit in, Don’t Force Change2. Jam today and more jam

tomorrow3. Just in Time and Just

Enough 4. Act Local, think Global 5. Enable Users to Add Value6. Design for Network

Effects

Summary of PrinciplesSummary of Principles

1. Keep your Friends Close2. Embed3. Keep Sight of the Bigger

Picture4. Favours will be in your

Favour5. Know your users6. Expect and Anticipate

Change

1. Keep your Friends Close2. Embed3. Keep Sight of the Bigger

Picture4. Favours will be in your

Favour5. Know your users6. Expect and Anticipate

Change

Page 54: Six Principles of Software Design to Empower Scientists

Contact

David De [email protected]

Carole [email protected]

Thanks

Malcolm Atkinson, Jeremy Frey,Savas Parastatides, The myGrid Family

http://eprints.ecs.soton.ac.uk/15032/http://eprints.ecs.soton.ac.uk/15032/