Search This Blog

Sunday, September 13, 2020

10 Learnings from an engagement as a Leader


Some learning and notes as I complete a very satisfactory engagement which I was fortunate to lead. Somewhat generic in hope that it’s useful for anyone who can relate as a leader or working in a team environment. I am sure there are other important points from everyone’s experiences which I would love to hear.  

1. He Tangata he tangata he tangata – it’s all about the people, the people, the people – without good folks, one would be left with buildings and furniture. If you are blessed with a good team you will be surprised with what you can achieve. If you are in a hiring position hire those who are smarter than yourself – if not, contribute towards building a learning and collaborative culture , one will be surprised with what can be achieved with that.  

2. Focus on culture first. Everything else like strategy, processes, guidelines, etc. are important but team culture is the most important. Values of Manakitanga –respect for everyone, Kotahitanga – Partnership and Collaboration, Whanaungatanga – working as a community is important.  

3. Role of a leader – a leader is not someone on the top of the pyramid, they are at the bottom with broad shoulders to support the overall team. It is advantageous to have some level of expertise in few fields to become a contributing team member who can get their hands dirty. Also its important for leaders to nudge others take leadership in their fields of expertise and beyond and be delighted with their success.  If you are able to, contribute to the success of others, especially those who are new to the industry. 

4. Have an overarching goal, write it down, debate with stakeholders if that is the right thing and if so use it as a mode of communication in all aspects. If you are building something that would make it say seamless for customers, try that internally and see if it is. Perhaps eat your own cake because no one eats and enjoys their own dog food.  

5. Talk about Why – why are we doing this?  A common dilemma in any project, capability, product or services build is to understand the meaning, motivation or the big picture behind it. I have kept this in the middle of my learnings as it hinges everything else. Although we say we need to be customer focused, it’s not easy to understand who the actual customers are and how does they relate to our work. Once you know the why, be relentless and sometimes if needed repetitive on this topic.  

6. Team led. Provide the team with vision and tools to do their job. Be clear on the outcome and boundaries , flexible on how the tasks are done and take responsibility (Tight- Loose-Tight approach) 

7. Build a coalition of the willing- If you are building a new capability, product or services or a project, perhaps the value is not always seen immediately. Build a broad range of willing supporters, be positive and have gratitude. Also persevere with the not-so-willing as it’s also important to listen to critics.

8. Mastery- Learn from others and improve your expertise in an iterative way with a goal to achieve mastery in that field. Does not matter what role you play, always try to give your best. If nothing comes out of it, atleast you have learned something that is valuable.  

9. Adapt and learn – We are not always right, not always right the first time and not always wrong. We are humans, but we can make small iterative changes which achieves big things. 


Finally,

10. Belief - Sometimes it’s more important to have a good driver than a good car. So don’t worry too much on what technology or environment or organization you work in. However, that is not always easy without an enabling culture which can be equated to safer roads (not necessary expecting a straight road, which would be boring I guess). 


Saturday, February 21, 2015

Measuring Customer Experience in a Digital Environment

Measuring Customer Experience (CE) is a complicated matter. Managing it is complex

When a customer (or end user) interacts with a digital service such as purchasing a product from the company's website or a citizen is trying to interact with an agency - a series of transactions happen.

Here is an example from TradeMe's transactions when I am looking for a mobile phone.

I was served quite fast (less than 2secs)  and I am quite pleased as a customer with my interaction with TradeMe. If you observe the  particular transaction is actually made of many interactions and goes through a spate of technology stack. A basic technology stack may look like the figure below.










Now let's see how I feel when I interact with Hutt City Council when I want to do a property search.





















Well the transaction is not made up of lot of interactions but the page loads up in more than 11 secs. Well that does not make me a happy boy and neither those who have a mobile device. It could be argued that many people do not want to interact with Hutt City compared to Trademe but then you are always better off having a pleasurable experience,so who knows why less people want to interact with a slow web application !

If you can’t measure it, you can’t manage it”- Peter Drucker

Customer experience challenges in a digital environment are same as any other 'Brick & Mortar' business, one first need to measure it. In the Hutt City example, its quite obvious that all interactions are heavy JPEGs & PNGs. If these pics sizes could be reduced without compromising on the quality (and yes ,there are ways) there will be a significant improvement in the way Hutt City's property search works.

This is where organisation who want their customer to have a pleasurable or atleast satisfactory interaction with them in a digital environment need to build 'Application Performance Management'(APM) capability to improve their customer experience.

Gartner defines APM as one or more software or hardware components that facilitate monitoring to meet five functional dimensions:-
APM Fundamental Characteristics
What it means
End-user experience monitoring (EUM)
ability to monitor performance as visualised by clients or internal staff
Runtime application architecture discovery modelling and display
ability to identify various systems involved during a business transaction
User-defined transaction profiling
ability to simulate traffic load
Component deep-dive monitoring in application context
ability to find root cause of performance issues
Analytics
out of the box analytics to provide insight into current and historical performance trends

Below is a view of how an APM works under the hood.





























APM is an old concept.However, the focus has been Data Center asset monitoring -i,e, monitoring servers , data bases, network,etc in their own isolation. However, customers don't just interact with     the network or the servers - they interact with the whole lot and thus stitching these interactions           together to get a holistic view can work towards measuring customer experience. It is complicated       but once its broken down (Analysis!) it can be improved.

Managing Customer Experience ? Well that is another kettle of fish. Talk more about it later.However, the first step is to measure performance of your application as seen by the customer to know if you have a problem.

Thursday, February 6, 2014

Why I chose Victoria MBA

I completely forgot about this interview , Its one of the videos from the university which was made atleast 2 years back.

3 Reasons why I chose (Apart from what the video says ...I remember I was not prepared for this interview).

1) Location (Where I live , Public Sector , Technology Companies)
2) Quality of Faculty
3) Research based education


Sunday, October 14, 2012

Billing Systems are not Billing Systems

Telecommunication Billing System ,supposedly a complex system with billing only being a part of it . I have always argued that its not just billing system in itself but made up of various parts such as :-

  • Mediation
  • Rating
  • Billing
  • Bill formatting 
  • Collections
  • Financial journals & accruals
  • Payments (which in itself has several sub parts such as direct debit ,credit card , lockbox, cheques ,etc). 

There are also various other  "modules" which are important to understand on its own right :-

  • Order management and Workflow 
  • Security modules
  • Job schedulers 
  • Various middleware systems


Telecommunication Billing system gets easy to understand when we look at each parts separately . However, as Aristotle said "the whole is greater than the some of its parts" , an end to end view is surely beneficial for efficient design,operation ,configuration ,re-design and migration exercise of such systems.

Here is well written article on Billing systems by Hatem Moustafa which resonates with keeping it simple in this complex world of billing systems.

Wednesday, August 29, 2012

Three simple questions

Three simple questions ,from useful  Forbes article

  1. What’s the outcome I want? 
  2. What stands in my way? 
  3. Who has figured it out already? 
Think it has worked for me , specially when successfully changing a light bulb- Simple!

Sunday, May 20, 2012

System Thinking World Journal

I am hoping to see more of these articles around system thinking – such a simple method for analyzing complex problems. I would have named this article as “unleashing deeper understanding”. Refer Unleashing Understanding by Author: Gene Bellinger

Friday, February 3, 2012

Credit Card Parsing Algorithm for Unix

I was asked to parse 85 million records of varchar(255) character fields to find credit card numbers in it and hide them to achieve PCI DSS complaince . This is what I did to simplify the stuff !

1) Get a dump of database table (or important columns) to your unix box.
2) Write a "ccengine" parsing script based on Lugn's algorithm.
3) Dump the rows with credit card numbers.
4) Hide the CC# with regexp .
5) Upload back to the database.

Here is a credit card engine script in SED to help developers parse through credit card numbers in Unix which is needed prior to implementing Luhn's algorithm .

Create a file "ccengine.sed" with following content


s/[./\-#$%^&@_*!\ ]4[0-9]\{3\}[./\-#$%^&@_*!\ ]*[0-9]\{4\}[./\-#$%^&@_*!\ ]*[0-9]\{4\}[./\-#$%^&@_*!\ ]*[0-9]\{4\}[./\-#$%^&@_*!\ ]*[0-9]\{3\}/\*\*\*\*-\*\*\*\*-\*\*\*\*-\*\*\*\*-\*\*\*/g
s/[./\-#$%^&@_*!\ ]5[1-5][0-9]\{2\}[./\-#$%^&@_*!\ ]*[0-9]\{4\}[./\-#$%^&@_*!\ ]*[0-9]\{4\}[./\-#$%^&@_*!\ ]*[0-9]\{4\}[./\-#$%^&@_*!\ ]*[0-9]\{3\}/\*\*\*\*-\*\*\*\*-\*\*\*\*-\*\*\*\*/g
s/[./\-#$%^&@_*!\ ]6011[./\-#$%^&@_*!\ ]*[0-9]\{4\}[./\-#$%^&@_*!\ ]*[0-9]\{4\}[./\-#$%^&@_*!\ ]*[0-9]\{4\}[./\-#$%^&@_*!\ ]*[0-9]\{3\}/\*\*\*\*-\*\*\*\*-\*\*\*\*-\*\*\*\*-\*\*\*/g
s/[./\-#$%^&@_*!\ ]4[0-9]\{3\}[./\-#$%^&@_*!\ ]*[0-9]\{4\}[./\-#$%^&@_*!\ ]*[0-9]\{4\}[./\-#$%^&@_*!\ ]*[0-9]\{4\}/\*\*\*\*-\*\*\*\*-\*\*\*\*-\*\*\*\*/g
s/[./\-#$%^&@_*!\ ]5[1-5][0-9]\{2\}[./\-#$%^&@_*!\ ]*[0-9]\{4\}[./\-#$%^&@_*!\ ]*[0-9]\{4\}[./\-#$%^&@_*!\ ]*[0-9]\{4\}/\*\*\*\*-\*\*\*\*-\*\*\*\*-\*\*\*\*/g
s/[./\-#$%^&@_*!\ ]6011[./\-#$%^&@_*!\ ]*[0-9]\{4\}[./\-#$%^&@_*!\ ]*[0-9]\{4\}[./\-#$%^&@_*!\ ]*[0-9]\{4\}/\*\*\*\*-\*\*\*\*-\*\*\*\*-\*\*\*\*/g
s/[./\-#$%^&@_*!\ ]3[47][0-9]\{13\}/\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*/g
s/[./\-#$%^&@_*!\ ]30[0-5][0-9][./\-#$%^&@_*!\ ]*[0-9]\{4\}[./\-#$%^&@_*!\ ]*[0-9]\{4\}[./\-#$%^&@_*!\ ]*[0-9]\{2\}/\*\*\*\*-\*\*\*\*-\*\*\*\*-\*\*\*\*/g
s/[./\-#$%^&@_*!\ ]36[0-9]\{2\}[./\-#$%^&@_*!\ ]*[0-9]\{4\}[./\-#$%^&@_*!\ ]*[0-9]\{4\}[./\-#$%^&@_*!\ ]*[0-9]\{2\}/\*\*\*\*-\*\*\*\*-\*\*\*\*-\*\*\*\*/g
s/[./\-#$%^&@_*!\ ]38[0-9]\{2\}[./\-#$%^&@_*!\ ]*[0-9]\{4\}[./\-#$%^&@_*!\ ]*[0-9]\{4\}[./\-#$%^&@_*!\ ]*[0-9]\{2\}/\*\*\*\*-\*\*\*\*-\*\*\*\*-\*\*\*\*/g
s/[./\-#$%^&@_*!\ ]3[47][0-9]\{2\}[./\-#$%^&@_*!\ ]*[0-9]\{4\}[./\-#$%^&@_*!\ ]*[0-9]\{4\}/\*\*\*\*\*\*\*\*\*\*\*\*\*/g
s/4[0-9]\{3\}[- ]*[0-9]\{4\}[- ]*[0-9]\{4\}[- ]*[0-9]\{4\}[- ]*[0-9]\{3\}/\*\*\*\*-\*\*\*\*-\*\*\*\*-\*\*\*\*-\*\*\*/g
s/5[1-5][0-9]\{2\}[- ]*[0-9]\{4\}[- ]*[0-9]\{4\}[- ]*[0-9]\{4\}[- ]*[0-9]\{3\}/\*\*\*\*-\*\*\*\*-\*\*\*\*-\*\*\*\*-\*\*\*/g
s/6011[- ]*[0-9]\{4\}[- ]*[0-9]\{4\}[- ]*[0-9]\{4\}[- ]*[0-9]\{3\}/\*\*\*\*-\*\*\*\*-\*\*\*\*-\*\*\*\*-\*\*\*/g
s/4[0-9]\{3\}[- ]*[0-9]\{4\}[- ]*[0-9]\{4\}[- ]*[0-9]\{4\}/\*\*\*\*-\*\*\*\*-\*\*\*\*-\*\*\*\*/g
s/5[1-5][0-9]\{2\}[- ]*[0-9]\{4\}[- ]*[0-9]\{4\}[- ]*[0-9]\{4\}/\*\*\*\*-\*\*\*\*-\*\*\*\*-\*\*\*\*/g
s/6011[- ]*[0-9]\{4\}[- ]*[0-9]\{4\}[- ]*[0-9]\{4\}/\*\*\*\*-\*\*\*\*-\*\*\*\*-\*\*\*\*/g
s/3[47][0-9]\{13\}/\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*/g
s/4[0-9]\{3\}[- ]*[0-9]\{4\}[- ]*[0-9]\{4\}[- ]*[0-9]\{4\}[- ]*[0-9]\{3\}/\*\*\*\*-\*\*\*\*-\*\*\*\*-\*\*\*\*-\*\*\*/g
s/5[1-5][0-9]\{2\}[- ]*[0-9]\{4\}[- ]*[0-9]\{4\}[- ]*[0-9]\{4\}[- ]*[0-9]\{3\}/\*\*\*\*-\*\*\*\*-\*\*\*\*-\*\*\*\*-\*\*\*/g
s/6011[- ]*[0-9]\{4\}[- ]*[0-9]\{4\}[- ]*[0-9]\{4\}[- ]*[0-9]\{3\}/\*\*\*\*-\*\*\*\*-\*\*\*\*-\*\*\*\*-\*\*\*/g
s/4[0-9]\{3\}[- ]*[0-9]\{4\}[- ]*[0-9]\{4\}[- ]*[0-9]\{4\}/\*\*\*\*-\*\*\*\*-\*\*\*\*-\*\*\*\*/g
s/5[1-5][0-9]\{2\}[- ]*[0-9]\{4\}[- ]*[0-9]\{4\}[- ]*[0-9]\{4\}/\*\*\*\*-\*\*\*\*-\*\*\*\*-\*\*\*\*/g
s/6011[- ]*[0-9]\{4\}[- ]*[0-9]\{4\}[- ]*[0-9]\{4\}/\*\*\*\*-\*\*\*\*-\*\*\*\*-\*\*\*\*/g
s/3[47][0-9]\{13\}/\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*/g
s/30[0-5][0-9][- ]*[0-9]\{4\}[- ]*[0-9]\{4\}[- ]*[0-9]\{2\}/\*\*\*\*-\*\*\*\*-\*\*\*\*-\*\*\*\*/g
s/36[0-9]\{2\}[- ]*[0-9]\{4\}[- ]*[0-9]\{4\}[- ]*[0-9]\{2\}/\*\*\*\*-\*\*\*\*-\*\*\*\*-\*\*\*\*/g
s/38[0-9]\{2\}[- ]*[0-9]\{4\}[- ]*[0-9]\{4\}[- ]*[0-9]\{2\}/\*\*\*\*-\*\*\*\*-\*\*\*\*-\*\*\*\*/g
s/[^0-9]4[0-9]\{3\}[- ]*[0-9]\{4\}[- ]*[0-9]\{4\}[- ]*[0-9]/\*\*\*\*-\*\*\*\*-\*\*\*\*-\*\*\*\*/g
s/[#- ]4[0-9]\{3\}[- ]*[0-9]\{4\}[- ]*[0-9]\{4\}/\*\*\*\*-\*\*\*\*-\*\*\*\*-\*\*\*\*/g
s/3[47][0-9]{2\}[- ]*[0-9]\{4\}[- ]*[0-9]\{4\}[- ]*[0-9]\{3\}/\*\*\*\*-\*\*\*\*-\*\*\*\*-\*\*\*/g

Say CCENGINE=ccengine.sed
INFILE= is your initial load
OUTFILE = your output with CC numbers.

If you have the dump of database as a bcp or sqlload or just a file , just need to translate the file using following sed command

sed -f $CCENGINE $INFILE >$OUTFILE

bcp or sqlload back dependending on whether you are using Sybase or Oracle.Keep it Simple !