Development Human Resources Management solution

Technical Articles
Oleh Mykhaylovych
5 July 2016

The purpose of this text is to show a way FreezePro Software goes with engagements. As an example, we take Human Resources Management solution to be done within multi-tenant and cloud environment.

This text contains several blocks. The first block tells about platform modules and main features we provide to clients. The second block is normally WBS, which means work breakdown structure. Even more, it contains what we include into building prototype and what we do not, a scoping in other words. After scope, we should review team composition and timing, as well as roles of each team member.

The last part is about proposed system architecture: a vision, data structure, security principles and approach, multi-tenant structure, technological stack. We offer various options for implementation. With the use of included decision-making criteria, we propose to choose the most appropriate option.

1. System Requirements

1.1 Platform Modules

According to Specification provided by a client, HRM platform is expected to consist of following modules:

  • General
  • HR
  • Employee On-boarding
  • Payroll
  • Benefits
  • Mobile App
  • Employee Portal
  • Agent Portal
  • Leaves
  • Time Attendance

1.2 System Workplaces

Having deeply analyzed client specification and requirements to the solution, FreezePro team foresee following workplaces that should be implemented for proper functionality of the system:

  • Global Web Admin
  • Tenant Administrator
  • Agent
  • Employee

Note: each workplace can be represented either by a single user role or with a set of different user roles.

1.3 Client Applications and Features

Based on workplaces listed above, FreezePro foresees following high-level division of system features and privileges between corresponding Client Applications that should be implemented within a scope of an HRM Platform:

  • Global System Administration Web Application
  • Tenant Management, Deployment, and Configuration
  • Security, Scalability configuration
  • Tenant Monitoring, Troubleshooting, and Auditing
  • Tenant Software Updates
  • Agents Management
  • Tenant Management Portal
  • Configurable Tenant administrator Dashboard including visualization of tracking of staff employment, department hierarchy structure, user management controls and other required UI and functionality.
  • Manage Departments, Users, and Roles
  • Configure HR Module integration for Departments
  • Business Management configuration with an ability of services supplier selection
  • Payroll Module configuration
  • Configuring system rules and Processes (like leave rules, working days etc...)
  • Setup Tenant Workflow
  • Upload Employee Handbooks and other related documentation
  • Setup Onboarding Process, Welcome Letters and Default Dashboard configuration
  • Setup Company signatory person's signature to be embedded in document templates
  • Employee Web Client
  • User Management based on Azure Active Directory Single Sign-On implementing Role-Based Security
  • Customizable User Workflow Configuration Capabilities
  • Custom Reporting Functionality
  • Employee create wizard (Onboarding process)
  • Multi-Currency Payroll Module
  • HR Module including Skills Development Levy (SDL) System
  • Benefits Management Module
  • GIRO Submission Configuration
  • Pro-rated allowances and deductions configuration
  • Taxes management (E-filing for IR8A, AWS)
  • Employee Self Service for HR
  • Leave Module
  • Business Trips Management
  • Time & Attendance Management
  • Employee Query Functionality
  • Payment System Integration
  • Mobile Application development built upon HRM REST API
  • Email and Push Notification based on user roles and privileges
  • System Localization Support
  • Multiple Formats Document Upload Capabilities (like documentation and pictorial files)
  • Digital signing via the mouse cursor and touch devices (3rd party)
  • Agent Portal
  • Agent Dashboard and Inbox
  • Manage own Customer database
  • Manage own Products
  • Reporting and Statistics systems
  • Payroll system integration
  • Notification system integration

1.4 Prototype concept

As far as requested, solution architecture is quite complicated. Having in mind that solution requirements are now formed on a high level only, it is decided to start development project with a prototype implementation.

WBS and rough whole project efforts

Work Type

Efforts (hours)

System Architecture Design


Azure Could setup and configuration




Global Web Admin Application


Tenant Administrator Web Dashboard Application development




Agent (supplier) Portal


Employee Web Dashboard Application


Export and Integration Features



Quality Assurance


Project Management








Note: provided indicative estimation based on FreezePro team initial high-level analysis given here for budget indication only. Real project numbers may differ drastically. More detailed project efforts may be estimated in a scope of system prototype implementation.

The scope of Prototype with indicative dev. efforts

Having analyzed client’s requirements and based on its experience, FreezePro Team offers covering following project tasks in a scope of the HRM System prototype development with next efforts:


Indicative efforts


System Architecture Design including



Azure Cloud setup and configuration



Employee Client Application


Employee Dashboard and Inbox



Leave Module



Time and Attendance Management



Business Benefits Management







Project Management


UI/UX (optional)




Total for prototype:


Team Composition

Based on efforts estimation above, FreezePro foresees following team composition as optimal for the HRM Prototype implementation:



Project Manager

0.5 FTE

System Architect/Tech Lead




QA Engineer


UI/UX designer

0.5 FTE

Aforementioned team composition should be able to implement the HRM system prototype within 3 months after project starts, including knowledge transfer and requirements discovery phase in case of quick client’s intercommunication between parties.

5.1 Roles and responsibilities



Customer Project Manager

  • Controls the budget, terms of payments and legal issues

  • Defines development, delivery and control processes

  • Helps other team members in client communication

  • Manages resource allocation

  • Participates in decision-making activities

Customer Product Owner

  • Define system requirements

  • Uses project tracking system to control project status

  • Confirms schedule

  • Approves acceptance criteria, participates in quality control

  • Accepts deliverables, control schedule or milestones

  • Participates in planning and decision-making

  • Controls deliverables schedule, milestones, estimates and status

  • Makes sure that the project deliverables are properly verified

  • Resolves conflict situations between different project participants

  • Manages risks

FreezePro Software Project Manager/Tech Lead

  • Controls and maintains deliverables schedule, milestones, estimates and status. Implements corrective actions

  • Manages resources allocation

  • Reviews acceptance criteria, participates in quality control

  • Accepts deliverables, controls schedule or milestones

  • Participates in planning and decision-making

  • Makes sure that the project deliverables are properly verified

  • Communicates with Product Owner, Project Manager, and development team

  • Analyzes requirements and transfers them into the product architecture

  • Approves selected technical approach

  • Reviews the code

FreezePro Software Developer

  • Implements tasks according to the description

  • Estimates time required to complete the task

  • Assesses the product or product component architecture candidate

  • Assures code integrity and code documentation validity

  • Performs developer testing according to the requirements

  • Fixes code review defects

  • Suggests changes to the standards specifications

FreezePro Software QA

  • Does requirements analysis and testing

  • Defines test approach

  • Does test planning for each sprint/iteration (test scope)

  • Defines acceptance criteria and acceptance routine

  • Estimates test efforts

  • Designs tests

  • Conducts manual testing

  • Tracks defects

Knowledge Transfer Principles

FPS will ensure that the resources have the necessary general competencies and skills for all the relevant technology stack and applications used by a Client. A Client acknowledges that FreezePro Software’s resources must be trained and need to learn Client’s business area. The knowledge transfer process should be initiated at the beginning of cooperation. Knowledge Transfer Plan has to be created by Project Manager covering the following topics:

  • Knowledge areas, knowledge holders, knowledge recipients, supporting documentation and action items.
  • When the initial knowledge transfer is successfully over, the responsible persons should share knowledge across the rest of team.
  • The Team is a bearer of the knowledge. Each team member should know about all aspects of the project.

Quality Assurance and Testing Principles

QA specialists will be involved in the project from the first phases to guarantee that designed System will qualify to common Web and Microsoft Windows agreements.

Where applicable, a user will be asked to provide test data and to participate in the review of program outputs.

QA efforts related to testing of System will be conducted in several phases:

1 Analysis stage:

  • Availability of all requirements in documented form
  • Requirements testing (completeness, testability, consistency, etc.)
  • Test Planning – identifying full test scope for the project and approach to the testing

2 Coding stage:

  • Successful execution of all Unit tests, as well as coverage reported bugs by regression tests
  • Regular code reviews – both internal and external
  • 100% coverage of developed system by test cases/test scenarios for manual testing
  • Continuous professional testing and bug tracking
  • Test Summary Report that reflects test coverage, testing results and compliance of software with customers’ expectations

3 Deployment stage:

  • Release notes that reflect all changes compared with the previous version.

3. Technical solution

3.1. High-Level System Architecture vision

Multi-tenant architecture that works on Windows Azure is the most appropriate solution for such business processes. The following diagram demonstrates the layout of a multi-tenant HR Management Platform: 

multi-tenant HR Management Platform

Multi-instance and Multi-tenant approach

Multi-instance and Multi-tenant approach

As it can be seen from the diagram above, the number of users determines how many tenants will be assigned to different instances.

Following the same logic, another criterion can be used to group the tenants and optimize them according to their types.

This approach has another advantage that lies in the possibility to scale each instance separately if needed.

3.2. SaaS Maturity Model

The Maturity Model for HRM solution is Scalable, Configurable, and Multi-tenant (True SaaS).

The Maturity Model for HRM solution is Scalable, Configurable, and Multi-tenant (True SaaS).

Since this is the highest level of the model, the architecture allows multi-tenancy, configuration, and the scale out of the application.

The instance pool can be easily enlarged by the new software instances to permanently support the increasing system load. The design provides proper data partitioning, stateless component design, and shared metadata access.

The architecture is scalable, multi-tenant, and customizable through configuration.

3.3. Data Architecture

Data architecture can be implemented using the following approaches:

Separate Databases (Isolated Approach)

This approach uses separate databases for storing each tenant’s data to isolate them from each another.

Shared Databases – Shared Schemas

In this case, the same database and the same set of tables are used to host data of different tenants. All tenants share the same set of tables, and a Tenant ID associates each tenant with the rows that it owns.

Shared database – Separate schemas

According to this approach, multiple tenants are hosted by one database where each tenant has its separate set of tables grouped into a schema created specifically for the tenant. As a result, tenants have their separate set of tables in a shared database.

Approach selection criteria

Since the development of a shared architecture is pretty complex, applications based on a shared approach usually require larger development effort that is why the initial costs can be higher. However, the ongoing operational costs are generally lower because these applications can support more tenants (users) on one server. The diagram below shows how the cost will change over time. Suggested Data Architecture approach for HRM:

Shared Database – Separate Schemas.

The choice is determined by the following factors.

  • Separate schema approach is relatively easy to implement and the tenants can customize the data model in the same way as in the separate databases.
  • Application development costs will be lower in comparison with a shared schema approach.
  • A larger amount of tenants can get support from one database server.
  • Since a separate schema approach is appropriate for applications that use approximately 100 tables per tenant or fewer, it is suitable in our case.

3.4. Role-based security

Using an identity established with Azure Active Directory, the system will provide single sign-on authentication and authorization. Role-based access control will be implemented through defining custom Azure AD Roles and composing appropriate set of available activities for system Roles. Each Role can be assigned to resource groups as well as to individuals.

3.5. Technological Stack

Cloud Computing Platform & Services: Microsoft Azure 

Web Applications (Global Web Admin, Tenant Administrator Web Dashboard, Employee Web Dashboard): ASP.NET MVC5 Entity Framework v6 Bootstrap JS 3 

Database: MSSQL 2014

Security: Azure Active Directory Single Sign-on

File Export to EXCEL, CSV, PDF, MS Word format" Third-party libraries like iTextSharp, OpenXML, Aspose.NET


The text has a rather simple purpose, and we hope we managed to succeed. It is created to depict the way (or a range of ways) a FreezePro Software team goes with engagements (based on the example of Human Resources Management solution in terms of multi-tenant and cloud environment). Each block had a separate purpose while the last part was solely devoted to proposed system architecture.

Benefits of Using .Net for Startup Development
How to Build a Great SaaS Product and Set the Right Price for It