Category Archives: Information Technology (General)

My Software Development Principles

Everyone has his/her own working principles and these are some of mine. These principles are the main one I always focus in my software or website development. Well, just some of my principles :)

Usability
For me, this means the system is easy to use or user-friendly. This includes good navigation link, consistency, correct usage of font size, font color and font family. My role model of this principle is Jakob Nielsen, the king of usability.

Clean
For me, means no redundant code. Clean code gives me 2 main benefits. First, smaller file size which helps web page to load faster and save up bandwidth. Secondly, it helps me to maintain it better because I know exactly the usage of every single code. My entire, http://resume.findingsteve.net/ only has less than 40Kb :)

Easy maintenance
During every stage of the development, I always try to make the system as easy to maintain as possible. One of the way is to modularize those same code. I know if I don’t put extra effort to make sure the system is easy to maintain, I will sure have much nightmare debugging or when there is a need for future enhancement.

Process flow + Sequence Diagram – Mixed Breed of UML

As most of job scope of my previous job in BCSIS is to support the application, on my own I have created plenty of own version internal ‘software document’. I think some of these documents are mixed breed between process flow diagram and sequence diagram :) Nevertheless, this is my favorite internal document as I can easily understand the flow of the system just by some quick glance. I also converted some source code into some flow chart diagrams (again my version).

In fact, I do enjoy and satisfying creating all these diagrams. And I did the same for my Product Management department as QC Manager in GHL. By the way, I just use Ms Power Point. No need expensive tool like Visio :)

Here are the entire list of ‘Process flow + Sequence’ diagram documents which I have created. Yes, the sample diagrams are a little ‘unclear’ for reasons. To view the ‘clear’ version and to view more diagrams, you can contact me personally ya.

CTCS Gateway Interface (GWC)

  • EPKI – Outward – GWC and Bank Host
  • Inward  Downloading – ISC, GWC and Bank Host
  • Transmission – OCS and GWC
  • Transmission – OCS and PODClient

Bank and BNM Web

  • Branch and Routing Policy Request

Bank Negara Malaysia (BNM) – Back End Host

  • Inward Generation
  • Generate Billing
  • Generate Settlement File
  • File and Data Archival
  • Report

CSS / RBE / FMS

  • Billing and Settlement @ CSS
  • SQL Server Agent Job @ CSS

Others

  • Swing CTCS – HQ and Recovery Center
  • Host Support Escalation

Product Management

  • Activate Dialogic Card (only for PRI card type)
  • Certificate of Origin – Special Case
  • Check warranty period and SLA maintenance
  • Product Request
  • Supply Chain Management – Procurement / Production
  • Supply Chain Management – Distribution
  • New Project or Change Request

 

 

 

Sediakan Payung Sebelum Hujan

 

 

Sediakan Payung Sebelum Hujan

Hujan is still okay, but what if it is Storm? Again, here is a classic scenario as illustration purpose. :) Here, we focus on the twist plot – no one resign but the whole office caught fire and all the laptops are destroyed completely.

Actually, this can really happen. Although Malaysia is fortunate enough to be protected by most natural disaster, we should not take this for granted. Disaster can still happen and the common ones are fire. Hence, Bank Negara (Central Bank) requires all the financial institution (FI) like banks to have Business Continuity Planning (BCP) or Business Continuity Management (BCM). The main objective is about RISK management.

file00093561951

In my previous company, we also performed this BCP every year by going to Bank Negara, restoring our core applications and ensure that our core applications works. I remember there was once I had a argument with my manager just because of I refused to ‘amend’ the BCP form, so that the company can ‘pass’ the BCP. Same goes with my current company when I was doing Terminal Quality Management (TQM) which is required my MasterCard for one of our products certification process. But, that’s another story all together :)

For more info – Operation Risk Management Concept Paper by Bank Negara Negara

 

The BIG Dilemma – Should I re-build the good old house?

One of the biggest consideration and dilemma as a software engineer is, should I re-design the system design and clean up the source code or not?

rebuild.

Here is a classic scenario as illustration purpose.

If Mutu’s source code is well designed and clean, Sally is considered lucky to pick up his role to continue and maintain his source code. Otherwise, it will be a nightmare for Sally to try to figure out his design and the dilemma on whether to clean up his source code. Why dilemma to re-design/revamp the system? Cleaning up code is good provided you are well-verse with the entire system design. The main benefit of a clean, organized and well-design system is maintainability. Although I don’t consider myself a talented software engineer, developing a well-maintained source code is one of my principles. I would rather spend a little more time to make the source code more maintainable, so that I don’t have to have sleepless night and headache troubleshooting bugs and for future enhancement.

But, for a large and critical system whereby there were many software engineers have ‘touch’ on the source code, usually new software engineer will opt to take the safer path by not making any unnecessarily big changes, be it to clean the source code or to re-design the system. Re-design the system can cause big impact to the entire system and highly susceptible to bugs too. Much effort is needed also to re-test the new re-vamped version.