When customer services is less important than profit.

COVID-19 impacted the world economy like no other event. It came very quickly and many companies were not prepared for their staff to be suddenly working remotely.

The majority of office workers have in the most part been working from home since March, those which are less fortunate have been furloughed.

For some businesses have had a down turn in sales but needed to maintain customer services (such as most travel businesses) and those businesses have managed reasonably well to manage the increase in demand. Those companies I applaud, their income has dropped but they managed to maintain a good level of customer services.

The problem is with companies who’s income remains high who are making it difficult for consumers to get the service they need. These companies have reported stable profits and been mostly unaffected by COVID-19.

A couple of examples that I’ve personally encountered.

During this period I’ve needed to make various calls. Virgin Mobile for example have ceased their chat, and their phones queue indefinitely (I gave up after more than 10 attempts). Other companies such as e-commerce giants have removed their phone numbers entirely, and I think this isn’t acceptable.

Sainsbury’s on numerous occasions have incorrectly delivered products, and fail to refund or resolve. You’re asked to email, but emails go unanswered. So it’s down to the customer to contact Sainsbury’s to resolve. The phone experience is challenging, you might get answered eventually but the person who answers isn’t trained or able to service, so disconnects you, if you’re lucky you might get answered to be passed to someone else and on goes the pain.

Setting up a remote workspace and a sip phone client on a cloud based phone system isn’t complex, enabling access to systems remotely isn’t that difficult. We can adapt to a remote workforce. To withdraw phone numbers and to be unable to answer calls at all is an example of some businesses intentionally furloughing staff to receive subsides and not enabling its staff to operate as it should do.

Maybe we were unfortunate with when we contacted these businesses. I understand businesses need to make a profit to survive, if buy some luck you have more sales then you can afford to increase your customer services teams, but clearly for these businesses that’s not something they’ve done.

I switched from Virgin Mobile, and stopped buying from Sainsbury’s online.

Will the future bring a world where we trade ad views for (virtual) currency?

Nothing is free. We have become consumers of free apps everywhere. As digital businesses tap into the freemium model (offering their applications for free), we (the consumer) use them. Unknowingly or knowingly we are trading something for that.

Vendors, especially game vendors have realised that free delivers more value than paid, and this is where I feel we might we might be losing our choice.

As a parent of two kids, I’m conscious of what my kids watch. We limit TV and tablet usage to encourage social in-person activities. But I’m getting increasingly concerned by the amount of ads which they’re exposed to via mobile and tablet.

Growing up, computer games were an enjoyable way of exploring the world, learning skills/tactics etc (Counterstrike, Rail road tycoon, Minecraft, even coding basic!). But my world was a world without internet and eventually from the age of 16, dial–up internet. Today, in contrast we have super computers in our pocket which we can interact with a finger and access to everything 24/7. Data and Ads are everywhere no longer limited to print and posters.

For this post I’m discussing phone and tablets (devices that most people have and that are accessible to almost everyone – no controllers to master or additional equipment to buy). These devices have an increasing community of games, many of which are focused around earning virtual coins/points, and have a hidden revenue path pushing Ad views in exchange for virtual currency.

You might say; “why are you not buying the game vs having a game with Ads?” Thats fair, These new breed of games look initially innocent, but are loaded with Ads as part of their gameplay regardless of whether you pay to remove static ads or not. These games need coins/credits to play, to earn those credits you have to; buy credits (with real money), choose to watch an ad (for a bonus) or are forced to watch an ad to continue.

Cat Game, a popular game (age 4+) is a game where you collect Cats and build floors. The goal; you have to craft materials to decorate each room/level, each level has a goal. To play you spend coins to craft the items. This eventually gets you more rooms and more cats, and so on. You can get coins by buying them (with real money), waiting, or playing three mini-games (poppycats and blockycats, or to cast a vote, some of which require some skill).

If you choose to wait you’ll earn a trickle of coins throughout the day which becomes capped (to the point where you can’t do that much), so you have to return to the app every 3-4 hours if you want to bank those and continue to accrue more (most likely with an ad to interrupt you and/or a bonus tied to a conditional ad).

On the whole it’s a nice game (ignoring the ads), however for each 5 or so plays of the mini game, you are forced to watch a 30 second ad. On each delivery (from your floor), you can decide whether to watch an Ad to get another delivery. The Ad watching is being exchanged for coins (some of which is optional and some isn’t).

This model is the same for a variety of games, not just Cat Game.
Ads = points, points = progression. We’re conditioning our children to watch Ads in exchange for virtual limited currency.

These ads although potentially meaningless are most likely conditioning our kids on choice. Unlike television they are powered by complex algorithms targeting content to our kids, some of which might not be appropriate, and our kids are being exposed to it.

I believe there should be controls over this, perhaps like GDPR we should be able to opt-in. before this exchange becomes a more serious problem.

My COVID-19 challenges.

I manage a series of different teams, many of which were office based and desktop machine oriented when covid-19 lockdown occured in March 2020.

Before we had the 1st lock down in London, our India team were warned of a potential lockdown due to a nearby office having a case of COVID. We thought we had 2+ weeks, in reality we only had 1.

We’ve been embracing cloud for a while and many of our services and tools were already cloud based, but over 60% of my users were desktop based and our shared DBs were a mix of on-prem and cloud.

We have policies set around IPs and how our machines were configured which we didn’t want to circumvent.

We went about quickly establishing a new gateway VPN service in the cloud to act as our central point for remote workers. After a few challenges all our VPN tunnels were up and working. Annoyingly, most cloud don’t provide native SSL VPN solutions (server to client), so we used a combination of 3rd party appliance and cloud ipsec connections to deliver our solution.

For Desktop users, we were fortunate that most of our staff had personal laptops but these machines (a) did not have a corporate policy, so could be a risk to our network and (b) were not necessarily that powerful.

To support these users we wanted separation between the users own (un-trusted) PC and our systems, we implemented that via a new AWS workspace account. The workspace let us setup a base image and deploy it to our users quickly and it gave us confidence that the machines access our trusted LANs followed our policies and did not introduce any risk to our systems.

The more complex part was routing calls, we were fortunate to have a SIP based phone system, but with off-shore teams this is a little more complex as there is legislation over the use of SIP as well as challenges with quality. Fortunately we were able to bridge the networks through the perimeter gateway router and route the call back to the UK via the MPLS links. We were fortunate that local connectivity was good with regard to quality, so it only added a few ms to the round trip. We introduced a variety of softphones and wifi phones and quickly implemented a distributed solution. It wasn’t perfect as there was sometimes latency, but it was acceptable.

In 4 days we had a solution which was ready which was fortunate as both India and the UK entered lock down sooner than expected.

That infrastructure has been running now for 6 months and on the whole running well.

What did we discover;

Not all SIP softphones are the same.

In the UK we opted for Apple IOS Sip phones for execs. we downloaded from the app store and these worked great outbound but were a bit intermittent for inbound.

It turns out keep alive isn’t properly supported in IOS. For those who were using their phones it was fine, but those who didn’t were not able to receive calls. Not something that the vendors state on your page.

After some investigation its an intentional design decision by apple, however fortunately the makers of Groundwire designed a softphone built around push notifications, we switched to that and it works great.

AWS Workspace is good, but AutoStop isn’t what it appears.

I’d budgeted for AWS workspace, an additional but necessary expense, but what I didn’t realise was that an always on solution works out cheaper if you users are using for more then 4.8h a day (5 days a week).

Taking into account the machine is otherwise off you would expect that the resources could be shared, but apparently not. If you are using AWS with AutoStop enabled, you could be paying significantly more than you need to.

Power and Internet are not always reliable.

In India especially, floods cause interruptions, and power isn’t as reliable as in the west. Staff are impacted in various ways and face times when they’re off, so you have to be flexible.

A non-work environment isn’t great for everyone.

Extreme heat in some places can make working conditions difficult for those without AC at home. Lacking a quiet place for calls, not having a space where the staff feel happy to show on video are all challenges which we didn’t face in our office environments. Being flexible on hours and working pattern can help.

Zoom, Google meet, slack, and Microsoft teams are your friend but they can’t fully replace face to face.

Conference calls are essential, video on by default is hard to encourage. For me the whiteboard on Zoom is the closest to colaborating in person and I’m always using it. Your face can express much more than your voice. Discourage mute as much as possible.

Check for changes in productivity and morale.

Being away from the office can be isolating, it can also be disruptive. It takes self discipline and it’s easier for some than others. Keep a check on performance and have discussions if performance changes early to check-in and help.

What changes will I make when we’re allowed to return to the office?

As a remote worker myself, I think COVID has helped demonstrate that working remote is possible for a lot of businesses.

For some businesses there will always be benefits of being in an office for most of the time, but for developers and product people, I think there’s benefits of working from home. I think this comes down to trust and environment. Systems shouldn’t be the blocker.

I’m not an advocate of working from home entirely. It can be challenging. But I am an advocate for remote working. So for me, I’m happy for teams to continue working remotely, but I’d like to see teams meet up at least once a week (both professionally and personally), and as a whole for the business to get together once a month. Social interactions are essentials, a life behind the screen can get routine, and that isn’t human.

When it comes to systems, I don’t plan to remove the remote gateways. Previously my users requested Desktops over Laptops because Desktops are faster. Going forward I believe we will have a laptop workforce, with more of a hot desk approach.

Theme parks in covid, are we ready?

As the UK now starts to open up its services, my family decided it would break from the 3 month stuck at home cycle and venture to a theme park (Partially driven by an expired offer, which was extended by a few months).

For background; I’ve not been out other than some shopping and to spend some time outdoors. So the idea of being out all day was a little strange, but there comes a time when we need to returning to things we once did!

On 15th July, we visited Chessington World of Adventures (near London). On entering the park we were asked to socially distance in the queue and have our temperature checked. This was expected but there were a number of people who just didn’t appear to get it !

The park by their own admission was quite busy (apparently the busiest its been in a few weeks), but not full in any way.

Queues.

The park had set out yellow paw prints on the floor to separate people set at 2m, but it felt like 4! There were posters and announcements asking people to stick to i, but it was clear people didn’t want to keep their distance. ( I was fortunate not to have to ask people to move away! )

To note, although you’re keeping distances, the queues zig zag past the queue on the other side. So I’m not sure how useful keeping your distance is in reality because you’re going to be in contact with someone to your left or right (or both) at some point in the queue.

Park hygiene

All the resort staff were masked. Hand sanitiser was at the start and end of each ride (optional to use).

The rides closed every 30 minutes (for about 5 minutes) to allow for deep cleaning, but that was mostly someone spraying liquid over the rides, which was not then wiped or dried off. Being honest I’m not convinced the spray would catch all the virus, and had expected it to be wiped to cover the entire surface. With the spray not wiped down your presented with a sticky damp seat, and surfaces.

Every ride has some form of queue and hand rails – during my time I hadn’t seen anyone wipe these. During the queue, its inevitable your’ll be touching and leaning on these whilst you wait.

Some rides required masks, people obeyed and wore them as directed, but other than that most people were not wearing any form of PPE.

I think we were lucky, the people in front and behind left space, but on a good few occasions, queues were bunched up. Some people kept more apart, others however didn’t – (there were announcements).

The queue length was quite excessive at times (way longer than advertised – no doubt because their time systems can’t adjust to the rides being at reduced capacity, so provide misleading queue times)

Conclusion.

We had a good time even though it was weird. I’m not sure I’d do it again for a while though. Clearly not all guests are prepared to keep social distances, and thats always going to be an issue.

The park wasn’t too full, when we were not queueing there was space, but the queues made me feel exposed. Let’s hope the checks on everyone’s temperature is a reasonable and fair test to ensure that a asymptomatic carrier isn’t mingling amongst us.

Advice to Chessington: wipe down your rides when you clean them, wipe the hand rails rails, and probably at this stage make masks compulsory in your resort.

As flight prices are predicted to rise. Are vouchers for future travel a false promise?

In this COVID-19 world, airlines (and most other travel businesses) need a regular supply of profitable bookings to survive. Deposits and pre-payments for advance travel was and still is the norm (an up-front commitment in exchange for an advance discount).

For Airlines, a plane needs to operate at 65-70% full to break even and near full to make profit. Anything less is uneconomical.

Most long haul carriers (BA, Lufthansa etc) rely on travellers (mostly business) paying a premium for flexible fares and/or premium cabins with economy passengers filling up the remainder of the plane. Short haul needs a high percentage of profitable seats too, the low cost seats previously sold early at rock bottom prices are likely long gone (no more bargains under £30).

As flights are being cancelled, airlines are forcing/encouraging customers to take vouchers. This behaviour is understandable as the airline wants to protect their revenue and you’re able to support the airline you booked with. However this voucher may be a false promise, this voucher is for a value, not a replacement ticket.

60% of recent travellers anticipate a return to travel within one to two months of containment of the COVID-19 pandemic but 40% indicate that they could wait six months or more

IATA Commissioned survey

Business travellers will initially travel less (businesses will have seen the opportunity for remote working and will no doubt reduce expense budgets to recover their losses), less premium travel will occur, resulting in less high revenue seats sold. The net result; an overall average cost increase across the board to bring the flight to a break even point and above.

For an airline to cover its costs, the price of the ticket will have no choice but to increase. For the next 6 months there will be fewer people flying, reduced seat capacity (for social distancing) and less premium cabins sold. This restart is going to be one of the airlines biggest challenges, especially low cost airlines (who will most likely struggle as their main consumers will likely have a ceiling price limiting what they can afford to pay).

For the world economies to restart, people need to make and spend money and travel plays a role in that. Passengers wont travel if it’s un-safe, and especially if their insurance doesn’t cover them for medical costs. The restoration of air travel to levels in 2019 will take time (most likely years) and this is mostly associated with consumer confidence and affordability.

My Advice: If you have travel arrangement booked and you can change your date to next year (for little or no fare difference), you are likely to be better off moving your flight now vs converting to a voucher (or cash) and waiting. If you already have a voucher, use it as soon as you can, don’t wait.

Prices wont suddenly sky rocket so high that its only affordable for only the elite! There will be deals, but those low low fares will be a bit higher. If you were lucky enough to buy a ticket at £45, this might be £60-90. That business fare you could occasionally get for £1050 may be £1250.

Note: Under normal conditions airlines have a change fee (a fee + fare difference) and cancelation fee (which on discounted fare is often 100%), by changing your flight you are entering into a new agreement. It’s not advisable to just pick a date assuming you can change it again later. Airlines have temporarily relaxed their conditions to help consumer confidence. Take care if you re-book, only really do so if you intend to travel on the revised date.

This is a really challenging time. Aviation relies on volume, without volume airlines cannot offer discounted fares without running at a loss. Perhaps the airlines need to offer some assurances for those who previously booked to provide a guarantee of some kind. Without this guarantee it’s likely those vouchers will trigger yet more refunds in 12 months time for vouchers which couldn’t be used.

Further Reading

economics of aviation – https://www.youtube.com/watch?v=BzB5xtGGsTc

Has Uber lost its place?

I used to use uber quite a lot, but unfortunately in the city I reside and work Uber has lost its licence. So I’ve been using Uber less.

I am a frequent user of Uber when travelling, but lately it’s just not working anywhere near as well as it used to.

These are the reasons I think it’s failing.

Local usage. Uber was originally launched in the US and was marketed as a global taxi app. As other markets have adopted Uber, it has become more popular with the local residents and as a result the drivers no longer have to speak english. Okay they shouldn’t have to speak English in non-english speaking countries, but as a global taxi system there should be a system to handle adequate translations.

User is no longer a reliable service. Uber used to be reliable, if you booked a cab, it arrived, you got in, it went where you wanted to go, and you paid. But my recent experience is far from this.

I booked, car is expected in 8 minutes, I wait, and oh its been cancelled, uber rebooks and .. another 12 minutes, and you wait and FFS I’m late and my taxi hasn’t arrived.

Recently I visited a mall in India, and wanted to get back to my hotel. I use uber because it removes the haggling with a tuk-tuk and on the whole used to be easy. First one, I waited, didn’t go to the collection point, so I waited, I could see the driver was nearby, but they never came. They didn’t contact me, they cancelled the pickup.

My bad luck, I rebooked. The same happened. An hour had past, I got annoyed so I did what I probably should have done earlier and went with the tuk-tuk.

The schedule service doesn’t guarantee shit. Ok I admit I am aware of the terms of service, but why provide a service that doesn’t guarantee you anything. You schedule a pickup, and if there’s no drivers who want your service then your scheduled service doesn’t mean anything. You’re left on your own. Gee Thanks. I’ll pay 5 x more to my hotel because I’m desperate thanks.

Airport pickups with Uber are stressful. One of the challenges with Uber is the need for data roaming, in the most cases it’s there, but often its slow (edge how i hate edge!), and when it’s slow things don’t work correctly. For instance sending the pickup requests and acknowledging them – or getting the list of pickup locations.

My experience was having my request cancelled due to insufficient cars, then having to accept a fee to cancel despite having already received confirmation (via a push) from Uber that they can’t fullfill, then waiting hoping that I can find a taxi whilst the app reminds me that there’s surge.

I’ve not yet switched to Lyft or Ola or another global taxi company, maybe I should. I live in hope that my experiences might be rare and I’ve just been unlucky.

We know that Uber sets the rates in almost all cities, and in most cases it’s lower than local taxis – they take their cut. My assumption here is that Uber is forcing drivers to work hard for their money, so when a nearby ride is offered when they have already agreed to pickup further away they’ll decide which is better for them.

Uber get fee(s) when drivers cancel, but customers are not compensated for their inconvenience.

It’s about time Uber found their way, and focused on the customer before someone else does.

Automating your development workflow

The process of packaging and validating your releases can get time consuming, especially when you have multiple projects on the go.

For consistency (as well as security), it is good practise to try to automate this process.

Setting up continuous integration (CI) can take a while to configure and get right, in most cases it requires a lot of change. But done right, it can streamline your processes and help your team stay focused on building software vs deploying code.

Here’s a summary of the tools we used to implement our CI workflow. To note you can implement this in small steps; building,  packaging, then deploying.

Continue reading “Automating your development workflow”