We are currently testing SP26 in our lower environments, and I wanted to warn folks about the impact of this: "New Feature: To help you maintain accurate data, when you add an end date to an employee-employer relationship, now the same end date is automatically added to the related Employment History. This change does not affect changes made through batches."
Basically, if you change the relationship end date, it changes the job end date. And there is now a constraint that doesn't allow the relationship end date to be prior to a job start date (probably more to it than that, but you get the gist). Sounds great? Not so much. Read on...
A user can still edit the end date of a job independently of the relationship, leaving them out of sync. Also, if you have 6 years of unconstrained data in your system, like we do, you have LOTS of relationship and job end dates that don't sync (relationship is end-dated and job is not, job is end-dated and relationship is not, relationship end date is prior to a job start date, etc. I'm totally sure there will be another scenario I have missed, despite extensive QA.) I did not test batches, but since Blackbaud says "This change does not affect changes made through batches," that is an additional scenario to throw dates out of sync.
Now imagine that you have that out of sync data in your system, whether due to old data or due to the fact that the user can still fiddle with the job independently of the relationship or batch-loaded data. For a user who tries to edit the relationship, perhaps to update recognition credits or add a Comment, here's what can happen:
- If the relationship has no end date and all the jobs for that employer are end-dated, saving the relationship results in removing the end date of the last job.
- If the relationship has an end date that falls after the start date of the last job on that employer, and the last job has no end date, saving the relationship results in adding an end date to the last job.
- If the relationship has an end date that falls before the start date of the last job on that employer, attempting to save the relationship results in an ugly constraint error, which will definitely confuse the user.
Scenarios 1 and 2 mean that the user could make a change to the job that may not be correct
and be completely unaware of it. Scenario 3 - really? An ugly constraint error on a brand-new feature?! Not even a user-friendly error, so the user can see what's happening? How about a warning for scenarios 1 and 2 so you don't make an unintended change?
Since we are self-hosted and have awesome in-house developers, including the fabulous Rick Root, here's what we have to do to account for this awesome new feature:
- Well, I had to do a crapton of QA on this feature that I'm assuming Blackbaud didn't do. (Did I say that out loud?)
- Extend both the Add and Edit forms for the job (Employment History) to update the relationship end date if appropriate. (Rick will write it, but I have to spec this out and QA it too.)
- Write a bunch of data checks to look for end dates that don't sync, until #4 can be done, and even after, in case we missed something. (Time spent by master report writer. Guess who specs and QA's these?)
- Perform a scripted cleanup on at least 7000 employment records, assuming I can identify the precise scenarios where it's safe to script it (Spec-writing and QA on me again, so Rick can script this correctly.)
- Possibly manual cleanup if we can't script everything. (That will fall to our data entry staff.)
- Communicate something to our 50+ data entry users about this prior to deploying the SP. (I have to write the communication. Thankfully, it's not going to affect all 600+ users.)
- Delay deployment of the SP in our production environment for a week, solely due to this new feature. Chances are, we won't be able to knock out 3, 4, and 5 before that, so our data entry users will have to cope until then.
Oh I also forgot to mention that the relationship and job start dates are completely untouched, so they can continue to be as out of sync as you like. And I also suggested in the idea bank in 2019 that this feature work the other way and sync from the job too, but apparently that idea was unheeded. This is how to REALLY annoy a QA person who has a focus on data integrity!
I don't usually vent like this, but I have a major pet peeve when something unnecessarily creates more work for me or my coworkers. Here's hoping the time I spent on this already will save you some time!
Kelli CrispinBusiness Analyst/Quality Assurance Specialistshe/her/hersThe University of North Carolina at Chapel Hill Office of University Development