Monday, 31 December 2012

Lessons Learned

It being the end of year and it being a time for reflection and review and that I thought I'd put down a few thoughts on a process that's sadly neglected by many library projects: Lessons Learned.

In my experience, too often the lesson learned is; "We seem to have managed that in the end, so it's OK to fly by the seats of our pants next time, too." This is an opportunity missed: experience is not what happens to you, it's what you do with it. If what you do with it is nothing then the experience is lost. So it's important to build the Lessons Learned process into any project.

The purpose of a Lessons Learned Document is to capture the experience accrued by the project in a formal document for use on similar future projects, including:
  • Problems that occurred, how they were handled and how they may be avoided in the future.
  • What went well with the project and why, so that other project managers may capitalize on this experience.
It is not the purpose of a Lessons Learned Document to apportion praise or blame.

This document should be used to support the continuous service improvement processes within the organisation.


Just to put my money where my mouth is, these are the recommendations from the lessons learned process from our project migrating from Dynix to Spydus:
  1. A specification of operational functions is essential for the Statement of User Requirements. The more explicitly practical and measurable the more robust the selection process in procurement.
    • Actively encourage staff input in the specification process to get ideas for the specification and buy-in for the project.
    • Actively investigate other solutions and technologies so that you aren’t just doing a like-for-like replacement and limiting yourself to established business delivery models.

  2. Before a procurement process that you own begins you need the following:
    • What is the process? What are the critical paths?
    • Who are the stakeholders — customer/ project/ procurement/ legal/ partners/ whoever
    • Who is/are responsible for doing each step of the process?
    • What information/ documentation is required for each step?
    • When do you know each step has been completed?
    • Has this all been agreed by all the stakeholders?

  3. Agree a Project Initiation Document and work from it.
    • Make sure that you know who is doing what and in what order.
    • Make sure you know what isn’t to be done.

  4. Work to the project:
    • Make sure that you’ve agreed who is doing what and in what order.
    • Make sure everyone knows what isn’t to be done.
    • Have clear lines of communication.
    • Get together regularly to review progress and, where necessary, revise action plans.
    • Allow at least three weeks between Subject Expert Training and Train the Trainers to allow options to be explored, modelled and tested for use (particularly with new functionality) adequately.
    • Train the Trainers is an opportunity to test the commissioning to date. Allow at least a week between Train the Trainers and the first batch of Cascade Training to test the safety of any changes.
    • Have cut-off points for commissioning changes:
      • No changes to codes and data structures after data migration.
      • Severely limit the number of system parameter changes after Train the Trainers.
      • Admit no changes to any part of the system (except in emergency) on the day you go live.


    • Make sure that the technical infrastructure requirements are included in the Statement of User Requirements and agreed with the supplier before commencing the installation.
    • The OPAC is an integral part of the system, not an add-on, so it needs to be treated as part of the whole.

      • The training for the management of the OPAC needs to be included in the Subject Expert programme.
      • Make sure that all the people having input to the commissioning of the OPAC understand its purpose and function.

    • Spending time cleaning up the data using familiar tools in the system you know saves a considerable amount of time, effort and problems with both the data migration and the operation of the new LMS.
    • Prepare for the MARC21 environment by making sure the existing catalogue data maps at least adequately and by making sure that there is sufficient MARC21 expertise within the organisation to verify that it does.
    • It’s useful and important to see how a reference site uses a process.
      • It’s important to make sure that the ‘right’ experience of a site visit is realized: be clear about what the experience needs to be beforehand and proactively manage distractions.


    • Any library service that is not already used to MARC cataloguing should make sure well before the Subject Expert Training that:
      • There is sufficient expertise for the catalogue data mapping process.
      • Staff who will be using catalogue processes (including acquisition via EDI) need to understand at least the basics of the format.
    • Thursday, 4 October 2012

      Remnants from Dynix

      When we migrated from Dynix to Spydus I was keen that we didn't lose more management information than we needed. I ran copies of the canned reports and all the usual suspects but there were two things I particularly wanted to preserve:

      • I wanted to be able to give the stock manager an overview of the state of the collections at each library.
      • We had 21 years' worth of data in Dynix's Statistical Reports Manager and I wasn't keen to lose all that management information.

      So I wrote some Recall reports to strip out the data in text format. These are the Recall Vocs and the local dictionary items that I used.

           COLLECTIONS.REPORT
      0001 PA Saved at 15:15:22 23 SEP 2005 by steveh
      0002 CS
      0003 DISPLAY
      0004 DISPLAY
      0005 DISPLAY          The system is now sorting all the Holdings records
      0006 DISPLAY          A report will be sent to the screen
      0007 DISPLAY
      0008 DISPLAY          This will take some time
      0009 DISPLAY
      0010 DISPLAY          If you want a copy of this report in Word or Excel
      0011 DISPLAY          please ask the Systems Manager
      0012 DISPLAY
      0013 DISPLAY         working.....
      0014 DISPLAY
      0015 SORT HOLDINGS BY AGENCY2 BY COLLECTION BY L-ITEM.AGE BREAK-ON L-LIBNAME "TOTAL FOR 'V'" BREAK-ON T-COLL "TOTAL FOR 'V'" BREAK-ON L-ITEM.AGE "'V'" TOTAL COUNTER HEADING "LIBRARY CATALOGUE STOCK AS OF 'TL'" (CDIP
      
       
      Enter DICT NAME : L-ITEM.AGE
      1  FIELD NAME         1/ YEARS
                            2/ OLD
      2  FIELD NUMBER          0
      3  JUSTIFICATION         L
      4  DISPLAY LENGTH        25
      5  CONVERSION         1/ MCT
      6  CORRELATIVE        1/ A; IF N(L-YEARS.OWNED2) < "5" THEN "LESS THAN FIVE YEARS OLD" ELSE IF N(L-YEARS.OWNED2) > "10" THEN "MORE THAN TEN YEARS OLD" ELSE IF N(L-YEARS.OWNED2) = "" THEN "MORE THAN TEN YEARS OLD" ELSE "5 TO 10 YEARS OLD"
      
      
      Enter DICT NAME : L-YEARS.OWNED2
      1  FIELD NAME         1/ YEARS OWNED
      2  FIELD NUMBER          0
      3  JUSTIFICATION         R
      4  DISPLAY LENGTH        10
      5  CONVERSION         1/
      6  CORRELATIVE        1/ A;(D-N(DATE.ADDED))/"365"
      
       
      
           STAT.MGR.DUMP.REPORT
      0001 PA Saved at 16:29:48 30 APR 2012 by steveh
      0002 SELECT STAT.MGR WITH L-PERIOD="DAY"
      0003 SELECT STAT.MGR WITH L-KEY NOT "[.OV"
      0004 SELECT STAT.MGR WITH L-KEY NOT "[.PO.]"
      0005 SORT STAT.MGR BY L-DATE BY L-CODE.TRANSLATE BY L-LIBRARY L-DATE L-CODE.TRANSLATE L-LIBRARY L-TOTAL (CHIP
      
      
           STAT.MGR.MONTH.DUMP
      0001 PA Saved at 10:55:50 10 MAY 2012 by steveh
      0002 SETPTR ,500,5000,,,3
      0003 SELECT STAT.MGR WITH L-PERIOD="MONTH"
      0004 SELECT STAT.MGR WITH L-ELEMENT2 GT "3000"
      0005 SORT STAT.MGR BY L-PERIOD BY L-DATE BY L-CODE.TRANSLATE BY L-LIBRARY L-PERIOD L-DATE L-CODE.TRANSLATE L-LIBRARY L-TOTAL HEADING "Monthly issue statistics from Dynix as of 'TL'" (NIP
       
      
      Enter DICT NAME : L-PERIOD
      1  FIELD NAME         1/ PERIOD
      2  FIELD NUMBER          0
      3  JUSTIFICATION         L
      4  DISPLAY LENGTH        10
      5  CONVERSION         1/
      6  CORRELATIVE        1/ A;IF N(L-ELEMENT1)="M" THEN "MONTH" ELSE IF N(L-ELEMENT1)="D" THEN "DAY" ELSE ""
      
      Enter DICT NAME : L-ELEMENT1
      1  FIELD NAME         1/ FIRST BIT
      2  FIELD NUMBER          0
      3  JUSTIFICATION         L
      4  DISPLAY LENGTH        10
      5  CONVERSION         1/
      6  CORRELATIVE        1/ G.1
       
      Enter DICT NAME : L-KEY
      1  FIELD NAME         1/ KEY
      2  FIELD NUMBER          0
      3  JUSTIFICATION         L
      4  DISPLAY LENGTH        80
      5  CONVERSION         1/
      6  CORRELATIVE        1/
       
      Enter DICT NAME : L-DATE
      1  FIELD NAME         1/ DATE
      2  FIELD NUMBER          0
      3  JUSTIFICATION         L
      4  DISPLAY LENGTH        10
      5  CONVERSION         1/ D2
      6  CORRELATIVE        1/ G1.1
      
      Enter DICT NAME : L-CODE.TRANSLATE
      1  FIELD NAME         1/ TRANSLATED CODE
      2  FIELD NUMBER          0
      3  JUSTIFICATION         L
      4  DISPLAY LENGTH        50
      5  CONVERSION         1/ MCT
      6  CORRELATIVE        1/ G3.2
                            2/ TCODES;X;;1
      
      Enter DICT NAME : L-LIBRARY
      1  FIELD NAME         1/ LIBRARY
      2  FIELD NUMBER          0
      3  JUSTIFICATION         L
      4  DISPLAY LENGTH        35
      5  CONVERSION         1/
      6  CORRELATIVE        1/ A;"EX.";N(L-AGENCY);:
                            2/ TCODES;X;;1
      
      Enter DICT NAME : L-AGENCY
      1  FIELD NAME         1/ AGENCY
      2  FIELD NUMBER          0
      3  JUSTIFICATION         L
      4  DISPLAY LENGTH        25
      5  CONVERSION         1/
      6  CORRELATIVE        1/ G2.1
      
      Enter DICT NAME : L-TOTAL
      1  FIELD NAME         1/ TOTAL
      2  FIELD NUMBER          0
      3  JUSTIFICATION         R
      4  DISPLAY LENGTH        6
      5  CONVERSION         1/
      6  CORRELATIVE        1/ F;2;S
       
      Enter DICT NAME : L-PERIOD
      1  FIELD NAME         1/ PERIOD
      2  FIELD NUMBER          0
      3  JUSTIFICATION         L
      4  DISPLAY LENGTH        10
      5  CONVERSION         1/
      6  CORRELATIVE        1/ A;IF N(L-ELEMENT1)="M" THEN "MONTH" ELSE IF N(L-ELEMENT1)="D" THEN "DAY" ELSE ""
      
      Enter DICT NAME : L-ELEMENT2
      1  FIELD NAME         1/ SECOND BIT
      2  FIELD NUMBER          0
      3  JUSTIFICATION         R
      4  DISPLAY LENGTH        10
      5  CONVERSION         1/
      6  CORRELATIVE        1/ G1.1
       
      

      Friday, 27 July 2012

      Relief

      Well, jigger me: we did it. We went live with Spydus today with scarcely any incidents save senior Library Service managers emailing the Spydus consultant telling him that he should change some of the wording on the OPAC menus.

      Far too tired and relieved to find the energy to lob a brick at the offending party for breaking the lines of project communication and having an odd sense of priority.

      Friday, 8 June 2012

      New OPAC

      Good news: we've got the TEST versions of OPAC and the resource discovery module, working and they look quite nice.

      Bad news: we've had to postpone the training for the OPAC as we need to incorporate the change in the corporate branding that should be coming on stream this summer. Essentially, we'll be going live at the end of July with an OPAC pretty much out of the box. Perhaps the only "radical" novelty we'll be delivering at this stage is the range of subcatalogues we'll be presenting:
      • The "vanilla" catalogue"
      • Children's Library
      • Local Studies
      • The Co-operative Collection - very much an unsung resource, especially in this International Year of Co-operation
      • The Maskew Collection - a special collection of English literature and philosophy funded by the bequest of a local lady
      At the moment we're only doing this by imposing filters on the library catalogue, not doing anything in the way of additional information and canned searches. This is frustrating, but I guess unavoidable, but we'll just have to do as best as we can. I'm looking forward to getting the training as there's quite a lot of possibility lurking in these two customer interfaces, particularly Sorcer which has a lot of scope for creating personalised learning/reading environments.

      Friday, 18 May 2012

      Training days

      It's daft really: the hard slog of the past few months has felt like a phoney war, despite the fact that there's been a lot of work and a good number of real successes along the way.
      • The test data load from Dynix to Spydus has gone surprisingly well, with scarcely any glitches (I'm still waiting for the first shoe to drop, let alone the second).
      • The MARC mapping of the Dynix seems to be good enough to do the job of converting to MARC21 in Spydus. Hats off to Anne Whiteley who did the original mapping back in 1990, armed only with commonsense and a manual she'd borrowed as a Regional Loan. My contribution to the cause has been a rank lack of commonsense and whatever I can crib off the good folks on th'interweb.
      • We've got a good project plan and we're making the Library Service work to it. The good news is that nearly everyone involved is relieved to have some sort of structure to hang onto when things start getting giddy.
      Next week we start two weeks' worth of "subject expert" training, the hardest part of which is convincing some people that they really are the local experts in their field.

      Once that's done I've got a couple of weeks in which to do as much configuration as possible before we start training the trainers. If we can get as much of the configuration as possible done during the subject expert training we'll have a fighting chance of hitting our end of July deadline.

      We're hoping that two decisions will help us a lot. The first is that I won't be delivering the training myself, which is a blow personally (it's one of the things I seriously enjoy doing) but it's the only way I'll have the time to be able to work on the outstanding technical details, including the interfaces we're requiring with other systems such as smartsm, the Local Land & Property Gazeteer and the corporate finance systems. It'll also give me space and time to respond to any issues or ideas arising from the training sessions being delivered throughout June.

      Which brings me to the second decision: we've selected a group of trainers who'll act as champions and first line of support within the library servce. These are all Library Service staff, some managers but mostly front-line and all volunteers. In fact, twice as many people as we needed volunteered to be trainers, which is a bit gratifying. They'll have three pretty intensive days in which to get to grips with the new Circulation system and put together a package that can be delivered in a one-day training session for front-line staff. Which start the following week.

      Tight deadlines; some hard decisions to be made about what to leave out of the training packages; and impossible if you're not documenting what you're doing and communicating in minutes and hours, not days and weeks. I'm lucky: the Data Hub has a couple of Project Assistants and one of them will be working with me on this project. That should mean we can get some real-time communication between training sessions and myself so that we can address issues on the fly and record the changes as we go along. He's only been with us a week so he's walking in completely fresh with no preconceptions or baggage, poor devil!

      Sunday, 8 April 2012

      Never try to eat anything bigger than your head

      Well, we've committed to doing it: we chose Spydus as our new LMS just after Christmas, we're formally starting the project now and we've decided we want to go live by the end of July. It's a tall order and we'll have to have some pretty strict project management in play to deliver. I suspect there'll be a good few late nights' workings going on.