Doing Support Wrong

Photo by Jonny Caspari on Unsplash

I remember when I set up my software consulting business over 25 years ago, my business partner and I wanted to differentiate ourselves from our competitors in town in dramatic fashion. So to try and achieve that, we decided that we would provide incredible support to our clients, which included making ourselves available to them at any time during the week that they needed us. And I mean any time - we sent out letters to them stating that they could call us on a Sunday night when their server went offline, or even on public holidays.

And guess what? They did just that.

At first, this excited us - our customers were taking advantage of our superb support offering, which was building loyalty and value. But then, we despaired, because customers were taking advantage of our offering as we had asked them to do.

You see, when the two of us were starting out and only had about 20 customers, the demands on our time were minimal - we would probably get only a single after hours call per week which we would take turns at responding to. But as our reputation grew and others heard about our ‘overtime’ service, we soon found that we couldn’t scale such a promise.

Calls would come in so frequently during the weekend and in the evenings, that we began to resent our clients instead of celebrating them. What is worse, is that our early clients began to just expect that we would be available to them at any time, and changing that preconceived expectation was nearly impossible once set. Any mention of reducing after hours availability was met with a “Oh, now you got successful off our backs, you are abandoning us??” type response.

It was hard. To make matters worse, we also promoted (to our early clients at least) that we would only charge a minimal extra surcharge for after hours service. This increased the resentment factor because we weren’t really making any extra revenue in return for missing out on family dinners etc.

Wind the clock forward to a couple of years ago when I was setting up my new SaaS business, I fell into the same trap again. I set up our support system so that notifications would be sent straight through to my phone and I was determined to answer emails within minutes, not hours as some of my (much larger) competitors did.

But alas, we ended up having more customers for our SaaS outside of Australia. Mainly in the US and Canada actually, which is the opposite side of the clock from me. Thus began the flurry of support emails coming through at 2am in the morning. Goodbye restful sleep!

What is worse is that our support chat widget on our site had already been ‘trained’ by my existing quick response time, so it would tell any new customer to expect a response “within a few minutes”. So of course, the added pressure was on me to wake up and respond to those requests in order to maintain this epic metric.

Luckily, in this instance, I managed to mitigate the problem by welcoming remote team members in different timezones to my business, so now we can still provide fairly exemplary service to our customers which is NOT detrimental to my own health or sanity.

To anyone else out there setting up a new business which requires providing help to customers, I urge you not to go overboard too quickly. Take a look at your current team size and customer locations, and work out whether instant support any time is actually doable. Also, I am sure that if you speak to your customers, most of them will be willing to wait at least a few hours for help. Unless you are of course selling something that is linked to vital emergency response - waiting won’t kill anyone. In some cases, customers will actually value you more if they don’t get an instant response.

Having an intelligent support system that can evaluate the urgency of the request and escalate accordingly is also useful. In fact, the first support person I hired in my new business - that was their job! Not to actually provide support per se, but purely to be there to take the customer message and say “Thanks for contacting us about problem ‘x’, we have escalated your issue to our technical team.” They knew my sleep patterns and so could even give the customer an accurate response time, i.e. “Someone from the developer team will get back to you in 3 hours”. In a lot of ways, setting up new customer expectations this way worked very well for us. No one got angry or left, and we still got 5 star support rating because we managed expectations well.

Do you have any tips for maintaining great customer support while maintaining your sanity and preventing burnout? If so, I would love to hear from you in the comments below.

Guitar Modeller Shootout

I was looking around my audio plugins folder on my computer the other day and realised that I have a lot of guitar modeller plugins that I have collected over the years. It’s been a while since I have done any sort of shootout between them to compare, so I thought I would use this Easter long weekend to tackle this mini project.

I want to concentrate on clean Fender-y sounds this time, and what better way to test out the Strat build I just completed a couple of months ago. I just finished doing more setup work on this guitar and am enjoying playing it again.

The Guitar

It is a Lake Placid Blue Strat, with a baked maple neck. It has a set of BareKnuckle “Irish Tour” pickups in it, and I used the middle position for this experiment.

Guitar was plugged straight into my PC via an Apogee Element 46 audio interface, then routed to Logic X.

IMG_4665.jpg

The Method

What I did was to record a short dry track into Logic X on my iMac, then copy and paste that dry track onto different channels where I set up different modellers. This way there would be NO bias towards a certain track due to my different playing styles over time. The same dry track would ensure that the input signal was consistent across all modellers.

On each modeller, to ensure some kind of consistency, I also set all knobs to ‘5’ on the amp face. I turned off any Boost or Bright switches to ensure as raw a tone as possible. I also tried to use the same 2x12 cab where possible, with a ‘57 Condenser mic placed at the 2 inches from centre and 2 inches away.

I also used a delay pedal as the only pedal in the chain for most of the modellers - set at around 250ms delay with minimal feedback and mix. Some modellers didn’t support effects pedals in the amp signal chain, so in those cases I used a separate pedal plugin by the same manufacturer to get the delay pedal in the chain (e.g. Bias and Logic)

The Modellers

Here are the 5 modellers I used, with a screenshot showing the settings that I set each amp, cab and delay pedal at.

Logic X

Yep, I admit that one of the tracks here is using the plain old in built amp modeller from Logic, mainly because I wanted to see how it compared against the other more ‘serious’ modelling plugins.

Fender_Clean_Logic_X.png

Amplitube 4

This is probably the modeller I have been using the longest - since Amplitube 2 days!

Fender_Clean_Amplitube_4.png



Slate TH-U

This is the newest modeller the I only got this week, and which prompted me to do this shootout.

Fender_Clean_TH-U_Slate.png

S-Gear

Probably my favourite modeller which I use the most. This is usually my go-to solution for recording guitars these days.

Fender_Clean_S-Gear.png

Bias 2

I admit that I bought this modeller last year sometime, but just haven’t got around to using it much at all.

Fender_Clean_Bias_2.png

The Results

Here is my SoundCloud link to the sound samples for each modeller.

I may refrain from stating which modeller is which sound sample for now (No, they are NOT in the order of the modellers I listed above!). I will wait to see which ones people prefer in ‘blind’ mode first, then reveal all in a couple of weeks! <evil laugh>

UPDATED:

The modellers in the sound clip were in this order:

  1. Amplitube 4

  2. S-Gear 2

  3. Bias 2

  4. Slate TH-U

  5. Logic X

My Coda 'Makers Festival' entry

coda_maker_fest.png

I’ve been using Coda in my startup HR Partner for the past year or so, and love the fact that I can create custom dashboards to share and manage data with my team. This week, I noticed that Coda and ProductHunt were having a Makers Festival (No Code Edition) that was pretty cool, and so I thought I would whip up a little mini project in a couple of hours.

The choice of project was a little tricky, but then I remembered that I always wanted to build a mini app to track my liquid intake throughout the day. I have a terrible habit of not drinking enough to keep myself hydrated, and I promised myself that this year, I would improve upon that. What better way that to build a dashboard that would objectively show my how well (or badly) I was doing.

To that end, I decided to build this ‘Waterboard’ app in Coda:

Screen Shot 2019-03-24 at 11.11.14 am.png


This is a very simple app that shows me how I am tracking as far as liquid intake for the day, plus show my trends over the past week.

Here is a breakdown of the app:

At the top of the dashboard, I can set my target goals that I want, meaning the total quantity of liquid that I want to drink every day, plus the time interval between when I take drinks.

Using Coda’s slider widget to set my goals.

Using Coda’s slider widget to set my goals.

If I am below my target quota for the day, the dashboard will prompt me to keep going, and when I exceed the quota, I will get a ‘well done’ message. Similarly, if I go over the time interval set, then the system will warn me that I am overdue for a drink, otherwise I get a thumbs up. Here is what those displays look like in the middle of the page:

Not so good, I am behind in my target quota and it has been a long time between drinks!

Not so good, I am behind in my target quota and it has been a long time between drinks!

And here is the display when I am doing well:

Everything is just ticketyboo!

Everything is just ticketyboo!

Notice also that in this section, I am using Coda’s Rectangle() function do draw in a progressive bar chart which visually shows me my current liquid intake vs the target goal. Makes it easier to see how I am progressing versus trying to do mental maths when I am dehydrated.

The table in the middle of the screen is the actual Coda data table that holds the information on my liquid intake. A really simple table with 4 fields in it:

Coda_Makers_Festival_Entry_5.png

Really, all I am doing is collecting the time of the log entry, the type of liquid (which is a customisable drop down list) and the quantity in ml. The last column is an auto calculated icon that shows me whether the entry was pure water, or a compound liquid like coffee/tea etc. We all know that pure water is best!

Oh, and this table only shows the entries for today. All previous entries are filtered out using Coda’s filter capability in order to reduce clutter.

But seeing as I am a programmer, I hate doing long form data entry. And seeing that my daily liquid intake is usually from one of about three or four different containers, I thought to make up some ‘Quick Hits’ buttons just above the table:

All my favourites. (except Coke - I don’t drink Coke!)

All my favourites. (except Coke - I don’t drink Coke!)

So now just one click will populate the table data with the most popular beverages I drink on a daily basis.

Setting the button action.

Setting the button action.

You can see above how easy it is to set an action to the buttons - I simply nominated that I wanted a click to Add a row to the data table, and I specified the two critical fields that relate to this button (Note that the entry date and time are auto populated using calculated fields within the table itself).

Voila! That is it.

Last on the page is a graph of the past week’s liquid intake, so I can see how I am trending over time:

A veritable roller coaster.

A veritable roller coaster.

That is it. Perhaps about two hours work to put this together, and most of that time was spent looking up the formula syntax for Coda’s date/time and string manipulation.

One downside of Coda is that all timestamps (such as those returned by the Now() function) are in Pacific Time, rather than UTC or local time. Date functions however seem to be in UTC which is strange. Nevertheless, Coda has the concept of Named Functions, so I created a custom function called NowLocal() which converted the returned timestamps from Pacific Time to Australian Central Standard Time.

Coda’s named functions make reusing repeated long formulas so easy.

Coda’s named functions make reusing repeated long formulas so easy.

Where does the 0.6875 come from? Well, Pacific Time is 16.5 hours different from Australian Central Standard Time, so 16.5/24 gives you 0.6875 which is the amount we have to add to the datum to correct the time to my local timezone.

I also created a function called DateLocal() which is basically:

Chaining named functions.

Chaining named functions.

which corrects the Today() function in Coda and returns the correct date for today once adjusted for ACST. See how simple it is to use Named Functions to save typing out the same formulas repeatedly all over the dashboard? In fact, I used several named functions in this dashboard to save time.

Here is an example of using DateLocal() in the graph filter:

Coda supports some quite complex formulas, including IF statements etc. The following formula picks out the last drink time of the day (and returns a sad face emoji if there are no entries for the day). Note copious use of Named Functions to avoid long winded formulae:

Coda_Makers_Festival_Entry_13.png
Waterboard running in the Coda app in iOS.

Waterboard running in the Coda app in iOS.

And yep, it even works in the Coda app to look just like a native iOS app (If you look at the image on the right). I realise that I still need to do some rejigging of a few of the widgets and buttons to make the ‘sit’ properly on the smaller form display, but overall, it is a useful way to use the dashboard and logging too.

TODO: I’d probably add some automation so that a Slack message or notification is sent whenever a drink entry is made. However what I would really like is for a notification to be sent when I am overdue for my next drink, but I don’t think Coda has the ability to send a notification on a formula at this stage.


I am happy to share this dashboard with anyone else out there who is interested in learning how it is built. Feel free to poke around the formulas and functions, and improve/customise it to your liking. Drop me a line if you want a Share link to this dashboard.















Incredible Women in my Life

I know this is a bit late for International Women’s Day, but I thought I would post it anyway.

Some backstory - I used to do a lot of art and painting in my younger days, but haven’t really done anything for the past 3 decades or more. Work, life, music, everything else simply got in the way and I never put pen or brush to paper in all that time.

Until this year, when I decided to try my hand at painting again. But the next problem was - what subject matter? I decided that I would focus on women in my life who have had an impact on me. Not just my immediate family, which consists of strong women anyway, but rather my friendship circle, in which I have many women who I think are totally amazing.

(Note: I have held back from mentioning names in this post. Mainly because I want to protect the privacy of my friends. Most of them are really humble and wouldn’t like to be called out for their strengths, but I think their story deserves to be told).

Here are my (rusty) artistic impressions of my heroes:


IMG_0011.PNG

I first met E when she worked at a client site that I was doing some consulting work at. She always had the brightest smile and a genuine “Hello, how are you?” that went beyond mere politeness and showed an actual interest in the answer, which in turn showed the depth of her soul.

E does it hard raising two very young kids as a single mother, but she does not let that hold her back from showering her children with an abundance of love. And she always has time for others.


IMG_0017.PNG

J was a good friend of my younger sister and spent a lot of time at our house when growing up, and so I consider her another little sister of mine as well as one of my best friends. Many years ago, while in the prime of her life, she suffered an aneurism which nearly took her life. She still suffers many permanent after effects of that incident to this day, including short term memory loss, but she does not let that hold her back, and she still retains her delightful, happy personality.


IMG_0023.PNG

M was another client who turned into a friend. A few years ago she was diagnosed with having multiple brain tumours. Because she lived across the country, I could only follow her journey of fighting through this via Facebook, but I was amazed at her strength, resilience, and most importantly, her absolutely candid sense of humour while going through the worst of times. That is priceless in my opinion.

Even during her recovery, there was no hesitation in outlining funny things that happened as a result of the multiple surgeries and procedures that she underwent - for example, she suffered balance problems following her release from hospital, but she regaled us all with the funny story of how she tripped and fell flat on her face outside her favourite pub when she was on the way to celebrate beating those pesky tumours. It takes someone special to always see the funny side of something so serious. Thankfully M is doing well now and enjoying a full and healthy life.


IMG_0026.PNG

J is a long time business colleague whom I have a lot of respect for. I have known her for many years, which includes the time encompassing two marriages that didn’t work out. What I really admire about J is how she doesn’t let heartbreak hold her back. Every time she met a new love, she would throw herself heart and soul into the relationship with no cynicism or negativity. That kind of bravery, to risk your heart over and over like that, is rare.

More recently, J also came down with breast cancer and battled through that with silent courage. She is now in marriage #3 with her soul mate and is blissfully happy living the life of her dreams.


IMG_0030.PNG

S is a relatively new friend, but has already astounded me with her spirit of generosity and her willingness to go above and beyond to help a friend out. She is an avid traveller and is not afraid to explore the wilder side of places she visits on her own. She is a super smart former lawyer. She is also a former MMA cage fighter, so she is one tough lady that stands for no nonsense. A serial entrepreneur, I always enjoy spending time with her talking about startup life and travelling.


IMG_0033.PNG

D is another friend of my sister who is like a little sister to me too. Always ready with a delightful smile. She is a beautiful soul. She has 2 children with special needs, but I have never heard her complain once - she showers all 4 of her children with boundless love. Tragically, she recently lost her young son, and my heart goes out to her, because of all the people in the world, D does not deserve this. She also had her own personal battle with cancer a couple of years ago, but that never stopped her from being there for her own family. For me, D is proof enough that no higher deity exists, because any god that can put someone as amazing and compassionate as her through such life trials really does not make any sense to me.


I hope to add to this list over the coming months, and I am realising how lucky I am to be surrounded by such strong, inspirational women almost everywhere I go. They have all played a part in shaping me into the person I am today.

People have asked me “Aren’t there any men who have inspired you the same way?” and the short answer is yes, but apart from my own Dad, I really can’t think of any other male figure in my friendship circle who has been through the sorts of battles that the women above have. I am sure there are though, and as soon as I find them, I will do something similar.