Archive for the 'software engineering' Category


Data Migration – Legacy System Extraction Tool

We are working on a data migration strategy to migrate current 2 years’ financial transactions to the new system.  In between, we need to determine what are the transaction data/tables and master configuration data/tables to extract from today’s legacy system over to the new one.  One concern is how to get the extracted tables to map onto 1 or more excel/CSV templates which are those that map and migrates over to the new system.

The engineer suggests we obtain the new system’s current data dictionary, share with the legacy system’s vendor to design the extraction tool to follow the new system’s structure. This will use as a supporting tool to validate the correctness and integrity of the extraction tool.

We looked onto the types of data to migrate over to the new financial system and below are the few identified:

  1. Aging ARs (Accounts Receivables) and APs (Accounts Payables).
  2. Opening balances
  3. Master data (Fixed Assets, Suppliers, Customers, etc).  Note: The fixed assets data may not need to migrate over as doing so may results double-entries of assets depreciation to the new system.

Good job, team!


Web Content Clean Up – The Big Picture

It was a very intense work week for both my team and the business users with regards to the web content clean-up exercise.  The master list is not keep up-to-date by users, no proper instructions from IT on how and what to do, IT did not inform the business users on the exact clean-up and validation activity; all these reasons are some of those being discussed with the business users as they are angry and uncertain how these activities are impacting the daily operations without being noticed of how IT is going to do it in the first place.

Assumptions were made. No back-up of the codes changes or folder structures that IT has modified that results no roll-back procedures to revert the original code.  This is the first time I heard that my team is not prepared for this activity and this is a high-risk factor for this project’s success.  EVen we argue with business their UAT copy is not the latest/updated copy, the point is that we IT should provide them guidelines how to do it.  With the recent UAT copy, the team should have done the following:

  1. Make a copy of all merchants on the production site by a specific cut-off date.
  2. Compare the UAT copy against the production site.  Take notes if all merchants in the UAT copy are complete and to verify if any missing in the list from Production.
  3. Ensure all merchants in UAT are available and completed in the UAT environment.  Any edit or deletion of merchant to be on-hold.  This is to ensure all active merchants and their offer pages are available and complete in UAT environment.
  4. Compare production list if any missing merchant is missing in UAT after verification from UAT copy.
  5. Compare the UAT copy against production to see if any production merchants are missing from UAT.  Upcoming/new merchants are not supposed to add to the UAT copy or master list at this time.

Forget about all the arguments, finger-pointings.  We need to move on to resolve the issue and get daily operation back on line.


Poor Requirements, Main Factor for Projects’ Failures

It is no doubt that, in any projects poor requirement gathering results around 60% of projects’ failures that constitute to time and cost deviations.  Unnecessary re-works are done and in cases, customers and the vendors are arguing about change requests, the ‘scope creeps’ they have to pay for the additional work and timeline in which most customers do not want to extend the scope but increase the timeline.

With this ever-increasing competitions, it is harder to change the major stakeholders’ minds to extend projects with these limits.  SCRUM agile methodology is a proven way to ensure the initial business requirements are made, and new changes are built in iterative phases.  Business can also control the scope, the cost and timeline for the delivery upon mutual agreements.  In this case, this is a win-win situation for all.


Activities Involving a Localized Application

When comes to localize an application or website, most of us will think only on the contents to suit the local language.  In fact, there are lots of areas to take care of and there are factors to determine how much we can localize or change the application or website.

Basic areas to change:

  1. Labels
  2. Action Buttons
  3. Navigation buttons/links
  4. Client validation messages
  5. Error messages (static or dynamic)
  6. Quick links
  7. Input boxes

Factors to determine localizations/changes:

  • Field lengths – for the specific context, grids, table what is the maximum field length of the affected text to fit the local language’s text.
  • Layout of the page – if the context is too long, how it will affect the user experience.  Example on the main page, should it not be too long to allow the user to scroll up/down on the screen to read the contents.
  • Search capability – the application is able to search by the local language characters.
  • Sorting capability – the application is able to sort in ascending or descending order based on the local language.

Hints to Complete Functional Specification Document

Ever experience we can’t finish to get the Customers to agree or sign-off the functional specifications as per planned and instead, it is getting longer and having more details?  In today’s business world, customers are no longer as “dumb” as most IT professionals are thinking of.  With technology advance and lots of training and courses on IT business technology, they are getting to know what they want to get for their projects or products development so that they don’t feel the suppliers are hiding any information.

The above may be true but it may not be necessary to cover everything during user requirement gathering.  This is still a preliminary stage to understand the business flows, expectations and user experiences for the software applications or products and hence put the project schedule on risk if unable to sign-off the requirements to move on to design and development stages.

With that in mind, we can prepare ourselves upfront by anticipating what they are looking for.  Below are the items I have experience and like to share on what to take note of when preparing the sign-off.

  1. Use case diagrams – Do not put in too much details e.g. the default selections, exception handling or else it will be too long and it became a technical design flows rather than user flow.
  2. Use Cases – no technical details on the functionality.  In most cases, certain level of technical information must be included and defined for the requirement.  If to the stage whereby unable to assess the technical aspect of the requirement,  we will indicate for that requirement’s feasibility will be reviewed during design phase.
  3. Screenshots – indicate that wireframes, user interfaces of the software are for illustration purposes.
  4. Messages/labels -which are static (labels) and dynamics (normally error or warning messages) to be shorten or rename.  Also to note for any language translations
  5. Field lengths – The length, field type (i.e. integer, double, string), default value (if any).  These information mainly covers for input fields.
  6. Document layout – make sure to print out the document and ensure the contents can be viewed and aligned correctly.

SCRUM – Developing User Stories for Iterative Development

Last 5 months, I have exposed to SCRUM software development methodology and with my experiences on implementing software projects this methodology works very well to the traditional waterfall model.

In today’s business world, companies are working and analysing consumers’ behaviors and to drive for high quality, productivity applications/products.  This results in having to provide ‘move to market’ products as soon as possible.

Agile development helps in this way.  For example, I am working on a rich client mobile app and to move into this competition, the product has to launch in a short period of time.  In software development, user requirements and coming up with functional specification document is the part that make up most of the development timeline.  Customer wants to speed up development so that they have more time for conducting user acceptance testing.  The technical project manager wants to finalize and sign-off the functional specification document so that the project team can work on the confirmed requirements and target any scope creep along the design and development phases.

1. Develop user stories – gives stand-up and walk-through of each user requirement, on the user flows and expectation of the outputs.

2. Solutioning – develop the functional requirements to achieve the outputs.  Document into the functional specification, review and sign-off.

3. The cycle continues by going back to step 1 with the new user story.  Identify any dependencies and review the user flows from previous functional specification.

By the above method, we are able to get thing moving in a win-win situation.


Basic Requirements for Developing Mobile Banking Apps

With the popularity of iPhone, Android or any smartphones, there is demand of doing online updates of profiles or transactions on the run.

When comes to designing the user interface and recommending the  functionality for mobile banking, we have to remember that there are limitations to the amount of contents, features, not to mention the types of transactions allowed and the encryption logic to use.  One important note for developing mobile apps for online transactions is not to allow caching or to store unnecessary user profile and date inside the smartphone’s memory.

Below are the basic recommendation for consumers’ needs in performing banking activities on-the-go:

Login Accounts Transfer Payment Settings Miscellaneous
2FA Account Summary Immediate/Future Funds Transfer to My Account Add to My Payee Application version display Maintenance Page
SMS content in app Account Details Immediate/Future Funds Transfer to Another Account Immediate/Future Bill Payment to Prearranged Payees Language change App update screen
SMS regenerating Transaction History Immediate/Future Funds Transfer to Other Bank Account One Time Payment
Error Screen
Flash SMS
Schedule Transfer Summary View/Amend/Cancel Schedule Payment Summary View/Amend/Cancel
Terms and conditions

Contact US
Language switch

Idle Session Timeout
Home Screen

November 2017
« Mar    


Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Join 443 other followers