Challenge Overview
Welcome to the Talent Management People Manager .NET Web App Architecture challenge. In this challenge, we’re looking to define the architecture for the backend web services and the frontend web application. This app gives People Managers the ability to perform a quick analysis in order to recommend and select the correct resources needed for a specific need. The People Managers will be using the application to help analyze the match between supply and demand in order to support long-term workforce planning and to optimize the use of in-house resources versus vendors based on projects and talent need. The goal is a Xamarin iOS application and / or a web app that can inform their sourcing strategy (when to hire, contract or outsource).
Typical architectural considerations include
We’ve completed the design challenge for the design of Xamarin iOS app and have attached the winning designs to the forums. The web app front end will utilize the same design.
Target Audience for the app
- People Managers
- Other longer-term users will be leadership, HRBPs and employees/workers
Use cases for the app
When using this application People Managers want to understand:
A. Supply
1) What people are working on
2) Their experience level
3) Availability
4) Skills and capability
5) Career aspirations
6) Contractor or employee (or vendor/consultant)
B. Demand
1) Projects
2) Day-to-day operational needs
They want to know this in order to:
- Match supply with demand
- Determine long-term workforce planning
- Optimize use of in-house vs. contractors vs. vendors by project/need
- Inform sourcing strategy (build, buy, borrow)
The People Manager will use the app to:
- Perform analysis in order to make a recommendation on the appropriate resource to meet a specific need
- Facilitate a staffing decision with both the Project Manager requires a resource and his/her Line Manager
- Execute this staffing movement and track status
- Report to leadership on resources at company’s disposal and the degrees to which these resources are allocated efficiently
PERFORM ANALYSIS AND COME UP WITH RECOMMENDATION
- What is the demand I need to fulfill?
- What is available to me in-house? (How many people with X skill can speak a certain language?) How many are available and/or when will they become available? What are they currently doing?
- Is there a gap? If so:
-- Should we be contractors or vendors (or the crowd)?
-- Is there an option to fill the gap through upskilling? Who have the raw skills to be trained in DevOps?
-- Should we swap out resources for more critical projects?
Requirements
We’ve provided an architecture template in the forums., You need to use the provided template, add architectural details for the app and submit it back to us. The architecture needs to cover the following:
- People Managers
- Other longer-term users will be leadership, HRBPs and employees/workers
Use cases for the app
When using this application People Managers want to understand:
A. Supply
1) What people are working on
2) Their experience level
3) Availability
4) Skills and capability
5) Career aspirations
6) Contractor or employee (or vendor/consultant)
B. Demand
1) Projects
2) Day-to-day operational needs
They want to know this in order to:
- Match supply with demand
- Determine long-term workforce planning
- Optimize use of in-house vs. contractors vs. vendors by project/need
- Inform sourcing strategy (build, buy, borrow)
The People Manager will use the app to:
- Perform analysis in order to make a recommendation on the appropriate resource to meet a specific need
- Facilitate a staffing decision with both the Project Manager requires a resource and his/her Line Manager
- Execute this staffing movement and track status
- Report to leadership on resources at company’s disposal and the degrees to which these resources are allocated efficiently
PERFORM ANALYSIS AND COME UP WITH RECOMMENDATION
- What is the demand I need to fulfill?
- What is available to me in-house? (How many people with X skill can speak a certain language?) How many are available and/or when will they become available? What are they currently doing?
- Is there a gap? If so:
-- Should we be contractors or vendors (or the crowd)?
-- Is there an option to fill the gap through upskilling? Who have the raw skills to be trained in DevOps?
-- Should we swap out resources for more critical projects?
Requirements
- Backend data model
- Backend REST services in Swagger format
- Details on integration with Workday API
Typical architectural considerations include
- Design pattern to be used for both frontend and backend (We provide a reference document provided by client)
- What to use for persistence
- What to use for unit tests
- Special tip: make sure you check Stack+Architecture.pdf carefully, in which the client suggests the layers / stacks that should be present in the architecture. Whether you decide to follow this exactly or not, justify your decision in your submission
- .NET Core for web app backend if possible, the purpose is to make it as portable as possible
- Postgres for database
- Web app frontend (We’re open to recommendations here - you can choose from AngularJS 2+ / Vue/ React / jQuery - justify which one you choose)
- Consider progressive enhancement principles in the event the user does not have Javascript enabled in their browser
- Xamarin for iOS app. You do not need to architect the Xamarin app. We have another challenge running in parallel for the Xamarin app architecture. You do need to consider how the Xamarin app fits in to the backend architecture though.
You’re free to propose using any third-party open-source frameworks (please get an approval in forums if you have any questions)
You are encouraged to ask questions in the forums to get a clear understanding of the app and deliverables.
You are encouraged to ask questions in the forums to get a clear understanding of the app and deliverables.
Technologies
.NET Core
REST
C#
Postgres
Web
HTML5
Javascript
Final Submission Guidelines
- Architecture for backend .NET Core web services (including any external integration details)
- Data model / Database design
- Architecture for frontend web app
- Swagger doc for the API
- Mapping from screen features to the API
- Any other documents / diagrams (you can create them using TCUML) to help better illustrate the architecture