Work Day 47: Well, I THOUGHT I was brilliant…

Remember my great stroke of genius in discovering I’d only need to add one argument to pass to that one method to fix the driver age being passed to our other system?

There’s good news and bad news. The good news is that my mentor helped me determine the correct version of the integration repository to clone to make my changes (short answer: it doesn’t exist yet for the March release). He helped me with my Eclipse setup, so that I can eventually make my change—for now, I’m using the older repository code for this purpose. Creating a patch in Eclipse is similar to creating one in Guidewire Studio.

The bad news is that my ingenious idea to add one argument to pass into the method was a bust. I added my change in Eclipse only have have all sorts of angry little red Xs and other ugly notations pop up. Come to find out, I hadn’t thought to DEFINE the loss date field that gets passed with date of birth. Choking down my rising hysteria, I saw how date of birth was defined, and then I scoured the class until I found loss date defined somewhere else in a similar manner. I copied that code over to the code that calls the method and all the angry little squiggles went away! Whether or not this actually will work remains to be seen. Once the March repository becomes available I’m going to hook everything up and test by entering some claims into my local UI and see if they pass correctly through the integration process.

Okay, that’s how I imagine it’s going to go. I’m sure the reality is going to 12 times more complicated than that. For one thing, I have to make this change work for five different scenarios. Also, I’m casually using the expression “hook up” for a process that’s defined over 11 pages of documentation.

My poor mentor is going to deserve a medal for this…or at the very least hazard pay…

Workday #46: Spring Forward!

Since yesterday didn’t contain enough drama, I elected to multiply this tenfold by taking on a new user story. On the surface, it appears to be something I can handle–simply change the driver age for a commercial or personal auto claim so that the age is Age at Loss vs. Current Age so that it gets passed to our other system correctly. I waded into the integration code for Spring Batch in GitHub and I think I’ve narrowed down the issue to one method in one class. It appears to be an overloaded method, where if you only pass the date of birth parameter, you get the Current Age; however, if you pass the date of birth AND the date of loss parameters, you get the Age at Loss, which is what we’re after. I’ll have to scour all the code of course, to make sure, but I’m fairly certain that that’s all one would need to fix.

DOING this is going to be another matter. I have Eclipse installed on my work and home machines, and I’ve been working with it a bit it at home while doing the Udemy course; but I suspect it’s going to be a lot more complicated with our crazy GitHub branch system. I did try to follow the Spring Batch/Maven setup directions on the Wiki in our GitHub, but I can’t even get past Step One without being told I don’t have access to create a Maven User Token. No, I don’t know what that is, either, but right now it makes no difference, as I can’t create one.

I’m going to meet with my mentor on Monday, to hopefully figure all this out. The poor man, probably remembering the fiasco that was yesterday, put me off until Monday afternoon–probably sensing I’m going to need a lot of direction. My plan is to read over everything in advance, so I don’t waste his time.

Oh, I haven’t even gotten to the best part of the day. I hosed my new Guidewire 9.0.7 setup–as in, I accidentally DELETED the entire thing! I was attempting to be proactive by zipping up all the old files for 9.0.5 and deleting them, but in so doing I accidentally deleted the wrong files. On a more positive note, I really do have practice now installing a new version, and I even managed to connect the database correctly.

Work Day 45: Back in the Saddle Again!

…but what on earth are my passwords???

It was a very nice holiday break marked by good times with our family and friends, a few cleaning projects, finishing knitting projects, endless cookie-baking, and five extra pounds I need to get rid off. Alas—what with all the preparations, festivities, tinkering with new gadgets I got for presents—I only got in ONE Udemy Java course session. The good news is that I hadn’t forgotten anything, so I’m hopeful that once I get past the 3,456 emails in my inbox, that I’ll be able to be somewhat functional.

…these were my thoughts BEFORE I got back to work and discovered we’ve gone from ClaimCenter 9.0.5 to 9.0.7. The email went out last week, when most people were out for Christmas. I had to update Guidewire, add in code for my two user stories (story #3 was usurped in my absence, due to requirement changes), retest them, and push everything out to GitHub for a code review again — for FRIDAY. It took until 2:30 pm just to have 9.0.7 fully functional in my local. My only consolation was that I wasn’t alone—other people had a ghastly time attempting the change. I took copious notes for the next time we have to go up a version, including additions to my ongoing error file, where I note down all the errors I’ve encountered so far and how to resolve them.

And a Happy New Year to you, too!

Work Day 44: Wrapping it up…

…only a WEEK left to shop!!!

I’m about to be off for the rest of the year, so today was a day of frantically wrapping everything up at work. With a coworker’s help, I managed to solve my role story issue—I even crossed the big frontier of modifying a CLASS…with a new FUNCTION! Okay, he had to help me write it correctly in Gosu, but I did manage to figure out where it would go and what it would need to do. I even managed to avoid a tech-debt situation by putting the code in a class rather than in the pcf.

I don’t want to lose the knowledge I’ve gained, so in addition to my frantic holiday shopping (yes, I’m one of those people who runs out at the last minute), I’m also planning to spend time every day on my Udemy Java course, and reviewing the Gosu documentation.

Oh, and of course there is important knitting and crocheting to be done! I’m making progress on the sweater I’m planning to wear for Christmas.

img_1405-1

Work Days 42 & 43: Surely You Mock

I know…I’m combining TWO days in a row. In my defense, one could consider these two days to be a continuation of each other, as I’ve been in Gosu hell since yesterday. Unbeknownst to us, someone–in the interest of anonymity, we’re going to call him Earl–pushed a GUnit test (like JUnit tests, only for Gosu) that uses Easymock 4.0.1 out to the release branch. Fun fact: many of us are still on Easymock 3.1. I found this out the hard way when I needed to do a fix for the role user story, but was dead in the water when I got two compiler errors after creating my branch from the release branch.

Come to find out, this has been an ongoing drama of “Dynasty” proportions since December 5. For my younger readers, that would correspond to “Real Housewives of Beverly Hills-on-steriods” drama, like that chick screaming to the cat in all the memes.

Anyhoo…The initial alarm was raised in home office with–in the interest of anonymity we’ll call this fellow Gungho Carl. Gungho complained back on December 5 that he couldn’t compile. Gungho is actually a kickass developer of uber nerd cred, so if HE can’t compile, there’s something seriously WRONG. From there, for the next several days, there were a flurry of frantic emails back and forth with basically the known Gosu world within my company. The news eventually filtered down to our office in the sticks, and landed with my mentor. He’d only informed a few people about how to fix this (including Earl), as I don’t think he realized how many of us were still on 3.1.

Per his instructions, I updated to Easymock 4.0.1, fired up the server, and…drum roll…

I got 1,018 compiler errors!

As a temporary workaround, because I was really desperate to get my user story changes done and into GitHub, someone (The Alum) had me just modify the other guy’s GUnit test in my local machine to use a parameter in keeping with 3.1 (the test didn’t affect anything I did).

My mentor, who was NOT PLEASED with the workaround, helped me today to get updated with 4.0.1 correctly.

In other news, I was shown how to do Git commands from within Guidewire Studio! I haven’t created a branch from there yet, but I managed to add, commit, and push my changes. Very exciting.

I’m also happy to report that I just checked, and TWO of my user stories are now in the Release Path!

However, as of this writing, I still have MORE work to do on my role story. This is my favorite screw-up category called “Pam needs to learn to read.” I created my role, but apparently someone felt it needed to WORK. Go figure. To be continued tomorrow…

Work Day 41: Making it official…

I’ve decided that I’m just not right in the head…remember that defect user story I was scoping out—the Penalty Payments from Hell? We were having our checkpoint this morning, and we were discussing backlog items. One person grabbed the Integration story (oh, DARN). That left my nemesis. Remind me never, ever again to jump in feet first during a lull in the meeting conversation. As no one else was leaping up and down for the payments defect story, YOURS TRULY decided to be plucky and volunteer to do it. Granted, I did indicate that I might need help, but in looking it over, I think I’m going to need a BOATLOAD of help. For one thing, l have no real way to duplicate the issue on my local machine, due to having no connection for checks. I think I’ll need to see if there’s some way to fake a check payment going through—otherwise, I’ll never see what’s happening with the button behavior.

Thankfully, the release date for this is March. I think my first plan of attack will be to go over this with our product owner and our BA, to make sure I’m understanding what I’m supposed to be fixing in the first place. I realize I probably should have come to that conclusion at 9:00 a.m. this morning, rather than at 5:00 p.m., after an entire day of trying to trace through tons of code in an attempt to understand the general process. The good news is that I think I’ve pinpointed where the roles and security get determined in the code…

One a more cheery note, I had my knitting group this evening, and I’m finally done with both sleeves and body of my sweater! I just have to now join everything for the yoke.

Work Day 40: The Meaning (or Query) of Life…

I decided I was sick of not knowing what the heck was lurking inside my local machine test data. When I first set up my Guidewire Studio, the Alum had me copy test data from our network drive, and for my three user stories I pretty much hunted and pecked for suitable test claims by making do with the application’s UI search. Don’t get me wrong—the UI search is fine for a claim handler to look up info for a particular claimant. However, it is not designed for a looney developer to spit out every single claim record containing a penalty payment (yes, I’m still looking at that story—there are no official takers for it yet).

I checked the Gosu Reference Guide and found a whole chapter on querying. It was a bit of trial and error, but I managed to use the Gosu “Scratchpad” to churn out every claim record in my test data! I also managed to churn out transaction data, but I ran out of time. Tomorrow I’m going to try to find specific types of transactions. It looks like there is more basic claimant data than actual transactions. At least now I can easily search for the type of data I need. I’ll have to figure out how to save the individual queries. I’m not sure if they’re the same file extension as other Gosu programs or not.

There’s nothing like discovering a new programming language skill to make you feel like Einstein.

Work Day 39: Developing Envy…

I recently found out that one of my fellow Code Academy graduates is now working with Gosu, too. Someone mentioned that he might call me, looking for info, which I was fine with, of course. Long story short, he contacted me, but to ask where I was with the exams.

Exams?

Yes, you guessed it. HIS department is already having him do self-study courses for Guidewire and he’s already taken the first exam. So, far from being able to help him, he’s further along than I am. I swallowed all the pride I had and mentioned that perhaps it would make sense to contact another fellow grad who’s working with Gosu and who was a tech lead, so I’m pretty sure he’s probably light years ahead by now.

“Oh sure!” He exclaimed. “He knows EVERYTHING!”

I asked my boss about more training, and he’s planning to send me, just as soon as the department can scare up X number of people for a class. I told him I’d be fine with the self-study route, if they can’t. It was news to him that there was a self-study course, so he said he’d look into it, but most likely he’ll be sending me to a regular Guidewire class next quarter.

I’m trying not to be dismayed over how far behind I feel. I know I really shouldn’t compare. After all, the whole point about making this sharp detour in my professional trajectory was to be happy in my work. So far, my team is very happy with me, too, so…so what if a few people from class are a bit ahead of me? One person was a tech lead, so that was a given that he’d be ahead, and the other guy honestly should just bag our company and go work for NASA–that’s how bright he is.

I still feel envious, though…

Work Day 38: Where did the day go?

This is one of those days where I’m not really sure what I did, but I spent a long time doing it. It all started when I decided to check out two MONSTER user stories we have in the backlog. I suspect we are probably going to split them eventually, but for now I decided to see if I could understand what needs to be done. I’ll give you the Reader’s Digest version—NO.

One story deals with integration which, if you held a loaded gun to my head, I couldn’t tell you jack about. On a data level, I can tell you what happens, and even what time of day the different files travel back and forth between systems, but I have no idea about how the code works.

The other story deals with the resurrection of my old nemesis penalty payments. In the interest of anonymity, I won’t call them by my system’s very familiar code name (and we won’t go into the bad names I’ve called them for years). As a BA, I struggled with understanding the ins and outs, the bee-bopping of these payments from one system to another, when they’re added or subtracted from different values, when they aren’t accounted for at all—as well as their bastard cousins the REVERSE penalty payments. These are all treated very differently than other transactions. This particular defect user story appears to deal with some ghastly error the adjusters are having where they try to change the monetary type of the payment and the system loses its mind and decides to not pay the penalty amount to the claimant—or is it that it pays them again? Honestly, I really thought that once I became a developer and could see into the code, that this quagmire would make sense, but NO. For one thing, I haven’t quite ascertained WHERE to look for the code that governs all this…I’ve found the PCF files, but that’s it so far.

And then it was 6:00 p.m.

Work Day 37: Admin Antics…

More GitHub hell today. The good news is that I got a code review and my code was approved! The bad news is that I had to get my code to the master branch for the release, which of course I couldn’t do, as I don’t have the authority. My code reviewer moved my code to the right location. I also had to create several more files for EACH environment we are going to need to update.

THEN…as instructed, I sent an email to our Test Environment Team, providing a link and explaining that I needed them to suck up my file into their vortex and plunk it into the next applicable Environment. This, of course, couldn’t be easy. My mentor asked, “Did you open an environmental ticket?” Sure enough, by the time I got back to my desk, I had a terse email telling me that I needed to open up a ticket. I found a random ticket in the system like my request, copied the basic verbiage to my ticket, and sent it off.

THEN…come to find out, there is ANOTHER document one needs to fill out when one adds any Admin data to the system. This document, of course, didn’t exist under the release folder for us yet, so I found an old one under another release, copied the format, added my role entry, and put it out onto SharePoint for the rest of my team to use for their release updates.

I’m not entirely sure I’m done filling out documents…it’s only Wednesday. I’m taking copious notes, so that I’ll know what to do next time I have to update any application data that requires a script.

AGAIN…the actual coding part of this took maybe 10 minutes of my time. I’m pretty sure I’ve spent more time flossing my teeth…