Open In Colab

Project: Analysis on the 'REMOTE WORKING SURVEY' Dataset¶



Objective of this Analysis:¶


The COVID-19 panedemic has introduced a new dimension of working environment for professionals working in all industry. This change is mostly evident among the people who sit in front of the computer most of the time, have professional meetings in the working hours and might not have to engage into heavy physical labour in their workplace.

This practice has changed people's daily working habit. In terms of pros and cons, I tried to analyse these factors from both of the employees and the employer's point-of-view.

With the upcoming Financial uncertainity; factors like Recession, Recruitment, Team Management, Promotions- etc are some of the factors that the Employers have to keep mind in while planning for the future ahead.



Understand the Data:¶

Access and Explore Data:¶

I found the data set here. As it is mentioned here that- "Survey results of 1,500 remote workers from the Australian state of New South Wales, taken in August-September 2020 and March-April 2021, which aimed to capture the shift in remote work experiences and attitudes during different stages of the COVID-19 pandemic and gain insights on its long term implications."

The record has 2 datasets which are surveys conducted on 2020 and 2021. I considered 2021 to be the recent Data that will more relevant in the context with 2022.

As mentioned in the @MavenAnalytics Website, the Recommended Analysis can be the questions as-

  • How has the COVID pandemic impacted the amount of work done remotely? What can be expected post-pandemic?
  • Does working remotely positively impact productivity? Are there any other benefits?
  • How does an employees use of time differ when working remotely vs on-site?
  • What are the biggest barriers to overcome if remote work becomes the norm in the future?

We will try to find out answers to these questions.



Data Processing:¶

Data Manipulation, Cleaning and Defining:¶

The Dataset is the record of surveys conducted on 2020 and 2021. I considered the 2021 data.

  • The 2021 Dataset had 81 Columns. The header of the dataset had the Questions asked to the participants, which was diffcult to read and write during programing. So, I renamed all the columns. The details on the variable definition can be found here.
  • A column named AGE was inserted in the context of calculating the age of the participants in 2021.
  • The cleaned and processed dataset can be found here.
  • There wasn't any missing data, but the participants who worked in Managerial posts had some questions answered and the rest were left blank. I took the subset of those participants to remove the blank cells and named it as- 2021_Managers Survey.
  • For further analysis, I figured out that the barriers for remote work in 2020 would be required. I subsetted the data of 2020 to find the factors that were barriers for the employees, and named it 2020_Barriers_Data.


Analysis of the "Remote-Working-Survey" Dataset:¶


We will try to make some interpretation throughout this analysis with Charts and Tables from the Datasets mentioned above for analysis, using Python.

  • Erase everything in record to avoid overlapping, if any-
In [1]:
%reset -f
  • Mount the Google Drive to access the Datasets-
In [2]:
from google.colab import drive
drive.mount('/content/gdrive')
Mounted at /content/gdrive
  • Import the necessary Libraires-
In [3]:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
  • Supress Warnings-
In [4]:
warnings.filterwarnings("ignore")
  • Import the Datasets-
In [5]:
manager = pd.read_csv('gdrive/My Drive/Projects/Write a blog post/2021_Managers_Survey.csv')
employee = pd.read_csv('gdrive/My Drive/Projects/Write a blog post/2021_Employee and Manager Data.csv')
barrier = pd.read_csv('gdrive/My Drive/Projects/Write a blog post/2020_Barriers_Data.csv')
  • Check the Dataset-
In [6]:
employee.head()
# manager.head()
# barrier.head()
Out[6]:
ID Year of Birth Age Gender Employment Duration Industry Occupation Size of Employer Company Size of Household Residency Area ... Opinion on Remote Employee Retention Opinion on Remote Employee Recruitment Opinion on Remote Team Work Opinion on monitoring Remote Team Opinion on Remote Poor Performers Opinion on Preparation for Remote Employee Management Opinion on Preparation for Focus on Work Opinion on Finding Employees Manager's Productivity on Remote Employee's Productivity on Remote
0 1 1976 45 Male More than 5 years Other Services Professionals - ICT Professionals More than 200 Couple with dependent children Metro ... NaN NaN NaN NaN NaN NaN NaN NaN I’m 50% more productive when working remotely ... NaN
1 2 1971 50 Male More than 5 years Construction Professionals - ICT Professionals More than 200 Couple with no dependent children Metro ... NaN NaN NaN NaN NaN NaN NaN NaN I’m 50% more productive when working remotely ... NaN
2 3 1978 43 Female Between 6 and 12 months Financial and Insurance Professionals - Business, Human Resource and M... More than 200 Single person Metro ... NaN NaN NaN NaN NaN NaN NaN NaN My productivity is about same when I work remo... NaN
3 4 1962 59 Female Between 1 and 5 years Health Care and Social Assistance Professionals - Health Professionals Between 20 and 199 One parent family with dependent children Regional ... Neither agree nor disagree Neither agree nor disagree Neither agree nor disagree Neither agree nor disagree Neither agree nor disagree Neither agree nor disagree Neither agree nor disagree Neither agree nor disagree I’m 50% more productive when working remotely ... I’m 50% more productive when working remotely ...
4 5 1974 47 Male More than 5 years Financial and Insurance Managers - Specialist Managers More than 200 Couple with dependent children Regional ... NaN NaN NaN NaN NaN NaN NaN NaN I’m 20% more productive when working remotely NaN

5 rows × 82 columns

  • Get some Idea on the variables in the 'Employee' Dataset-
In [7]:
employee.columns
Out[7]:
Index(['ID', 'Year of Birth', 'Age', 'Gender', 'Employment Duration',
       'Industry', 'Occupation', 'Size of Employer Company',
       'Size of Household', 'Residency Area',
       'Time Spent Working Remotely Last Quarter of Last Year',
       'Preferred Time Spent Working Remotely Last Quarter of Last Year',
       'Time Spent Working Remotely in 2021',
       'Preferred Time Spent Working Remotely in 2021',
       'Preferred Time Spent Working Remotely in Future',
       'Employer's Policy change on Remote Work', '1 day Hybrid last 6 months',
       'Duration of Hybrid', 'Preferences towards Hybrid',
       'Employer's Policy on Hybrid', 'Employer's Time Preference on Onsite',
       'Attitude on Employer's Preferences',
       'Liberty to make the Choice on Decision',
       'Liberty to make the Choice on Days', 'Direct Manager's role',
       'Attitude on Employer's Decision on Remote Work',
       'Attitude on Employer's Encouragement',
       'Attitude on Employer's Preparedness', 'Attitude of Other Employees ',
       'Ease to get Permission on Remote Work',
       'Ease to Collaborate with Colleagues', 'Effect of Promotion',
       'Attitude on Taking Breaks', 'Impact on Employer',
       'Most Supportive Person(s) on Remote Work',
       'Expected Employer's Encouragement Post Covid',
       'Expected Employer's Support Post Covid',
       'Attitude on Choice on Remote Post Covid',
       'Intended Time to Commute Onsite', 'Intended Time for Work Onsite',
       'Intended Time for Chores Onsite',
       'Intended Time for Personal Life Onsite',
       'Intended Time for Sleep Onsite', 'Intended Time to Commute Remote',
       'Intended Time for Work Remote', 'Intended Time for Chores Remote',
       'Intended Time for Personal Life Remote',
       'Intended Time for Sleep Remote', 'Attitude on pay cut',
       'Agreed percentage on Pay cut', 'Barrier of Caring Responsibilities',
       'Barrier of Connectivity', 'Barrier from Organizations Software System',
       'Barrier on Collaboration', 'Barrier of poor management',
       'Barrier of IT Equipment', 'Barrier of Feeling Isolated',
       'Barrier of Extra Cost', 'Barrier of Cyber Security',
       'Barrier of task cannot be done remotely',
       'Barrier about working Space', 'Barrier on Motivation',
       'Barrier on Management encouragement on Remote',
       'Barrier of my living situation', 'Barrier of Remote Working Skills',
       'Barrier of Health and Safety', 'Positivity on Remote Work',
       'Activeness on Remote Work', 'Attitute towards Team Members',
       'Management role of Participant', 'Remote Employees under Manager ',
       'Manager's discretion towards Remote ',
       'Opinion on Remote Employee Retention',
       'Opinion on Remote Employee Recruitment', 'Opinion on Remote Team Work',
       'Opinion on monitoring Remote Team',
       'Opinion on Remote Poor Performers',
       'Opinion on Preparation for Remote Employee Management',
       'Opinion on Preparation for Focus on Work',
       'Opinion on Finding Employees', 'Manager's Productivity on Remote',
       'Employee's Productivity on Remote'],
      dtype='object')

We will analyze the Dataset according to the characteristics we are observing in the participants. From my observation, I would like to segment the Columns/Variables as-

  1. Demographic Features of the Participants,
  2. Professional Features of the Participants,
  3. Participant's Response on Remote, Onsite and Hybrid,
  4. Expectations on Time Management in a day in Remote vs Onsite Scenarios,
  5. Barriers working on Remote Environment,
  6. Participant's Attitude towards Remote Work,
  7. What Does the Managers think about Remote Working Environment.

  • Write a Function to generate Distribution tables for the variables-

In this analysis, I will need percentage distribution for several variables to check the maximum occurrances of the attributes. This function will be applied on several columns of the dataset.

For that reason, I would like to introduce a function- make_table_for to generate distibution table for multiple variables in the dataset.

In [8]:
# Helper function for side-by-side/clustered bar charts
def make_clustered_barchart(data1, data2, labels, title, xlabel, ylabel):
    fig, ax = plt.subplots(figsize=(10, 6))
    width = 0.4
    x = np.arange(len(data1.value_counts().index))

    ax.bar(x - width/2, data1.value_counts(sort=False), width, label=labels[0], color='blue', alpha=0.6)
    ax.bar(x + width/2, data2.value_counts(sort=False), width, label=labels[1], color='orange', alpha=0.6)

    ax.set_xticks(x)
    ax.set_xticklabels(data1.value_counts(sort=False).index, rotation=90)
    ax.set_title(title)
    ax.set_xlabel(xlabel)
    ax.set_ylabel(ylabel)
    ax.legend()
    plt.show()
In [9]:
# Helper function for Making Table
def make_table_for(x):
  '''
returns a table that contains frequency distribution sorted in descending order by frequency

input:
      any pandas Series, here I applied for the columns of the dataset.
output:
      a pandas crosstable containing the percentage distribution of the variable sorted in descending order
  '''
  tab = pd.crosstab(index= x ,columns='Percentage',normalize='columns').sort_values('Percentage', ascending=False)
  tab['Percentage'] = (tab['Percentage'] * 100).map('{:.2f}%'.format)
  return(tab)

1.Demographic Features of the Participants¶

Gender¶

We can observe the distribution of participants by Gender with a Bar plot.

In [11]:
# Features of the Participants
plt.figure(figsize=(12, 6))
sns.countplot(data=employee, x='Gender', order=employee['Gender'].value_counts().index, palette='pastel')
plt.title("Gender Distribution")
plt.xlabel("Gender")
plt.ylabel("Count")
plt.xticks(rotation=90)
plt.show()
No description has been provided for this image
In [12]:
make_table_for(employee['Gender'])
Out[12]:
col_0 Percentage
Gender
Female 51.92%
Male 47.82%
I would rather not say 0.20%
Other 0.07%

Observation: We can conclude that the ratio of Male and Female Participants are almost equal.


Age¶

We can visualize the Age of the participants with a Histogram. For detailed analysis I used this visualization to observe incase there is any imbalance in age distribution in participants between Employee and Managerial posts.

In [13]:
plt.figure(figsize=(12, 6))
sns.countplot(data=employee, x='Age', hue='Management role of Participant', palette='muted')
plt.title("Age Distribution by Management Role")
plt.xlabel("Age")
plt.ylabel("Count")
plt.xticks(rotation=90)
plt.show()
No description has been provided for this image
In [14]:
employee['Age'].mean()
Out[14]:
41.773809523809526

Observation: Average age of the participants are 41-42 years, The age distribution seems well balanced as if the participant being Manager or not.


Size of Household¶

The Size of Household implies that how many family members live in the household. We can visualize the Size of Family from a histogram for Metro and Regional dwellers.

In [15]:
plt.figure(figsize=(12, 6))
sns.countplot(data=employee, x='Size of Household', hue='Residency Area', order=employee['Size of Household'].value_counts().index, palette='coolwarm')
plt.title("Size of Household by Residency Area")
plt.xlabel("Size of Household")
plt.ylabel("Count")
plt.xticks(rotation=90)
plt.show()
No description has been provided for this image
In [16]:
make_table_for(employee['Size of Household'])
Out[16]:
col_0 Percentage
Size of Household
Couple with dependent children 36.90%
Couple with no dependent children 27.65%
Single person 16.73%
One parent family with dependent children 6.94%
Group household 4.83%
Multiple family household 3.57%
Other one family household 3.37%
In [17]:
make_table_for(employee['Residency Area'])
Out[17]:
col_0 Percentage
Residency Area
Metro 76.65%
Regional 23.35%

Observation: From the interpretation above, we can see that majority participants are Couple with dependent children and 76% the participants live in Metro area.


2.Professional Features of the Participants:¶

Industry¶

To find out the Industry where most of the participants work, I represented the data with a bar chart and a table containing the percentage distribution.

In [18]:
plt.figure(figsize=(10, 8))
sns.countplot(data=employee, y='Industry', order=employee['Industry'].value_counts().index, palette='viridis')
plt.title("Industry Distribution")
plt.ylabel("Industry")
plt.xlabel("Count")
plt.xticks(rotation=90)
plt.show()
No description has been provided for this image
In [19]:
make_table_for(employee['Industry']).head(10)
Out[19]:
col_0 Percentage
Industry
Financial and Insurance 13.49%
Professional, Scientific and Technical 10.78%
Education and Training 9.92%
Information Media and Telecommunications 9.85%
Other Services 8.73%
Health Care and Social Assistance 7.67%
Retail Trade 5.69%
Construction 4.70%
Administrative and Support 4.63%
Manufacturing 4.43%

Observation: From the results shown above, we see that most of the participants work in the Financial and Insurance industry. The next highest occurances are the 'Professional, Scientific and Technical', 'Education and Training' and 'Information Media and Telecommunications'. To be noticed, all of these professions doesn't require much of physical activeness and can be done in a Remote setup with the help of Computers.


Occupation¶

A sorted Barchart and a frequency percentage distribution can represent the Occupation of the participants.

In [20]:
plt.figure(figsize=(10, 8))
sns.countplot(data=employee, y='Occupation', order=employee['Occupation'].value_counts().index, palette='cubehelix')
plt.title("Occupation Distribution")
plt.ylabel("Occupation")
plt.xlabel("Count")
plt.xticks(rotation=90)
plt.show()
No description has been provided for this image
In [21]:
make_table_for(employee['Occupation']).head(20)
Out[21]:
col_0 Percentage
Occupation
Managers - Specialist Managers 15.87%
Managers - Chief Executives, General Managers and Legislators 12.63%
Professionals - Business, Human Resource and Marketing Professionals 10.98%
Professionals - ICT Professionals 7.14%
Professionals - Education Professionals 6.81%
Professionals - Design, Engineering, Science and Transport Professionals 5.03%
Clerical and administrative workers - General Clerical Workers 3.77%
Professionals - Health Professionals 3.70%
Clerical and administrative workers - Clerical and Office Support Workers 3.11%
Professionals - Legal, Social and Welfare Professionals 3.04%
Clerical and administrative workers - Other Clerical and Administrative Workers 3.04%
Managers - Hospitality, Retail and Service Managers 2.98%
Clerical and administrative workers - Office Managers and Program Administrators 2.45%
Sales workers - Sales Representatives and Agents 2.05%
Professionals - Arts and Media Professionals 1.98%
Clerical and administrative workers - Personal Assistants and Secretaries 1.46%
Technicians and trades workers - Engineering, ICT and Science Technicians 1.19%
Sales workers - Sales Assistants and Salespersons 1.12%
Technicians and trades workers - Construction Trades Workers 1.06%
Community and personal service workers - Health and Welfare Support Workers 1.06%

Participants in Management Positions¶

In [22]:
plt.figure(figsize=(8, 8))
employee['Management role of Participant'].value_counts().plot.pie(autopct='%1.1f%%', colors=['#ff9999','#66b3ff'], startangle=90)
plt.title("Management Role of Participants")
plt.ylabel("")
plt.show()
No description has been provided for this image
In [23]:
make_table_for(employee['Management role of Participant'])
Out[23]:
col_0 Percentage
Management role of Participant
No 53.90%
Yes 46.10%

Observation: We can see from the bar chart and the tables that- participants in Managerial posts and Non-mamagerial posts are almost equal.


Employment Duration¶

In [24]:
plt.figure(figsize=(8, 8))
employee['Employment Duration'].value_counts().plot.pie(autopct='%1.1f%%', colors=['#b3fff2','#c2f0c2','#ffb3e6'], startangle=90)
plt.title("Employment Duration")
plt.ylabel("")
plt.show()
No description has been provided for this image
In [25]:
make_table_for(employee['Employment Duration'])
Out[25]:
col_0 Percentage
Employment Duration
More than 5 years 47.42%
Between 1 and 5 years 40.87%
Between 6 and 12 months 11.71%

Observation: We see that nearly 87% of the employees are experinced working more than 1 years at 2021.



3.Participant's Response on Remote, Onsite and Hybrid:¶

Employer's Policy change on Remote after COVID:¶

In this part, the participants were asked whether their employers changed their working environment into remote afte COVID.

In [26]:
make_table_for(employee["Employer's Policy change on Remote Work"]) # Caution on the apostrophe, use double quote
Out[26]:
col_0 Percentage
Employer's Policy change on Remote Work
Yes 72.95%
No 27.05%

Observation: We see that nearly 72% employers switched to remote environment after Covid started.

Atleast 1 day Hybrid Experince last 6 months-¶

In this question, the participants were asked whether they had any experince working atleast 1 day working in office, and remote.

In [27]:
make_table_for(employee["1 day Hybrid last 6 months"])
Out[27]:
col_0 Percentage
1 day Hybrid last 6 months
Yes 60.91%
No 39.09%

Observation: We see that 60% of the participants had experince working in hybrid in last 6 months.

Time Spent Working Remotely in 2021 vs Preferred Time 2021 vs Preferred Time in Future¶

I had to compare 3 facts here-

  • Time Spent Working remotely in 2021,
  • Preferred Time Spent Working Remotely in 2021 and
  • Preferred Time Spent Working Remotely in future.

For this comparison, I choose barplot to compare the factors.

In [28]:
make_clustered_barchart(
    employee["Time Spent Working Remotely in 2021"],
    employee["Preferred Time Spent Working Remotely in 2021"],
    labels=["Remote in 2021", "Preferred Remote in 2021"],
    title="Remote Work Comparison",
    xlabel="Time Spent (Hours)",
    ylabel="Frequency"
)
No description has been provided for this image

Observation: We see from the observation that-most of the participants are working 100% remotely in 2021. Maximum participants prefers to work 100% remote in 2021 and future too.

The second highest are the participants who prefer to work 50% of their time remote working in 2021 and future.

Duration of Working Hybrid vs Preferred time towards Hybrid:¶

The participants were asked that how much time they prefer towards hybrid. The comparison Bar Chart in based on 3 time points-

  • Present Hybrid Environment,
  • Preferences towards hybrid and
  • What the Employer wants.
In [29]:
make_clustered_barchart(
    employee["Duration of Hybrid"],
    employee["Preferences towards Hybrid"],
    labels=["Present Duration of Hybrid", "Preferences towards Hybrid in Future"],
    title="Hybrid Work Comparison",
    xlabel="Time Spent (Hours)",
    ylabel="Frequency"
)
No description has been provided for this image

Observation: The figure has some interesting findings. Maximum participants work less than 10% Hybrid and the prefer same so. But looking into their Employer's opinon (green bar) the employers prefer more that 10% time for hybrid, mostly 20% to 50%.


Paricipant's Reponses on Some Questions to Understand their Attitude towards Remote Working:¶

Following are the answers to some questions that the participants were asked to understand their attitude towards Remote Work Environment.

Employer's Remote Working Policy Suits Him / Her :¶

In [30]:
make_table_for(employee["Attitude on Employer's Preferences"])
Out[30]:
col_0 Percentage
Attitude on Employer's Preferences
Strongly agree 34.79%
Somewhat agree 33.66%
Neither agree nor disagree 18.32%
Somewhat disagree 7.47%
Strongly disagree 5.75%

Liberty to decide the working time on Remote :¶

In [31]:
make_table_for(employee["Liberty to make the Choice on Decision"])
Out[31]:
col_0 Percentage
Liberty to make the Choice on Decision
Somewhat agree 30.49%
Strongly agree 26.39%
Neither agree nor disagree 16.14%
Strongly disagree 13.76%
Somewhat disagree 13.23%

Liberty to Choice on Days on Remote :¶

In [32]:
make_table_for(employee["Liberty to make the Choice on Days"])
Out[32]:
col_0 Percentage
Liberty to make the Choice on Days
Strongly agree 32.41%
Somewhat agree 31.68%
Neither agree nor disagree 13.76%
Strongly disagree 11.97%
Somewhat disagree 10.19%

Direct Manager's role on discretion on Deciding Remote or not :¶

In [33]:
make_table_for(employee["Direct Manager's role"])
Out[33]:
col_0 Percentage
Direct Manager's role
Somewhat agree 34.79%
Strongly agree 30.42%
Neither agree nor disagree 18.25%
Somewhat disagree 8.86%
Strongly disagree 7.67%

Feeling about your employer’s remote working policy :¶

In [34]:
make_table_for(employee["Attitude on Employer's Decision on Remote Work"])
Out[34]:
col_0 Percentage
Attitude on Employer's Decision on Remote Work
Strongly Positive 35.65%
Somewhat Positive 33.86%
Neither positive nor negative 19.64%
Somewhat Negative 7.14%
Strongly Negative 3.70%

My Organisation encouraged people to work remotely:¶

In [35]:
make_table_for(employee["Attitude on Employer's Encouragement"])
Out[35]:
col_0 Percentage
Attitude on Employer's Encouragement
Strongly agree 31.61%
Somewhat agree 31.15%
Neither agree nor disagree 20.83%
Somewhat disagree 9.19%
Strongly disagree 7.21%

Employer's Preparedness for Remote Work Environment:¶

In [36]:
make_table_for(employee["Attitude on Employer's Preparedness"])
Out[36]:
col_0 Percentage
Attitude on Employer's Preparedness
Somewhat agree 37.43%
Strongly agree 31.68%
Neither agree nor disagree 16.01%
Somewhat disagree 9.59%
Strongly disagree 5.29%

Other people in my organisation to work remotely:¶

In [37]:
make_table_for(employee["Attitude of Other Employees "]) # Caution about the space after Employees
Out[37]:
col_0 Percentage
Attitude of Other Employees
Somewhat agree 36.71%
Strongly agree 30.36%
Neither agree nor disagree 15.54%
Somewhat disagree 10.25%
Strongly disagree 7.14%

Ease to get Permission on Remote Work:¶

In [38]:
make_table_for(employee["Ease to get Permission on Remote Work"])
Out[38]:
col_0 Percentage
Ease to get Permission on Remote Work
Strongly agree 36.51%
Somewhat agree 32.87%
Neither agree nor disagree 17.86%
Somewhat disagree 7.14%
Strongly disagree 5.62%

Ease to Collaborate with Colleagues on Remote Work:¶

In [39]:
make_table_for(employee["Ease to Collaborate with Colleagues"])
Out[39]:
col_0 Percentage
Ease to Collaborate with Colleagues
Somewhat agree 39.02%
Strongly agree 30.75%
Neither agree nor disagree 15.94%
Somewhat disagree 10.91%
Strongly disagree 3.37%

Effect on Promotion on Remote Work:¶

In [40]:
make_table_for(employee["Effect of Promotion"])
Out[40]:
col_0 Percentage
Effect of Promotion
Neither agree nor disagree 33.80%
Somewhat disagree 20.44%
Somewhat agree 18.45%
Strongly disagree 17.46%
Strongly agree 9.85%

I take more regular breaks on Remote Work:¶

In [41]:
make_table_for(employee["Attitude on Taking Breaks"])
Out[41]:
col_0 Percentage
Attitude on Taking Breaks
Somewhat agree 33.66%
Neither agree nor disagree 22.82%
Strongly agree 18.12%
Somewhat disagree 16.34%
Strongly disagree 9.06%

Impact of Remote Work on Employer:¶

In [42]:
make_table_for(employee["Impact on Employer"])
Out[42]:
col_0 Percentage
Impact on Employer
Somewhat Positive 38.49%
Strongly Positive 29.43%
Neither positive nor negative 19.71%
Somewhat Negative 9.92%
Strongly Negative 2.45%

Most Supportive Person at Workplace on Remote Work:¶

In [43]:
make_table_for(employee["Most Supportive Person(s) on Remote Work"])
Out[43]:
col_0 Percentage
Most Supportive Person(s) on Remote Work
They are about the same 58.13%
My direct manger(s) 25.40%
Senior leadership 16.47%

My employer would encourage more remote working post COVID:¶

In [44]:
make_table_for(employee["Expected Employer's Encouragement Post Covid"])
Out[44]:
col_0 Percentage
Expected Employer's Encouragement Post Covid
Neither unlikely or likely 27.12%
Somewhat likely 24.47%
Somewhat unlikely 18.52%
Very likely 15.81%
Very unlikely 14.09%

My employer would make changes to support remote working post COVID:¶

In [45]:
make_table_for(employee["Expected Employer's Support Post Covid"])
Out[45]:
col_0 Percentage
Expected Employer's Support Post Covid
Somewhat likely 31.68%
Neither unlikely or likely 28.04%
Very likely 16.53%
Somewhat unlikely 12.10%
Very unlikely 11.64%

I would have more choice about whether I work remotely:¶

In [46]:
make_table_for(employee["Attitude on Choice on Remote Post Covid"])
Out[46]:
col_0 Percentage
Attitude on Choice on Remote Post Covid
Somewhat likely 30.09%
Neither unlikely or likely 25.40%
Very likely 16.80%
Somewhat unlikely 14.68%
Very unlikely 13.03%

Observation: From the comparison tables we can see above, we find that-

  • Participants 'Strongly Agree' with the Remote working environment suits them well, they had the liberty to make choice of the working days, the employers were very positive and encouraging about remote working after COVID.
  • However, they don't have any strong opinion on promotion or unsure about employer's attitude to encourage remote working in future/ post COVID.

Agreeing a Pay Cut in return of Option to work remotely:¶

The partipants were asked whether they agree on a pay cut in return to let them work remotely.

In [47]:
plt.figure(figsize=(10, 6))  # Adjust figure size as needed
sns.countplot(data=employee, x='Agreed percentage on Pay cut', hue='Management role of Participant', order=employee['Agreed percentage on Pay cut'].value_counts().index, palette='pastel')
plt.title('Agreed Percentage on Pay Cut by Management Role')
plt.xlabel('Count')
plt.ylabel('Agreed Percentage on Pay Cut')
plt.xticks(rotation='vertical')  # Rotate x-axis labels vertically
plt.show()
No description has been provided for this image
In [48]:
make_table_for(employee["Attitude on pay cut"])
Out[48]:
col_0 Percentage
Attitude on pay cut
No 67.92%
Yes 32.08%

Observation: 67% of the participants didn't support the idea of pay cut. Also, the rest who agreed, doesn't want to see more than 12% pay cut.



4.Expectations on Time Management in a day in Remote vs Onsite Scenarios:¶

In this phase of the survey, the participants were asked about their intended daily distribution of time in Remote and Onsite environment. This will help to get an idea how they intend to balance their personal and professional life.

Intended Hours to Spend Preparing for work and commuting:¶

In [49]:
plt.figure(figsize=(10, 6))

sns.histplot(data=employee, x="Intended Time to Commute Onsite", label="Onsite", color="skyblue", alpha=0.75)  # Changed color to skyblue
sns.histplot(data=employee, x="Intended Time to Commute Remote", label="Remote", color="coral", alpha=0.75)    # Changed color to coral

plt.title("Intended Hours to Spend Preparing for work and commuting")
plt.xlabel("Intended Time to Commute")
plt.ylabel("Frequency")
plt.legend()
plt.show()
No description has been provided for this image

Intended Hours to Spend Working:¶

In [53]:
plt.figure(figsize=(10, 6))  # Adjust figure size as needed

# Create the histogram with hue for grouping and specified opacity
sns.histplot(data=employee, x="Intended Time for Work Onsite", label="Onsite", color="skyblue", alpha=0.75)
sns.histplot(data=employee, x="Intended Time for Work Remote", label="Remote", color="coral", alpha=0.75)

plt.title("Intended Hours to Spend Working")
plt.xlabel("Intended Time for Work")
plt.ylabel("Frequency")
plt.legend()
plt.show()
No description has been provided for this image

Intended Hours to Spend For Chores:¶

In [54]:
plt.figure(figsize=(10, 6))  # Adjust figure size as needed

# Create the histogram with hue for grouping and specified colors and opacity
sns.histplot(data=employee, x="Intended Time for Chores Onsite", label="Onsite", color="skyblue", alpha=0.75)  # Changed color to skyblue
sns.histplot(data=employee, x="Intended Time for Chores Remote", label="Remote", color="coral", alpha=0.75)    # Changed color to coral

plt.title("Intended Hours to Spend For Chores")
plt.xlabel("Intended Time for Chores")
plt.ylabel("Frequency")
plt.legend()
plt.show()
No description has been provided for this image

Intended Hours to Spend For Personal Life:¶

In [ ]:
fig_personal = go.Figure()
fig_personal.add_trace(go.Histogram(name="Onsite",x= employee["Intended Time for Personal Life Onsite"]))
fig_personal.add_trace(go.Histogram(name="Remote",x= employee["Intended Time for Personal Life Remote"]))
fig_personal.update_layout(barmode='group')
fig_personal.update_traces(opacity=0.75,showlegend = True)
fig_personal.show()
In [55]:
plt.figure(figsize=(10, 6))  # Adjust figure size as needed

# Create the histogram with hue for grouping and specified colors and opacity
sns.histplot(data=employee, x="Intended Time for Personal Life Onsite", label="Onsite", color="skyblue", alpha=0.75)
sns.histplot(data=employee, x="Intended Time for Personal Life Remote", label="Remote", color="coral", alpha=0.75)

plt.title("Intended Hours to Spend For Personal Life")
plt.xlabel("Intended Time for Personal Life")
plt.ylabel("Frequency")
plt.legend()
plt.show()
No description has been provided for this image

Intended Hours to Spend to Sleep:¶

In [56]:
plt.figure(figsize=(10, 6))  # Adjust figure size as needed

# Create the histogram with hue for grouping and specified colors and opacity
sns.histplot(data=employee, x="Intended Time for Sleep Onsite", label="Onsite", color="skyblue", alpha=0.75)
sns.histplot(data=employee, x="Intended Time for Sleep Remote", label="Remote", color="coral", alpha=0.75)

plt.title("Intended Hours to Spend to Sleep")
plt.xlabel("Intended Time for Sleep")
plt.ylabel("Frequency")
plt.legend()
plt.show()
No description has been provided for this image

Observation: From the charts above, we see that the most evident difference in opinion while remote vs onsite is- to get prepared and commute for work. The participants have no tendency to compromise their working hours or sleep hours whether it is remote or onsite. They prefer more time to spend for personal life and daily chores.



5.Barriers working on Remote Environment:¶

In this segment, we will try to find out the factors that are considered as 'Barriers' for working remotely.

Barriers that were present in 2020 Data:¶

Here, for comparison with the 2020 survey data, we are analyzing the factors that were present as biggest barrier and smallest barrier while working remote.

In [57]:
biggest_barrier = barrier.filter(like='biggest', axis=1).stack().reset_index().dropna()
biggest_barrier = biggest_barrier.drop(biggest_barrier.columns[[0,1]], axis=1)

bb = pd.DataFrame(np.array(np.unique(biggest_barrier, return_counts = True)).T, \
                  columns = ['Top Reasons as','Biggest Barriers'])
bb = bb.sort_values(by=['Biggest Barriers'], ascending=False).reset_index(drop=True)

smallest_barrier = barrier.filter(like='smallest', axis=1).stack().reset_index().dropna()
smallest_barrier = smallest_barrier.drop(smallest_barrier.columns[[0,1]], axis=1)

sb = pd.DataFrame(np.array(np.unique(smallest_barrier, return_counts = True)).T,\
                  columns = ['Top Reasons as','Smallest Barriers'])
sb = sb.sort_values(by=['Smallest Barriers'], ascending=False).reset_index(drop=True)

pd.concat([d.reset_index(drop=True) for d in [bb, sb]], axis=1)
Out[57]:
Top Reasons as Biggest Barriers Top Reasons as Smallest Barriers
0 Difficulty collaborating with remote colleagues 2113 Noisy work environment 1886
1 Interruptions 2036 Connectivity/internet issues 1863
2 Noisy work environment 1662 Lack of privacy 1640
3 Connectivity/internet issues 1609 Interruptions 1607
4 Problems with audio-visual setup 1508 Lack of appropriate work and meeting spaces 1581
5 Lack of appropriate work and meeting spaces 1387 Problems with audio-visual setup 1422
6 Difficulty innovating 1294 Difficulty innovating 1397
7 Lack of privacy 935 Difficulty collaborating with remote colleagues 1148

Comparing the change in the Barriers in 2021:¶

The participants were asked about the change in barrier conditions in 2021.

Barrier of Caring Responsibilities¶

In [58]:
make_table_for(employee["Barrier of Caring Responsibilities"])
Out[58]:
col_0 Percentage
Barrier of Caring Responsibilities
Stayed about the same 36.11%
Not a barrier for me 26.72%
Somewhat improved 18.45%
Significantly improved 9.66%
Somewhat worsened 6.88%
Significantly worsened 2.18%

Barrier of Connectivity¶

In [59]:
make_table_for(employee["Barrier of Connectivity"])
Out[59]:
col_0 Percentage
Barrier of Connectivity
Stayed about the same 39.55%
Not a barrier for me 19.44%
Somewhat improved 19.11%
Somewhat worsened 10.58%
Significantly improved 8.53%
Significantly worsened 2.78%

Barrier of Organization's Software System¶

In [60]:
make_table_for(employee["Barrier from Organizations Software System"])
Out[60]:
col_0 Percentage
Barrier from Organizations Software System
Stayed about the same 40.54%
Somewhat improved 23.61%
Not a barrier for me 15.48%
Significantly improved 9.26%
Somewhat worsened 8.47%
Significantly worsened 2.65%

Barrier on Collaboration¶

In [61]:
make_table_for(employee["Barrier on Collaboration"])
Out[61]:
col_0 Percentage
Barrier on Collaboration
Stayed about the same 34.19%
Somewhat improved 23.15%
Not a barrier for me 17.39%
Somewhat worsened 12.50%
Significantly improved 8.00%
Significantly worsened 4.76%

Barrier of Poor Management¶

In [62]:
make_table_for(employee["Barrier of poor management"])
Out[62]:
col_0 Percentage
Barrier of poor management
Stayed about the same 40.28%
Not a barrier for me 22.22%
Somewhat improved 14.42%
Somewhat worsened 10.32%
Significantly improved 7.54%
Significantly worsened 5.22%

Barrier of IT Equipment¶

In [63]:
make_table_for(employee["Barrier of IT Equipment"])
Out[63]:
col_0 Percentage
Barrier of IT Equipment
Stayed about the same 41.27%
Somewhat improved 19.58%
Not a barrier for me 15.87%
Somewhat worsened 11.51%
Significantly improved 8.13%
Significantly worsened 3.64%

Barrier of Connectivity¶

In [64]:
make_table_for(employee["Barrier of Connectivity"])
Out[64]:
col_0 Percentage
Barrier of Connectivity
Stayed about the same 39.55%
Not a barrier for me 19.44%
Somewhat improved 19.11%
Somewhat worsened 10.58%
Significantly improved 8.53%
Significantly worsened 2.78%

Barrier of Feeling Isolated¶

In [65]:
make_table_for(employee["Barrier of Feeling Isolated"])
Out[65]:
col_0 Percentage
Barrier of Feeling Isolated
Stayed about the same 36.11%
Not a barrier for me 21.43%
Somewhat worsened 17.66%
Somewhat improved 12.30%
Significantly worsened 6.48%
Significantly improved 6.02%

Barrier of Extra Cost¶

In [66]:
make_table_for(employee["Barrier of Extra Cost"])
Out[66]:
col_0 Percentage
Barrier of Extra Cost
Stayed about the same 35.78%
Not a barrier for me 21.10%
Somewhat improved 18.45%
Somewhat worsened 12.04%
Significantly improved 8.73%
Significantly worsened 3.90%

Barrier of Cyber Security¶

In [67]:
make_table_for(employee["Barrier of Cyber Security"])
Out[67]:
col_0 Percentage
Barrier of Cyber Security
Stayed about the same 43.72%
Not a barrier for me 21.10%
Somewhat improved 16.53%
Somewhat worsened 8.33%
Significantly improved 7.28%
Significantly worsened 3.04%

Barrier of task cannot be done remotely¶

In [68]:
make_table_for(employee["Barrier of task cannot be done remotely"])
Out[68]:
col_0 Percentage
Barrier of task cannot be done remotely
Stayed about the same 39.68%
Not a barrier for me 24.93%
Somewhat improved 15.48%
Somewhat worsened 9.46%
Significantly improved 5.56%
Significantly worsened 4.89%

Barrier about working Space¶

In [69]:
make_table_for(employee["Barrier about working Space"])
Out[69]:
col_0 Percentage
Barrier about working Space
Stayed about the same 38.16%
Somewhat improved 20.77%
Not a barrier for me 17.86%
Somewhat worsened 10.65%
Significantly improved 8.53%
Significantly worsened 4.03%

Barrier on Motivation to Work¶

In [70]:
make_table_for(employee["Barrier on Motivation"])
Out[70]:
col_0 Percentage
Barrier on Motivation
Stayed about the same 34.26%
Somewhat improved 22.42%
Not a barrier for me 15.54%
Somewhat worsened 15.01%
Significantly improved 8.73%
Significantly worsened 4.03%

Barrier on Management encouragement on Remote:¶

In [71]:
make_table_for(employee["Barrier on Management encouragement on Remote"])
Out[71]:
col_0 Percentage
Barrier on Management encouragement on Remote
Stayed about the same 32.21%
Not a barrier for me 25.86%
Somewhat improved 17.92%
Somewhat worsened 10.25%
Significantly improved 8.73%
Significantly worsened 5.03%

Barrier of Remote Working Skills:¶

In [72]:
make_table_for(employee["Barrier of Remote Working Skills"])
Out[72]:
col_0 Percentage
Barrier of Remote Working Skills
Stayed about the same 34.99%
Not a barrier for me 29.96%
Somewhat improved 18.65%
Significantly improved 8.07%
Somewhat worsened 5.62%
Significantly worsened 2.71%

Barrier of Health and Safety:¶

In [73]:
make_table_for(employee["Barrier of Health and Safety"])
Out[73]:
col_0 Percentage
Barrier of Health and Safety
Stayed about the same 37.24%
Somewhat improved 20.63%
Not a barrier for me 19.91%
Significantly improved 12.24%
Somewhat worsened 7.67%
Significantly worsened 2.31%

Observation: From the analysis above, we see that none of the barriers changed over the time. So, generally speaking these barriers will remain same in remote working environment over the time.

6.Participant's Attitude towards Remote Work:¶

In this phase, the participants were asked who they feel about remote working environment.

Positivity Towards Remote Work¶

In [74]:
make_table_for(employee["Positivity on Remote Work"])
Out[74]:
col_0 Percentage
Positivity on Remote Work
Somewhat agree 32.74%
Neither agree nor disagree 29.50%
Strongly agree 26.72%
Somewhat disagree 8.07%
Strongly disagree 2.98%

Activeness on Remote Working Environment¶

In [75]:
make_table_for(employee["Activeness on Remote Work"])
Out[75]:
col_0 Percentage
Activeness on Remote Work
Somewhat agree 32.14%
Neither agree nor disagree 25.40%
Strongly agree 24.80%
Somewhat disagree 12.37%
Strongly disagree 5.29%

Attitude Towards Team Members¶

In [76]:
make_table_for(employee["Attitute towards Team Members"])
Out[76]:
col_0 Percentage
Attitute towards Team Members
Somewhat agree 35.45%
Neither agree nor disagree 32.94%
Strongly agree 17.72%
Somewhat disagree 8.86%
Strongly disagree 5.03%

Observation: The participants 'somewhat agree' that they have

  • a positive attitude towards remote work,
  • they are active in remote environment and
  • the team effort is great as anytime in remote environment.


7.What Does the Managers think about Remote Working Environment?¶

From this part, the subsetted dataset for the Managers are considered for analysis. The corresponding analyses are on the participants who worked in a Managerial post.

How many of the Managers have Remote Employee Working in their team?¶

In [ ]:
figManagers= px.histogram(manager, x='Remote Employees under Manager ', color = 'Remote Employees under Manager ')
figManagers.show()
In [77]:
plt.figure(figsize=(10, 6))  # Adjust figure size if needed
sns.countplot(data=manager, x='Remote Employees under Manager ', palette='viridis')
plt.title('Distribution of Remote Employees under Manager')
plt.xlabel('Number of Remote Employees')
plt.ylabel('Count')
plt.xticks(rotation=45, ha='right')  # Rotate x-axis labels for better readability
plt.show()
No description has been provided for this image
In [78]:
make_table_for(manager["Remote Employees under Manager "]) # Caution about the space after the word Manager
Out[78]:
col_0 Percentage
Remote Employees under Manager
Yes 85.37%
No 14.63%

Observation: From the graph and table, we see that 85% of the participants who work for Managerial posts have remote employees under them to manage.


What was the Manager's opinion on following Questions? -¶

I have discretion to offer or deny remote work to employees I manage¶

In [79]:
make_table_for(manager["Manager's discretion towards Remote "])
Out[79]:
col_0 Percentage
Manager's discretion towards Remote
Somewhat agree 39.83%
Strongly agree 24.71%
Neither agree nor disagree 19.83%
Somewhat disagree 9.92%
Strongly disagree 5.71%

Offering remote work helps me retain employees-¶

In [80]:
make_table_for(manager["Opinion on Remote Employee Retention"])
Out[80]:
col_0 Percentage
Opinion on Remote Employee Retention
Somewhat agree 42.86%
Strongly agree 25.55%
Neither agree nor disagree 23.70%
Somewhat disagree 5.21%
Strongly disagree 2.69%

Offering remote work helps me to recruit employees¶

In [81]:
make_table_for(manager["Opinion on Remote Employee Recruitment"])
Out[81]:
col_0 Percentage
Opinion on Remote Employee Recruitment
Somewhat agree 36.81%
Neither agree nor disagree 32.94%
Strongly agree 22.18%
Somewhat disagree 5.38%
Strongly disagree 2.69%

My team works well together when they work remotely¶

In [82]:
make_table_for(manager["Opinion on Remote Team Work"])
Out[82]:
col_0 Percentage
Opinion on Remote Team Work
Somewhat agree 46.89%
Strongly agree 26.72%
Neither agree nor disagree 17.14%
Somewhat disagree 7.39%
Strongly disagree 1.85%

I find it easy to manage employees remotely (e.g. tasking and monitoring progress)¶

In [83]:
make_table_for(manager["Opinion on monitoring Remote Team"])
Out[83]:
col_0 Percentage
Opinion on monitoring Remote Team
Somewhat agree 40.50%
Strongly agree 27.39%
Neither agree nor disagree 17.65%
Somewhat disagree 11.09%
Strongly disagree 3.36%

I find it easy to manage poor performers remotely¶

In [84]:
make_table_for(manager["Opinion on Remote Poor Performers"])
Out[84]:
col_0 Percentage
Opinion on Remote Poor Performers
Somewhat agree 31.60%
Neither agree nor disagree 26.39%
Somewhat disagree 19.33%
Strongly agree 16.47%
Strongly disagree 6.22%

I feel well-prepared to manage employees remotely¶

In [85]:
make_table_for(manager["Opinion on Preparation for Remote Employee Management"])
Out[85]:
col_0 Percentage
Opinion on Preparation for Remote Employee Management
Somewhat agree 40.84%
Strongly agree 26.22%
Neither agree nor disagree 23.36%
Somewhat disagree 8.74%
Strongly disagree 0.84%

Managing people remotely makes me more focused on results¶

In [86]:
make_table_for(manager["Opinion on Preparation for Focus on Work"])
Out[86]:
col_0 Percentage
Opinion on Preparation for Focus on Work
Somewhat agree 43.03%
Strongly agree 25.38%
Neither agree nor disagree 23.19%
Somewhat disagree 7.23%
Strongly disagree 1.18%

I find it easy to contact my employees when they work remotely¶

In [89]:
make_table_for(employee['Opinion on Finding Employees'])
Out[89]:
col_0 Percentage
Opinion on Finding Employees
Somewhat agree 42.52%
Strongly agree 28.74%
Neither agree nor disagree 16.47%
Somewhat disagree 9.41%
Strongly disagree 2.86%

How productive are you, each hour, when you work remotely?¶

In [90]:
make_table_for(employee["Manager's Productivity on Remote"])
Out[90]:
col_0 Percentage
Manager's Productivity on Remote
My productivity is about same when I work remotely 21.83%
I’m 50% more productive when working remotely (or more) 18.39%
I’m 30% more productive when working remotely 15.67%
I’m 20% more productive when working remotely 15.15%
I’m 10% more productive when working remotely 7.34%
I’m 40% more productive when working remotely 7.34%
I’m 20% less productive when working remotely 4.89%
I’m 10% less productive when working remotely 4.70%
I’m 30% less productive when working remotely 2.51%
I’m 50% less productive when working remotely (or worse) 1.52%
I’m 40% less productive when working remotely 0.66%

How productive are the employees you manage, each hour, when they work remotely?¶

In [91]:
make_table_for(employee["Employee's Productivity on Remote"])
Out[91]:
col_0 Percentage
Employee's Productivity on Remote
I’m 50% more productive when working remotely (or more) 17.93%
I’m 30% more productive when working remotely 16.79%
I’m 20% more productive when working remotely 16.36%
My productivity is about same when I work remotely 16.07%
I’m 40% more productive when working remotely 10.47%
I’m 10% more productive when working remotely 9.90%
I’m 20% less productive when working remotely 4.73%
I’m 10% less productive when working remotely 3.87%
I’m 30% less productive when working remotely 2.44%
I’m 50% less productive when working remotely (or worse) 0.86%
I’m 40% less productive when working remotely 0.57%

Observation: The most interesting part from the analysis on the 'Managers' dataset is that- they agree that their employees are 20% to 50% (highest poll) more productive when they work on remote. They somewhat agree with the questions asked on the rest of the other Managerial challanges that they face on remote work environment.



Evaluation of the Analysis:¶

From our analysis we can get into the conclusion as-

Impact of COVID pandemic on Remote work:¶

The idea of Remote environment was widely welcome by the employers and employees.

Expectation post-pandemic:¶

The participants prefer full remote or partial remote/hybrid environment post-panedemic.

Impact, benefits and positivity towards amount of work on remote:¶

The participants are full dedicated to work with professionalism (100% of their working hours) on their working time. Both the managers and employees agree that they are more productive in remote environment.

However, they are unsure how the change in working environment might impact the business decisions and working culture in future. So, they are cautious to think it as a 'practise to go on forever' post COVID.

How employees use of time differ when working remotely vs on-site:¶

From my observation I found that-

  1. Employees tend to be more productive in Remote environment, dedicated 100% of their working time to work.
  2. Remote working will save the time and energy spent for getting ready and commuting for work.
  3. Remote working creates more opportunity to spend more time for personal life and prioritize factors like daily chores and sleep.

Biggest Barriers to overcome if remote work becomes the norm in the future:¶

  1. The biggest barriers mentioned as the participants is - collaboration with remote team members. This might be due to the virtual setup of working environment.
  2. To deal with issues like Team Management, Employee Retention, New Hire, Managing Poor Performers etc., managers Somewhat Agree that these might be impacted adversely due to Remote Working Environment.