|
| 1 | +WEBVTT |
| 2 | +Kind: captions |
| 3 | +Language: en |
| 4 | +
|
| 5 | +00:00:04.620 --> 00:00:05.760 |
| 6 | +In this video segment, |
| 7 | + |
| 8 | +00:00:05.760 --> 00:00:09.166 |
| 9 | +we'll discuss the types of problems where InnerSource can help. |
| 10 | + |
| 11 | +00:00:09.920 --> 00:00:12.758 |
| 12 | +We'll do this by presenting a hypothetical, |
| 13 | + |
| 14 | +00:00:12.758 --> 00:00:14.758 |
| 15 | +yet believable collaboration scenario. |
| 16 | + |
| 17 | +00:00:15.400 --> 00:00:17.033 |
| 18 | +We'll examine common approaches |
| 19 | + |
| 20 | +00:00:17.033 --> 00:00:19.900 |
| 21 | +that teams take for this type of situation, |
| 22 | + |
| 23 | +00:00:19.900 --> 00:00:21.444 |
| 24 | +and both the advantages, |
| 25 | + |
| 26 | +00:00:21.444 --> 00:00:23.639 |
| 27 | +and the drawbacks, of each approach. |
| 28 | + |
| 29 | +00:00:24.240 --> 00:00:26.344 |
| 30 | +This conversation will help us to draw |
| 31 | + |
| 32 | +00:00:26.344 --> 00:00:28.925 |
| 33 | +conclusions and lessons about InnerSource. |
| 34 | + |
| 35 | +00:00:29.909 --> 00:00:31.576 |
| 36 | +Well, imagine two teams, |
| 37 | + |
| 38 | +00:00:31.895 --> 00:00:35.382 |
| 39 | +with one producing software that is consumed by another. |
| 40 | + |
| 41 | +00:00:35.960 --> 00:00:37.140 line:0% |
| 42 | +To make it concrete, |
| 43 | + |
| 44 | +00:00:37.352 --> 00:00:40.241 line:0% |
| 45 | +imagine a team producing an API Service |
| 46 | + |
| 47 | +00:00:40.800 --> 00:00:44.160 line:0% |
| 48 | +that a team producing a User Experience consumes. |
| 49 | + |
| 50 | +00:00:45.460 --> 00:00:49.628 line:100% |
| 51 | +At times, to deliver desired features, the Experience |
| 52 | + |
| 53 | +00:00:49.922 --> 00:00:52.756 |
| 54 | +may need to make a request for new functionality |
| 55 | + |
| 56 | +00:00:52.881 --> 00:00:54.051 |
| 57 | +from the API. |
| 58 | + |
| 59 | +00:00:54.580 --> 00:00:57.081 |
| 60 | +Oftentimes, the API will be able to deliver |
| 61 | + |
| 62 | +00:00:57.081 --> 00:00:58.909 |
| 63 | +this requested functionality. |
| 64 | + |
| 65 | +00:00:58.909 --> 00:00:59.938 |
| 66 | +No problem. |
| 67 | + |
| 68 | +00:01:00.604 --> 00:01:03.311 |
| 69 | +However, depending on schedules, |
| 70 | + |
| 71 | +00:01:03.630 --> 00:01:05.860 |
| 72 | +or other prioritizing constraints, |
| 73 | + |
| 74 | +00:01:06.232 --> 00:01:08.634 |
| 75 | +there may be times when that new functionality |
| 76 | + |
| 77 | +00:01:08.634 --> 00:01:10.136 |
| 78 | +can't be delivered right away. |
| 79 | + |
| 80 | +00:01:11.140 --> 00:01:12.186 |
| 81 | +In this scenario, |
| 82 | + |
| 83 | +00:01:12.469 --> 00:01:15.451 |
| 84 | +the Experience has a few options they might take. |
| 85 | + |
| 86 | +00:01:16.447 --> 00:01:18.706 |
| 87 | +The first we'll call "Wait It Out". |
| 88 | + |
| 89 | +00:01:19.671 --> 00:01:20.693 line:15% |
| 90 | +With this approach, |
| 91 | + |
| 92 | +00:01:20.693 --> 00:01:23.540 line:15% |
| 93 | +the Experience does nothing, and simply waits, |
| 94 | + |
| 95 | +00:01:23.540 --> 00:01:27.847 line:15% |
| 96 | +hoping that the API will eventually be able to fill their feature request. |
| 97 | + |
| 98 | +00:01:29.040 --> 00:01:32.126 line:0% |
| 99 | +Now, the advantage is that probably it requires |
| 100 | + |
| 101 | +00:01:32.126 --> 00:01:36.489 line:0% |
| 102 | +the least amount of extra work on the part of the Experience. |
| 103 | + |
| 104 | +00:01:37.360 --> 00:01:39.000 line:0% |
| 105 | +There's a clear drawback though, |
| 106 | + |
| 107 | +00:01:39.000 --> 00:01:42.606 line:0% |
| 108 | +in that, the Experience doesn't get their desired functionality. |
| 109 | + |
| 110 | +00:01:42.860 --> 00:01:43.960 line:0% |
| 111 | +At least, not right away. |
| 112 | + |
| 113 | +00:01:44.440 --> 00:01:48.960 line:0% |
| 114 | +And, depending on future prioritization on the part of the API, |
| 115 | + |
| 116 | +00:01:49.460 --> 00:01:51.880 line:100% |
| 117 | +that feature may not be delivered at all. |
| 118 | + |
| 119 | +00:01:53.300 --> 00:01:56.700 |
| 120 | +Another approach we'll call "Workaround". |
| 121 | + |
| 122 | +00:01:57.694 --> 00:02:01.508 |
| 123 | +With this approach, the Experience may do some extra work |
| 124 | + |
| 125 | +00:02:01.508 --> 00:02:05.412 |
| 126 | +to compensate for the lack of the requested functionality. |
| 127 | + |
| 128 | +00:02:05.900 --> 00:02:09.740 line:15% |
| 129 | +This may be extra work in their own project, |
| 130 | + |
| 131 | +00:02:09.900 --> 00:02:11.550 line:15% |
| 132 | +or they may start up a new project |
| 133 | + |
| 134 | +00:02:11.550 --> 00:02:15.654 line:15% |
| 135 | +that gives them the functionality they were looking for via some other means. |
| 136 | + |
| 137 | +00:02:16.640 --> 00:02:20.060 line:0% |
| 138 | +The benefit here is that the Experience can get what they want, |
| 139 | + |
| 140 | +00:02:20.480 --> 00:02:23.080 line:0% |
| 141 | +when they want it, and by their own effort only. |
| 142 | + |
| 143 | +00:02:23.260 --> 00:02:25.320 line:0% |
| 144 | +No dependency on another team. |
| 145 | + |
| 146 | +00:02:25.980 --> 00:02:27.460 line:0% |
| 147 | +There's some real drawbacks though. |
| 148 | + |
| 149 | +00:02:28.240 --> 00:02:30.901 line:0% |
| 150 | +The Experience has inadvertently signed up |
| 151 | + |
| 152 | +00:02:30.901 --> 00:02:34.304 line:0% |
| 153 | +for the long term burden of maintenance of this new code. |
| 154 | + |
| 155 | +00:02:34.740 --> 00:02:39.740 line:0% |
| 156 | +It's code that oftentimes is not in the domain of their core team competency. |
| 157 | + |
| 158 | +00:02:41.000 --> 00:02:44.220 line:0% |
| 159 | +In addition, other teams of the company that have the same problem, |
| 160 | + |
| 161 | +00:02:44.460 --> 00:02:47.640 line:0% |
| 162 | +are unable to use this specialized, one-off solution. |
| 163 | + |
| 164 | +00:02:48.320 --> 00:02:52.780 line:0% |
| 165 | +And the company as a whole has acquired duplicate code and projects |
| 166 | + |
| 167 | +00:02:53.240 --> 00:02:57.940 line:0% |
| 168 | +in the same problem area that are being worked on in an uncoordinated manner. |
| 169 | + |
| 170 | +00:02:59.320 --> 00:03:02.180 line:100% |
| 171 | +Another approach we'll call "Escalate". |
| 172 | + |
| 173 | +00:03:03.240 --> 00:03:07.020 line:15% |
| 174 | +With "Escalate", the experience doesn't take no for an answer, |
| 175 | + |
| 176 | +00:03:07.020 --> 00:03:10.800 line:15% |
| 177 | +but attempts to influence the API to reconsider |
| 178 | + |
| 179 | +00:03:10.880 --> 00:03:13.700 line:15% |
| 180 | +and prioritize their requested functionality. |
| 181 | + |
| 182 | +00:03:14.840 --> 00:03:19.510 line:15% |
| 183 | +Oftentimes this appeal is made to somebody in the management hierarchy |
| 184 | + |
| 185 | +00:03:19.510 --> 00:03:20.878 line:15% |
| 186 | +of the API. |
| 187 | + |
| 188 | +00:03:21.280 --> 00:03:24.849 line:15% |
| 189 | +It's common for the request to come from someone in the management hierarchy |
| 190 | + |
| 191 | +00:03:24.849 --> 00:03:26.116 line:15% |
| 192 | +of the Experience. |
| 193 | + |
| 194 | +00:03:26.260 --> 00:03:29.080 line:15% |
| 195 | +Let's get the bosses together, have them talk it out. |
| 196 | + |
| 197 | +00:03:30.180 --> 00:03:34.240 line:0% |
| 198 | +The potential advantage is that the Experience can get what it wants, |
| 199 | + |
| 200 | +00:03:34.820 --> 00:03:35.760 line:0% |
| 201 | +when it wants it, |
| 202 | + |
| 203 | +00:03:36.320 --> 00:03:39.780 line:0% |
| 204 | +without needing to maintain the new code long term. |
| 205 | + |
| 206 | +00:03:40.800 --> 00:03:42.140 line:0% |
| 207 | +There are several disadvantages. |
| 208 | + |
| 209 | +00:03:42.880 --> 00:03:45.460 line:0% |
| 210 | +In practice, the process of escalation |
| 211 | + |
| 212 | +00:03:46.060 --> 00:03:50.220 line:0% |
| 213 | +tends to have high friction and take a large amount of time. |
| 214 | + |
| 215 | +00:03:50.940 --> 00:03:56.410 line:0% |
| 216 | +And this time is spent by competent engineers and engineering leaders |
| 217 | + |
| 218 | +00:03:56.420 --> 00:03:58.745 line:0% |
| 219 | +whose time is directed toward the non-productive |
| 220 | + |
| 221 | +00:03:58.745 --> 00:04:01.314 line:0% |
| 222 | +non-engineering task of escalation. |
| 223 | + |
| 224 | +00:04:03.360 --> 00:04:06.440 line:0% |
| 225 | +This process is so time intensive that it doesn't scale. |
| 226 | + |
| 227 | +00:04:06.620 --> 00:04:10.789 line:0% |
| 228 | +A team that attempts to continually advocate for what it needs |
| 229 | + |
| 230 | +00:04:10.820 --> 00:04:13.959 line:0% |
| 231 | +via escalation will simply run out of the time |
| 232 | + |
| 233 | +00:04:13.959 --> 00:04:16.294 line:0% |
| 234 | +and social credibility that it needs to do so. |
| 235 | + |
| 236 | +00:04:17.940 --> 00:04:20.440 line:100% |
| 237 | +This conversation teaches us about InnerSource. |
| 238 | + |
| 239 | +00:04:20.760 --> 00:04:25.460 |
| 240 | +And that InnerSource is meant to apply to the same type of collaborative situation |
| 241 | + |
| 242 | +00:04:26.160 --> 00:04:31.080 |
| 243 | +where a team producing software is unable to deliver functionality |
| 244 | + |
| 245 | +00:04:31.360 --> 00:04:33.140 |
| 246 | +that a team that's consuming it needs. |
| 247 | + |
| 248 | +00:04:34.140 --> 00:04:38.760 |
| 249 | +What InnerSource does is provide a way for the consuming team to get the benefits |
| 250 | + |
| 251 | +00:04:39.140 --> 00:04:42.000 |
| 252 | +of "Wait it Out", "Workaround", and "Escalate" |
| 253 | + |
| 254 | +00:04:42.220 --> 00:04:44.240 |
| 255 | +without those associated drawbacks. |
| 256 | + |
0 commit comments