Ever encountered dead codes and processes? I have been cleaning many of such dead codes and processes. Usually, these happens to system that have been around for more than 5 years. Dead codes and process are usually system features that users no longer required or understand. These are some quick approach to handle them for removal.
Happy Path Approach
When you upgrade an old system to a new one, you should first plot the happy path. In daily operations, 80% of the system usage are on happy path, 10% on exceptions and the rest are manual handling. Using happy path approach, your system migrates all the key essential functionalities. This way, you can also clean up the dead processes and its corresponding codes.
IDon’t Know
Users compartmentalise system usage in their thought processes. As times goes by, fanciful nice to have features are forgotten and languish in neglect. Querying uses on these features will get a response of “I don’t know”. As a rule of thumb, these features are considered “dead” and can be removed with no impact to existing system.
These dead codes and processes often results in degrades of system performance and unnecessary costs in support tickets. Thus, it is a good exercise to clean up dead codes and processes when you are upgrading your legacy system.
I had a meal at MacDonald today and observe that the role of cashier have been eliminated in this MacDonald branch. In place of it, self service kiosk are present. You can now even get your meal serve to you via table service. This gives a pleasant customer experience beside the quick and fast food meal we know in MacDonald.
Self Service
Self service gives customer control of their experience in the purchase of services and goods. This reminds me of scenarios where users claim that these tasks are too technical and refuse to self service. The model is nothing new and exist in early days like ATM and kiosks. Jobs will be remodel and those who refuse to change will be obsolete like the cashier role in MacDonald.
Experiential Investment
By participating in self service, consumers are invested in their own experience. This also creates loyalty and trust with the products. All these factors give rise to higher consumer satisfaction. This model can be applied for all systems. Digital transformation is the trigger to change and enhance customer experience instead of requirements fulfilment. Products and services are reaching a saturation point that customer experience is the differential factor.
Job remodelling will continue for next 5 years in tandem with digital transformation. It is either to embrace or be eliminated. There is nothing 麻烦 “troublesome” as these are the facts to be.
Today I have an shocking discovery on a configuration of an initial value setting for OTM (Oracle Transportation Management) status. The initial value is set as Error! It is really amazing to think how this could be an initial value. Of course, valuable hours are wasted to debug an initial value which is actually correct by its initial“error state”.
Happy Path Design Approach
The state diagram is fundamental of engineering and software lifecycle if you are familiar. There should never be an initial value as error or exception. One must alway think of happy path and start with a perfect flow. Starting with an erroneous state gives confusion to users and SME (Subject Matter Expert), as we do not know what is wrong when nothing have started. Be Optimistic and always go for Happy Path Design Approach.
Design by Norms, Think like a Traffic Light
The best solution design is design by Norms and thinking like a Traffic Light. Green is a Go, Red is Stop and Yellow is proceed with caution. Thinking like traffic light greatly reduce learning curve from users and have high system adoption rate. It is one of the best design where users can easily learn with no user manual or training. Do not break the norms and do fanciful solution. You will end up confusing and these type of solution always get discarded due to its complexity.
TMS (Transportation Management System) is a system that mirrors closely to transport operations in the physical world. This is also the reason why TMS is a really fun system to dabble with.
Visibility Management
A key physical part of TMS is the knowing where your orders are. In simple terms, TMS is a system that shows your order status and location. You can also find out when your order is expected to depart and arrive.
Networked Data
TMS helps to integrate various transport related information into a single platform. Instead of calling many parties for these information, TMS can pull the information into a single data repository. Thus, you will only need to focus on managing exception scenario like road flooding.
FreightAudit
Like the physical world, the ability to playback the transportation for audit purpose is essential. Transport orders or signing of delivery are some of physical activities that are digitised in TMS for compliance.
In a nutshell, you can think of TMS as the digital transformation of your transportation business. The advantages outweighs the cons as you can now view your physical world virtually in TMS.
Like all system deployment, TMS (Transport Management System) will create a ripple effect and changes in daily Operations. You will see Operations flagging issues on the system. Your hypercare team will be swamped with CR (Change Request). The root cause could be a resistance to change. Thus, you may require change management.
Who are my real users?
It is common to see TMS implementation in a top-down approach. Often, the project members who participates are not the real users of TMS. There will be middle manager who give requirements although they are not the daily users. Thus, you should not be surprised to see gaps during Go Live! Be ready to face your real users when they are unveil after System deployment.
Agile Solution for Change Management
A good change management will now require Agile team to manage the changes. When Operations provide exceptions scenarios and gaps, SME (Subject Matter Expert) team using Agile can respond best to these requirements compared to Waterfall approach. When you solution, do consider a solution for change rather than a fixed requirement.
Preemptive Buy-in
The most common excuse given for not changing the operational procedures for the new system is “麻烦” (troublesome). These are obvious signs of ignorance and resistance from “users” during requirements workshop. The best method to handle such project member is to preempt and buy in the relevant stakeholders.
It takes a few cycles of TMS deployment to develop effective change management. While human behavior remains the constant barrier to new system, we should adapt, peeempt and solution for such “troublesome” changes.
The hype of Digital Transformation give rise to a sudden demand for digital innovation. So, what are really digital innovation? Why do organisations race to hire IT to enable digital innovation? While there are quick wins, the rush have created gaps in IT Industry like we never seen before.
No One Left Behind
The first key gap we see is the sudden jump in the technology fit between legacy and innovated systems. Suddenly, systems are divided across the on premise and cloud world. How do we ensure “no one is left behind”? What will happen to the investments made to legacy system?
We NeedMore Bridges
The second common gap that widen a lot is the lack of expertise and resources who specialise in “bridging”. The digital innovation demand creates more focus on newer technologies and knowledge. As with all innovation, this drastic shift introduces huge gap called chasm. The challenge to bridge both ends involves expertise that are lacking in today resource crunch.
The Dilemmaof First
Due to the existent of legacy applications, the switch costs exponentially increases for organisations who have invested heavily. Ironically, these are the same innovative organisations which jump first to the bandwagon. Do you have innovation culture to embrace these technologies? Unfortunately, many now compelled to adopt first and evaluate later. Will you be the first?
Data Analytics do have lots of promising usage. Soon, you realise that you will need good processes and action plan. Having a data analytics team that is disconnected to your business processes, operation team or application team is literally a white elephant.
Data Analytics in Silo
You will often see organisations setup Data Analytics team under the direction of sales and marketing. Often, the key focus of this team is the presentation of fanciful dashboard for top management to present to the CEO or the board. The data used are usually financial without engagement from the ground.
Data Analytics for Compliance
As many would encountered, Compliance team will highlight and suggest solutions for data in discrepancies. Data Analytics will seek to cleanse and translate the flagged data into a more complying nature. The end results are usually alerts and notifications for data discrepancies. As no root cause or SOP (Standard Operating Procedures) are in place, alerts will remain as alert with no further actions in place.
Building a Data Analytics team is not about creating pretty dashboards. You need SME (Subject Matter Expert) to engage a change management program and effect action plan. Do conduct sound RCA (Root Cause Analysis) instead of enhancing to cleanse the data.
I am dabbling in more Chinese character (中文) for OTM (Oracle Transportation Management). I hit an unusual issue when I try to upload Chinese Characters with csv file. The csv is generated from Excel macro VBA. Thanks to the various forums (OTMFAQ and stackoverflow), I managed to find the root cause on UTF encoding with BOM (Byte Order Mark).
BOM is a 3 bytes in the beginning of the file when you save UTF-8 on Windows. If you generate the UTF-8, you can view the csv output encoding with TextPad++. OTM does not allow the upload of UTF-8 BOM file. It will just throw out an error, which is not friendly at all.
The solution to solve this is to convert the csv to UTF-8 without BOM. This will remove the first 3 Bytes from the beginning of the file. This can also be automated in macro with the following codes. Thanks to the solution codes from stackoverflow.
Public Sub PutTextFileUtf8(ByVal PathFileName As String, ByVal FileBody As String)
‘ Outputs FileBody as a text file (UTF-8 encoding without leading BOM)
‘ named PathFileName
‘ Needs reference to “Microsoft ActiveX Data Objects n.n Library”
‘ Addition to original code says version 2.5. Tested with version 6.1.
‘ 1Nov16 Copied from http://stackoverflow.com/a/4461250/973283
‘ but replaced literals with parameters.
‘ 15Aug17 Discovered routine was adding an LF to the end of the file.
‘ Added code to discard that LF.
Dim BinaryStream As Object
Dim UTFStream As Object
Set UTFStream = CreateObject(“adodb.stream”)
UTFStream.Type = adTypeText
UTFStream.Mode = adModeReadWrite
UTFStream.Charset = “UTF-8”
‘ The LineSeparator will be added to the end of FileBody. It is possible
‘ to select a different value for LineSeparator but I can find nothing to
‘ suggest it is possible to not add anything to the end of FileBody
UTFStream.LineSeparator = adLF
UTFStream.Open
UTFStream.WriteText FileBody, adWriteLine
‘ Oriinally I planned to use “CopyTo Dest, NumChars” to not copy the last
‘ byte. However, NumChars is described as an integer whereas Position is
‘ described as Long. I was concerned by “integer” they mean 16 bits.
‘Debug.Print BinaryStream.Position
BinaryStream.Position = BinaryStream.Position – 1
BinaryStream.SetEOS
‘Debug.Print BinaryStream.Position
UTFStream.Flush
UTFStream.Close
Set UTFStream = Nothing
BinaryStream.SaveToFile PathFileName, adSaveCreateOverWrite
BinaryStream.Flush
BinaryStream.Close
Set BinaryStream = Nothing
End Sub
PS: Remember to include “Microsoft ActiveX Data Objects 2.5 Object Library” under Tools->References.
Localisation is a key component of TMS (Transportation Management System). Legacy system suffers from language localisation partly due to database design which forces the implementation to be encode in certain locales. Globalisation of application creates new solution architecture which default localisation. One of such settings is the configuration of languages and display text.
One may think languages in system is pretty straightforward. However, to a system, English does not literally mean English? Due to complexity of languages, we seek some sanity to classify languages in system. One of such classification is ISO 639. However, this is not the standard adopted by system due to different computer organisations. For instance, Windows language encoding will vary from that in Linux. The application SME (Subject Matter Expert) must be familiar with language localisation encoding across various platforms.
Future Language localisation
At present and in near future, we will see NLP (Natural Language Processing) gaining popularity like Chatbot. There will be focus for system to localise naturally from user behaviour and geolocation. Translation are real time and ML (machine learning) driven. Data locales are no longer required as data can be stored as what it is and translated as such.
The concept of value chain is not new. It is time to give a new meaning to value chain for the year 2019 and onwards. A pandemic like COVID-19 have redefined value chain to a new dimension.
Classic Value Chain
A value chain is a set of activities to create a product or services with the objective of maximising profit and create a competitive advantage. You will find standard raw materials or resources as inputs and finished products or services as end products. Supporting activities like HR, IT and logistics exists to smooth the operations of this process.
Value Chain Redefined
From COVID-19, value chain are tightly coupled with itself for end to end visibility. Social responsibility and sustainability triggers the evolution of value chain. Digital Transformation displaces old value chain and create new ones. New paradigm are formed where Agile invoke the innovation of customer experience.
In a nutshell, do be prepared for the new chain by acquiring new skillset and mindset. It is no longer viable to retain your old value chain. It’s now or never.