buy, build or borrow? filling functional gaps in your lis · 2019-07-27 · learning objectives...
TRANSCRIPT
![Page 1: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/1.jpg)
Buy, Build or Borrow?
Filling functional gaps in
your LIS
Toby C. Cornish, MD, PhD
Associate Professor
Director of Pathology Informatics
Department of Pathology
University of Colorado
![Page 2: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/2.jpg)
DISCLOSURE
In the past 12 months, I have had a significant financial interest or other relationship
with the manufacturer(s) of the following product(s) or provider(s) of the following
service(s) that will be discussed in my presentation.
• Pathology Imaging Advisory Board, Leica Biosystems, Inc.
![Page 3: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/3.jpg)
Learning objectives
• By the end of this session, the participant will be able to:
1. Define an LIS functional gap and how to identify one
2. List advantages and disadvantages of the three approaches to
filling functional gaps: buying, building or borrowing a solution
3. Identify situations when a fourth option (a “workaround”) may be a
better choice
![Page 4: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/4.jpg)
Learning objectives, cont.
• By the end of this session, the participant will be able to:
4. Define key concepts related to buying, building or borrowing:
a. Computer programming v. software development
b. NIH “Not Invented Here” Syndrome
c. Open source software and free/libre software
![Page 5: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/5.jpg)
Identifying a functional gap in the LIS
• What is a functional gap?
– Difference between what a system does now versus what it needs to
do to fully support your workflows
![Page 6: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/6.jpg)
Examples of functional gaps
• Molecular LIS module
• Synoptic reporting
• Asset barcoding and tracking
• Coder (billing) review
• Event-driven notifications
• Quality improvement
• Search tools
• Etc.
![Page 7: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/7.jpg)
Identifying functional gaps
• Gap analysis
– Method for identifying and characterizing functional gaps in a
system
– Not specific to software
• User experience / suggestion
![Page 8: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/8.jpg)
Gap analysis
• Can be a formal process
– Better an uncovering “unknown” or “unrecognized” functional gaps
in addition to systematically cataloguing recognized functional gaps
– Commonly-used tools:
• SWOT analysis
• McKinsey 7S Framework
• Nadler-Tushman Model
• In practice, commonly informal and limited in scope
![Page 9: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/9.jpg)
Gap analysis steps
1. Describe the current state
2. Describe the desired future state
3. Identify the gaps
4. Formulate a plan to eliminate the gaps
![Page 10: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/10.jpg)
Is it really a functional gap?
• Not all “functional gaps” are really gaps, especially those identified informally
• Most of the proposed gaps we see in practice come from end user report of perceived deficiencies in the LIS
• When end users suggest a functional gap– First, determine if it is a real gap
– Then determine if it merits being addressed (v. “squeaky wheels”)– Then prioritize
![Page 11: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/11.jpg)
Eliminating functional gaps in the LIS
• If the goal is to eliminate a functional gap, there are several
options
– Buy a solution
– Build a solution
– Borrow a solution
![Page 12: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/12.jpg)
Buy
![Page 13: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/13.jpg)
Buy
• Functional gaps can *usually* be solved by purchasing a commercially-available solution
• For most organizations in most situations, buying a solution should be the default option
• Sources:
– First party (e.g. LIS vendor)
– Third party (i.e. add-on module)
![Page 14: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/14.jpg)
Solutions from LIS Vendor (first party)
• Include:
– Off-the-shelf modules
– Custom-built modules
– Custom coding
![Page 15: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/15.jpg)
Third Party Solutions
• Include:
– Off-the-shelf modules
– Custom-built modules
– Custom coding
![Page 16: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/16.jpg)
First party or third party?
• Can (or may be required to) put out a request for proposals
(RFP) for the functionality, but hopefully that is optional for
smaller gaps
– Not going to go into detail about RFPs here
• In most instances, the source for a solution will be decided
more informally
![Page 17: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/17.jpg)
Buy: Advantages to first party solutions
• The LIS vendor should be the leading expert in adding functionality to their system
• *Likely* less expensive than integrating a third party solution– Need to actually compare quotes to determine this
– Purchase, maintenance and support cost
– Integration services typically fewer hours
• Integration typically more straightforward and may be better integrated than a third party solution
• Better support and longevity if dealing with a larger company
![Page 18: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/18.jpg)
Buy: Advantages to third party solutions
• May be the “best of breed” product for that function
• May represent the primary revenue stream or flagship product
of the third party
– May be a very motivated vendor
– Makes the company more responsive to customers
– More likely to be updated in a timely fashion
• Likely a smaller, more agile company
![Page 19: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/19.jpg)
When not to buy
• There needs to be a very good reason to pass on buying a
solution
• Might include:
– Your LIS vendor is unwilling or unable to provide an off-the-shelf
module or a custom solution
– No third party vendor will integrate with your LIS
– Your LIS vendor doesn’t exist anymore (you have bigger problems)
![Page 20: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/20.jpg)
Build
![Page 21: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/21.jpg)
Building solutions to functional gaps
• Specifically, developing software in-house that fills a functional
gap
• Hiring a third party company to develop a de novo solution is
similar but is more akin to “buying”
• Your organization assumes all responsibility for the software
development lifecycle
![Page 22: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/22.jpg)
Software development lifecycle
Planning
Analysis
Design
Implementation
Testing & Integration
Maintenance
![Page 23: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/23.jpg)
Software development ≠ programming
• A common mistake is equating software development with
computer programming
• Fails to account for the other elements in software
development
![Page 24: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/24.jpg)
Software development lifecycle
Planning
Analysis
DesignTesting & Integration
Maintenance
Implementation Programming
![Page 25: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/25.jpg)
“I didn't trust Larry and Sergey as coders. I had to deal with their
legacy code from the Stanford days and it had a lot of
problems. They're research coders: more interested in writing
code that works than code that's maintainable.“
- Craig Silverstein, Director of Technology at Google
(until 2012), quoted in I'm Feeling Lucky: The Confessions
of Google Employee Number 59
![Page 26: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/26.jpg)
Just because you can do something
doesn’t mean you should
![Page 27: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/27.jpg)
Bad reasons for developing software in house
• NIH Syndrome – “Not invented Here” syndrome
• Hero Complex
• To save money
• “It will only take me an hour/afternoon/weekend/week to
code a solution”
• “Bob in IT knows a little python”
• “The resident/fellow needs a project”
![Page 28: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/28.jpg)
NIH (Not Invented Here) Syndrome
• "NIH syndrome" is a tendency to “reinvent the wheel” (re-
implement something that is already available) based on the
belief that in-house development has inherit advantages such
as:
– Better suited to the needs of the organization (“bespoke”)
– Better performance
– More control over features / design / etc.
– Lower overall cost (including maintenance cost)
![Page 29: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/29.jpg)
https://commons.wikimedia.org/wiki/File:Superhero.svg
Hero complex
• Sometimes called the “savior
complex”
• An inherent desire or compulsion to
help people
• In this instance, it is a compulsion to
solve issues for people or the
organization by coding a solution
to the problem
• “Junior Faculty Trap”
![Page 30: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/30.jpg)
Saving money
• If the *only* reason to develop the solution in house is to save
money, this may not be a good enough reason
• May be false economy
– Consider total cost of ownership, including possible risks to the
organization for poorly developed solutions
• Organizations become “addicted” to “cheap solutions”
![Page 31: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/31.jpg)
Planning fallacy
• “It will only take me an hour/afternoon/weekend/week to
code a solution”
• Planning fallacy is a cognitive bias that underestimates time,
cost and risk even when there is past evidence of exactly what
is required
![Page 32: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/32.jpg)
Good reasons for developing software in house
• There is no vendor or third party solution to the functional
gap
• The vendor is unwilling to provide a custom solution
• Your organization has a culture of software development
• Your organization is properly staffed for software development
• Your LIS has a well-documented, extensible design
![Page 33: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/33.jpg)
Requirements for software development
• Project manager
• Software developers (at least 2)
• Live, Test, and Dev environments
• Orderly and secure source control
• SOPs for the full software development lifecycle
• Support for in house software at an appropriate level (9 to 5? 24x7?)
• Documentation, documentation, documentation!
![Page 34: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/34.jpg)
Extensible LIS software
• Some LIS software has better third party (and end user)
extensibility than others
• Extensibility is a design concept that allows for third parties to
add functionality more easily
• My include APIs, hooks, defined namespaces and other
mechanisms
![Page 35: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/35.jpg)
Version control
• Version control is the management of changes to documents such as software
• Required for orderly management and documentation of software development
• Version control systems:
1. Centralized• Subversion (SVN)
2. Distributed
• Git, Mercurial
![Page 36: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/36.jpg)
![Page 37: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/37.jpg)
![Page 38: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/38.jpg)
![Page 39: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/39.jpg)
Borrow
![Page 40: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/40.jpg)
Borrow? What exactly is that…
• Borrowing can mean:
– Using software implemented elsewhere in the organization
– Implementing third party software built elsewhere
• Whole modules
• Significant libraries
![Page 41: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/41.jpg)
Using software implemented elsewhere in the
organization
• Can the functional gap be solved by software already running
in your organization?
– Middleware
– Interface engine
– PACS / VNA
– Dictation / speech recognition
– EHR modules
![Page 42: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/42.jpg)
Using software implemented elsewhere in the
organization
• Advantages
– Existing contracts
– Familiarity
– Low cost (probably)
– Already supported within your organization
• Thinking outside the box!
![Page 43: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/43.jpg)
Implementing third party software built elsewhere
• If you have a functional gap, chances are that others do as
well
• Might consist of entire modules / applications or just useful
software libraries
![Page 44: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/44.jpg)
Implementing third party software built elsewhere
• One thing you need to be aware of when “borrowing”
software is licensing
– Software created by individuals on their own time may have a clear
license for use
– Software created by universities or other organizations have not
have clear licensing
![Page 45: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/45.jpg)
Software licenses
![Page 46: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/46.jpg)
Open source and Free Software
• Much “reusable” software, especially software libraries, is
available under “open source” or “free software” licenses
• Considerable confusion exists about these two concepts and
about the implications of the licenses
![Page 47: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/47.jpg)
Open Source Definition
1. Free Redistribution
2. Source Code - Must Be Included
3. Derived Works - Must Be allowed
4. Integrity of The Author's Source Code
5. No Discrimination Against Persons or Groups
6. No Discrimination Against Fields of Endeavor
7. Distribution of License
8. License Must Not Be Specific to a Product
9. License Must Not Restrict Other Software
10. License Must Be Technology-Neutral
https://opensource.org/osdOpen Source Initiative (OSI)
![Page 49: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/49.jpg)
"Free software'' is a matter of liberty,
not price. To understand the concept,
you should think of “free” as in "free
speech'', not "free beer.''
https://www.gnu.org/philosophy/free-sw.en.html
Richard Stallman as “St IGNUcius”
of the Church of Emacs.
Photo credit: Wouter van Oortmerssen
- Richard Stallman
![Page 50: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/50.jpg)
Free software is a subset of OSS
Open Source
Software
Free Software
![Page 51: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/51.jpg)
Are FOSS Licenses dangerous?
• There has long been a perception that some open source
licenses are dangerous b/c they are “viral”
• CopyLeft
– a general method for making a software free and requiring all
modified and extended versions of the program to be free as well
– The GNU General Public License (GPL) is the classic example
![Page 52: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/52.jpg)
Are FOSS Licenses dangerous?
• GNU GPL
– Designed to promote the concept of free software
– Is a Copyleft license
• Requires that modified versions of software inherit the GPL license
• Requires that modified versions are ALSO distributed with source code
– Importantly, this does NOT apply to software used internally (not
sold or generally distributed)
![Page 53: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/53.jpg)
Workarounds
![Page 54: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/54.jpg)
The “W” word: Workarounds
• Living with functional gaps in the LIS typically involves creating
workarounds
• Generally disparaged as shortcuts, bandaids, threats to safety,
etc.
– True when workarounds are used to circumvent a onerous, but
needed, workflow
– Workarounds can be offline methods of filling functional gaps
![Page 55: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/55.jpg)
Summary
• Functional gaps in the LIS are recognized or develop over time
• An informal or formal workflow analysis should be conducted to help determine if functional gaps are real or perceived
• Buying a solution to fill a functional gap is typically the best option if it is available
• Building a solution should be approached with caution and only by organizations with a culture of successful software development
![Page 56: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/56.jpg)
Summary, cont.
• The decision to build a solution should be made for the correct reasons
• Organizations that practice software development need to have the right staffing, resources and processes in place
• Borrowing of whole modules or libraries may provide a middle ground between buying and building
• Borrowing requires careful attention to software licenses
• Workarounds are sometimes valid alternatives to software solutions
![Page 57: Buy, Build or Borrow? Filling functional gaps in your LIS · 2019-07-27 · Learning objectives •By the end of this session, the participant will be able to: 1. Define an LIS functional](https://reader034.vdocuments.site/reader034/viewer/2022050207/5f5a38d6f4caba34fe79c093/html5/thumbnails/57.jpg)
Questions? Toby C. Cornish, M.D., Ph.D
Associate Professor of Pathology
University of Colorado Denver School of Medicine
@TobyCornish