Technical support

Technical support

support

Once the development is finished, many clients ask themselves: ‘Why do I need Tech Support, if everything is working as intended without it?’ In this article I would like to shed some light on web projects’ unobvious issue of Tech Support, which, when neglected, results in negative experience when first problems come up.
 

Let’s have a look at an average e-commerce website, which sells stamps all over the world. After many months of hard work a happy client gets a beautiful website with rounded buttons and a bunch of sliders on the home page. The work is humming, orders are being placed. After the first batch of orders has been shipped it turns out that some items’ descriptions differ from their manufacturer’s description. This means that said description on the site has to be updated, but the website owner, let’s call him Jim, hasn’t thought that content of his website would have to be updated or deleted some day, when the project was in the development phase. He had more important matters to tend to. He had to make a deal with factories, post offices, he had to set up a company, hold talks with a bank and of course, to supervise the roundness of buttons.


The Problem
 

Lack of user guide and Tech Support on the part of the developer.


The Solution
 

Beautiful e-commerce website has to go with a user guide. Preferably, not a plain, several lines long, text file, but a fully-featured document, containing screenshots and video guides. This part can be copied from auto dealers with their spectacular brochures and user-friendly instructions.

Should something be unclear to a user, he will fuss over it and call every developer company’s number he knows. Highly unlikely that a CEO or a manager will know right away how to solve the problem and what steps should their caller take. They will think of a relevant employee and forward the calling user to him.

If you provide your user with all the necessary information beforehand, both parties will avoid nervous situations.
 

Having gained some experience as an e-commerce website content moderator and talked to some clients, Jim realized that his catalogue filter lacks one crucial characteristic. User manual has no info on adding new fields to the filter in question, so he calls Tech Support:

  • Hello, is this Studio X?

  • Yes, how can I help you?

  • I need to add one field to my catalogue filter, but user guide has no instructions on how to do it.

  • ...

  • The thing is, you can’t add filter fields through administrator panel, you have to sign a contract for website revision and modification so we can implement the feature in question.

  • How long do you think it’ll take?

  • ….


The Problem
 

The need for further improvement of the project even after initial release.


The Solution
 

Development companies should have a well thought-out template of a Tech Support Agreement so their clients won’t have to sign another document each time they need something done with their website. Besides legal side of the matter, you have to have specialists at your disposal to start development right away. Surely, that’s not going to happen, but if you tell your customer that his small improvement will take a week to complete, it will cast a negative light on you.
 

After first hardships has been dealt with, the owner of the upper-mentioned e-commerce website will be busy for several months, shipping stamps and observing his growing bank account. Sooner or later, he will want more and that’s when an army of marketing specialists come into play. They start attracting customers to the website by all means at their disposal, but to no avail: sales are drying up, website starts working much slower or even showing users blank pages. Jim panics and calls his developers:

  • Hello, is this Studio X?

  • Yes, how can we help you?

  • Your website’s broken!

  • We will check it and call you back…

Few hours later Tech Support specialist X calls Jim back:

  • Good evening, Jim, we examined your website and came to a conclusion that everything’s working fine. There are no programming errors.

  • How come?! I couldn’t load it today during lunch!

  • That’s not due to a programming fault, it’s just that your website attracts too many visitors and your server is crumbling under the pressure.

Jim found out that his website is not capable of handling so many visitors and folded under the pressure. Usually developers suggest a move to a more powerful server, but that’s just a temporary solution rather than a silver bullet, plus, a good server is costly.


The Solution
 

Start using CloudFlare - a DNS caching service. Most of its functions are free and solve server load problems. Its core operating principle is simple: your domain name is tied to CloudFlare servers, so your website gains an invisible shield which caches static files of your website (styles, images, etc.), lowering the number of requests to your server.
 


 

Jim did everything necessary to deal with the menace looming over his site. Meanwhile, during the time his e-shop was offline, he lost both new customers and the loyalty of old ones. They moved on to a new website, which offers basically the same goods. All goes well for a while, business as usual, so Jim, feeling secure, decides to widen the range of goods several times over. His wife starts working for him, as well as a neighbour boy, who wants to make some spending money. Their combined effort allows them to add xxxx new items to online store. And just like that the lags and the freezes return. Pages are taking a couple dozen seconds to load. Clients are abandoning Jim’s ship by the hundreds which shouldn’t be surprising - we live in an era of fast information.

Every 100ms of latency cost us 1% in sales. Amazon Inc.
 

Sure, long loading time can be solved by upgrading to a more powerful server, but we can also see that a small project might need a small Data Center. In Jim’s case, the latter would be unviable.
 

The Solution
 

Optimization of your standard website consists of the following steps:

  • Web server optimization;

  • Source code optimization;

  • Caching configuration;

  • DataBase optimization;

  • Addition of Varnish HTTP caching service (https://www.varnish-software.com)

Each of these steps can surely be expanded to a stand alone book, describing how to do it properly and what tools to choose. Best decision for Jim would be to do database partitioning to several servers (data replication) and distribution of his website to different Docker containers.
 

Once the optimization process has been done, Jim’s website operates much faster. Moreover, there’s a bonus: server demands are now lowered, which means lowered monthly expenses.
 

One might think that everything that could happen to a website has already happened. It can handle a significant number of visitors, it has a great variety of available products; should the visitor numbers swell, it’s no longer a problem that can’t be easily fixed by a purchase of a new server and scaling of the product. Alas, there’s more to it: the bigger the project, the more interest it attracts from shady elements. In software’s case it’s the hackers. Their interest lies in theft of customer payment information or disruption of website operation and extorting business owner. There might be other malicious intent behind the attack, but it’s always harmful for a business.

Safety has to be bought, for when there’s none - you pay the price.

Winston Churchill
 

According to statistical data, in most cases hacker attacks were successful due to an outdated software, since developers themselves are doing their best to swiftly fix vulnerabilities by releasing updates. So, to successfully resist a hacker attack you just have to regularly update your system’s components. This can be achieved by daily monitoring available updates, but as a rule people can’t be really bothered, which results in increasing vulnerability and an attack. Updating components can be tricky and might lead to breaking something. That’s why one has to test the whole website after every update.
 

The Solution
 

To monitor updates we use our own software, which connects to a website and monitors available updates. Once an update becomes available, an urgent task for its installation is placed.

Problem of cyber security can’t be solved by regular updates only. Security of all infrastructure, which contains the site, is in order. Website must be developed with security in mind and updated regularly. It often occurs that lack of server monitoring leads to oversaturation with data and as a result it has no free space for web server’s operation. It happens due to log records, expanding database and growing number of mediafiles. Unlike a simple act of cleaning the dumpster like you do on your PC or laptop, it’s more complicated in this case. You’ll have to decide what to sacrifice to get the website working properly again. If you are lucky, your project will be cloud based, so you can get more storage space. but even if that’s the case, it’s not as easy as it may seem.
 

The solution
 

To monitor servers we use Zabbix tool (http://www.zabbix.com). It allows us to monitor almost all necessary factors: amount of free disk space, server load, etc.

In order not to miss crucial updates, we set our server up to send notifications to administrators.

It is also necessary to monitor server logs as devil is in the details: these logs will be the first sign of trouble on the horizon. To monitor efficiently we use a combination of the following tools: ELK (https://www.elastic.co/products/elasticsearch,  https://www.elastic.co/products/logstash, https://www.elastic.co/products/kibana).
 

Jim now has a huge experience in setting up internet based projects. Several years have passed since the initial launch of the website, his small corner shop is now an online hypermarket boasting thousands of clients. If Jim knew all the intricacies he’d meet along the way, he would have saved himself time and money.

0 comments

Restricted HTML

  • Allowed HTML tags: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Lines and paragraphs break automatically.
  • Web page addresses and email addresses turn into links automatically.