Improving workforce management and technical readiness at Microsoft

Dec 13, 2017   |  

Two women in an open office looking at a laptop.

One Profile, an internal tool, helps people at Microsoft advance their careers and connect our best technical consultants with customers. Employees use it to evaluate their technical skills and track training, while planners use it to match consultants or engineers with customer projects based on expertise. Built on Azure PaaS technologies like SQL Database elastic pools, LogicApps, AppInsights, and Azure Data Factory, it easily scales to accommodate multiple tenants, and it provides high availability and reliability.

In our large, complex, and increasingly global company, skills run deep. Rapidly placing the right Microsoft consultants, architects, and engineers—regardless of where they reside—with the customers that need our expertise couldn’t be more important. Our people with unique skill sets, working in the right engagement, inspire high-value conversations and help our customers reach their critical goals.

With One Profile, an internal product, we’ve made a huge improvement in the way we match our people with customers. One Profile creates strong technical readiness capabilities across Microsoft, which helps us ensure deep and consistent levels of product support for our customers. One Profile is simple and interconnected. It empowers our employees to advance their careers and uses standardized skills taxonomy. It creates a clear path for professional development and fosters effective coaching conversations.

Microsoft Digital initially developed One Profile for our Microsoft Enterprise Services (ES) and Customer Services and Support (CSS) teams. We look forward to supporting even more teams. Built on cutting-edge Azure PaaS technologies like SQL Database elastic pools, LogicApps, AppInsights, and Azure Data Factory, One Profile’s design easily scales to multiple tenants—business organizations—and supports the specific requirements of any business group.

Effectively matching people to projects

When our ES organization engages with customers, it’s critical that they quickly assemble agile and expert delivery teams for the work. Our most important asset is our people, and we have over 22,000 ES employees in 191 countries. We’ve moved to a new model for ES that is about building a global workforce to effectively and efficiently support our customers across the world. ES consultants, architects, and engineers support customers through their entire journey—from pre-sales all the way through post-deployment activities like monitoring and assessing services. Microsoft is increasingly a global organization that needs to be efficient and leverage people’s talents wherever they are.

How does this work? Let’s say we have a customer—a private company or government agency—that contacts Microsoft, asking us to help them migrate all their applications to the cloud. Our first step is to analyze what kind of applications they have and what tools are they using. Then, we let them know the cost to do that work.

Next, we need to build a team of consultants, architects, and—in this case—people with Azure skills, because this customer is migrating to the cloud. Our human resource management systems use One Profile data to quickly search for and identify employees with the best, most relevant skill sets. One Profile also identifies secondary—but critical—information, such as travel eligibility. Having a complete picture helps us assemble the best teams.

Centralized profiles help unify businesses

With One Profile, we’ve leveled the playing field and created a single pool of employees to draw from. Centralized skills assessments and consistent skills taxonomy work across the company to unify our businesses. It has consolidated and organized our peoples’ skills data into one place.

Even beyond technical skills like product skills, functional skills, and programming language expertise, One Profile helps paint a more complete picture of our people. It includes non-technical skills such as language fluency and soft skills, like how they perform in their role. We’re supporting customers across entire industries, so a holistic view of our people and what they can do is essential.

Our decisions needed better data

Before One Profile, we had disjointed and inconsistent ways to assess skills and manage assignments. The result? Too much time was spent looking for the right person. The issues we needed to fix were:

  • Data was disconnected. There was no single place to track peoples’ skills. Taxonomies to track skills were diverse, and data was manipulated in offline spreadsheets and documents.
  • Skills were siloed. Capabilities data was managed in geographically specific and unique ways. This meant that tools and data were inconsistent between regions and roles. For example, ES has two distinct groups that deliver services across our field organization. Before One Profile, it was hard to know who had similar skills across those groups.
  • Demand did not match supply. Skills did not match from locale to locale, and people assessed themselves differently from place to place. Our field teams needed a lot of time to truly understand a request, so they could find the right person.
  • Professional staff was not optimized. Our local resource managers had a limited pool of people that they knew well, and they’d staff from those people. Resource managers, in many cases, are Microsoft vendors, and we were empowering them to place highly skilled Microsoft technical employees in customer engagements based on skill or incumbency.
  • Resource sharing was impossible. Because of the emphasis on local resource management, it was impossible for resource managers to find or place anyone outside of their local geography. Resource sharing was simply not in our business model. The local model did not match the new, global vision of ES.
  • Customer satisfaction suffered. Sometimes, secondary issues—like language proficiency or travel visa status—dramatically slowed our service delivery and affected customer satisfaction. For example, an employee might have the best technical skills, but limited travel eligibility kept them from going to the engagement. It affected our ability to execute projects on our customer’s critical timeline.

All of these issues added up. Staffing timeliness and effectiveness suffered. We envisioned One Profile knowing that we needed to scale to meet our new global delivery model. Our resource managers needed to be able to look broadly for the right skill set. Our employees needed to effectively track, manage, and advertise their skill set, and—above all—spend more time supporting customers.

Our digital transformation

One Profile is helping us digitally transform. Where our capabilities assessments were once offline and siloed, they’re now consolidated, unified, and efficient. It’s faster to get information and quality is enhanced—the depth of information is much more accurate and rich.

Having consistent resource capabilities information at the ready helps create deeper and richer customer engagements, and helps our employees enhance their professional development. One Profile helps our employees and planners stay current—they know about new skills that are coming up and new technologies that are being developed.

Today, about 20,000 ES and CSS employees use One Profile. In the ES organization, One Profile is used for employee management, workforce planning, and technical readiness. In CSS, One Profile is used primarily for technical readiness and workforce planning. Profile data is helping CSS make key business decisions, such as the number of support engineers trained to support the Azure cloud business in the coming year.

Assessments create a path

For an ES customer engagement, it’s critical to determine who the right people are for the work. In One Profile, our employees create detailed self-assessments based on defined skill tracks. The assessments are a compilation of technical and functional proficiencies. Microsoft certification data is automatically integrated into One Profile along with other internal accreditation information. Employees document secondary skills, like language proficiency, travel eligibility, and non-Microsoft skills certifications. In all, the One Profile assessment creates a full picture of an employee’s skills and capabilities.

Once an employee finishes their skills assessment, they work with their manager to endorse it. One Profile helps them find skills gaps, and tells them what they need to do to bridge those gaps. The One Profile taxonomy curates assessments for specific roles. Let’s say you’re a consultant in business productivity. For that role, we expect you to be at Skill Level 4 in Office 365. If your One Profile assessment shows that you are at Skill Level 3, you are given courses, training opportunities, and workshops to help you reach Skill Level 4. Managers and employees use the One Profile skills dashboard during quarterly development conversations.

Skill information is shared with our global capacity management group, where resource managers search for the right people to assign to projects. Different projects have specific demands and need associated skill sets. For example, an employee might have skills A and B; however, the job needs skills C and D. Resource managers can search for the best fit for a specific request.

Consistent workflows

The One Profile workflow is the same regardless of the business group, but the way data is consumed differs. The expectations for depth of product knowledge differ by role.

For example, a support engineer for an Office 365 commercial client must have very specific multitenancy skills so that they can support multitenant Office 365. They need to support customers across a wide variety of related technologies and scenarios, such as identity management, OneDrive for Business, and Exchange. The One Profile taxonomy extends to a great depth for the CSS support engineer role. For an ES consultant assigned to an Office 365 commercial customer engagement, their Office 365 product skills do not need to be as deep.

Technical readiness and workforce planning

When Microsoft launches a new product or service, technical readiness is essential. We need support engineers who are deeply trained in our technologies and are ready to support customers. Technical readiness requires careful workforce and capacity planning.

One Profile helps us plan and invest in getting people ready for a new product or service release. We use the data in One Profile to assess our current people and their skill sets. We understand what our support engineers need to know about Microsoft products. If there’s a gap between the current state of readiness and what we need, we can invest in our people. We create learning paths based on assessments, gap analysis, and targeted knowledge levels.

We can also engage with partners outside of Microsoft to build our capacity to meet anticipated workloads. We carefully balance internal and external support resources. One Profile data about a gap—such as specific product expertise—helps us decide which partners to work with. The data can also help us decide if we should scale back our relationship with a partner.

One Profile serves many roles

As shown in the following graphic, One Profile data supports a wide variety of roles, including resource managers, people managers, workforce planners, administrators, and readiness planners.

This graphic shows One Profile in a circle in the center, with circles around it that show the roles that interact with One Profile: People manager, workforce planner, readiness planner, administrator, delivery resource, and resource manager.
Figure 1. One Profile supports many roles.

One Profile data helps us plan readiness offerings for our employees and helps us continually assess our workforce. Business intelligence creates rich reports, which are used by workforce planners and others.

Providing role clarity in a reorganization

Now that the ES and CSS organizations use One Profile, we’re working with Field Sales to evaluate One Profile for their group. Field Sales reorganized earlier this year, which created new teams with different roles. We want to pilot a subset of Field Sales technical roles called Technical Solution Professionals (TSPs) into One Profile, with the goal of later onboarding them into production. TSPs need to know how to best support the business going forward after the reorganization, and they also need crystal-clear expectations for their new roles. One Profile will provide role clarity and updated role readiness skill tracks for TSPs and will outline the necessary skills they will need to thrive in their new roles.

Empowering employees and normalizing data

One Profile is a modern, flexible, and robust solution that scales to incorporate any business group and their specific requirements. It brings value to Microsoft in many ways, such as:

Empowered employees stay current. Well-defined skills assessments in One Profile help our employees stay current and helps them carefully manage and monitor their own professional growth. One Profile dashboard data fosters effective coaching conversations between employees and managers. And functional capabilities tracked in One Profile help our employees build valuable skills for specific engagements. For example, a functional capability in data governance lends expertise in business intelligence engagements.

Clarity promotes a learning culture. By providing clear skills tracks and expectations, One Profile fosters a learning culture and a proactive, growth mindset. It empowers our employees with role clarity and readiness paths and resources.

Data drives decisions. By leveling the playing field, we’re able to use the same objective data around the world to make decisions about how best to allocate our people with their valuable and specific talents.

“One Profile Assessment data provides us with insights into the manager and individual contributor skills landscape. It enables the data-driven decisions needed to prioritize the skills proficiency aligned to our changing business. For the business, it enhances capacity planning. For individual contributors, it provides the opportunity to identify unique skills gaps and areas for growth. And finally, it offers our managers a platform to demonstrate their growth mindset and lifelong learning capabilities and to support what we are asking individual contributors to do.” 
Mary Newman, Director—Leader and Practice Management Readiness, Worldwide Learning and Readiness

Azure App Service fuels One Profile

One Profile was built on all-new and publicly available Azure technologies. Azure App Service is a PaaS offering that provides automatic scaling, high availability, and reliability. One Profile uses powerful Azure elastic database tools like LogicApps to support multiple tenants and unique workflows. One Profile is highly secure and encrypts data both in‑transit and at rest.

When groups outside of ES and CSS—with strikingly different needs—expressed interest in One Profile, One Profile was able to quickly scale. Azure functionalities let One Profile securely partition data, while letting data move where needed to enhance performance and scale.

One Profile uses both core and tenant-specific databases. Azure Data Factory integrates One Profile with other systems, supporting specialized BI and resource management needs. And Azure telemetry functions help One Profile track both system performance and business outcomes.

Database partition and scale

One Profile uses Azure elastic database tools to nimbly partition data for multiple tenants. Authorization mechanisms enforce isolation and control, and data scales and moves effectively between databases. One Profile does all this using:

  • Partial isolation, which is achieved through SQL Database elastic pools. Because One Profile supports tenants with different and sometimes unpredictable usage requirements, SQL Database elastic pools let us maintain and partition different data sets and scale them independently. Some data is common across tenants, and some is tenant-specific.
  • Tenant-specific authorization roles that are managed through an AuthZ API store. It maintains isolation and keeps the computing payload light for better performance. AuthZ authorizes permission-level controls, and ensures that only managers or designated administrators can see sensitive employee information. For example, if an employee has achieved 20 of 100 skills, we want their manager to see this information, but no one else. Some of our resource managers have elevated One Profile privileges so that they can see employee data they need to properly evaluate a candidate, such as travel eligibility.
  • Rapid database scale-out, which is achieved through an API Pack, Azure Redis Cache, and a shard map manager. The shard map manager is a special database that maintains global mapping information about all shards (databases) in a shard set. Metadata allows an application to connect to the correct database based upon the value of the shard key.
  • Data that moves between databases and enhances performance. The API Pack and shard manager partition data in the background. This helps simplify queries for internal partners, who, for example, might not know which business unit an employee belongs to.

LogicApps supports business-specific workflows

When creating a new skills profile in One Profile, many steps must happen. However, we don’t want our users to have to wait. LogicApps gives us a sophisticated way to manage workflows. It gives rapid access to information for our users, and supports unique needs of each tenant.

First, One Profile quickly creates a basic profile using static HR data, like name. Then, extended and customized workflows then occur in the background, driven by tenant- and role-specific business rules. For example, ES identifies people based on their cost center, but Sales uses standard title.

Every 24 hours, a batch process that validates and refreshes HR data, which limits the amount of data that is transferred. The cost center is verified first. If it’s still valid, One Profile pulls in other changed data such as standard title or manager. If a cost center is invalid, One Profile deactivates the user profile.

LogicApps manages the workflow and runs activities such as notifications in the order and sequence specified by the business group. Business groups define details like the kind of notifications that go out, the frequency of notifications, and the types of events that trigger a notification.

Architecture and integrations

One Profile has a core Azure SQL database for common profile data. Each supported tenant also has its own database, containing specific information, like product skills.

Azure Data Factory lets One Profile integrate with other systems, such as third-party partner systems, where there are specialized workflows and services. Data flows in from people and skills data repositories, and flows out to support complex reporting and resource management needs. Figure 2 shows an architectural overview of One Profile.

This graphic shows how One Profile employee information feeds into Azure, and then from Azure, data can be pulled or channeled into data feeds.
Figure 2. One Profile architecture

Data feeds

One Profile uses Azure Data Factory to ingest data from multiple sources, such as:

  • Subcontractor data that is imported from a separate repository.
  • Human Resources provides employee and contingent staff data, and helps One Profile reconcile changes, such as a change in manager.
  • Finance populates One Profile with function and geography hierarchy data that is aggregated and processed to derive multiple attributes, such as cost center, tenant, business group, or employment status. If an employee leaves Microsoft, One Profile deactivates their profile.
  • Microsoft certification systems import and automate data that is specific to Microsoft Certifications. Once an employee’s Certification ID is in the system, their record dynamically updates.
  • Learning management systems also import and automate data on courses and trainings that people have taken, and it initiates associated workflows. For example, if an employee has achieved a specific knowledge measure, they receive an accreditation. That accreditation qualifies them to deliver a workshop to a client. Like the Microsoft certification data, their profile dynamically updates.
  • Skills and geography taxonomy imports a common taxonomy repository.

Partner integration and pulling data

The One Profile platform aggregates data to build an employee profile. Other systems and users also need to utilize that profile data. For example, resource managers need to deeply understand a person’s profile. APIs gather that data and is distribute it in a structured manner. APIs are used for ongoing integrations and functions, like:

  • Skill development is a learning and development extension of profiling. It understands an employee’s current skills and creates a learning path for them. For example, if an employee is assessed at level 3, but their organization expects them to be at level 4, it identifies the gap and creates a learning path with targeted proficiencies for the employee. The system might recommend that the employee take courses on Lynda.com, internal courses, or other forms of training.
  • Labor management is used extensively by ES and its many consultants who work with external customers. It manages worldwide timekeeping, to help us bill customers correctly, and recognize revenue.
  • Global resource management uses One Profile data to understand skills information and staff projects. Also, bulk data pre-processing helps resource managers process information more efficiently. They might, for example, pull information on 100 potential candidates. When a request comes in, they’re able to process the search much faster.
  • BI reporting exports One Profile data for complex reporting tasks.

Telemetry

Azure AppInsights provides two types of monitoring functions. System telemetry tracks the performance of API Packs, the time required to process a page, and so on. Business telemetry measures and monitors business outcomes using performance indicators such as the volume of skill assessment completed at the individual and organizational levels.

Looking ahead

Going forward, the plan is to offer One Profile as a service that anyone can plug into. We’ll securely provide the foundational data that business teams need for strategic functions like capacity planning, workforce planning, and resource management. We’ll add new manager workflows that are needed for skill development and management. We’ll also drive more upstream data integrations and develop a business rule engine.

One Profile as a service

We’re growing One Profile to accommodate potentially any business group within Microsoft. Today, data in our ES, CSS, and sales organization is leveraged from One Profile to support capacity planning, workforce planning, and resource management in other tools.

In its next iteration, One Profile will act like a service to Microsoft business units. We’ll create a set of services that will expose data, so that whomever does capacity planning, for example, will first use One Profile to create the foundational data—people and skills—that they need. HR managers will be able to use One Profile to analyze the gap between the skill level required by their workforce and the current skill level. Business units will be able to address that gap using their own strategy.

Integration with other profile systems

With One Profile, we are creating an opportunity to integrate with another profile system like LinkedIn, which we acquired in 2016. Our mission with LinkedIn is to create an economic graph where the skills and training required for jobs are available in a continuous market feedback loop, so that people can aspire to jobs and get the skills and associated training they need for those jobs. We will also advance the connections between people and the training courses that they need.

Upstream integrations

We will improve upstream integration capabilities of One Profile, for example, if ES or CSS wants to enrich the profile data of a user, there may be an opportunity to integrate with other systems. More integration will require continued, robust isolation between One Profile tenants. Today, when employees create a One Profile profile, they manually enter travel availability information such as the country of their passport or the travel permits that they possess. We will connect directly to that information, which will complement the One Profile profile.

Business rules engine

Today, tenant-specific user provisioning is powered by business rules. Going forward, we will develop a business rules engine for One Profile that will manage more complex combinations of roles, capabilities, and geographies—such as the cost centers and standard titles for a tenant.

Organizations sometimes have multiple roles and need defined rules. For example, a TSP that specializes in artificial intelligence and works in Japan is given a job title and a specific skill development track. For a TSP in the United States, the skills may be different. Being able to adjust based on any number of parameters reduces the time to implement changes and helps us quickly bring new roles into One Profile.

Conclusion

Today, One Profile helps our business find the resources and expertise they need, regardless of their organization or location. It normalizes skills taxonomies, and backs up our global service delivery decisions with strong data. One Profile helps our employees and managers level-set and track skill development paths, and helps us assure technical readiness. Built on robust Azure PaaS technologies, One Profile is a platform that scales smoothly and accommodates multiple business groups.