SlideShare a Scribd company logo
Zen and the Art of ILS Migration Or, How to Migrate your ILS Without Losing Any Sleep What to Expect When You're Expecting (an ILS Migration) Or, D Ruth Bavousett Lead Migration Specialist
Who Is This Chick, Anyway? Googling for me won't find much;  look for J. David Bavousett, instead (but don't call me that, please!) BA/Computer Science, Abilene Christian University, 1993 5 years administering DRA Classic ILS 4 years outside the field (clinical labs & aerospace) Led migration project: DRA Classic -> Sirsi Unicorn, 2002 6 years administering SirsiDynix Unicorn (now Symphony) 3 years working on Koha 16 go-lives so far in 2011.
Basic Principles This doesn't have to take months and months.  Don't let anyone tell you otherwise, without calling them out on it. If you're going through a vendor, chances are pretty good that they've dealt with your legacy ILS before.  If you're going it alone, odds are someone else has, too.  Ask around! I have dealt with nine different ILSes since December, plus one home-brewed system. Goals: Maximum data, minimum time, zero patron-services disruption, and minimal staff disruption. “ Complexity is not always your enemy, but it is never, ever your friend.” --D Ruth Bavousett
Assemble a Toolkit MARCEdit: http://people.oregonstate.edu/~reeset/marcedit/html/index.php  Libre Office—a Swiss Army Can Opener for data: http://www.libreoffice.org/ Some Perl is REALLY handy.  Grab these modules: Text::CSV_XS  Text::CSV::Simple MARC::Record  MARC::Field http://www.cpan.org/ Caffeine, angry-sounding music, whatever suits you. Programming Perl , by Wall, Christiansen, & Orwant (2000) Perl Best Practices , by Damian Conway (2005) O'Reilly Media
Obligatory Cute Cat Reference  (blame Liz Rea—she started it)
Let's Cover the Hard Part First, Shall We? PEOPLE are the biggest challenge your ILS migration will face! Commonest complaint: “ I cannot handle CHANGE!” Eliminate the unknowns that they  really  fear, and the fear goes away.
Other Non-Technical Matters--Vendors RFP:  Does anyone really like these things? Talk to other libraries.  Use LibWebCats. http://www.librarytechnology.org/libwebcats/ Treat it like a job interview! Ask other community players about them.
This is the Part You're Really Here To See... How do you convert all that data? Take advice from Shel Silverstein: Have you heard of tiny Melinda Mae, Who ate a monstrous whale? She thought she could, She said she would, So she started in right at the tail. And everyone said, “You're much too small,” But that didn't bother Melinda at all, She took little bites and she chewed very slow, Just like a good girl should... –  from “Melinda Mae”,  by Shel Silverstein (1930-1999)
Migrating the Data First decide what you want to move. “ Everything” is frequently an invalid answer. “ Gotta have it” vs. “nice to have.” Think about the relationships between the data.
Overall Strategy Now that you know most of what you need to know about the data, think about a migration strategy and timeline. Plan for two full extracts, done just  exactly  the same way.  One for testing, and the final one on go-live weekend. Write down extracting method—reports, whatever—and the scripts you use to migrate and import the data.  Wash, Rinse, Repeat. TO BE AVOIDED, IF AT ALL POSSIBLE: Cataloging “freeze” Patron “freeze” They aren't necessary, and they don't serve you or your patrons, at all. All they do is increase complexity.
Data Manipulations—Bibliographic/Item Records Do you  really  want to carry over system designator numbers from legacy systems?  If your answer is yes, please think again.  If the answer is still yes, plan to strip them out when you are done with migration. Most systems provide mechanisms for exporting MARC or MARCXML with item records included.  Barcodes Are Your Friend. Use MARCEdit, or Perl scripts, to rearrange item fields. Let Koha ingest these naturally.  Use bulkmarcimport.pl, or stage-and-import.
Item “Code” Mapping Consider the “coded” values that your current system uses:  “item type”, “collection codes”, “holding codes”, “item categories”...whatever they are called. Four places for that sort of thing in Koha:  Branch code, item type, shelving location, and collection code.  Only the first two affect circulation! Create a CSV map in Libre Office: Holding Code Branch Itype Location Collection WANF WEAVER BOOK NONFIC ADULT WAF WEAVER BOOK FIC ADULT CANF CENTER BOOK NONFIC ADULT CVHS CENTER MOVIE MEDIA VHS CDVD CENTER MOVIE MEDIA DVD
Data Manipulations—Patron Records Some fields kept by some systems (i.e. “total amount owed”) do not migrate..ignore them. Try to create a CSV that looks like what Koha's Patron Import wants.  It Just Works. While the data is in CSV, take a little time for cleanup:  City/State/Zips, phones, address formatting Use Koha's Patron Import tool.  Yes, it's slow, but it works, and it's quite accurate.
Data Manipulations—Everything Else Barcodes Are Your Friend—use them for linking,  not  system-generated numbers from legacy system. Issues/Checkouts:  Barcode of the borrower and item, date it went out, date it is due.  Options: Number of renewals, date of last renewal Holds:  Barcode of the borrower, and barcode pointing at a biblio (for title level holds) or item (for item level), date it was placed, whether item is on the holds shelf, and current place in the queue (or sort by date later). Fines/Fees: Barcode of the borrower, amount originally charged, current amount due, and why we're billing—barcode of related item, if possible.
Some Thoughts on Imports and Edits Use Koha's native tools as much as possible.  For instance, use  C4::Items::ModItem instead of SQL:  UPDATE items SET …  Try to do imports in such a way that if one phase goes wrong, you can TRUNCATE exactly one table to back up one step. Do some basic checking at each step, so you don't end up back at the beginning after you've already loaded the final steps—that's really frustrating.  Trust me on this.  I know. In your Perl scripts, make sure you give yourself some kind of indicator that it's doing something.  Watching the blinking cursor is stress-inducing (and also boring).
Some Thoughts on Imports and Edits Don't make manual edits.  Fix the script, and reload, instead. If you ignore that bit of advice, then write down your manual edits, so you can repeat them for the go-live load. I have basic scripts that do everything normal for a given ILS:  (Unicorn/biblio_masher.pl), then a Site/ folder, with specific “manual” edits that the site needs, that the default script won't do. Computer memory is way, way better than yours.  Use it.
Don' Configuring the system Koha cleverly has the most-important configuration stuff in order on the Administration menu. Don't spend too much time fretting over configurations.  Almost all of it can be changed later, if needed. Ask questions, particularly about obscure system preferences.  For go-live, the most important bits are: Libraries Item Types Patron Categories Circulation and Fine Rules
Back to the People The more that folks have a chance to “just play with it,” the better they'll feel about how their job changes will work on go-live day. ...but not too long.  Otherwise, they'll play with it for a week, then forget about it, then panic on go-live day.  Two or three weeks—MAX—works. Your vendor—if any—will have some testing/training regimen for you to walk through.  Try out sample transactions, just like the real deal.  No vendor can tell you that they know perfectly well what happens in your library.  If they do, they're lying—they don't work in a library, and they don't work in  your  library.  Call them on it.  Then go practice the things that really do happen in your library.
Don' Go-Live Weekend After the library closes, re-run your extracts, just the same way you did before. Wipe out biblios, items, borrowers, issues, etc, but leave configuration stuff! Use your scripts to load the data, just as before. Test, test, test, each step of the way, just as you did for the initial test load.
Don' Get Involved With Koha At first, you'll have a lot of questions—that's okay. Later, if you stick around, you can give back! Even good ideas, enhancement requests, or a question answered for some other library counts as “giving back.” http://koha-community.org
Don' Questions?
Photo Credits: Flickr users sclsjo,nengard,4nitsick, assorted Facebook users, plus odds and ends from elsewhere. What's the Best Thing About Koha? (not an exhaustive list—not even close)
Don' Thanks for being here. Namaste. Slides available at:  http://www.librarygeekgirl.net/

More Related Content

Similar to Zen and the Art of ILS Migration--KUDOSCon 2011

Coaching teams in creative problem solving
Coaching teams in creative problem solvingCoaching teams in creative problem solving
Coaching teams in creative problem solving
Flowa Oy
 
Puppet for Sys Admins
Puppet for Sys AdminsPuppet for Sys Admins
Puppet for Sys Admins
Puppet
 
Near realtime analytics - technology choice (@pavlobaron)
Near realtime analytics - technology choice (@pavlobaron)Near realtime analytics - technology choice (@pavlobaron)
Near realtime analytics - technology choice (@pavlobaron)
Pavlo Baron
 
Big Data - JAX2011 (Pavlo Baron)
Big Data - JAX2011 (Pavlo Baron)Big Data - JAX2011 (Pavlo Baron)
Big Data - JAX2011 (Pavlo Baron)
Pavlo Baron
 
Rethinking reference
Rethinking referenceRethinking reference
Rethinking reference
Brian Herzog
 
Using Cassandra with your Web Application
Using Cassandra with your Web ApplicationUsing Cassandra with your Web Application
Using Cassandra with your Web Applicationsupertom
 
Deduplication
DeduplicationDeduplication
Deduplication
Lars Marius Garshol
 
Puppet Camp Chicago 2014: Puppet at backstop another year of lessons
Puppet Camp Chicago 2014: Puppet at backstop another year of lessonsPuppet Camp Chicago 2014: Puppet at backstop another year of lessons
Puppet Camp Chicago 2014: Puppet at backstop another year of lessons
Puppet
 
Software Development Whats & Whys
Software Development Whats & Whys Software Development Whats & Whys
Software Development Whats & Whys
Harun Yardımcı
 
Digitization Projects Tech Con 2006
Digitization Projects Tech Con 2006Digitization Projects Tech Con 2006
Digitization Projects Tech Con 2006
Regina Koury
 
Making & Breaking Machine Learning Anomaly Detectors in Real Life by Clarence...
Making & Breaking Machine Learning Anomaly Detectors in Real Life by Clarence...Making & Breaking Machine Learning Anomaly Detectors in Real Life by Clarence...
Making & Breaking Machine Learning Anomaly Detectors in Real Life by Clarence...
CODE BLUE
 
How I Learned to Stop Worrying and Love Legacy Code - Ox:Agile 2018
How I Learned to Stop Worrying and Love Legacy Code - Ox:Agile 2018How I Learned to Stop Worrying and Love Legacy Code - Ox:Agile 2018
How I Learned to Stop Worrying and Love Legacy Code - Ox:Agile 2018
Mike Harris
 
The Lost Tales of Platform Design (February 2017)
The Lost Tales of Platform Design (February 2017)The Lost Tales of Platform Design (February 2017)
The Lost Tales of Platform Design (February 2017)
Julien SIMON
 
Puppet for SysAdmins
Puppet for SysAdminsPuppet for SysAdmins
Puppet for SysAdmins
Puppet
 
Dapper Tool - A Bundle to Make your ECL Neater
Dapper Tool - A Bundle to Make your ECL NeaterDapper Tool - A Bundle to Make your ECL Neater
Dapper Tool - A Bundle to Make your ECL Neater
HPCC Systems
 
Avoiding big data antipatterns
Avoiding big data antipatternsAvoiding big data antipatterns
Avoiding big data antipatterns
grepalex
 
Prophet - Beijing Perl Workshop
Prophet - Beijing Perl WorkshopProphet - Beijing Perl Workshop
Prophet - Beijing Perl WorkshopJesse Vincent
 
Nosql
NosqlNosql
SQL or NoSQL, that is the question!
SQL or NoSQL, that is the question!SQL or NoSQL, that is the question!
SQL or NoSQL, that is the question!
Andraz Tori
 
Software Development is Upside Down
Software Development is Upside DownSoftware Development is Upside Down
Software Development is Upside Down
allan kelly
 

Similar to Zen and the Art of ILS Migration--KUDOSCon 2011 (20)

Coaching teams in creative problem solving
Coaching teams in creative problem solvingCoaching teams in creative problem solving
Coaching teams in creative problem solving
 
Puppet for Sys Admins
Puppet for Sys AdminsPuppet for Sys Admins
Puppet for Sys Admins
 
Near realtime analytics - technology choice (@pavlobaron)
Near realtime analytics - technology choice (@pavlobaron)Near realtime analytics - technology choice (@pavlobaron)
Near realtime analytics - technology choice (@pavlobaron)
 
Big Data - JAX2011 (Pavlo Baron)
Big Data - JAX2011 (Pavlo Baron)Big Data - JAX2011 (Pavlo Baron)
Big Data - JAX2011 (Pavlo Baron)
 
Rethinking reference
Rethinking referenceRethinking reference
Rethinking reference
 
Using Cassandra with your Web Application
Using Cassandra with your Web ApplicationUsing Cassandra with your Web Application
Using Cassandra with your Web Application
 
Deduplication
DeduplicationDeduplication
Deduplication
 
Puppet Camp Chicago 2014: Puppet at backstop another year of lessons
Puppet Camp Chicago 2014: Puppet at backstop another year of lessonsPuppet Camp Chicago 2014: Puppet at backstop another year of lessons
Puppet Camp Chicago 2014: Puppet at backstop another year of lessons
 
Software Development Whats & Whys
Software Development Whats & Whys Software Development Whats & Whys
Software Development Whats & Whys
 
Digitization Projects Tech Con 2006
Digitization Projects Tech Con 2006Digitization Projects Tech Con 2006
Digitization Projects Tech Con 2006
 
Making & Breaking Machine Learning Anomaly Detectors in Real Life by Clarence...
Making & Breaking Machine Learning Anomaly Detectors in Real Life by Clarence...Making & Breaking Machine Learning Anomaly Detectors in Real Life by Clarence...
Making & Breaking Machine Learning Anomaly Detectors in Real Life by Clarence...
 
How I Learned to Stop Worrying and Love Legacy Code - Ox:Agile 2018
How I Learned to Stop Worrying and Love Legacy Code - Ox:Agile 2018How I Learned to Stop Worrying and Love Legacy Code - Ox:Agile 2018
How I Learned to Stop Worrying and Love Legacy Code - Ox:Agile 2018
 
The Lost Tales of Platform Design (February 2017)
The Lost Tales of Platform Design (February 2017)The Lost Tales of Platform Design (February 2017)
The Lost Tales of Platform Design (February 2017)
 
Puppet for SysAdmins
Puppet for SysAdminsPuppet for SysAdmins
Puppet for SysAdmins
 
Dapper Tool - A Bundle to Make your ECL Neater
Dapper Tool - A Bundle to Make your ECL NeaterDapper Tool - A Bundle to Make your ECL Neater
Dapper Tool - A Bundle to Make your ECL Neater
 
Avoiding big data antipatterns
Avoiding big data antipatternsAvoiding big data antipatterns
Avoiding big data antipatterns
 
Prophet - Beijing Perl Workshop
Prophet - Beijing Perl WorkshopProphet - Beijing Perl Workshop
Prophet - Beijing Perl Workshop
 
Nosql
NosqlNosql
Nosql
 
SQL or NoSQL, that is the question!
SQL or NoSQL, that is the question!SQL or NoSQL, that is the question!
SQL or NoSQL, that is the question!
 
Software Development is Upside Down
Software Development is Upside DownSoftware Development is Upside Down
Software Development is Upside Down
 

Recently uploaded

Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Zilliz
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 

Recently uploaded (20)

Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 

Zen and the Art of ILS Migration--KUDOSCon 2011

  • 1. Zen and the Art of ILS Migration Or, How to Migrate your ILS Without Losing Any Sleep What to Expect When You're Expecting (an ILS Migration) Or, D Ruth Bavousett Lead Migration Specialist
  • 2. Who Is This Chick, Anyway? Googling for me won't find much; look for J. David Bavousett, instead (but don't call me that, please!) BA/Computer Science, Abilene Christian University, 1993 5 years administering DRA Classic ILS 4 years outside the field (clinical labs & aerospace) Led migration project: DRA Classic -> Sirsi Unicorn, 2002 6 years administering SirsiDynix Unicorn (now Symphony) 3 years working on Koha 16 go-lives so far in 2011.
  • 3. Basic Principles This doesn't have to take months and months. Don't let anyone tell you otherwise, without calling them out on it. If you're going through a vendor, chances are pretty good that they've dealt with your legacy ILS before. If you're going it alone, odds are someone else has, too. Ask around! I have dealt with nine different ILSes since December, plus one home-brewed system. Goals: Maximum data, minimum time, zero patron-services disruption, and minimal staff disruption. “ Complexity is not always your enemy, but it is never, ever your friend.” --D Ruth Bavousett
  • 4. Assemble a Toolkit MARCEdit: http://people.oregonstate.edu/~reeset/marcedit/html/index.php Libre Office—a Swiss Army Can Opener for data: http://www.libreoffice.org/ Some Perl is REALLY handy. Grab these modules: Text::CSV_XS Text::CSV::Simple MARC::Record MARC::Field http://www.cpan.org/ Caffeine, angry-sounding music, whatever suits you. Programming Perl , by Wall, Christiansen, & Orwant (2000) Perl Best Practices , by Damian Conway (2005) O'Reilly Media
  • 5. Obligatory Cute Cat Reference (blame Liz Rea—she started it)
  • 6. Let's Cover the Hard Part First, Shall We? PEOPLE are the biggest challenge your ILS migration will face! Commonest complaint: “ I cannot handle CHANGE!” Eliminate the unknowns that they really fear, and the fear goes away.
  • 7. Other Non-Technical Matters--Vendors RFP: Does anyone really like these things? Talk to other libraries. Use LibWebCats. http://www.librarytechnology.org/libwebcats/ Treat it like a job interview! Ask other community players about them.
  • 8. This is the Part You're Really Here To See... How do you convert all that data? Take advice from Shel Silverstein: Have you heard of tiny Melinda Mae, Who ate a monstrous whale? She thought she could, She said she would, So she started in right at the tail. And everyone said, “You're much too small,” But that didn't bother Melinda at all, She took little bites and she chewed very slow, Just like a good girl should... – from “Melinda Mae”, by Shel Silverstein (1930-1999)
  • 9. Migrating the Data First decide what you want to move. “ Everything” is frequently an invalid answer. “ Gotta have it” vs. “nice to have.” Think about the relationships between the data.
  • 10. Overall Strategy Now that you know most of what you need to know about the data, think about a migration strategy and timeline. Plan for two full extracts, done just exactly the same way. One for testing, and the final one on go-live weekend. Write down extracting method—reports, whatever—and the scripts you use to migrate and import the data. Wash, Rinse, Repeat. TO BE AVOIDED, IF AT ALL POSSIBLE: Cataloging “freeze” Patron “freeze” They aren't necessary, and they don't serve you or your patrons, at all. All they do is increase complexity.
  • 11. Data Manipulations—Bibliographic/Item Records Do you really want to carry over system designator numbers from legacy systems? If your answer is yes, please think again. If the answer is still yes, plan to strip them out when you are done with migration. Most systems provide mechanisms for exporting MARC or MARCXML with item records included. Barcodes Are Your Friend. Use MARCEdit, or Perl scripts, to rearrange item fields. Let Koha ingest these naturally. Use bulkmarcimport.pl, or stage-and-import.
  • 12. Item “Code” Mapping Consider the “coded” values that your current system uses: “item type”, “collection codes”, “holding codes”, “item categories”...whatever they are called. Four places for that sort of thing in Koha: Branch code, item type, shelving location, and collection code. Only the first two affect circulation! Create a CSV map in Libre Office: Holding Code Branch Itype Location Collection WANF WEAVER BOOK NONFIC ADULT WAF WEAVER BOOK FIC ADULT CANF CENTER BOOK NONFIC ADULT CVHS CENTER MOVIE MEDIA VHS CDVD CENTER MOVIE MEDIA DVD
  • 13. Data Manipulations—Patron Records Some fields kept by some systems (i.e. “total amount owed”) do not migrate..ignore them. Try to create a CSV that looks like what Koha's Patron Import wants. It Just Works. While the data is in CSV, take a little time for cleanup: City/State/Zips, phones, address formatting Use Koha's Patron Import tool. Yes, it's slow, but it works, and it's quite accurate.
  • 14. Data Manipulations—Everything Else Barcodes Are Your Friend—use them for linking, not system-generated numbers from legacy system. Issues/Checkouts: Barcode of the borrower and item, date it went out, date it is due. Options: Number of renewals, date of last renewal Holds: Barcode of the borrower, and barcode pointing at a biblio (for title level holds) or item (for item level), date it was placed, whether item is on the holds shelf, and current place in the queue (or sort by date later). Fines/Fees: Barcode of the borrower, amount originally charged, current amount due, and why we're billing—barcode of related item, if possible.
  • 15. Some Thoughts on Imports and Edits Use Koha's native tools as much as possible. For instance, use C4::Items::ModItem instead of SQL: UPDATE items SET … Try to do imports in such a way that if one phase goes wrong, you can TRUNCATE exactly one table to back up one step. Do some basic checking at each step, so you don't end up back at the beginning after you've already loaded the final steps—that's really frustrating. Trust me on this. I know. In your Perl scripts, make sure you give yourself some kind of indicator that it's doing something. Watching the blinking cursor is stress-inducing (and also boring).
  • 16. Some Thoughts on Imports and Edits Don't make manual edits. Fix the script, and reload, instead. If you ignore that bit of advice, then write down your manual edits, so you can repeat them for the go-live load. I have basic scripts that do everything normal for a given ILS: (Unicorn/biblio_masher.pl), then a Site/ folder, with specific “manual” edits that the site needs, that the default script won't do. Computer memory is way, way better than yours. Use it.
  • 17. Don' Configuring the system Koha cleverly has the most-important configuration stuff in order on the Administration menu. Don't spend too much time fretting over configurations. Almost all of it can be changed later, if needed. Ask questions, particularly about obscure system preferences. For go-live, the most important bits are: Libraries Item Types Patron Categories Circulation and Fine Rules
  • 18. Back to the People The more that folks have a chance to “just play with it,” the better they'll feel about how their job changes will work on go-live day. ...but not too long. Otherwise, they'll play with it for a week, then forget about it, then panic on go-live day. Two or three weeks—MAX—works. Your vendor—if any—will have some testing/training regimen for you to walk through. Try out sample transactions, just like the real deal. No vendor can tell you that they know perfectly well what happens in your library. If they do, they're lying—they don't work in a library, and they don't work in your library. Call them on it. Then go practice the things that really do happen in your library.
  • 19. Don' Go-Live Weekend After the library closes, re-run your extracts, just the same way you did before. Wipe out biblios, items, borrowers, issues, etc, but leave configuration stuff! Use your scripts to load the data, just as before. Test, test, test, each step of the way, just as you did for the initial test load.
  • 20. Don' Get Involved With Koha At first, you'll have a lot of questions—that's okay. Later, if you stick around, you can give back! Even good ideas, enhancement requests, or a question answered for some other library counts as “giving back.” http://koha-community.org
  • 22. Photo Credits: Flickr users sclsjo,nengard,4nitsick, assorted Facebook users, plus odds and ends from elsewhere. What's the Best Thing About Koha? (not an exhaustive list—not even close)
  • 23. Don' Thanks for being here. Namaste. Slides available at: http://www.librarygeekgirl.net/

Editor's Notes

  1. Consider open-sourcing your tool scripts. ByWater Solutions will be putting my toolkit out on a public repository, probably this week. I don't write closed code.
  2. TLC systems usually put item barcode in $g of the item record, which is usually 949. You need it in 952 $p. Also, TLC systems use a “holding code” which encompasses the concepts in Koha's branch, item type, location code, and collection code. Create a map. (More about this in a moment.) You might want to steal data from the bib to put in the item—prices or callnumbers especially. This is a good time to re-think past insanity.
  3. This <Klix> is what makes Koha great! I've said it over and over again, that Koha people are the best people in the world, and you are. Day in and day out, from around the world, people show up who care about their libraries, who care about others' libraries, and work in large and small ways on this wonderful bit of code that we have. And the proprietary ILS vendors are starting to feel the pain, as libraries forsake them, and go it alone, or come to one of the many Koha vendors. They're fighting back...but faceless corporations, placed head-to-head with caring people like these and many more, will fail!