This repository has been archived by the owner on Feb 11, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
App Outline
224 lines (160 loc) · 9.13 KB
/
App Outline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
Philosophy:
Teams work best if grouped into squads, similar to how the military performs. Teammembers will work harder and collaborate better in these groups than they would as part of a larger, general group. Teammembers will work harder to not let each other down. They will feel more comfortable asking for help from each other.
From wikipedia:
"Historically, nations with effective fireteam organization have had significantly better performance from their infantry units in combat than those limited to operations by traditionally larger units."
and
"Psychological studies by the United States Army have indicated that a soldier's' survivability and the willingness to fight is more heavily influenced by the desire to both protect and avoid failing to support other members of the fireteam than by abstract concepts or ideologies."
Source: https://en.wikipedia.org/wiki/Fireteam
Target is medium to large companies with software engineer divisions. Our app would break the division up into groups of 4 people with certain personality combinations.
Teams are not moved around or grouped around projects. The squad is the core. Projects are assigned to squads, and large projects can be assigned to (and probably broken up for) multiple squads. squads are kept together between projects.
Teams are composed based on personality types. The assumption is that a certain composition of personality types works better together. Traitify will be used to determine a person's personality type.
Current best composition idea is: Leadership, Work ethic, Social, Creative. This composition can possibly be changed based on testing data.
Leader leads. Social person keeps team communicating and bonding, most likely to organize meetings outside of work and social things, helps resolve disputes and friction. Creative helps come up with ideas and solutions to problem, strong at deep thinking. Work ethic keeps team focused on deliverable and on task and motivation. All teammembers have base line techincal skill and so can all contribute in that regard, and have basic likability and teamwork aptitude.
Think Raidfind in World of Warcraft. Takes a group of people and forms balanced parties. You'd want each party to have a tank, damage dealer, healer, etc. You wouldn't want to have a party of 5 healers. The same probably applies to personality types. You wouldn't want a group with two leadership style personalities because they would butt heads often. You would want to have a group with someone who is especially creative so they can come up with solutions when they get stuck. You would also want someone who can meet deadlines and keep the group focused on priorities.
The important thing for team performance is member buy in, member work ethic, and team dynamic, not subject knowledge. The subject knowledge is not as important, and can be learned via internet or outside technical resource. I.e., teams should not be organized based on subject knowledge, but on team dynamic. The subject knowledge can then be fed to the team. This may also have the side effect of creating more creative, disruptive, and effective solutions. Evolutionary ideas come from newcomers to a subject.
Story: Plenty of entreprenuers go into a field without knowing it, and learn it and create things better than incumbent experts.
Everyone at the hackathon got to experience what it is like working in a group. Doesn't it seem like it would be nice to have all of these personality types in your group? Maybe this could even be used to make groups in future hackathons. Or use it on half the people and poll people afterwards and see which groups had a better experience.
Parts:
Our planning:
Parameters:
(These can be adjusted based on:
testing
project needs
Or maybe needs to stay the same for psychological reasons)
squad size:
4 people
minimum: 3 people
Compostion:
Leader
Social
Creative
Work ethic
All members should have base level
likability
work ethic
technical skill
Initial adoption:
Break up total engineering team into squads
Have all of engineering team take Traitify assessment
squads created by our software
Looks for best way to combine members to best create ideal teams
Maybe develop next best combinations in case ideal isn't found
Or group based on whoever has the strongest in those categories
Figure out how Traitify classifies people
(our software is done at this point. We just give the company the plan for how to use the squads from here)
Projects assigned to teams
Technical resources assigned to teams
Ongoing implementation:
When workload exceeds capacity, a new squad is created
squads shouls not exceeed 4 people. Therfore, an attempt to increase capacity should not be made by adding new individuals to existing squads, and increasing size of squads.
squad ideally created all at once, to increase comraderie, similar to military bootcamp
Story: When I was hired at my last job, I was hired as a group of 4. We went through onboarding together and had lunch together for the first 3 weeks. After that, the difference in our technical abilities had us work on different things, but I felt a bond with them the whole year I was there.
Interviewees are given Traitify assessment
Best candidates are picked based on technical ability and squad composition needs
If candidates reject offer, replacement candidate chosen (selected by our software) based on composition needs
Specifics of what our software will do
Interaction with Traitify API
Having candidates take Traitify test
Creating groups
Using entire existing engineering team
Split groups into squads of 4 members each
Find best way to group them so each team has it's role covered sufficiently
Create teams of 3 to handle pool that is not a multiple of 4
Using interviewees
Same algorithm as above, but only have to create one squad. Can leave all other candidates ungrouped.
How our app will do it:
Creating Teams:
Legend:
L: Leader
S: Social
C: Creative
W: Work ethic
For this exercise we will get down to 4 combinations by taking the average of 2 of the 7 types they provide to get to the 4 we will use. The 4 we will use may not be the best, but it is fine for this exercise. The best to use can be figured out through testing.
Theirs:
Adventurous
Charismatic
Mellow
Rational
Reliable
Social
Thoughtful
We are keying off of "personality_traits"
Leader = Adventurous + Charismatic
Social = Thoughtful + Social
Creative = Rational + Mellow
Work Ethic = Reliable
One person:
L 80
S 50
C 20
W 30
L
L .8
Example cases:
Input:
40 people
L x 10
S x 15
C x 15
W x 10
Output:
LSCW x 10
Three cases:
L 8
S 2
C 2
W 2
Algorithm:
find shortage
find the trait with the least people above 6
Assign people to that trait starting with the person with the highest aptitude in that, and the lowest aptitude in something else
Our app would need to consider:
Each person's primary personality type
The intensity of their primary personality type
Going forward, companies might want to hire so that they have the right number of personality types.
Place specialists
Find people with 3 scores 3 or less and one score 5 or more
Next pass, is shortage
with importance breaking ties
ToDo
Flesh out what app must do
Flesh out how it will do it (high level)
flesh out algorithm
divide up work
start coding
Ideas:
People could take test and associate the results with their social media accounts (LinkedIn, Monster, etc.).
Then a crawler finds that and uses it as an additional factor for picking candidates (addition to languages known, years of experience, etc.).
Questions:
What is target user?
Medium to large coding engineering teams
Will work be assigned to teammembers based on personality type? I.e. will front end UI be assigned to Creative?
First focus is on team cohesion/dynamic
But, how to assigned work is good question/important.
Future possibilities:
Figure out what the important personality types are.
Figure out how to group when not perfect mix of people
Figure out what the most productive personality combination is
Figure out what the ideal team size is
order for placing
group people by this
specialists
place
multiskill (everyone else)
shortage
tie breaker by importance
generalists
fill gaps
code
grouping people by number of specialties - Dustin
adding people to answer array - ?
determing which speciality to use for multiskill (shortage/importance) - Ken
perfecting grouping algorithm not as important as creating something that works.
An app that doesn't work looks the same as nothing to those on the outside.
create 40 people with help of Traitify people
Create script that pulls out the API responses
Get the code for creating groups working
Get test people created
Find out how to get personality type for test people
Create code to populate our database with information from API
Figure out how to display the results using the output of the group putter