Featured image of post AI Workshop 과제 설계 캔버스

AI Workshop 과제 설계 캔버스

AI Workshop인데, 포스트잇으로는 할 수 없어 과제 설계 캔버스를 만들었다.

AI Workshop 진행을 포스트잇으로 할 수는 없다.

담당 임원 산하 팀장, 실무자들 대상으로 AI Workshop D-Day가 얼마 남지 않았다. 대상 인원에도 변동이 있고, 일정 진행도 변동이 있었지만, 결국 AI로 성과를 내게 만들라는 목적은 바뀌지 않았다.

그래서 기존에 Claude를 통해 초안으로 만들었던 AI 과제 설계 캔버스를 Develop해서 Workshop에 활용하기로 했다.
AI Workshop인데, 포스트잇으로 벽에 막 붙이고 할 수는 없지 않을까? 😇

각 팀별로 진행하겠다고 한 과제들이 총 10개이고, 그 10개의 과제들에 대해 캔버스를 작성할 수 있도록 웹페이지를 만들었다.
각 과제의 담당자는 이미 지정되어 있어 과제 기본 정보는 미리 입력해두고, Power Automate Flow를 통해서 ai_canvas_store.json을 Read/Write 하도록 설정했다.

과제 설계 캔버스 화면

마지막 9번 항목의 워크샵 결론은 워크샵 진행 후 마지막에 입력해야 하는 부분이므로 비워두게 했다.

워크샵 결론 입력 화면

각 담당자들이 입력을 하고 나면 과제 목록 페이지에서 사전 작성 진행률을 비롯해서 입력 내용을 상세 조회할 수 있다.
워크샵 당일에는 해당 페이지를 전부 띄워놓고, 각 담당자가 앞에서 혹은 자리에서 간단한 컨셉과 설명을 진행하고 애로사항 위주로 Q&A 할 계획이다.
어쨌든 안되고 있는 걸 되게 만들어야 하니까. 😇

과제 목록 화면

워크샵이 종료되고 나면 입력된 9번 워크샵 결론까지 포함하여 분석 리포트가 자동으로 작성된다.
7월 말까지 과제 수행/완료하는 게 목표인데, 이 과정에서 흔히들 PoC(Proof of Concept)라 표현하지만, 진짜 할 수 있는 과제인지, 할 수 있다면 성과로 인정 받을 수 있는 과제인지 등을 종합적으로 판단하기 위함이다.
결론이 나오면 A4 인쇄해서 담당자를 비롯해서 각 팀장, 상무님까지 내용을 공유하면 이번 워크샵은 끝이다.
워크샵 이후에 어떤 일들을 F/up 해야 할지는 지금 당장은 생각하지 않기로 한다. 😅

분석 리포트 화면

참고로 현재 사내에서 내가 개발(?)하고 있는 방식 및 환경은 다음과 같다.

  1. Power Pages 상 ‘총무팀’ 솔루션 생성
  2. 해당 솔루션상에 웹 리소스(html, css, js 등) 업로드 및 고유 URL 생성
  3. SharePoint 상 DB 활용 목적으로 json 업로드 또는 간단한 내용일 경우 SharePoint 목록(List) 사용
  4. Power Automate를 통해 Power Pages에서 SharePoint DB를 Read/Write할 수 있도록 각각의 Flow를 생성, 고유 URL을 html에 하드 코딩

Power Platforms 안에 Dataverse라는 DB 목적의 플랫폼이 있지만, 회사에서 개인이 개발한다고 DB를 할당해 줄지는 미지수다.
아니, 안해줄 것이라 거의 확신하기 때문에 M365 기반의 환경이라면 위와 같은 방법이 현 시점에서 최선이라는 판단이다.
사실 여기까지 알아내고 테스트 하는 데도 꽤 많은 시행착오를 겪었기 때문에 당분간 더 나은 대안이 있지는 않을 것 같다. 😇

아래는 DB로 활용한 json 파일과 AI 과제 설계 캔버스 html 소스다. 참고가 되길… 😄

JSON 파일 구조(ai_canvas_store.json)
  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
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
{
  "meta": {
    "version": "3.0",
    "updatedAt": ""
  },
  "tasks": [
    {
      "id": "TASK-01",
      "label": "1",
      "s1": {
        "taskName": "",
        "team": "",
        "site": "",
        "taskType": []
      },
      "s2": {
        "workDesc": "",
        "inputType": [],
        "frequency": "",
        "pain1": "",
        "pain2": ""
      },
      "s3": {
        "aiPoint": "",
        "humanJudge": ""
      },
      "s4": {
        "dataType": [],
        "dataLocation": [],
        "dataQuality": ""
      },
      "s5": {
        "implType": [],
        "implNote": ""
      },
      "s6": {
        "effectTime": "",
        "effectQuality": "",
        "effectOther": ""
      },
      "s7": {
        "riskLevel": "",
        "riskItems": [],
        "riskNote": ""
      },
      "s8": {
        "pocFeasibility": "",
        "pocScope": ""
      },
      "s9": {
        "conclusion": "",
        "nextActions": [],
        "targetDate": "",
        "owner": "",
        "conclusionNote": ""
      }
    },
    {
      "id": "TASK-02",
      "label": "2",
      "s1": {
        "taskName": "",
        "team": "",
        "site": "",
        "taskType": []
      },
      "s2": {
        "workDesc": "",
        "inputType": [],
        "frequency": "",
        "pain1": "",
        "pain2": ""
      },
      "s3": {
        "aiPoint": "",
        "humanJudge": ""
      },
      "s4": {
        "dataType": [],
        "dataLocation": [],
        "dataQuality": ""
      },
      "s5": {
        "implType": [],
        "implNote": ""
      },
      "s6": {
        "effectTime": "",
        "effectQuality": "",
        "effectOther": ""
      },
      "s7": {
        "riskLevel": "",
        "riskItems": [],
        "riskNote": ""
      },
      "s8": {
        "pocFeasibility": "",
        "pocScope": ""
      },
      "s9": {
        "conclusion": "",
        "nextActions": [],
        "targetDate": "",
        "owner": "",
        "conclusionNote": ""
      }
    },
    {
      "id": "TASK-03",
      "label": "3",
      "s1": {
        "taskName": "",
        "team": "",
        "site": "",
        "taskType": []
      },
      "s2": {
        "workDesc": "",
        "inputType": [],
        "frequency": "",
        "pain1": "",
        "pain2": ""
      },
      "s3": {
        "aiPoint": "",
        "humanJudge": ""
      },
      "s4": {
        "dataType": [],
        "dataLocation": [],
        "dataQuality": ""
      },
      "s5": {
        "implType": [],
        "implNote": ""
      },
      "s6": {
        "effectTime": "",
        "effectQuality": "",
        "effectOther": ""
      },
      "s7": {
        "riskLevel": "",
        "riskItems": [],
        "riskNote": ""
      },
      "s8": {
        "pocFeasibility": "",
        "pocScope": ""
      },
      "s9": {
        "conclusion": "",
        "nextActions": [],
        "targetDate": "",
        "owner": "",
        "conclusionNote": ""
      }
    },
    {
      "id": "TASK-04",
      "label": "4",
      "s1": {
        "taskName": "",
        "team": "",
        "site": "",
        "taskType": []
      },
      "s2": {
        "workDesc": "",
        "inputType": [],
        "frequency": "",
        "pain1": "",
        "pain2": ""
      },
      "s3": {
        "aiPoint": "",
        "humanJudge": ""
      },
      "s4": {
        "dataType": [],
        "dataLocation": [],
        "dataQuality": ""
      },
      "s5": {
        "implType": [],
        "implNote": ""
      },
      "s6": {
        "effectTime": "",
        "effectQuality": "",
        "effectOther": ""
      },
      "s7": {
        "riskLevel": "",
        "riskItems": [],
        "riskNote": ""
      },
      "s8": {
        "pocFeasibility": "",
        "pocScope": ""
      },
      "s9": {
        "conclusion": "",
        "nextActions": [],
        "targetDate": "",
        "owner": "",
        "conclusionNote": ""
      }
    },
    {
      "id": "TASK-05",
      "label": "5",
      "s1": {
        "taskName": "",
        "team": "",
        "site": "",
        "taskType": []
      },
      "s2": {
        "workDesc": "",
        "inputType": [],
        "frequency": "",
        "pain1": "",
        "pain2": ""
      },
      "s3": {
        "aiPoint": "",
        "humanJudge": ""
      },
      "s4": {
        "dataType": [],
        "dataLocation": [],
        "dataQuality": ""
      },
      "s5": {
        "implType": [],
        "implNote": ""
      },
      "s6": {
        "effectTime": "",
        "effectQuality": "",
        "effectOther": ""
      },
      "s7": {
        "riskLevel": "",
        "riskItems": [],
        "riskNote": ""
      },
      "s8": {
        "pocFeasibility": "",
        "pocScope": ""
      },
      "s9": {
        "conclusion": "",
        "nextActions": [],
        "targetDate": "",
        "owner": "",
        "conclusionNote": ""
      }
    },
    {
      "id": "TASK-06",
      "label": "6",
      "s1": {
        "taskName": "",
        "team": "",
        "site": "",
        "taskType": []
      },
      "s2": {
        "workDesc": "",
        "inputType": [],
        "frequency": "",
        "pain1": "",
        "pain2": ""
      },
      "s3": {
        "aiPoint": "",
        "humanJudge": ""
      },
      "s4": {
        "dataType": [],
        "dataLocation": [],
        "dataQuality": ""
      },
      "s5": {
        "implType": [],
        "implNote": ""
      },
      "s6": {
        "effectTime": "",
        "effectQuality": "",
        "effectOther": ""
      },
      "s7": {
        "riskLevel": "",
        "riskItems": [],
        "riskNote": ""
      },
      "s8": {
        "pocFeasibility": "",
        "pocScope": ""
      },
      "s9": {
        "conclusion": "",
        "nextActions": [],
        "targetDate": "",
        "owner": "",
        "conclusionNote": ""
      }
    },
    {
      "id": "TASK-07",
      "label": "7",
      "s1": {
        "taskName": "",
        "team": "",
        "site": "",
        "taskType": []
      },
      "s2": {
        "workDesc": "",
        "inputType": [],
        "frequency": "",
        "pain1": "",
        "pain2": ""
      },
      "s3": {
        "aiPoint": "",
        "humanJudge": ""
      },
      "s4": {
        "dataType": [],
        "dataLocation": [],
        "dataQuality": ""
      },
      "s5": {
        "implType": [],
        "implNote": ""
      },
      "s6": {
        "effectTime": "",
        "effectQuality": "",
        "effectOther": ""
      },
      "s7": {
        "riskLevel": "",
        "riskItems": [],
        "riskNote": ""
      },
      "s8": {
        "pocFeasibility": "",
        "pocScope": ""
      },
      "s9": {
        "conclusion": "",
        "nextActions": [],
        "targetDate": "",
        "owner": "",
        "conclusionNote": ""
      }
    },
    {
      "id": "TASK-08",
      "label": "8",
      "s1": {
        "taskName": "",
        "team": "",
        "site": "",
        "taskType": []
      },
      "s2": {
        "workDesc": "",
        "inputType": [],
        "frequency": "",
        "pain1": "",
        "pain2": ""
      },
      "s3": {
        "aiPoint": "",
        "humanJudge": ""
      },
      "s4": {
        "dataType": [],
        "dataLocation": [],
        "dataQuality": ""
      },
      "s5": {
        "implType": [],
        "implNote": ""
      },
      "s6": {
        "effectTime": "",
        "effectQuality": "",
        "effectOther": ""
      },
      "s7": {
        "riskLevel": "",
        "riskItems": [],
        "riskNote": ""
      },
      "s8": {
        "pocFeasibility": "",
        "pocScope": ""
      },
      "s9": {
        "conclusion": "",
        "nextActions": [],
        "targetDate": "",
        "owner": "",
        "conclusionNote": ""
      }
    },
    {
      "id": "TASK-09",
      "label": "9",
      "s1": {
        "taskName": "",
        "team": "",
        "site": "",
        "taskType": []
      },
      "s2": {
        "workDesc": "",
        "inputType": [],
        "frequency": "",
        "pain1": "",
        "pain2": ""
      },
      "s3": {
        "aiPoint": "",
        "humanJudge": ""
      },
      "s4": {
        "dataType": [],
        "dataLocation": [],
        "dataQuality": ""
      },
      "s5": {
        "implType": [],
        "implNote": ""
      },
      "s6": {
        "effectTime": "",
        "effectQuality": "",
        "effectOther": ""
      },
      "s7": {
        "riskLevel": "",
        "riskItems": [],
        "riskNote": ""
      },
      "s8": {
        "pocFeasibility": "",
        "pocScope": ""
      },
      "s9": {
        "conclusion": "",
        "nextActions": [],
        "targetDate": "",
        "owner": "",
        "conclusionNote": ""
      }
    },
    {
      "id": "TASK-10",
      "label": "10",
      "s1": {
        "taskName": "",
        "team": "",
        "site": "",
        "taskType": []
      },
      "s2": {
        "workDesc": "",
        "inputType": [],
        "frequency": "",
        "pain1": "",
        "pain2": ""
      },
      "s3": {
        "aiPoint": "",
        "humanJudge": ""
      },
      "s4": {
        "dataType": [],
        "dataLocation": [],
        "dataQuality": ""
      },
      "s5": {
        "implType": [],
        "implNote": ""
      },
      "s6": {
        "effectTime": "",
        "effectQuality": "",
        "effectOther": ""
      },
      "s7": {
        "riskLevel": "",
        "riskItems": [],
        "riskNote": ""
      },
      "s8": {
        "pocFeasibility": "",
        "pocScope": ""
      },
      "s9": {
        "conclusion": "",
        "nextActions": [],
        "targetDate": "",
        "owner": "",
        "conclusionNote": ""
      }
    }
  ]
}
과제 설계 캔버스 공유