Business Archives - Bistec Global Services - Services enabled, digitally!

Blog Category: Business

Agile Testing: It’s a new age of testing

December 7, 2021

Building software can be like creating a work of art sometimes. It requires creativity in design, and plenty of craftsmanship to do well. However, over the years, the methods of testing have evolved greatly, and this short blurb focuses on one of the current favorites, the “𝐀𝐠𝐢𝐥𝐞 𝐭𝐞𝐬𝐭𝐢𝐧𝐠” methodology.

As you probably know, Testing is not a phase, but an ongoing activity. all stakeholders including the developers are part of the agile testing method, which results in shortened feedback time. In agile software development in itself is driven by testing from the early sprints itself.

“Pair testing” is a notable feature in today’s Agile testing method, where a member of the QA team works closely with a member of the development team to iron out the defects found during each sprint. These informal pairs work together as and when required, speeding up the debugging process effectively. To further strengthen its effectiveness, the team collaborates with the end-user to gather feedback after the completion of each sprint cycle.

Among the key benefits of the “whole-team approach” to product development are the enhanced communication and collaboration within the team, the enabling and best use of the various skillsets that are found within the team for the benefit of the project, and perhaps most importantly, making quality the responsibility of every member of the team.

At the best, Agile development is robust and proactive. Agile testing is robust and energetic the relatively mundane, predictable modules that need to be tested can easily be automated. These include the common regression tests, unit tests, high traffic pages, cross-browser tests, and data-driven tests.

However, it is an important responsibility of the QA team to effectively prioritize the tests that can be automated while those such as usability tests, one-off tests, testing the brand new features, and exploratory tests should not be automated as they are specific in nature and cannot be reliably carried out by a machine.

These prioritized automated tests are then used by both the development as well as the QA teams. In addition, the QA team enhances the quality of the delivery by implementing performance tests and security tests as they see fit. At times, these tests would be carried out by specialized members of the QA team.

In the meantime, unit testing is generally carried out exclusively by the development team and the responsibility of the entire product does not lie with the developer or the QAE, but with each and every member of the team. Along with their formal expertise, each team member brings in his or her own individual strengths to the table; all of which are efficiently used to achieve the common goal of a perfect software product that can be implemented at the customer site.

Most importantly, working in collaboration, instead of doing so in rigid isolation, brings about the best in the whole team, in record time. The active participation of a representative from the customer ensures that there are no miscommunications between requirements and products. Good communication among all, from the inception to the completion of the project, ensures that much time and money is saved and a great piece of software is created.

Authored by Dhara Jayasinghe @ BISTEC Global

Calculating Employee Turnover in DAX- In and Out

September 21, 2021

Employee turnover is a term that is widely used in HR analysis. Even though I am not an HR Professional, I know that people define Employee turnover differently.

And I’m going to go with the formula that is frequently found on the internet. (I’m pretty sure that if you learn this one, any other turnover formula will be easier to calculate using DAX 😉)

To start your employee turnover calculation, you should divide the total number of employees left during the given period by your average number of employees in the given period. Then, times the total by 100.

This formula seems pretty easy, right? Even so, calculating this in Power BI is a bit tricky.

Now roll up your sleeves because we are gonna do some serious DAX!😎

The only data we have with us to calculate the employee turnover are Employee ID/Name, Date of Appointment, and Date of Resignation (Whatever you call it in your organization)

To make everything easier, I went step by step breaking down the numerator and the denominator until the only pieces that left are the above data that I have.

I’ll explain using the DAX code itself.

Creating a Date Table

The most important thing that you should have first is the Date Table. Believe me! It is a lifesaver! ❤️ You can simply use the CALENDARAUTO() function to create a Date Table. (There are some other functions too if you want to try them out.)

You’ll need the date table to refer to Employee start date(Date of Appointment) and Employee end date(Date of resignation).https://www.linkedin.com/embeds/publishingEmbed.html?articleId=7641001261280701347

So I am using an Employee Table which consists of Employee ID, Employee Name, Start Date, End Date, and other HR-related data.

Now let’s discuss how we can calculate turnover per month. You can tweak the code a bit to make it annual.

Make sure to add a column that calculates the Month and Year.

Defining Variables

First things first, defining the variables! Put it simply, you need two main variables which you will be used to create other variables.

  • Month Start Date: Calculates the first day of the month

var MonthStartDate = STARTOFMONTH(‘Date'[Date])

  • Month End Date: Calculates the last day of the month

var MonthEndDate = ENDOFMONTH(‘Date'[Date])

Calculating Number of Employees Left During the Month

It’s time to get your hands dirty!

Now that you have Month Start Date and Month End Date in your hands, use the following code to calculate the number of employees during the month.

No alt text provided for this image

💡 You can use Start Date instead of End Date to calculate the number of employees joined during the month. (If you need it in another measure)

Calculating Average Employees in the Month

Here’s the tricky part!

You know that Average Employees in a period is calculated by dividing the sum of Employees as at the beginning of the month and Employees as at the end of the month by 2.

So I calculated these two separately.

Let’s talk about how we can calculate the number of employees at the beginning of the month. And you’ll be able to figure out the second by yourself.

Here’s what I did. I calculated ALL the employees joined until the beginning of the month. Then ALL the employees left until the beginning of the month. And got the difference!

No alt text provided for this image

Done? There you go!

You can do the same thing to calculate the number of employees as at the end of the month.

Calculating Employee Turnover per Month

Now you have all the ingredients. You cut and chopped and mixed it well. Now go! Bake it in the oven. 🤪

Here’s the recipe again, in a nutshell!

No alt text provided for this image

TaDa!!!!!! Now you can use the Month and Year from the Date table and the Employee Turnover from the Employee table in a visualization!

Pretty dope right? 😌

Authored by Maneesha Wickramasinghe @ BISTEC Global

Intelligent Chatbot on Azure

June 19, 2021

Business Problem

Recently one of our customers in Australia came to us to solve a problem that they were facing in the support department. They receive a lot of support requests daily. The solutions for most of these requests are already available in the user manuals, support site, and other materials to which the customers have access. Since many of these requests are easy to fix it’s a struggle to invoice the customers properly. Also, a lot of support staff is needed to meet the demand. Our client wanted us to come up with a solution to this problem.

We looked at the following parameters to suggest a solution.

The channels of support request

The volume of resources (support documents)

The channels of support requests.

  • Microsoft Teams
  • Help desk system
  • Email requests

The volume of the resources

  • Support site
  • User manuals
  • Q&A site

Based on these facts we decided to organize the resources in a manner that a customer would be able to find out the answers using one of the above-mentioned mediums without having to contact the support staff.

Proposed Solution

We proposed an intelligent Chat-Bot that will be deployed on Microsoft Teams and in their Help Desk system. So, the customers would first chat with the bot and the bot would analyze the available resources for possible solutions. If the Chat-Bot failed to respond positively then, it would create a support ticket and assign it to support staff.

Tools

We then looked at the tools that we can use to develop our Chat-Bot. There are plenty of resources out there but, we felt the suite of tools provided by Microsoft are more reliable and easy to use. Microsoft has invested a lot in AI and Natural language processing and has come up with several tools that are ideal to build an intelligent Chat-Bot. Also, it’s easy to test and deploy these tools because of the integration with Azure.

QnA service

QnA service extracts question and answer pairs from the content that you upload. The content can be uploaded as URLs, PDFs, Excel files, SharePoint documents, and many more.

Adaptive cards

Adaptive Card is an open-source toolset that helps apps and services exchange rich snippets of native UI.

Microsoft Teams

Microsoft Teams is a unified communications platform that combines persistent workplace chat, video meetings, file storage, and application integration.

Azure Cosmos DB

Azure Cosmos DB is Microsoft’s globally distributed, multi-model database service. With a click of a button, Cosmos DB enables you to elastically and independently scale throughput and storage across any number of Azure regions worldwide.

Chat Bot Behavior

The ChatBot uses QnA service to query the proposed answers for customer queries. We have used Cosmos DB to store the chat session and related data. It’s deployed to Microsoft Teams as a plugin and is available on the support site as a widget.

Once a user enters the chat room in Microsoft Teams he would be initiating a chat with the Bot. The rest of the flow is as follows,

  • A customer initiates a chat with the bot in Microsoft Teams
  • The customer is greeted and shown a welcome card asking for the name and email address
  • Customer types in his question
  • Chat-Bot responds with an answer or more options to fine-tune the response
  • A customer gives feedback on the answers
  • If Chat-Bot is unable to find the best answer then, A feedback form is displayed
  • A customer fills in the feedback form
  • Chat-Bot creates a support ticket with all the information
  • Send the link to the customer

Implementation

We first created the repository using all the documents, manuals, and URLs. The QnA service allows us to import these different types of resources and generates question and answer pairs. Also, we can extract multipart answers as well so that when a customer asks a question it will be able to refine the answers by giving options.

QnA Maker

We first set up the knowledge base in the QnA maker. Go to https://www.qnamaker.ai/ and click on Create a knowledge base. You must go through 5 steps to set up the knowledge base.

  • Create QnA service in Microsoft Azure
  • Connect your QnA service to KB
  • Name your KB
  • Populate your KB
  • Create your KB
  • Publish your KB

Once the QnA maker is set up it gives us an interactive window to test the chat. Also, we can build a tool to train our Bot using the Train API. In the process of setting up QnA, we need to set up a QnA service in Azure as well. This is an app service where the Bot will be deployed and hosted.

Cosmos DB

Go to the Azure dashboard and set up Cosmos DB instance.

appsettings.json

Bot app is a .Net Core Web API project. Hence, it has the same structure as a Web API Project. The Bot client communicates using JSON.

The request is received by the BotController and passed over to Microsoft.Bot.Builder.IBot instance. This configuration is added in the startup.cs as follows,

services.AddTransient<​IBot, QnABot.Bots.QnABot>();

The IBot instance has three delegates,

  • OnMembersAddedAsync
  • OnTurnAsync
  • OnMessageActivityAsync

OnMembersAddedAsync

This delegate is triggered when a new chat window is created. This is the delegate we use to send a welcome notification to the user.

OnTurnAsync

When implemented in a bot, handles an incoming activity.

OnMessageActivityAsync

This is the delegate that is triggered when a message is sent by the client to the bot.

In our application, we identified 4 chat states which are,

  • User-information
  • Chat-information
  • User-feedback
  • Support-ticket

User-information

This is the initial state. User information is when we capture the user’s name and email and show a welcome message.

Chat-information

Chat information is when we capture user’s requests and send the data to the QnA service. The QnA service would return either response or prompts. This goes on until the user receives the answer he is looking for or he decides to create a support ticket.

User-feedback

User feedback is when we capture whether the user’s request was answered properly or whether a support ticket needs to be created. When the support ticket is created we log the entire chat history in the ticket.

Support-ticket

The support ticket is the step of creating a support ticket in the ticketing system( https://www.servicenow.com/) based on user feedback.

Source Code

Source code can be downloaded from here. Once you download the source code you should do the following.

  • Take a copy of appsettings_dev.json
  • Rename appsettings_dev.json to appsettings.json

#Chatbots #Azure #Luis #Microsoft Bot Framework

Authored by Pragash Rajarathnam @ BISTEC Global

Why LinkedIn should be your #1 marketing platform

June 19, 2021

LinkedIn is the #1 platform for Lead Generation according to DemandWave state of B2B Digital Marketing Report in both 2016 & 2017

If LinkedIn was a country, it is only second to China & India. With over 560 million users, it stands 3rd in the list well ahead of the USA.

LinkedIn members come from 200 countries & 18 million companies. So the power of the LinkedIn platform is enormous.

In 2016 Microsoft purchased LinkedIn for 26.2 billion USD in cash. 

Beyond the numbers, let’s look at why LinkedIn should be your main marketing platform!

LinkedIn as a marketing platform

LinkedIn has been traditionally thought of as a platform to maintain a professional profile. Although this is true even today, B2B Digital Marketing Report identifies LinkedIn as the #1 platform for lead generation both in 2016 & 2017.

Let’s look at why LinkedIn has gained its status as the #1 marketing platform.

If you are looking to enhance your marketing and improve lead generation, LinkedIn is THE place to go.

What benefits you get out of LinkedIn as a marketing platform?

The two words answer is “cost-effectiveness”.

It is said that around 10% of the total company budget is going to marketing. This money can go a total waste unless planned correctly. Below are five reasons why you should choose LinkedIn to spent most of your marketing budget.

  1. LinkedIn is a focused platform: You will not somebody’s vacation pictures in LinkedIn. By design LinkedIn downgrades not relevant content. Therefore your marketing messages and content has a comparatively much greater chance of reaching the target audience compared with other digital marketing platforms.
  2. Free marketing: LinkedIn marketing is not depends on paid ads & content. You can do posts, publish articles, make comments, send direct messages, etc. without paying a single cent. These non-paid activities will give you a huge milage in terms of lead generation & brand awareness.
  3. Target marketing: In terms of paid advertisements, LinkedIn has a powerful campaign manager & where you can use it to narrow down your target audience. It provides many parameters to target the exact audience you want compared to traditional marketing.
  4. Complete ecosystem: LinkedIn comes with wide array of tools which can be used to market product or services. For example, you can use company page or showcase pages to provide marketing content to its 563 million users. LinkedIn introduces tools such as LinkedIn formsplugins, etc. to make the lead generation efficient. Further many third party companies have developed tools on top of LinkedIn. Further, LinkedIn creates lot of content by themselves to help businesses to grow. Example is LinkedIn for small businesses.
  5. LinkedIn communities & groups: LinkedIn is having a rich & vibrant communities & groups. You can use these groups to further narrow down your marketing segments and activities to have a better hit. LinkedIn official and unofficial community gatherings provides opportunities for face to face marketing.

Summary

You have a higher chance of connecting to a person whom you don’t know on LinkedIn. The chance of an unknown professional in the USA accepting your connection request is higher in LinkedIn compared to Facebook or any other social marketing platform.

Also the % digital marketing spending will take over the traditional marketing within the next 5 years. companies will invest heavily in digital marketing in the coming years.

If you want to be at the helm of this trend and to get the best value for the money you spent in marketing, you need to make a move to LinkedIn today.

You can download our white paper to understand how you should LinkedIn for your marketing activities. Please fill in the form. At #bistec, we understand this and would love to help you in your journey.

 
Let's talk

We love connecting

We are here to help and support you.

If you believe that we can help you or your businesses requirements - do feel free to drop your details here and don’t hesitate to give us a ring.

Connecting with us on LinkedIn works best.

    • Marlon De Cruz
    • Marlon

      Director

      • |
    • Johann De Cruz
    • Johann

      CEO | Co-Founder

      • |