SlideShare a Scribd company logo
Adopting Open Source Software for Longer-term Reuse Steve Crouch, SSI [email_address] Advanced School on Scientific Software Development: Concepts and Tools 24/02/2011
Background Looked at sustainability in your own software – let’s look at it from the other side… Assume you have software that needs a new feature You could implement the feature yourself Control over the feature’s implementation No unneeded code or features Or, could make use of other software that has the feature, e.g. a code library It exists already, no re-inventing the wheel Make use of other features (if helpful) Informed reuse  should be encouraged Can save you time and effort now and later
Picking the Right Software Often many open source choices out there e.g. on SourceForge But, should consider time required to Learn new software Test it! Integrate new software into your own Manage updates to adopted software e.g. security, fixes Choosing the wrong software can be expensive! Taking time early to make a good choice can save you a lot of time later Assume you’ve found a likely candidate piece of software Let’s start by answering a few questions about it… Initial Perception The Reality! Effort required to adopt third-party software
Picking the Right Software Easy to use the ‘nearest’ software library Installed on machine already It’s the first candidate you’ve come across You’ve heard about it Unfortunately, it’s common practice… … although it could be the right choice Taking time early to make a good choice could save you  a lot  of time later Assume you’ve found a likely candidate piece of software Let’s start by answering a few questions about it… Goal: try to make an  informed decision for reuse
Does it Do What You Want?  Yes, it’s an obvious question! What are your requirements Now, but also in the future… project goals? Does it go far enough? If it doesn’t quite fit your needs, can it be (easily) extended? What does your community use/need? Do they use an established piece of software for this? Are any needed features planned for deprecation?
Is the Software Right for its Role? How will the software help to fulfil a goal? Investigate prior uses of the software Look for use cases or case studies e.g. on website Have other projects used it as you need to use it? Technically… Evidence the software will integrate with your own Track record for reliability Test the software in its operating context
Is it Actively Used, Developed and Supported?  Importance of  active  community (and its size) shouldn’t be underestimated User community Developer community Look for evidence of development Code repository (SVN/CVS check-ins) Releases, feature enhancements Look for evidence of support Forums, issue tracker - actively used, good level of response? Direct email Structured development Process for development? Code contribution policy? Deprecation policy?
Does the Software Have a Future? If development/support for software ends… e.g. lack of funding, or software has been superseded Could find yourself with unsupported software Leads to software decay Will software exist within project’s lifecycle (and beyond)? Often difficult to estimate… Ask them! Development, support and community Roadmap? Previous history of frequent releases? Planned releases? Actively updated project website? Open standards Has your community converged on appropriate standards? Does software support them where you’d expect? Evidence of established interoperability with other implementations? e.g. Keyhole Markup Language (KML) for geographical annotation and visualisation, grid open standards from Open Grid Forum (OGF)
How is the Software Provided? Good documentation!!! User, administration, development (e.g. API) Take into account your own skills Pre-requisites… Easy to obtain and deploy? Fit your own requirements e.g. operating system support If developing with the software… Access to source code repository e.g. SVN, CVS? Understandable, modular, easy to build? Unit tests or test suite? Licensing Do you have right to use/distribute it for its intended purpose? Does software respect third-party copyright and licensing for its own dependencies?
Ask the Developers! Why not ask the developer community any important questions about the software? A sign of good support if the developers are responsive and friendly Asking a developer can give you Indication of the type of responses you can expect from them in the future As well as filling in any knowledge gaps to make your decision
Example: Taverna Workflow management system, for designing and executing workflows Started as a system for bioinformaticians, its use has expanded to include many other disciplines Comprehensive user, developer and API documentation, roadmap Source code under revision control in Subversion with a contribution licensing policy (Contributor License Agreement) Extensibility framework Active and responsive bug tracking system, regularly updated website Supports a host of domain-specific and web service standards,, development funding until 2014 Organised training and workshops Long list of example uses of Taverna http://www.taverna.org.uk/
Example: JGraphT Java library for producing graphs User support and announce mailing lists, source code under revision control (SVN) Feature and bug trackers with high activity and prompt responses User Wiki for all things JGraphT Code contribution policy and good API documentation http://www.jgrapht.org/ Example shows that you probably won’t get  all  the right answers Need to decide what  is  important for your project
Further Resources SSI guides: http://www.software.ac.uk/choosing-right-open-source-software-your-project Other resources: OSS Watch:  http://www.oss-watch.ac.uk/resources/tips.xml

More Related Content

PPTX
Patterns in Testing
PPTX
Istqb ctal advanced security testing training course
PPT
Planning your project
PPT
Sustainability Training Workshop - Managing Sustainability into Software
ODP
Open Source Content Management Systems for Small and Medium Businesses, Chari...
PPT
Preserving software workshop - Community engagement workshop
PPTX
Open Source Project Management
PPTX
How to improve Developer Documentations ?
Patterns in Testing
Istqb ctal advanced security testing training course
Planning your project
Sustainability Training Workshop - Managing Sustainability into Software
Open Source Content Management Systems for Small and Medium Businesses, Chari...
Preserving software workshop - Community engagement workshop
Open Source Project Management
How to improve Developer Documentations ?

Similar to Adopting Open Source Software for Longer-term Reuse (20)

PPT
Open Source Software in Libraries
PPTX
Why Open Source is Important
PPT
Introduction to the Software Sustainability Institute
PDF
How Custom Software Development is Transforming the Traditional Business Prac...
PPT
Introduction to Agile Software Development & Python
PPT
Quality Software Development
PDF
Feb 2013Lesson 38 Software Acquisition Development
PDF
14 Tips to Choose the Right Open Source Test Automation Tool.pdf
PDF
Slides from "Taking an Holistic Approach to Product Quality"
PDF
Best practices for using open source software in the enterprise
PPT
Open Source Maturity and Suitability
PPT
Open source: Making connections by Sunny Pai
PPTX
Open source software
PPTX
Open source software
PDF
Software developer
PDF
Selecting FOSS Softwares
PPTX
Computer software specialists wikki verma
PDF
Open Source Software[1]
PPT
Understanding the Meaningful Use of Open Source Software
PPTX
Unit 2 -Software-Development (Programming Logic and Techniques)
Open Source Software in Libraries
Why Open Source is Important
Introduction to the Software Sustainability Institute
How Custom Software Development is Transforming the Traditional Business Prac...
Introduction to Agile Software Development & Python
Quality Software Development
Feb 2013Lesson 38 Software Acquisition Development
14 Tips to Choose the Right Open Source Test Automation Tool.pdf
Slides from "Taking an Holistic Approach to Product Quality"
Best practices for using open source software in the enterprise
Open Source Maturity and Suitability
Open source: Making connections by Sunny Pai
Open source software
Open source software
Software developer
Selecting FOSS Softwares
Computer software specialists wikki verma
Open Source Software[1]
Understanding the Meaningful Use of Open Source Software
Unit 2 -Software-Development (Programming Logic and Techniques)
Ad

More from Software Sustainability Institute (18)

PDF
Lightning talks - Workshop for e-Infrastructure trainers
PDF
Introductory Talk - Workshop for e-Infrastructure trainers
PPTX
The provision of support and training for e-Infrastructure users and potentia...
PPTX
Engaging the software in research community
PPTX
PDF
Collaborations Workshop Lightning Talks
PPTX
How does the workshop work?
PPTX
PPTX
Collaborations Workshop 2012 Introduction to the Software Sustainability Inst...
PPT
Digital Social Research
PPTX
Digital Economies Southampton
PPT
Sustainability Training Workshop - Intro to the SSI
PPTX
Preserving software workshop - Sustainability approaches
PPTX
PPT
Managing Code in Repositories
PPT
Governance for Software
Lightning talks - Workshop for e-Infrastructure trainers
Introductory Talk - Workshop for e-Infrastructure trainers
The provision of support and training for e-Infrastructure users and potentia...
Engaging the software in research community
Collaborations Workshop Lightning Talks
How does the workshop work?
Collaborations Workshop 2012 Introduction to the Software Sustainability Inst...
Digital Social Research
Digital Economies Southampton
Sustainability Training Workshop - Intro to the SSI
Preserving software workshop - Sustainability approaches
Managing Code in Repositories
Governance for Software
Ad

Recently uploaded (20)

PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPT
Teaching material agriculture food technology
PDF
cuic standard and advanced reporting.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
Cloud computing and distributed systems.
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
Big Data Technologies - Introduction.pptx
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
Dropbox Q2 2025 Financial Results & Investor Presentation
Spectral efficient network and resource selection model in 5G networks
Unlocking AI with Model Context Protocol (MCP)
20250228 LYD VKU AI Blended-Learning.pptx
Teaching material agriculture food technology
cuic standard and advanced reporting.pdf
Encapsulation_ Review paper, used for researhc scholars
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Chapter 3 Spatial Domain Image Processing.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
“AI and Expert System Decision Support & Business Intelligence Systems”
Reach Out and Touch Someone: Haptics and Empathic Computing
Cloud computing and distributed systems.
MYSQL Presentation for SQL database connectivity
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Understanding_Digital_Forensics_Presentation.pptx
Big Data Technologies - Introduction.pptx
Mobile App Security Testing_ A Comprehensive Guide.pdf

Adopting Open Source Software for Longer-term Reuse

  • 1. Adopting Open Source Software for Longer-term Reuse Steve Crouch, SSI [email_address] Advanced School on Scientific Software Development: Concepts and Tools 24/02/2011
  • 2. Background Looked at sustainability in your own software – let’s look at it from the other side… Assume you have software that needs a new feature You could implement the feature yourself Control over the feature’s implementation No unneeded code or features Or, could make use of other software that has the feature, e.g. a code library It exists already, no re-inventing the wheel Make use of other features (if helpful) Informed reuse should be encouraged Can save you time and effort now and later
  • 3. Picking the Right Software Often many open source choices out there e.g. on SourceForge But, should consider time required to Learn new software Test it! Integrate new software into your own Manage updates to adopted software e.g. security, fixes Choosing the wrong software can be expensive! Taking time early to make a good choice can save you a lot of time later Assume you’ve found a likely candidate piece of software Let’s start by answering a few questions about it… Initial Perception The Reality! Effort required to adopt third-party software
  • 4. Picking the Right Software Easy to use the ‘nearest’ software library Installed on machine already It’s the first candidate you’ve come across You’ve heard about it Unfortunately, it’s common practice… … although it could be the right choice Taking time early to make a good choice could save you a lot of time later Assume you’ve found a likely candidate piece of software Let’s start by answering a few questions about it… Goal: try to make an informed decision for reuse
  • 5. Does it Do What You Want? Yes, it’s an obvious question! What are your requirements Now, but also in the future… project goals? Does it go far enough? If it doesn’t quite fit your needs, can it be (easily) extended? What does your community use/need? Do they use an established piece of software for this? Are any needed features planned for deprecation?
  • 6. Is the Software Right for its Role? How will the software help to fulfil a goal? Investigate prior uses of the software Look for use cases or case studies e.g. on website Have other projects used it as you need to use it? Technically… Evidence the software will integrate with your own Track record for reliability Test the software in its operating context
  • 7. Is it Actively Used, Developed and Supported? Importance of active community (and its size) shouldn’t be underestimated User community Developer community Look for evidence of development Code repository (SVN/CVS check-ins) Releases, feature enhancements Look for evidence of support Forums, issue tracker - actively used, good level of response? Direct email Structured development Process for development? Code contribution policy? Deprecation policy?
  • 8. Does the Software Have a Future? If development/support for software ends… e.g. lack of funding, or software has been superseded Could find yourself with unsupported software Leads to software decay Will software exist within project’s lifecycle (and beyond)? Often difficult to estimate… Ask them! Development, support and community Roadmap? Previous history of frequent releases? Planned releases? Actively updated project website? Open standards Has your community converged on appropriate standards? Does software support them where you’d expect? Evidence of established interoperability with other implementations? e.g. Keyhole Markup Language (KML) for geographical annotation and visualisation, grid open standards from Open Grid Forum (OGF)
  • 9. How is the Software Provided? Good documentation!!! User, administration, development (e.g. API) Take into account your own skills Pre-requisites… Easy to obtain and deploy? Fit your own requirements e.g. operating system support If developing with the software… Access to source code repository e.g. SVN, CVS? Understandable, modular, easy to build? Unit tests or test suite? Licensing Do you have right to use/distribute it for its intended purpose? Does software respect third-party copyright and licensing for its own dependencies?
  • 10. Ask the Developers! Why not ask the developer community any important questions about the software? A sign of good support if the developers are responsive and friendly Asking a developer can give you Indication of the type of responses you can expect from them in the future As well as filling in any knowledge gaps to make your decision
  • 11. Example: Taverna Workflow management system, for designing and executing workflows Started as a system for bioinformaticians, its use has expanded to include many other disciplines Comprehensive user, developer and API documentation, roadmap Source code under revision control in Subversion with a contribution licensing policy (Contributor License Agreement) Extensibility framework Active and responsive bug tracking system, regularly updated website Supports a host of domain-specific and web service standards,, development funding until 2014 Organised training and workshops Long list of example uses of Taverna http://www.taverna.org.uk/
  • 12. Example: JGraphT Java library for producing graphs User support and announce mailing lists, source code under revision control (SVN) Feature and bug trackers with high activity and prompt responses User Wiki for all things JGraphT Code contribution policy and good API documentation http://www.jgrapht.org/ Example shows that you probably won’t get all the right answers Need to decide what is important for your project
  • 13. Further Resources SSI guides: http://www.software.ac.uk/choosing-right-open-source-software-your-project Other resources: OSS Watch: http://www.oss-watch.ac.uk/resources/tips.xml

Editor's Notes

  • #2: It’s not just about what you think you need now. It’s about what you, your intended software users/developer community need now and in the future Think about sustainability of software
  • #3: look at it from the other side: clear overlap, but not the same
  • #4: Choosing the wrong software can be expensive: wrong choice, need to replace it, avoid assumptions!
  • #5: Not enough time is generally spent on making the right choice
  • #6: Community use/need: bioinformatics - Taverna
  • #8: Active community: might be lots of people using it, but are they active within the software’s community?
  • #10: Programming language: if you plan to develop with it Easy to build/test suite: automated build and test
  • #11: Programming language: if you plan to develop with it Easy to build/test suite: automated build and test