The Occupation Vectors are universal way to describe in a simple and practical way any position or role within a company (at least in the context of Software engineering). Their main purpose is to allow: (1) the determination and examination of the consequences of combining or splitting corporate positions and roles, transferring, promoting and demoting employees, etc. (e.g. due to organizational restructuring, implementation of employee reward and recognition programs, etc.); and (2) the mapping (or calculating the similarity) of different positions and roles (e.g. due to transitioning to new software development methods as Scrum/XP/DSDM/etc., mergers and acquisitions, etc.). Moreover the occupation vectors might be used as an instrument to roughly assess the efficiency of performing various positions and roles in a given company, branch, department, workgroup, etc. (through the so called Occupation Efficiency Metric).
The 5P Occupation Model
There are five distinct aspects of work which I believe are essential and sufficient to describe any position or role within a company. These are People, Processes, Products, Politics (or Organizations) and Platforms (or Technologies). Each aspect represents unique working area and involves unique duties, responsibilities, accountabilities, working activities and tasks, etc. They are briefly described in the table given below. I’ve called these five distinct aspects of work the 5P Occupation Model.
|Aspect of Work||Working Activities and Tasks|
|Politics (or Organizations)||
|Platforms (or Technologies)||
Any position or role within a company could be simply described by distributing the time allocated for each of the above five distinct aspects of work. If we take Project Manager as an example – one possible distribution could be 5% People, 80% Processes, 10% Products, 5% Organizations and 0% Technologies (although this might significantly vary depending on the incorporated project management methodology as well as the existing in-house practices within the company).
The Occupation Vectors
By using the time distribution presented above we could represent any position or role within a company using a vector (or one dimensional array). I’ve called these vectors Occupation Vectors. In the example with the Project Manager – this would be 5:80:10:5:0. Given below are possible occupation vectors for the Scrum‘s roles as well as some other popular positions and roles within the software industry.
|Other popular positions/roles|
|UX Engineer / Interaction Designer||0:0:30:0:70|
The Occupation Efficiency Metric (OFM)
Determining the time distribution for a given position or role is not quite straightforward and might significantly vary per business/application domain or industry, company, branch, department or workgroup, etc. One possible approach is to average the actual time spent by the people who are holding the corresponding positions or roles. In this case you get the “As Is” occupation vector. Another approach would be to set the expected (or desired, optimal, etc.) time allocation. Then you get the so called “Should Be” occupation vector. The greater the difference between the “As Is” and “Should Be” occupation vectors the greater is the time spent on activities and tasks which people are not expected to be working on. As such “As Is” and “Should Be” occupation vectors might be used as an instrument to assess how efficient a given position or role is being performed. This could be further quantified using the Occupation Efficiency Metric (or OEM in short). Its formula is given below.
OEM is a number between 0 and 1. 1 means that “As Is” and “Should Be” occupation vectors are identical (thus the position or role is performed as expected). 0 means that there is a total discrepancy between the nature of work expected and the one actually delivered.
Example: Let’s say that the “As Is” occupation vector is 5:80:5:5:5 and the “Should Be” occupation vector is 10:60:10:0:20. Then OEM = 1 – ((5 + 20 + 5 + 5 + 15) / 200 ) = 1 – (50 / 200) = 1 – 0.25 = 0.75.
The Occupation Vectors Operations
The greatest advantage of the occupation vectors is that they make it much more easier to determine and examine the consequences of combining or splitting positions or roles, transferring, promoting and demoting employees, etc. as well as mapping (or calculating the similarity) of different positions and roles.
The Union operation is used when two or more positions and/or roles are hold by one and the same person (e.g. combining positions and/or roles). In helps you determine the combined occupation vector by using the following formula:
You might use weights to further specify the priority/importance for each of the combined positions and/or roles. In this case you’d have to adapt the formula accordingly.
Example: Let’s assume that a person combines the following two Scrum roles (with the same priority) – Scrum Master and Software Developer. Their corresponding occupation vectors (according the table above) are 5:80:5:5:5 and 0:20:10:0:70 respectively. The union of these two roles would be the occupation vector (5+0)/2 : (80+20)/2 : (5+10)/2 : (5+0)/2 : (5+70)/2 = 2.5:50:7.5:2.5:37.5.
The Intersection/Complement operations are used when a person changes position or role (e.g. is transferred, promoted, demoted, etc.). Their main objective is to indicate which aspects of work should be enhanced or limited respectively (and do not result in a separate occupation vector as the Union).
The Intersection is calculated through the following formula:
Example: Let’s assume that a person changes roles from Software Developer to Scrum Master. Their corresponding occupation vectors (according the table above) are 0:20:10:0:70 and 5:80:5:5:5 respectively. Then the Intersection would be (5-0):(80-20):0:(5-0):0 = 5:60:0:5:0. Thus the Intersection indicates that after moving to the new Scrum Master role the person would have to spend 60% more time on Processes and 5% more time on People and Organizations.
The formula for the Complement is given below:
Example: Let’s again assume that a person changes roles from Software Developer to Scrum Master and their corresponding occupation vectors are 0:20:10:0:70 and 5:80:5:5:5 respectively. Then the Complement would be 0:0:(10-5):0:(70-5) = 0:0:5:0:65. Thus the Complement indicates that after moving to the new Scrum Master role the person would have to spend 65 less time on Technologies and 5% less time on Products.
III. DIFFERENCE (SIMILARITY)
The Difference (or Similarity) operation is used to calculate the gap (or likeness) between two positions and/or roles. This could be extremely useful when you’d like to map existing positions and/or roles to newly introduced ones (e.g. due to transitioning to new software development methods, mergers and acquisitions, etc.). For example if you are transitioning to Scrum you might be interested how let’s say the Project Manager position (already already existing in your company) would fit into this new software development method. You could calculate the Difference using the following formula:
The Difference operator results in a number between 0 and 1. 1 means the positions / roles are totally different, while 0 means they are identical.
Example: Let’s assume you would like to determine whether Team Leaders could become Scrum Masters as you are transitioning to Scrum. The occupation vector for Team Leader (from the table above) is 50:20:0:0:30 while for Scrum Master is 5:80:5:5:5. Then the Difference is (|50-5| + |20-80| + |0-5| + |0-5| + |30-5|) / 200 = (|45| + |-60| + |-5| + |-5| + |25|)/200 = (45 + 60 + 5 + 5 + 25)/200 = 140/200 = 0.70. As seen the Difference is a major one so turning the Team Leaders into Scrum Masters would significantly change their duties, responsibilities, accountabilities, working activities and tasks, etc. and therefore should be approached very carefully.