Mother Nature’s Role

While writing this recognition application for The Student Loan Corporation, overlapping roles has been a constant thorn in my side.

Application administrators and managers have access to certain functions, such as the ability to approve nominations of different levels, that general users do not.

Managers were relatively easy to handle. Creating an employee table that correlated managers and their direct reports allowed me to move nominations for specific employees to the appropriate manager’s queue.

Adminstrators are a whole different beast however. Not only do admins need to be able to function as normal users and administrators, they can also be people managers. As far as approvals were concerned, it was tricky (but doable) to figure out when a nomination needed to be approved by a specific employee acting as an administrator and when that specific employee needed to function as a people manager. Their role in these instances affected whether or not the nomination moved on and to where.

I solved this problem by creating different statuses to indicate where each nomination was in the approval process. Based on that information, I was able to determine where it should go next. That problem has been behind me for a little while now and it’s been smooth sailing until recently.

Roles are starting to get muddled again now that I’m working on the redemption portion of the application. The idea is that an employee’s accumulated recognition points can be redeemed for prizes. These prizes reside in an inventory maintained by the administrator.

This is where it gets slightly complicated. Because quite a few of the prizes are company branded and the program sponsor is Human Resources, these items are also used for other purposes such as charity give-aways or gifts for visiting executives. The admin now needs to be able to remove items from inventory from time to time for these purposes. Since the recognition program depends upon an accurate count of the items available for redemption, these withdrawals really need to take place through the system. The rub for me was how to determine when the administrator is removing these items as an adminstrator for the purposes just discussed and when they are legitimately redeeming credits accumulated as a normal user. In one instance, this action would mean reducing their accumulated credits for the redeemed prizes while in the other, it would not.

The idea that I’d need to figure this out eventually has been floating around in the back of my mind nagging me. I kept putting it off because I didn’t want to invest the brain power I thought would be necessary to figure it out. Little did I know how short an amount of time it would actually take.

SLC is rapidly outgrowing the available space in their current location so people are tight. I’ve had a tough time concentrating lately with anywhere from 6 to 8 people within three feet of me all having their own conversations and working. Maybe I just have superhuman hearing but there’s this constant chatter than once I pick up on, I can’t drown out, even with headphones.

Anyway, I’m getting down to the wire on this project and this functionality is one of the few remaining pieces so I decided it was time to just knock it out.

Yesterday at lunch I headed over to a trail nearby with the idea that I would get some fresh air (and quiet), focus exclusively on this problem, and come back to work with a solution. I’m proud to report that less than two minutes from the trailhead, I had everything worked out. About an hour after returning to work, the solution was implemented.

I guess the next time I’m strugging with something, instead of putting it off, I’ll just take a walk.

Leave a comment

Please be polite and on topic. Your e-mail will never be published.