Our Policy on Employee Skilling
The five pillars of our Skill Enhancement Process.
Version 1.0 (Created 13-May-2019)
Skill Enhancement directly improves the efficiency and productivity of our employees, enabling us optimize resource utilization & in instilling the sense of teamwork, team spirit, and inter-team collaborations. Training empowers employees. As a result, employee turnover and absenteeism rates are reduced.
Through effective skill enhancement, an employee becomes more capable, competent, and confident in himself and his performance, and is better able to reach his goals. The idea behind skill enhancement practices is not to restrict our employees to the same coding skills but is to make them aware of the emerging areas in this era of new technologies.
I. Components of skill Enhancement
A. Skill Tests
As per the McKinley & Rice’s new Mission Statement for 2019–2023, all employees must enhance their skills to be at par with developers and designers working anywhere else in the world. The objective is to prepare our employees to compete with the best in class and bolster the company’s exponential growth in the years to come.
Process for Task Assignment
Understanding the employee competencies: Understanding the current skill set of the employee, additional skill requirement for the present job role, skills required to grow within the company based on the industry & organization specific context.
Assessments Reports: Based on the “Skill Assessment Timeline” (mentioned below).
Skill Assessments Pattern
In-House Assessment: Team member would be required to participate in technology-specific skill tests twice in a quarter. Score acquired in these tests, assigned/scheduled in house by leads would form the basis of Skill Enhancement Assessment for the quarterly Performance Evaluations (PE).
Timeline for Skill Enhancement Assessment
B. Development Competitions
Competitive programming is solving well-defined problems by writing computer programs under specified limits.
Aspects of Competitive Programming
● Well-defined problems: You are presented with one or more problems. The problem statement contains variables, and you must be able to answer the problem if given any possible combination of values of the variables. The problem will be well-defined: you will be informed about the exact constraints of all variables, any necessary assumptions, etc.
● Computer programs: You write computer programs that solve the problems. Note that the “computer program” here is a very simple command-line program; no fancy GUI or web app etc. The command-line program reads the values of the variables from the standard input and must write the answer to the standard output.
● Specified limits: Your program must run and produce the answer within a specified time and memory limit. Also, you must write the programs in a specified set of allowed programming languages.
Parameters
Nowadays, there are many types of competitive programming contest formats. Individual team members are encouraged to participate in online programming competitions (e.g., Codeforces rounds, topcoder SRMs) on a monthly basis (e.g., https://www.codechef.com/ (CodeChef) long contests).
Online Judge
This term is very popular in the competitive programming world. It is a website containing a collection of competitive programming problems, where you can freely submit solutions, anytime. There is usually no specified duration, unlike contests. People usually practice their skill in online judges.
Milestones
● Codechef Long Contest-Rank < 50000: Our aim is to ensure that each member of our team achieves a rank < 50000. The rank an employee secures in each contest and its growth rate plays a factor in their yearly performance evaluation. Participation in this contest is compulsory.
● Participation in Short Contest: To leave our mark in the programming world, it’s important to swim with the big fish occasionally. Everyone in the team is pushed towards participation in short competitions like Google Code Jam, TopCoder SRM’s, Code chef Short Contests, etc. Participation in at least 5 such competitions is compulsory.
● Submission of Answers: We also want to develop a feeling of helpfulness among the team members, so after each contest ends, we encourage everyone to submit their successful submissions. Through this, you can see how other person codes and may learn a few new tricks.
Note: All the parameters given in these Milestones are yearly, but the progress will be monitored after each quarter ends.
C. Pair Programming
Meaning of Pair Programming
Pair programming is an Agile software development strategy with 2 developers working in tandem to achieve a specific task in stipulated time. The allocation, execution, and iteration of the work allocated is completely the responsibility of the pair and their work is judged solely based on the final product and related metrics described later in this document.
Reason for doing Pair Programming
Pair programming promotes key Agile development values and results in overall engineer happiness while development, due to shared responsibility. The reasons why pair programming works so effectively can be summed up by these points:
· Fewer defects due to cross checking
· Developer happiness
· Enhanced commitment towards achieving a single goal
Implementation
Pair programming event will include pairs divided according to proficiency with complementing technologies (eg. A front-end developer will be paired up with a node developer) to ensure maximum productivity. The overall process of these events can be described using the following steps:
· The divided pairs will be allocated a printed development task that needs to be completed within 3 hours.
· Pairs will analyze the problem and distribute the task into modular subtasks.
· Pairs will then allocate these subtasks amongst themselves.
· They will begin development and attempt to check off all requirements and subtasks inside the allotted time.
· They will finally present their end products to all other pairs by pushing their code and relevant documentation on version control like Github.
NOTE: This exercise will not measure any individual contributions to instill collective responsibility in pairs for their product and avoid any cross blame for not being able to achieve what they had set out to.
D. Personal Development
Personal Development is the process of improving oneself through conscious habits and activities. It is a pursuit of personal growth to enhance the quality of life and to achieve one’s dreams and aspirations. Personal growth is bettering yourself, stepping out of your comfort zone, focusing on becoming a better version of yourself. Humans and the human mind are constantly evolving and never stops. Your job is to always be a better version of yourself than you were yesterday. Much of our everyday talk is made up of descriptions in which we seek in one way or another to convey ideas to other people. A GD round is ideally conducted in order to understand the candidate’s interpersonal skill & to enhance it.
Benefits
The benefits of a personal development plan are simple: you’ll have a roadmap to the best version of yourself in and out of your workplace. It’s about being prepared for the future and being proactive in every aspect of your life so you can enjoy the benefits tomorrow. If you value your professional life, then personal development is the key to achieving lifelong career goals. You will eventually be working on your own growth and will be able to achieve outstanding results in the workplace. Before you can impact your local community, your workplace, and the whole world at large, you need to start by taking a look at yourself as an individual. PDP is not limited to the sole benefit of any individuals but also entire organizations.
E. Management Sessions
Management sessions focusing on business & entrepreneurship will be conducted each month covering topics such as Management Consultancies, Business Strategy Development (The Performance Landscape), Data-Driven Decision Making (Data Analytics, Research, and Statistics), Raising VC Capital (Funding, its respective rounds, term sheets, relationship with government grants, etc.), Leadership Theory, Changes in the Global Tech Industry, User Interface Design and Monetization (Design in Business), Social Media Influencers and Marketing 3.0, Business Law, Taxes, and Navigating Government Regulations, Branding, and How to Manipulate the Press, Financial Statements and Revenue Projections, etc.