Wednesday, January 15, 2014

S2: My Brief Experience in Cloud-Based Database Design and Google Fusion Tables

My last post was about Google Calendar, and the ones before that were about the Philippine power sector. I will not talk about either of those, but instead talk about my brief stint in designing a database (and user interface) for our staff performance evaluation and tracking system.

After our last performance evaluation exercise, I saw the need to create an information system that supports a real, learning-oriented, knowledge management (KM)-oriented staff performance evaluation system. After reading a few literature about the concept (notably, the Strategic Performance Management System and the RA 6713, or the "Code of Conduct and Ethical Standards for Public Officials and Employees"), I designed the entity relationship diagram. You can read my concept proposal here.

Obviously, it was a self-imposed proposal that I was excited about so I went ahead and spent time and money (for staying at Starbucks... oops!) to contemplate, design, correct, recreate and re-do the database backend and the individually oriented user interaces. As a learning exercise, I tried to document as much as possible, which led to the user manual here.

But that is a big jump from the proposal to the system I was able to finish (well, almost. It still lacks the policy decision on how much is the weight of each evaluator's grade, and what are the criteria of evaluation). Obviously, before that, there were a lot of choices.

I have heard of Google Fusion Tables when I was still working at UP Manila, but it seemed too technical to me. I didn't have training on database then, too, so I did not even have the conceptual appreciation then. However, when I went to PMS, I already had the appreciation of database design and management, so I was able to appreciate Google Fusion Tables.

I needed a system that would do these things:
  1. Allow the staff to enter records about their outputs.
  2. Allow supervisors to evaluate their staff's outputs, but only access outputs of their own staff (direct reports) and not edit details about the output. Also, supervisors cannot change the grade other supervisors give to that output of that staff.
  3. Automatically calculate overall rating for each output (because each output is rated by many evaluators, and each evaluator makes an evaluation on many criteria).
  4. Allow supervisors to quickly know the current standing of that staff based on given evaluations.
  5. Allow staff to see evaluation (and constructive feedback) on their outputs, as well as summary calculation of their standing.
  6. Download the data.
  7. Make special reports, based on what the the data the system gathers. 
At first, I wanted to use Google Forms, which would then feed the data into a Google Sheet. Google Forms can be easily created, and it also allows conditional data-inputs and required fields. Google Sheets allows range-based access, meaning I can designate which areas in a spreadsheet a person can edit. For example, I can give one Supervisor A permit to change (input and edit) data in Column I only, while Supervisor B will enter the grade in Column AA, and Supervisor A cannot change any part of the sheet other than those columns. Google Sheets allows strong data crunching functions, due to its Pivot Table function. The two are almost perfect. Well, I said almost.

The problem is that the Sheet is a very big online document, which any manager, unless I were that manager, would not want to go to. It is just a perfect example of information overload. Working for an organization that attempts at every moment to lessen the load to the bosses with the belief that they have more important things to do than read your complete and comprehensive input, Google Sheets was simply not an adorable, manager-level type of information system that they would adopt.

Remembering Google Fusion Tables when I was still studying an online system for program monitoring database, I re-read the system and what it can do, and implemented the Staff Performance Information and Evaluation System with that as the technology base. 

With Google Fusion Tables, I was able to create input forms (well, actually, input tables) for each staff, some data of which will enter in the unique user interface of supervisors so that they can grade them. The supervisors only see records of outputs which they have not evaluated yet. Once they evaluate a record and close the window, and open it again, those record will no longer appear. 

On another view, the staff can see the evaluation of the supervisors (if they have already done that), but they cannot edit it. They can only see their own records, not those of other staff. And unit heads can only see records under their individual unit, not those of others. 

As it is a database, one can easily manipulate the presentation to suit the needs of managers. 

Unfortunately, it was not utilized, so I was not able to test its full operational capability - that is, simultaneous multiple users using the database. I did the "alpha" testing alone, if that would be considered as alpha testing. 

I sure hope that I would get the opportunity to implement a system like this. I had hoped to integrate this with our dashboard, but even that would probably just go to my charge-to-experience list.