Friday, November 13, 2015

Database Design for Non-IT People

As a member of the Quality Assurance Team and a member auditor of our Internal Audit Committee (both of which are component entities of our Quality Management System), I observed that there are a lot of offices which maintain some form of database. And that is good.

However, as someone who was trained in database systems (however, this is by no means saying that I am an expert on the subject), I also observed that their databases are mostly 'designed' to respond to only one particular concern, which is storage of data and ensuring that they can find a particular type or instance of data for each particular record.

That in itself is not a bad thing, however, I find myself wishing that they would enhance their database so that it can be more robust, more flexible, and has opportunity for scaling up and integration.

Some of the staff who thought of creating an electronic database used Excel, a powerful spreadsheet application, are conversant with advanced knowledge of the application, which means they know more than simply typing values there and using basic arithmetic formulas using absolute and relative references.  However, choosing Excel, or other spreadsheet application like LibreOffice Sheets, to use as a database management system is an indication that the choice did not consider the long-term opportunities of making other management decisions using the same existing data by merely organizing the data properly.

Still, I think that advanced skills in spreadsheet applications is an indicator that they can easily understand the basic concepts of database management.

Considering, this, I really want to share what I know about database management to these people so that they can be more conversant opportunities in proper database design so that they can easily find the information and knowledge they want from the data already in their computers and files.

I might post some future articles on the matter so that they may be able to read it, in case they want to learn and we just don't have the time to do it during office hours.

Saturday, September 12, 2015

Update on the Google-based Performance Information System

So after going through three different options (LibreOffice Base/Microsoft Access, Google Fusion Tables, and developing my own local system) in creating our performance information system, I finally settled in using Google Fusion Tables.

Previously, I was afraid that the system would be riddled with information integrity and access restriction problems. For example, I was afraid that one unit can enter data for another unit, which should not be the case. To mitigate that problem, I created an internal key reference system. What it was supposed to do was to present to the oversight office his own reference key and the submitter's secret key. If the keys are the same, then the oversight office should consider the record valid and he or she can rate the output recorded. However, if the keys are different, he or she can check with the supposed unit why the keys are different before giving a rating.

Personally, I was not keen in that system being observed. The oversight offices are "very busy" people. They would not bother themselves with security procedures. So I thought that our unit would constantly monitor the keys by creating a merge of the key reference table and the output submission table (I know, the references might be difficult to understand. It's by design.).

However, just today, I learned a way to altogether remove the key reference system. Instead, the access would automatically identify the submitter as the user based on his or her Google login.

The process not only removed the threat of shared access rights to create records, but also removed two fields (columns) in the unit's view of the database.

It was brilliantly simple, and more secure.

Now time to go back to work.

Saturday, September 05, 2015

Learning PHP and MySQL Fundamentals - Day 1

So I attended my first day of PHP MySQL short course training yesterday, It is an introductory course, with my intent to get as much practice on using PHP and complement my own study reading online sources.

Actually, I was not sure if I would like to enroll in the basics class, as I thought that based on the outline, I have covered 80% of the content. Anther reason was I got confused with the price posted in the website. It says that the regular training fee is P16,000, while Early Bird Government participants pay P8,000. While I am a government employee, I was only registering (i.e., paying) on the first day of the training, definitely not an "early bird," which the website defined as a participant who has to pay the full registration fee two weeks before the start of the class.

I am glad the staff said that I can avail the P8,000 (subject to presentation of relevant documents, which I promptly presented). And I am glad I still did enroll in the basic class.

While a cursory reading of the outline tells me that I got 80% of the content based on my personal readings, the training did expose me to other practical challenges that I did not get from the two PHP-MySQL-Apache books I was reading.

The assignment (which I only got to research today) also helped me to keep the concepts in my mind. As a programming class, it also helped me appreciate how it can be applied in everyday life (although not the programming language, but rather the logic and process). One personally funny example the trainer gave about LOOP was "If anak ng presidente, derecho na. Kapag hindi, gawin mo ang mga procedures na ito."

At first, I felt defensive, considering where I work. But then, I had to ignore it. I am neither the President nor a child of one. And while I don't want to say it is true, it is an example that they may have found real in their experience.

But for me, the appreciation of where programming can be applied is helpful.

Looking forward to the next session, which will be after two weeks.

Saturday, August 29, 2015

Cloud Computing Now

First posted on: http://trainingtechnologies.blogspot.com/2015/08/cloud-computing-now.html

During the presentation of our Information System Strategic Plan, I was asked about what system I was using for our Performance Information System (v.1). The question was raised as an item in discussion was about the Knowledge Warehouse, which was supposed to make all our separate information systems and databases inter-operable (i.e., data can be shared with one another easily, and these separate systems can can “talk” to one another). Without going into the details of the system I am developing, I said that it is Google-based, and so, cloud-based.

There were different reactions to the idea of the system being cloud-based. While there were expressions that making something cloud-based made data available, most of the following expressions were on security and where the data will be actually stored. Obviously, I cannot expect top-level managers and executives (including the oversight official for our information systems) to understand the concept of cloud computing in a precise manner (cloud computing as a concept has slightly differences depending on the source, I must admit). Hence, I thought I have to update my knowledge about this concept, just in case somebody asks me.

I wrote briefly about cloud computing before here. Back then, cloud computing in the Philippines was not that popular. Actually, even globally. Cloud computing as a term only became popular then, with people promoting it emphasizing economy and allowing the business to focus on its core functions rather than get bogged down with setting up their IT requirements (which big companies usually require of their supply chain partners). Those against it emphasize (just like in the paragraph before) security and location of data. Since then (about five years past), a lot of developments have happened. The Wikipedia article is a testament to that.

On September 10, 2009, the Wikipedia article on cloud computing described the concept as a “paradigm of computing in which dynamically scalable and often virtualized resources are provided as a service over the Internet.” If you would access the same article today (August 30, 2015), it says that “Cloud computing is a model for enabling ubiquitous network access to a shared pool of configurable computing resources.” I agree with both, actually, but the latter definition has some terms which are highly technical, so I prefer the former.

As I said in my blog post in 2009, for me, it is just a way of computing (or doing your work with your computer) with your data or your applications--or both--on the Internet. To make the concept tangible, look at Google Drive or Zoho, both of which allow you to create documents (i.e., text, spreadsheets, presentations) on the web. Their online system constantly saves your work, so you don't need to manually save every few minutes or so.

Also, previously, when one thinks of a website, you use either your Notepad or Microsoft Frontpage to create your web pages on your computer, then upload them to your server (either your own server where you or your business is located, or to some webhosting provider). Now, you can create websites with Google Sites, which, among others, reduces your need to learn HTML or similar languages and hosts your webpages in their server. I will stop for now about the benefits of using Google Sites and talk about this later when I go to the Benefits part.

So we have an idea now what it is. What is it not? For example, is email a part of cloud computing?

In its previous form of POP3, email was not cloud computing. In the Philippines, however, we were introduced to its cloud-based form – the webmail. We used to access Yahoo! Mail and Google Mail from the web browser. Those email services, which you can access using your browser from any computer instead of an email client installed in your own computer with the settings preconfigured, are cloud-based.

Chatting, again, in its previous form of Internet Relay Chat (IRC), was not cloud-based, because there is a central server that moderates communication of messages among different users that access the chat through a preconfigured client. However, recent chat services through your web-browser (e.g., Google Hangouts and Yahoo! Mail's chat) would be considered cloud-based.

I am briefly delineating the difference between cloud and non-cloud computing to emphasize how cloud computing delivers its supposed benefits.

Cloud computing has a lot of benefits, and technical papers can list a lot. However, for us mere mortals (i.e., non-IT people), I will focus on what you may need to know.
  • Mobility and device independence (borrowed from the Wikipedia article) – You can access your data (e.g., download your data, make changes, create new file or record) from any device or location so long as you have internet connection and maybe a browser. 
  • Cost – Particularly if you use public clouds (we will define what a public cloud is later). Creating information systems that will give you the intended benefit would be costly both in monetary and experiential terms. Adopting cloud computing avoids the experience cost and as well as capital costs associated with systems development, as well as leveraging on the learning of other users that have used the system (and provided feedback to the cloud service provider).
  • Focus on your core function – For small businesses, public organizations or educational institutions, all of which may not have very big capital budget for information technology, cloud computing allows them to use technology available to support their core function without the need to develop (and spend on) their own systems. Looking back at my previous example of Google Sites, it allows collaboration in creating a website; multiple types of access (down to the page level), and easy addition of content. An additional feature of creating websites with Google Sites is that Google takes care of converting the website to a form that is mobile- and tablet-friendly. As it is Google-hosted, it allows you to also integrate other Google services to the website, like adding a calendar that will display information based on the person's Google account.  Imagine if you will have to write all these in code, and you are not a computer science graduate.
  • Security in data redundancy – While anti-cloud computing individuals say that it is risky, it can actually give IT people peace of mind as they know their data is stored and backed up in an off-site location (i.e. not in the place where the business is located). In the eventuality of disaster in the organization's area of operation, the  company knows that their data is backed up at a place where the disaster is not likely to have taken place as well. Of course, this requires [and does not take off the organization's or its delegated responsible person's responsibility to conduct due] diligence in determining where the cloud service provider actually stores your data. 
  • Collaboration – This feature of Google Docs (an example of a cloud-based software) ensured me buying into the idea. Google Docs (and its sister services, Google Sheets and Google Presentation), allowed multiple users to edit a file at the same time from different computers. Instead of sending back and forth different versions of a file, cloud computing allowed us to work on ONE file instead of sending back and forth different versions, which confused everyone which should they be using. Imagine if you have a web-based project management software, so that different project staff can update their responsibilities in the system, and the project manager can have near realtime update on how the project is doing. 
  • Maintenance – Cloud computing also allows IT administrators (if they use private clouds) to update just the back end (maintained by system administrators) of a computer system without tinkering the software on the front end (used by the end-users). They can simply update everything and the front end will update as they (usually) access the system through a web interface. 
  • Security in maintenance – As mentioned above, cloud computing allows system administrators to update the system without worrying about the end-users' client software. As most of the protocols are in the backend, cloud computing reduces the risk of a non-compliant end-user not updating his/her client software. 
Of course, cloud computing, like any HUMAN ACTIVITY, has its costs and risks. Here are some of the most commonly cited ones:
  • You need an internet connection. For you to access your data, you need to have internet connection. Most of the cloud storage services, like Dropbox and Google Drive, however, allow offline access by downloading your data on your computer and synchronizing it with your online account when you get online. 
  • You don't know where your data is located. As mentioned before, this requires you to conduct due diligence if your data is sensitive (e.g., related to national security or politics). Let me point out, however, that this is not limited to cloud computing. You could store your data in your USB flash drives. But if you are not careful, you could save your data to a virus- or malware-affected storage device, which may either corrupt the data or send it to an unknown person without your knowledge. Again, due diligence is required. 
  • Virus affecting all data in a cloud or networked system. Even if cloud-based systems are inter-connected, it does not mean that anyone (including a virus or piece of malware) can access data to another system without proper credentials (which is one of the foundation principles of information security). So even if a virus finds itself in a cloud storage device, being there does not mean (most of the time, if your system is designed right) will not mean corruption of everything in it. Another way of mitigating this is actually to ensure that you have your data backed up. 
Relatedly, if you are considering of outsourcing some of your information system processes, you should note what the contract says about ownership of the data.

To address the commonly raised concern on security and privacy, organizations may consider a private cloud facility. A private cloud facility harnesses the technical benefits of a public cloud (e.g., doing transactions on the server instead of installing applications in the end-users' computers) while ensuring that their data is in a facility they own. However, private clouds may not be able to leverage the economic benefits of public clouds as the organization will have to operate just as they have with a client-server system (i.e., maintaining a data center with its required supporting facilities, such as an airconditioned and secured room, back-up data storage facility, back-up power source, among others).

Personally, I am looking into the idea of getting a Network Attached Storage (NAS) with cloud capability, such as Western Digital's My Cloud Mirror or Synology's BeyondCloud Mirror. While we do have external hard disk drives, moving them makes the ports prone to wear and tear. I previously had to throw a 500GB external hard disk drive because I cannot access the data anymore (and I didn't know of any other way to get my data). With a NAS with cloud capability, my team can share files in a network environment (only those allowed through a username can access it) and access the same files when I am away through the internet.

Considering the benefits and the risks, and given due diligence in selecting the service provider or the facility, and being reminded of the supposed responsibility of ensuring security in designing ALL TYPES of information systems, I think cloud computing presents a real business case that executives should consider.

Encoded using LibreOffice

Sources:
Wikipedia, "Cloud Computing," accessed on 30 August 2015.
University of North Carolina, "Cloud Computing," accessed http://www.unc.edu/courses/2010spring/law/357c/001/cloudcomputing/examples.html on 30 August 2015.

Sunday, August 23, 2015

Re-learning to Write and Weakness as a Motivation to Improve

My application to this government agency concerned with national security, which included a one-on-one interview and a writing test, revealed how bad my communication skills were. I am writing here to publicly acknowledge that weakness, which I commit myself to improve at the soonest possible time.

Aside from telling the public (i.e., the limited number of people who read my blog) about my experience, I also got to experience what I preach: Going through an application process to assess yourself.

Many times, when we get performance reviews, we get very satisfactory ratings. Sometimes, the rating is correct, sometimes, the rating is there to allow you to stay. Or sometimes, the rating has no basis.

I am not a fan of external validation, but I do appreciate feedback, which you can only get from being externally connected. And that writing test (the result of which was not given to me) made me realize how bad my writing skills have become over the months I have been out of Policy.

The result was an expected pain. That day, I knew I was not prepared. However, the results of the writing surprised me so much. Again, there was no score, but it did make me realize how bad it is.

Again, no one told me my writing or interview skills were bad, but the opportunity made me realize it.

And I have to be honest with myself.

As painful as it is, I have to accept the truth that I am not ready to go back to technical communication roles.

I simply hope that my friends at Policy that old skills forgotten can be easily re-learned is true.

I have got some word to do.

Of course, I am not writing this just to share my experience of learning. I want to say, in brief, that that experience of realizing for one's self your weakness is a liberating experience, that an organization should also try.

If we do not admit our weakness (i.e., objectively telling ourselves that we failed in some areas), then we won't be urged to make drastic actions to rectify them.

If we continue to make "success" and "failure" subjective, we will always have success that is not something we can really be proud of.

If we continue to accommodate perspectives into performance and consider economy of the individual for making decisions performance issues, then don't expect improvement.

(Actually, you can see improvement if that is what you want to see... just don't expect respect for your measuring system.)

Ignorance is bliss. What you don't know won't hurt you... for now.

I've got to write more.

Saturday, August 22, 2015

Performance Information System using Google Fusion Tables

I finished last Friday 5 out of our 14 units' performance contracts (PCs) in our Performance Information System. Previously, 8 were entered by another staff, so there is only one unit remaining PC to be entered. After that, I have to review the records entered prior. With populating the commitments table almost finished, I have to go back to writing the concept and how-to-use document.

I have written a number of times on the performance information system, so my organization in writing is kinda messed up. I hope I would be able to fix this sooner as I hope to finish the system mid-September (revised timeline, I know). When I say "finish," I mean it should be pre-populated and there should be a ready document telling what it is, what it is for, and how to use it.

For managers, of course.

For managers who have no time to listen to how this system works, or how they should use it.

Don't get me wrong. I'm not complaining. It's just my observation and statement of my anticipation to my presentation being welcomed by either long yawns or questions on the integrity of the system, doubt about the effectiveness of the system, or question about the wisdom of using properly their executive time, or a combination of these and other scary things.

I'm just being realistic.

Since 2013, I have really thought about this. What I can only say is that I see some hope of this being used. So despite being scared, I am continuing. Studying how to make this work, without overtime compensation, of course.

The development of this information system also brought some questions on our performance management system as well. Questions on small details that accumulate and impact the things that matter the most to the units: the score.

Anyway, I will just stop here, I only wanted to introduce the document, which is still a ROUGH DRAFT (my working file).

It's here.

Tuesday, August 11, 2015

Books to read

For a short while earlier this year, I was able to pursue reading some of the books I said I want to finish, such as Tom Clancy's Command Authority, Support and Defend, and non-fiction (not associated with Tom Clancy) Where do You Stand?

Recently, again, due to work load, I cannot even finish the latest Tom Clancy book, Full Force and Effect. So this post is about books that I want to pursue reading, hopefully when I get some relax time (or maybe even squeeze in my schedule, in addition to blogging):

In addition to these books, I also want to continue my personal learning on business-oriented information technologies, particularly databases and web applications (in the meantime). As such, I hope to be able to continue reading these books:


In the future, when I get myself a DSLR, I also hope to be able to practice photography.

These are just a few of my favorite things.... 

Saturday, July 18, 2015

Unlearning Pain

For the past week, I had a sore gum at the right side of my lips. It was painful. A simple smile made me want to say all curses, and eating was torture. It was like that for like five days.

When it began to dry up and heal, the pain was still there, of course, but I could feel the pain getting less. But the pain I "learned," made me fear it nonetheless.

Even when I don't have it, brushing my teeth makes me remember the torturous pain.

It was "just" sore gum.

The fear it created is still there.

And unlearning that will take a while.

Just like in life.

I don't know the solution to this. But if you continue to stay in that state of fear, you will get nowhere.

By not risking on something, you are actually risking everything.

Friday, June 05, 2015

Random Typing

I've been in the Planning Division for more than six months now. For the first two months, we have been very busy with complying with the requirements of the Administrative Order No. 25 (s. 2011) mandated Performance-Based Bonus (PBB), and facilitating the performance evaluation system among our units in ranking which among them are the Best, Better, and Good. From December of 2014 to January of 2015, we facilitated the organizational planning process, including the crafting of performance contracts among all Third Level Officials. We hope that we did a better job this time such that during evaluation, we will no longer have to issue ad-hoc guidelines which frustrate everyone.

From February to May (until beginning of of June), the Planning Division facilitated our agency's compliance with the Enhanced Career Executive Service Performance Evaluation System (CESPES) of the Career Executive Service Board. CESPES is the performance management system mandated by the CESB, which is the agency created to professionalize management officials of all agencies in the bureaucracy. In between, we also reviewed and revised our Performance Management System manual, facilitated the close-out of our performance management system development project with a consultant, and run a mixed channel survey to improve our process and guidelines in the PBB.

As you may know (if you read my previous post), I have been personally crafting a proposal and design of a Performance Management Information System (PMIS) to complement our newly approved performance management system.

Below is my tentative design:


Of course, these are all in addition to rush instructions, regular and special meetings, and coordination work, among others.

I know I wanted to write something today, but I can't remember them. So for now, I have only this to come out of my fingers.

Oh, yes. I'm joining the Run United 2 tomorrow!

I just want to insert this quickly: Saw this book on Crowdsourcing performance management reviews in Fully Booked in Makati yesterday. It looks interesting. I hope to get a copy so that we can see if it is appropriate for us.

That's all for now. Next time, I should write things I want to blog about in my Google Keep note.

Friday, April 03, 2015

Performance Management Information System Development Project

I want to document my efforts to develop our performance management information system (my second attempt, after using Google Fusion). As my attempt to outsource the project does not seem to yield fruits (because student developers are not familiar with the performance demands of our organization), I have to do this on my own.

While I previously wanted to develop a web-based, database-driven, enterprise-wide information system, that plan probably won't happen. For this year, my target is to develop an inter-related database process that will mimic that enterprise-wide, web-based information system.

I will use, with much hesitation and fear of regret, Microsoft Access 2013 (the software used in the office). But for development, I will use LibreOffice Base. I hope that everything that Base can do can be replicated in Access.

My plan for this project:

Phase I - Requirements and Process Analysis (Target: End-April 2015; Weight: 25%)
  1. Software purpose 
    • Baseline 
    • Intended Outcome
  2. Stakeholder requirements identified
  3. Processes (including business rules) identified
Phase II - Database Development (Target: End-June 2015; Weight: 40%)
  1. Entity relationship model 
  2. Database logical and physical design 
  3. LibreOffice Base prototype
    • Database back-end
    • Version per user-type
    • Reports
Phase III - Implementation Conversion (Target: End-July 2015; Weight: 25%)
  1. Microsoft Access 2013 version
  2. FMPS-level testing
  3. System marketing, to include feedback management
    • End-user offices and staff
    • Process-owner offices and staff (i.e., FMPS, HRDMS)
    • Management offices and staff (PMT)
Phase IV - Cascading and Maintenance (Target: August 2015; Weight 10%)
  1. Software installed in all offices that indicated interest
  2. Feedback continuously gathered for improvement
Resources: All open source software:
  • ProjectLibre - For project monitoring (even if this is a self-monitored project, I have to monitor my progress against my targets, for reporting to my supervisors)
  • LibreOffice - For the database development (Base) and project documentation (Writer)
  • FreeMind - For various concept and role-mapping tasks
  • Dia - for database design