Chatbot Channel

Chatbot can be challenging for the different channel unless you are going for full text display. Channels are chat application like WhatsApp, Teams, WeChat, Telegram or LINE, Users are so used to text formatting and GUI that they are spoilt for these display. Chatbot channel is like the days of SMS where you can only display limited important text is a straight line.

Chatbot Channel Consideration

If your Chatbot is going to be suitable for different channel, you will need to consider a universal full text or code for different channel. What will be your choice? There are so many types of channel or chat applications around. How should you choose and select the right channel to focus on? These are some quick tips to help you make your choice.

  • User Base Location – different countries adopt chat application locally eg WeChat in China.
  • Ease of Customisation – Telegram is customised friendly and popular with developers.
  • Cost – Some chat application like WhatsApp needs a paid business account.
Channel Testing

The major efforts of Chatbot Channel development is actually spend on testing. There will be a lot of trial and error as you attempt to develop a single view for different channel. What looks great on emulator will differs in laptop and mobile? You will need a lot of time to tweak spacings for each channels on different devices.

Welcome to Chatbot development! Be patience and happy testing.

OTM DD/MM/YYYY or MM/DD/YYYY

Dates format are a nightmare for application if you are handling a global system. Most application provide a certain level of configuration for user preference. OTM (Oracle Transportation Management) is one such application that allows you to configure date format for users. However, this can be quite painful because the date format can vary in each module. These are the OTM portions where you should take note.

OTM Date Configuration

You can configure date format with user preference. The user preference can also be superseded by the preference in contact module. Some of the OTM fields are in date type. There is also attribute date fields as placeholder. Report parameters date format can be overwritten by date format in report library.

Dates to Take Note

You will find many painful points when you are using character field for dates. This can be in the form of refnum or integration xml. Many of the reports required dates filter. You may want to consider the usage of date field for these filter instead of character data type. You will find a lot of conversion format between to_char and to_date in your report query.

Whether you are upgrading or migrating, the impact on date format is very huge. OTM is one such application with flexibility on date format usage. This caused a challenging task for technical team who will be maintaining a global system. Should you standardise your date format instead?

Agile for Management

If you are an Agile practitioner, you will realise that there is always a gap between Agile and Management. Not much have been stated on Agile for Management. Unlike Waterfall model, Agile is not big on reporting and generating of status report. Here are some tips on engaging management with Agile projects.

Educate Agile

Waterfall model is so entrenched that entire reporting structure to management revolve around this perspective. The first step is to educate Agile and the differences between the Agile and Waterfall to the management. You need to set Agile expectations with your Agile champion. These champions must preferably from top management. You need to have a holistic approach to share the Agile approach to users as well.

Sharing Agile

One of the best part of Agile is lesser admin reporting. This leaves you more time to focus on what is to be done. Of course, Agile is timebox at duration that management can participate as observer. For example, management can join in daily stand up that should last between 5 to 15 mins. The most suitable updates for management will be the sprint review where they are invited for their feedback. This typically last two hours for a two week sprint.

Agile does not require formal reporting to management. We should always seek to educate management on Agile events like spring review. This is where management can provide feedback on the product. After all, this allows the Agile team to focus on delivering a “done” product.

XML to JSON

XML and XSLT used to be a very popular choice for integration transmission. However, this format proved to be messy and complex even with XSD in place. Then, JSON format comes around with the resurgence of JavaScript and REST service. It quickly overtakes XML as the preferred choice of integration format. This puts us into challenging mode as we move to convert XML to JSON.

Your Stack Setup

Historically, the usage of applications is directly linked to the type of integration format used. JSON is very geared towards web languages like JavaScript, Python, PHP and Nodejs. In contrast, XML favored Java and Dot Net languages. Thus, you will find difficulty for your legacy system to consume JSON. Even database is split for CLOB to XML. There is newer database like unstructured or NoSQL database for JSON. Therefore, a consideration of architecture changes may be required to leverage the advantage of integration format like JSON.

Your Endpoints

If you do not have budget and time to overhaul your architecture, you may consider focusing on your endpoints and gateway. It is common to setup integration gateway to manage the translation of XML to JSON. This provides backward compatibility to your legacy architecture. In another words, you gain more time to progressively upgrade your stack. The good part is that these integration gateway can serve as a command post to manage your endpoints.

The switch from XML to JSON is a time consuming effort. If you do not have legacy system with XML, you may want to consider having a technology stack that favors JSON. However, those with legacy and XML integration may want to lower risk with the setup of integration gateway to manage your endpoints and translation of XML to JSON.

Websites Outside of China

Having an oversea sites can run into all sorts of networking issues if you are accessing these websites in China. This is because of the well known firewall of China. You will need alternative solution if you have users in China that use websites outside of China. If no, you will be running into countless uncontrollable risks.

Time to Locate a Mirror in China

Unlike other countries, it is favorable to have a mirror sites in China. You can consider this option if you have a large user base in China. Although there are conditions to setup a website, the returns will outweigh the risks of blocks from China firewall. The mirror site can also serve as your redundancy or CDN (Content Delivery Network) for high availability and added performance.

Other Alternatives

If you do not meet the conditions for a mirror site in China, there are other options for you to consider. You can transmit your data real time via your VPN instead of the regular internet. Using VPN have its advantages with faster latency. However, there are also risks because they will be subjected to firewall blocks and it will also cost more. You may also consider store and forward method where you accumulate your data for transmission. Although you may not have real time data, you can manage your user expectations and controlled your data transmission at a lower cost and systematic manner.

Having users in China is a tricky approach for your website. If you have a large user base in China, it is worthwhile to invest a mirror site within China. Otherwise, you may consider lowering user expectations and opt for non real-time or less availability solutions.

Is there a need of Hypercare for Agile SDLC?

Hypercare is a process in Waterfall SDLC (Software Development Lifecycle). It is very similar postcare you receive after a major operation. For many teams who makes the switch from Waterfall to Agile, management still demand the need of hypercare process. Is there really a need for hypercare for Agile SDLC?

Hypercare is Just a Sprint?

Hypercare is often regard as a warranty period whereby traditional waterfall all accommodate a degree of big fix due to scope creep. In Agile, there is no such process. Instead, the deviation. or gaps are recorded in the backlog. The backlog items may be selected for the next sprint. This render hypercare unnecessary in Agile. Effectively, management or users become concern for this missing warranty! Thus, you may find some Agile project do state a period of hypercare. However, this is actually the same as a sprint.

The Emergence of DevOps

Another key reason that hypercare is unnecessary is due to the rising popularity of DevOps. In fact, DevOps functions like a hypercare process with its quick turnaround, speed and rapid delivery. Agile and DevOps works hand in hand and you may consider DevOps in place of hypercare period. Therefore, your users and management will have a similar assurance that is given in the form of hypercare.

It is noteworthy that hypercare may no longer be required in the Agile and DevOps world. There is a need to educate and align users and management on these understanding. This may also include the change in future RFQ or procurement whereby hypercare could be removed. As a result, you will see a lower cost with the removal of hypercare process.

Is Exception a Rule?

If you have done many application projects, it is common to find that exceptions are often being provided as a rule by users. This is a key reason for major scope creep when you try to cater to exception. Is exception a rule? Can this be considered as a rule?

Exception is a Process

The first approach to exception handling is educate users that exception is a process to be managed. It is not a rule that system is able to followed. A rule existed from known set of variables. On the other hand, exception represent special scenarios and unknown variants. Thus, this distinguish exception from a being rule.

Exception is Unpredictable

The second key characteristic of exception is the nature of occurrence. It is unpredictable and sporadic. In fact, some exceptions break the established rules. This is where users demand that exception be made as a rule. That exception will conflict with existing rules. If you attempt to fit the exception as a rule, scope creep will occur.

User education is important to distinguish exception from a rule. Exception often break existing rule and must be handled as a process. Usually, users cannot determine the frequency of exception. After all, exception is not a rule!

Handling Outages 2021 and Beyond

We had an outages yesterday that was totally unexpected. It was so big that the major news reported them i.e. Akamai outages. It was surprising because we would have thought this type of outages were a relic of the past. How should outages being handled in a world where users cannot tolerate 5 min of downtime?

Formation of Outage Team

Do you have an outage team? It is likely majority of organisations do not have an outage team. Neither are outage drills conducted in large scale for the organisation. You can relate this like a fire drill where you will have a fire drill team for your entire buildings. This team is usually cross functional and well drilled in various skillsets from infrastructure, security and applications. Although this team could be costly, it is worthwhile to note that outages may cost a 100 times more.

Outage Management

Outage management is different from disaster recovery. Disaster recovery usually deals mostly with internal applications or related downtime. These SOP (Standard Operating Procedure) could be formal processes with your external parties. When outage happens in the old ways, it usually starts with a Sev1 (Severity 1) and manage with standard incident management process. It will take an hour or more before this is deem an outage. The slower pace and passive nature of incident management may not suit today’s outage.

Outages are no longer isolated in nature due to Cloud and networked environment. Case study like Akamai outage will lead organisations to consider a need for outage team who are highly trained and focused to manage outages swiftly.

Less is More

In the UI/UX world, there is a design philosophy of “Less is More”. The best example is the battle of search engines where Google triumph over its rivals like Yahoo and Alta Vista with its bold landing page. I am still advocate of such design and clean uncluttered UI/UX still wow me over like Google.

Photo by Ethan Kwok
The Rationale of Less

I enjoy using the rule of 5 and 8 for UI/UX. This rule is related to the amount of short term memory users can remember. This, users enjoy simple approach to achieve their tasks. This can be 5 to 8 steps for achieving your system goals. You can relate this rule for 5 to 8 common menu or views. One such UI/UX features is the “Favorite” where you can bookmark your commonly used features.

UI/UX vs RPA

There is a misconception of using RPA to overcome complex and misguided UI. Rather than using RPA, you should always seeks to improve the user experiences. UI/UX provides better approach to reduce users fatigues and steps without the need of additional overhead costs like RPA.

So, if you have a choice of investing in either UI/UX or RPA. Do go for the tried and tested UI/UX philosophy instead of looking at the novelty of RPA.

Art of Monitoring Data

Monitoring data is the most simple form of data analytics. Yet, this is more difficult to implement and the outcome is usually less than satisfactory. Users have the misconception that monitoring data is the same as extraction of data. There is little follow through on what to do with the data. Without clear sense of objectives and outcomes. data monitoring is just a dump and show ordeal and a waste of efforts for developers.

Monitoring Objectives

It is usual to see request to monitor data for sake of monitoring. This request is usually raise by non users who are eager to see how the system performs. These views from these set of users often do not have historically bearing and are based on hearsay or past experiences. You must evaluate and review the objectives on why and what you are monitoring. Be a devil advocate to query the objectives instead of agreeing blindly.

Monitoring Outcomes

There are two key outcomes from monitoring objectives. Do we meet the objectives? Or we do not? Follow through actions from data monitoring is key. This part is often neglected and left to its own devices. Users and Non Users must communicate if the objectives are not met. In a nutshell, the monitoring outcomes and its respective action plan must be clear and actionable.

Learning the art of monitoring data is the first step to learn data analytics. Setting clear objectives are the key to effective monitoring. If you do not have clear action plans, do consider not to waste developer efforts and extract data for the sake of monitoring.