Archive for July, 2017

From on-premise through hosted to cloud-based

Posted on: July 19th, 2017 by viktorvarga No Comments

Transformation is important for every business. Some companies develop by following new trends, others see the potential in less-known territories. But how did VCC Live arrive at where we are today?

Contact centre technology has come a long way since the introduction of the first call centres in the 1960s and 1970s. From rows of telephones on operators’ desks, through modernised hosted and on-premise contact centre solutions in the 1990s and 2000s, we are now in the age of the cloud. Today, the variety of services clients can choose from is vast, with the main choice being between conventional on-premise physical data centre options and more flexible cloud-based virtual solutions. But how do service providers decide which service to offer their clients? Here is our story.

 

Saying goodbye to on-premise

When we first established our company, we invested our energy and knowledge in creating a state-of-the-art on-premise service for our customers. We focused on combining cutting edge hardware and technology so that our customers could benefit from a modern, ground-breaking, solution that met their needs. As with every company building something innovative, we were excited by the business opportunities we discovered, and by seeing our solution being utilised by our clients. But, happy as we were, we also could see our clients concerns as they struggled with costs, investment plans, and the impact our solution could have on their budget. And in particular, the look of dismay once they realise that, within an average of 7 years, their modern, state-of-the-art solution would fade and become state-of-the-outdated.

With a variety of our clients struggling with high costs, we realised our service portfolio needed a drastic rethink. We could see that clients “fell hostage” and were burdened with piles of hardware that were becoming obsolete before they could afford a new solution. Investments in hardware were also stopping them from developing and improving their business plans. Small and medium-sized businesses were not being able to afford our kind of solution, and bigger businesses often did not wish to invest in solutions which would become outdated only a few years later. Seeing how our clients were finding it hard to keep up with the constant costs on-premise solutions were bringing, it became clear to us that we needed to provide them with another option. In other words: our clients’ financial struggles were the motivation for us to set out on a new journey.

 

Arriving at a hosted solution

The destination of this new journey was our hosted solution. A hosted solution initially requires the use of hardware and servers just as any on-premise solution does, but the main difference is that the hardware is bought and managed by the hosting provider. This means that handling and operational responsibilities such as internet connections, leased lines, power supplies, security, and maintenance are all provided by the host, removing some of the costs from the client’s shoulders. And in 2008 this was just what we wanted to do – meet our clients’ needs at a lower price.

When first developing our hosting service, we decided to take things further and choose an innovative way of doing business. With extensive experience in telecommunications, we decided to start a new budget-friendly billing model based on a per-minute model, allowing clients to control their costs more effectively. Billing started once an agent logged into the system and stopped once the agent logged out, allowing clients to plan the number of agents and the time they spent working, thus controlling billable time and costs. Small and medium-sized businesses quickly embraced this idea of a usage-based hosted solution, as it allowed them to meet their business needs and operate a high-quality contact centre without expensive hardware investment. After introducing and developing this solution successfully, and with the concept of the ‘cloud’ gaining momentum and popularity in the business world, we realised this method of billing was the basis of a stable and client-friendly business model. Ironically, it was small and medium-sized businesses’ inability to pay that helped us decide to create our fully cloud-based solution for call and contact centres.

 

Building business in the cloud

The huge demand for expert cloud solutions came from small and medium businesses, not because they expected it to become the solution of the future, but mainly because they simply lacked the financial funds needed for expensive on-premise services. With a cloud-based solution, the client does not need to maintain, lease, or rent any hardware – all hardware requirements and investments are handled by the service provider. After entrusting their contact centres to the cloud, organisations can develop their business more effectively, with a lot less effort and costs; the amounts of money previously spent on on-premise solutions can be turned into new business advancements. And once smaller companies began to experience these benefits, larger organisations started to also become interested in cloud solutions.

Today, if anyone asks us about on-premise solutions today, we simply say ‘forget it’. And if you want to know the reason why, we can give you six of them:

  • technical – a cloud solution is built on function, and not a client, level. This means that, technically speaking, all clients use the same platform.
  • operational – using the same platform makes it possible to manage all client systems together as one, and not separately. This means that every system update is immediately available to all clients.
  • development – client requests and requirements can be incorporated into the solution where possible, and released as part of updates available to everyone using the platform. Personalised developments for closed groups of users are also available, of course, but not common.
  • business (capex vs. opex) – forget about big investments and budget planning! Cloud solutions allow flexible business models, with no need to plan resources in advance as they can be decided on the fly, and changed according to your needs as required.
  • cycle of life – the highly-available servers are the responsibility of the service provider, which means clients do not need to deal with the hardware’s cycle of life and its change. As for new software releases and updates they can be automatically released and available to all clients, preventing cloud-based solutions becoming outdated. Ever.
  • security – behind a cloud solution, there is usually one overall security team with an extensive amount of experience in the industry. This team can provide sufficient protection for all clients, as it only needs to meet the security standards of its own cloud solution used by those clients.

When clients face difficulties paying for services, this is of course a reason for concern. Sometimes, however, it can provide the reason for a company to become creative and set out on a new business journey. Eventually, clients’ financial struggles may turn into a new service or product that benefits both them and you.

Software Quality Management at VCC Live

Posted on: July 10th, 2017 by viktorvarga No Comments

To maintain the quality of our software, it is crucial to have an outstanding software testing process. Find out below how we test our products as part of our quality management system.

Every so often we receive feature requests from our clients, that they want to see in our products. Although the majority of these requests are simple, turning a single idea into a fully functional part of the application can be a challenge. This is because with every new feature added, our software gets more and more complex, and even a modest change to the code can have a serious impact on other functions. So, whenever we implement a new feature, we also need to repeatedly test every other function in the application.

 

What is the purpose of software testing?

The purpose of software testing is always the same: to help us find any bugs (errors and defects) in the application before our clients do. Of course, no new feature is ever released without being tested. Whenever a bug is reported by our clients, it is automatically included in our test cases so that the same issue does not occur again. If a major change to the code causes issues at a later stage of the development, we can always do a rollback to the previous version. Our developers and software testers work closely together, so the majority of errors are fixed before they get any further down the development cycle. We also use the TDD concept (also known as Test-driven Development), meaning that we initially create test units, and do the coding afterwards.

 

What are testing methodologies?

Testing methodologies are approaches to testing that embrace every important aspect of the software testing cycle, from the testing of each individual module to the integration of functions into the full ecosystem. Our development process consists of very short iteration cycles, with only a relatively small amount of code written at one time, allowing our testers to continuously test pieces of the software. We carry out:

  • Automated tests
  • Manual tests
  • Alpha and beta tests

So far, more than 2,600 unit, 2,500 functional and 600 integration tests, along with 690,000 asserts and an average 63 releases per month, have made sure that everything in VCC Live’s application is working flawlessly. We are committed to providing a standardized quality of excellence at all times, while evolving VCC Live’s capabilities to continually deliver the best product yet to our clients.

 

What is automated testing and what tests do we run?

Automated software testing –as its name suggests– is a testing process whereby software tools execute tests on a software application. It significantly increases the effectiveness and speed of testing as it requires less human input than manual testing. Automated tests can also be run repeatedly, and literally at anytime. Our automated tests include the following:

  • Unit testing: our automated tools test specific units in the code, to help us to find out if individual functions work properly.
  • Integration testing: automated tools test multiple components in the application and examine how the different features function together. They also examine how other systems interact with our application, and see if data flow is uninterrupted.
  • Functional testing: used to examine if a single function is working as expected or not. If multiple tests of this kind fail, it means that the software does not meet functional requirements and will not function correctly.
  • Stress testing (also known as stability testing): where we test how the software behaves under extreme circumstances by examining if our application can continuously work well within a given period, or can run without interruptions under heavy duress.

 

What is manual software testing?

During manual testing, our testing team manually test the software to find bugs. Our testers utilise most of our products’ features to ensure they are behaving correctly. We run the following type of manual tests:

  • Smoke tests: performed after a software build. Their purpose is to examine if critical functionalities of the program are working as expected. If the main functions of the application are broken, the software testers stop testing the application until the critical bugs are fixed by the developers.
  • Usability tests: these tests allow our testing team to examine how easily and intuitively users can learn to use the software, in another words how usable the product is. They also test the generic user interface, to make sure that control elements on the interface, such as buttons, text fields, captions and lists work properly and perform the tasks they are expected to do (Complex functional test). In addition, during this test the testers also examine GUI-related concerns, including clarity, expected behaviour of certain interactions (clicking on a button brings up a loading animation), and overall look and feel, that otherwise could not be checked by automated tools.

 

What is alpha and beta testing?

Alpha and beta tests are also called user acceptance testings. These take place in the final stages of the testing process.

  • Alpha testing: our software is tested by non-engineers and testers (usually our customer services team). They report found issues to the developers, who fix the bugs before the product moves on to the software for beta testing.
  • Beta testing: performed by end users, its goal being to test the usability of our products in real-life production environments. Once this phase has ended, developers fix any found defects before final release.

Did you know we are looking for BETA testers for our all new VCC Live Chat? If you are interested, then please fill in this form.