/
index.html
1619 lines (1220 loc) · 84.2 KB
/
index.html
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
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">
<meta name="theme-color" content="#222">
<meta name="generator" content="Hexo 5.4.0">
<link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png">
<link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32-next.png">
<link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16-next.png">
<link rel="mask-icon" href="/images/logo.svg" color="#222">
<link rel="stylesheet" href="/css/main.css">
<link rel="stylesheet" href="/lib/font-awesome/css/all.min.css">
<script async src="https://www.googletagmanager.com/gtag/js?id=G-3PXW8DRLC1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-3PXW8DRLC1');
</script>
<script id="hexo-configurations">
var NexT = window.NexT || {};
var CONFIG = {"hostname":"skywalkerai.com","root":"/","scheme":"Muse","version":"7.8.0","exturl":false,"sidebar":{"position":"left","display":"always","padding":18,"offset":12,"onmobile":false},"copycode":{"enable":false,"show_result":false,"style":null},"back2top":{"enable":true,"sidebar":false,"scrollpercent":false},"bookmark":{"enable":false,"color":"#222","save":"auto"},"fancybox":false,"mediumzoom":false,"lazyload":false,"pangu":false,"comments":{"style":"tabs","active":null,"storage":true,"lazyload":false,"nav":null},"algolia":{"hits":{"per_page":10},"labels":{"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}},"localsearch":{"enable":false,"trigger":"auto","top_n_per_article":1,"unescape":false,"preload":false},"motion":{"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}}};
</script>
<meta name="description" content="技术团队管理者、10年以上互联网行业老兵,学会从本质出发的思考方式,希望通过写作,更好思考技术人生、分享一只老鸟的经验。">
<meta property="og:type" content="website">
<meta property="og:title" content="天行者YANG - BLOG">
<meta property="og:url" content="https://skywalkerai.com/index.html">
<meta property="og:site_name" content="天行者YANG - BLOG">
<meta property="og:description" content="技术团队管理者、10年以上互联网行业老兵,学会从本质出发的思考方式,希望通过写作,更好思考技术人生、分享一只老鸟的经验。">
<meta property="og:locale" content="zh_CN">
<meta property="article:author" content="天行者YANG">
<meta name="twitter:card" content="summary">
<link rel="canonical" href="https://skywalkerai.com/">
<script id="page-configurations">
// https://hexo.io/docs/variables.html
CONFIG.page = {
sidebar: "",
isHome : true,
isPost : false,
lang : 'zh-CN'
};
</script>
<title>天行者YANG - BLOG</title>
<noscript>
<style>
.use-motion .brand,
.use-motion .menu-item,
.sidebar-inner,
.use-motion .post-block,
.use-motion .pagination,
.use-motion .comments,
.use-motion .post-header,
.use-motion .post-body,
.use-motion .collection-header { opacity: initial; }
.use-motion .site-title,
.use-motion .site-subtitle {
opacity: initial;
top: initial;
}
.use-motion .logo-line-before i { left: initial; }
.use-motion .logo-line-after i { right: initial; }
</style>
</noscript>
</head>
<body itemscope itemtype="http://schema.org/WebPage">
<div class="container use-motion">
<div class="headband"></div>
<header class="header" itemscope itemtype="http://schema.org/WPHeader">
<div class="header-inner"><div class="site-brand-container">
<div class="site-nav-toggle">
<div class="toggle" aria-label="切换导航栏">
<span class="toggle-line toggle-line-first"></span>
<span class="toggle-line toggle-line-middle"></span>
<span class="toggle-line toggle-line-last"></span>
</div>
</div>
<div class="site-meta">
<a href="/" class="brand" rel="start">
<span class="logo-line-before"><i></i></span>
<h1 class="site-title">天行者YANG - BLOG</h1>
<span class="logo-line-after"><i></i></span>
</a>
</div>
<div class="site-nav-right">
<div class="toggle popup-trigger">
</div>
</div>
</div>
<nav class="site-nav">
<ul id="menu" class="main-menu menu">
<li class="menu-item menu-item-home">
<a href="/" rel="section"><i class="fa fa-home fa-fw"></i>首页</a>
</li>
<li class="menu-item menu-item-tags">
<a href="/tags/" rel="section"><i class="fa fa-tags fa-fw"></i>标签</a>
</li>
<li class="menu-item menu-item-categories">
<a href="/categories/" rel="section"><i class="fa fa-th fa-fw"></i>分类</a>
</li>
<li class="menu-item menu-item-archives">
<a href="/archives/" rel="section"><i class="fa fa-archive fa-fw"></i>全部文章</a>
</li>
</ul>
</nav>
</div>
</header>
<div class="back-to-top">
<i class="fa fa-arrow-up"></i>
<span>0%</span>
</div>
<main class="main">
<div class="main-inner">
<div class="content-wrap">
<div class="content index posts-expand">
<article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-CN">
<link itemprop="mainEntityOfPage" href="https://skywalkerai.com/2022/02/03/%E4%BD%9C%E4%B8%BA%E7%A0%94%E5%8F%91Leader%EF%BC%8C%E5%A6%82%E4%BD%95%E5%81%9A%E6%80%BB%E7%BB%93/">
<span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
<meta itemprop="image" content="/images/avatar.png">
<meta itemprop="name" content="天行者YANG">
<meta itemprop="description" content="技术团队管理者、10年以上互联网行业老兵,学会从本质出发的思考方式,希望通过写作,更好思考技术人生、分享一只老鸟的经验。">
</span>
<span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
<meta itemprop="name" content="天行者YANG - BLOG">
</span>
<header class="post-header">
<h2 class="post-title" itemprop="name headline">
<a href="/2022/02/03/%E4%BD%9C%E4%B8%BA%E7%A0%94%E5%8F%91Leader%EF%BC%8C%E5%A6%82%E4%BD%95%E5%81%9A%E6%80%BB%E7%BB%93/" class="post-title-link" itemprop="url">作为研发Leader,如何做总结</a>
</h2>
<div class="post-meta">
<span class="post-meta-item">
<span class="post-meta-item-icon">
<i class="far fa-calendar"></i>
</span>
<span class="post-meta-item-text">发表于</span>
<time title="创建时间:2022-02-03 00:12:54" itemprop="dateCreated datePublished" datetime="2022-02-03T00:12:54+08:00">2022-02-03</time>
</span>
<span class="post-meta-item">
<span class="post-meta-item-icon">
<i class="far fa-folder"></i>
</span>
<span class="post-meta-item-text">分类于</span>
<span itemprop="about" itemscope itemtype="http://schema.org/Thing">
<a href="/categories/%E6%8A%80%E6%9C%AF%E7%AE%A1%E7%90%86/" itemprop="url" rel="index"><span itemprop="name">技术管理</span></a>
</span>
</span>
</div>
</header>
<div class="post-body" itemprop="articleBody">
<h1 id="为什么要总结"><a href="#为什么要总结" class="headerlink" title="为什么要总结"></a>为什么要总结</h1><hr>
<blockquote>
<p>行有不得,反求诸己。 —— 出自《孟子》</p>
</blockquote>
<p>学会从自身寻找原因,可以帮助我们成为更好的人。</p>
<p>其实,无论是个人还是团队,在年底进行一些有针对性的总结(建议是数据化呈现),对于找到自身问题,提高和改进,还是有挺大帮助的。</p>
<p>切忌,不是为了总结而总结。应该学会从客观的事实(数据化是个不错的手段),寻找问题的发生原因,从而尝试做改变,去改善问题。</p>
<h1 id="准备工作"><a href="#准备工作" class="headerlink" title="准备工作"></a>准备工作</h1><hr>
<blockquote>
<p>💡 思考的框架 优于 思考的内容</p>
</blockquote>
<h2 id="避免流水账"><a href="#避免流水账" class="headerlink" title="避免流水账"></a>避免流水账</h2><p>作为研发Leader,在做总结时,我会首先避免流水账,不要先思考这1年来,我们做了什么,这样很容易陷入到细节中。</p>
<h2 id="思考:我们需要什么样子的团队"><a href="#思考:我们需要什么样子的团队" class="headerlink" title="思考:我们需要什么样子的团队"></a>思考:我们需要什么样子的团队</h2><p>小时候,经常被问到,你想成为什么样的人。其实,管理团队也是一样的逻辑,先思考「我们需要什么样的团队」。在2021年初,我们团队定下的指导思想是「成为专业的团队」,所以,在接下来的1年时间里,我们都在遵循这个指导思想。</p>
<h2 id="建设团队的指导思想"><a href="#建设团队的指导思想" class="headerlink" title="建设团队的指导思想"></a>建设团队的指导思想</h2><p><img src="/images/2022-02/1.png"></p>
<h2 id="抽象团队的工作分类"><a href="#抽象团队的工作分类" class="headerlink" title="抽象团队的工作分类"></a>抽象团队的工作分类</h2><p><img src="/images/2022-02/2.png"></p>
<h1 id="我的思路"><a href="#我的思路" class="headerlink" title="我的思路"></a>我的思路</h1><hr>
<h2 id="做了什么"><a href="#做了什么" class="headerlink" title="做了什么"></a>做了什么</h2><p>建议按照工作分类进行重点事项的陈述</p>
<h2 id="做到了什么,没做到什么"><a href="#做到了什么,没做到什么" class="headerlink" title="做到了什么,没做到什么"></a>做到了什么,没做到什么</h2><p>从做的事情,客观的数据反馈,和年初的目标,进行综合对比,进行分析,找到问题原因,为来年提供改善思路</p>
<h2 id="分享自己或团队其他人的做事心得(方法)"><a href="#分享自己或团队其他人的做事心得(方法)" class="headerlink" title="分享自己或团队其他人的做事心得(方法)"></a>分享自己或团队其他人的做事心得(方法)</h2><p>意在提高团队认知,授人以鱼不如授人以渔</p>
<h1 id="我的2021总结(部分)"><a href="#我的2021总结(部分)" class="headerlink" title="我的2021总结(部分)"></a>我的2021总结(部分)</h1><hr>
<h2 id="做了什么-1"><a href="#做了什么-1" class="headerlink" title="做了什么"></a>做了什么</h2><ul>
<li><p>Iteration 迭代<br><img src="/images/2022-02/3.png"><br><img src="/images/2022-02/4.png"><br><img src="/images/2022-02/5.png"></p>
</li>
<li><p>Arch 架构</p>
<ul>
<li>Backend<ul>
<li>涉及内容较敏感</li>
</ul>
</li>
<li>Frontend<ul>
<li>涉及内容较敏感</li>
</ul>
</li>
</ul>
</li>
<li><p>Assets 技术资产</p>
<ul>
<li>工具<br> <img src="/images/2022-02/6.png"></li>
<li>服务器和环境<br> <img src="/images/2022-02/7.png"></li>
<li>代码规划&设计<ul>
<li>涉及内容较敏感</li>
</ul>
</li>
</ul>
</li>
<li><p>团队</p>
<ul>
<li>架构<ul>
<li>涉及内容较敏感</li>
</ul>
</li>
<li>激励<ul>
<li>涉及内容较敏感</li>
</ul>
</li>
<li>活动<ul>
<li>涉及内容较敏感</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2 id="做到了什么,没做到什么-1"><a href="#做到了什么,没做到什么-1" class="headerlink" title="做到了什么,没做到什么"></a>做到了什么,没做到什么</h2><ul>
<li>涉及内容较敏感</li>
</ul>
<h2 id="分享自己或团队其他人的做事心得(方法)-1"><a href="#分享自己或团队其他人的做事心得(方法)-1" class="headerlink" title="分享自己或团队其他人的做事心得(方法)"></a>分享自己或团队其他人的做事心得(方法)</h2><p><img src="/images/2022-02/8.png"></p>
</div>
<footer class="post-footer">
<div class="post-eof"></div>
</footer>
</article>
<div class="post-gallery" itemscope itemtype="http://schema.org/ImageGallery">
<img src="/images/wechat_qrcode.jpg" itemprop="contentUrl">
<span>微信关注我,及时接收最新技术文章</span>
</div>
<article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-CN">
<link itemprop="mainEntityOfPage" href="https://skywalkerai.com/2021/12/09/%E5%A6%82%E4%BD%95%E6%95%B0%E6%8D%AE%E5%8C%96%E8%AF%84%E4%BB%B7%E3%80%8C%E8%BF%AD%E4%BB%A3%E8%B4%A8%E9%87%8F%E3%80%8D/">
<span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
<meta itemprop="image" content="/images/avatar.png">
<meta itemprop="name" content="天行者YANG">
<meta itemprop="description" content="技术团队管理者、10年以上互联网行业老兵,学会从本质出发的思考方式,希望通过写作,更好思考技术人生、分享一只老鸟的经验。">
</span>
<span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
<meta itemprop="name" content="天行者YANG - BLOG">
</span>
<header class="post-header">
<h2 class="post-title" itemprop="name headline">
<a href="/2021/12/09/%E5%A6%82%E4%BD%95%E6%95%B0%E6%8D%AE%E5%8C%96%E8%AF%84%E4%BB%B7%E3%80%8C%E8%BF%AD%E4%BB%A3%E8%B4%A8%E9%87%8F%E3%80%8D/" class="post-title-link" itemprop="url">如何数据化评价「迭代质量」</a>
</h2>
<div class="post-meta">
<span class="post-meta-item">
<span class="post-meta-item-icon">
<i class="far fa-calendar"></i>
</span>
<span class="post-meta-item-text">发表于</span>
<time title="创建时间:2021-12-09 13:38:00" itemprop="dateCreated datePublished" datetime="2021-12-09T13:38:00+08:00">2021-12-09</time>
</span>
<span class="post-meta-item">
<span class="post-meta-item-icon">
<i class="far fa-folder"></i>
</span>
<span class="post-meta-item-text">分类于</span>
<span itemprop="about" itemscope itemtype="http://schema.org/Thing">
<a href="/categories/DevOps/" itemprop="url" rel="index"><span itemprop="name">DevOps</span></a>
</span>
</span>
</div>
</header>
<div class="post-body" itemprop="articleBody">
<h1 id="为什么要数据化"><a href="#为什么要数据化" class="headerlink" title="为什么要数据化"></a>为什么要数据化</h1><hr>
<h2 id="用事实说话"><a href="#用事实说话" class="headerlink" title="用事实说话"></a>用事实说话</h2><p>通过数据的客观事实反应团队的协同效果和成果的产出质量,是从另外一个客观视角去挖掘问题的一种方式。尽量不要用「我觉得」、「我认为」这些主观臆断方式,进行复杂问题的评价。</p>
<h2 id="角色多样、配合复杂"><a href="#角色多样、配合复杂" class="headerlink" title="角色多样、配合复杂"></a>角色多样、配合复杂</h2><p>一个迭代,往往涉及到很多角色。所以,这些角色的行为和成果,对于「迭代质量」都会产生各种变化,这些变化往往是复杂的。所以,也需要从数据的层面,收集各个维度的客观事实,综合地评价「迭代质量」。</p>
<h2 id="迭代也要迭代"><a href="#迭代也要迭代" class="headerlink" title="迭代也要迭代"></a>迭代也要迭代</h2><p>产品的优化、迭代,是不断持续完善的。企业和产品的不同阶段,针对质量的要求其实也是完全不一样的。著名的项目管理三角形,其实就是权衡的过程,时间、成本、范围,最终都会影响质量的高低,只不过看某些阶段,我们更看重什么。在企业、产品不断的发展过程中,我们需要从各个方面收集数据,从不同维度持续分析「迭代质量」,以便于帮助我们在当前环境下,进行取舍,从而达到我们的产品目标。</p>
<h1 id="如何数据化"><a href="#如何数据化" class="headerlink" title="如何数据化"></a>如何数据化</h1><hr>
<p>在我们团队内部,采用了一个标准来评价迭代的质量,即「迭代质量评价标准」,其组成如下</p>
<h2 id="迭代质量评价标准组成"><a href="#迭代质量评价标准组成" class="headerlink" title="迭代质量评价标准组成"></a>迭代质量评价标准组成</h2><p>4个维度 + 1个分值</p>
<ul>
<li>4个维度<ul>
<li>PM改动需求(30%)</li>
<li>User Story交付延期情况(10%)</li>
<li>User Story冒烟测试情况(20%)</li>
<li>Bug(40%)</li>
</ul>
</li>
<li>1个分值<ul>
<li>迭代质量分值</li>
</ul>
</li>
</ul>
<p><img src="/images/2021-12/pie.png"></p>
<table>
<thead>
<tr>
<th>维度</th>
<th>占比</th>
<th>分值</th>
<th>计算规则</th>
<th>例子</th>
</tr>
</thead>
<tbody><tr>
<td>PM改动需求(PRD定稿后)</td>
<td>30%</td>
<td>10</td>
<td><img src="/images/2021-12/1.png"></td>
<td>Delay 0.5天,减1分,该项得分为:(10 - 1) * 0.3 = 2.7</td>
</tr>
<tr>
<td>User Story交付测试延期</td>
<td>10%</td>
<td>10</td>
<td><img src="/images/2021-12/2.png"></td>
<td>Delay 1天,减2分,该项得分为:(10 - 2) * 0.1 = 0.8</td>
</tr>
<tr>
<td>User Story冒烟测试通过情况</td>
<td>20%</td>
<td>10</td>
<td>通过测试的故事数 / 故事总数 * 2</td>
<td>共5个User Story,通过了3个,3 / 5 = 0.6 * 2 = 1.2</td>
</tr>
<tr>
<td>Bug(n = Bug总数 / 总故事点)</td>
<td>40%</td>
<td>10</td>
<td><img src="/images/2021-12/3.png"></td>
<td>共30个Bug,6个User Story,30 / 6 = 5,在5<=n<6区间内,得5分,再乘以40%,5 * 0.4 = 2</td>
</tr>
</tbody></table>
<h1 id="举个栗子"><a href="#举个栗子" class="headerlink" title="举个栗子"></a>举个栗子</h1><hr>
<p><img src="/images/2021-12/sprint-data.jpg"></p>
<p>上面是我的团队,近期的一组迭代数据,背景交代</p>
<ul>
<li>故事点:1个故事点 = 1人天</li>
<li>迭代流程:按故事开发和测试 → 整体回顾测试 → PM&UI验收 → 发布 → 复盘</li>
</ul>
<h1 id="迭代数据化能带给团队什么"><a href="#迭代数据化能带给团队什么" class="headerlink" title="迭代数据化能带给团队什么"></a>迭代数据化能带给团队什么</h1><hr>
<ul>
<li>团队为迭代负责<ul>
<li>通过数据化呈现迭代质量,让团队以一种理性的方式,审视迭代问题,从而找到解决方案,伙伴的目标是一致的:让迭代更好</li>
</ul>
</li>
<li>让「问题」透明化</li>
<li>为改进团队迭代效能提供了坚实的数据基础(任何改变都能从数据层面找到体现)</li>
</ul>
<h1 id="想做还没做的事情"><a href="#想做还没做的事情" class="headerlink" title="想做还没做的事情"></a>想做还没做的事情</h1><hr>
<p>通过打通我们使用的各个敏捷工具,自动化收集迭代数据,产生「迭代质量分值」,并可以针对历史数据进行各自维度对比,从而更好的提高效率。</p>
</div>
<footer class="post-footer">
<div class="post-eof"></div>
</footer>
</article>
<div class="post-gallery" itemscope itemtype="http://schema.org/ImageGallery">
<img src="/images/wechat_qrcode.jpg" itemprop="contentUrl">
<span>微信关注我,及时接收最新技术文章</span>
</div>
<article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-CN">
<link itemprop="mainEntityOfPage" href="https://skywalkerai.com/2021/08/18/%E5%B0%8F%E5%9B%A2%E9%98%9F%E6%95%8F%E6%8D%B7%E5%AE%9E%E8%B7%B52.0/">
<span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
<meta itemprop="image" content="/images/avatar.png">
<meta itemprop="name" content="天行者YANG">
<meta itemprop="description" content="技术团队管理者、10年以上互联网行业老兵,学会从本质出发的思考方式,希望通过写作,更好思考技术人生、分享一只老鸟的经验。">
</span>
<span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
<meta itemprop="name" content="天行者YANG - BLOG">
</span>
<header class="post-header">
<h2 class="post-title" itemprop="name headline">
<a href="/2021/08/18/%E5%B0%8F%E5%9B%A2%E9%98%9F%E6%95%8F%E6%8D%B7%E5%AE%9E%E8%B7%B52.0/" class="post-title-link" itemprop="url">小团队敏捷实践2.0</a>
</h2>
<div class="post-meta">
<span class="post-meta-item">
<span class="post-meta-item-icon">
<i class="far fa-calendar"></i>
</span>
<span class="post-meta-item-text">发表于</span>
<time title="创建时间:2021-08-18 22:55:52" itemprop="dateCreated datePublished" datetime="2021-08-18T22:55:52+08:00">2021-08-18</time>
</span>
<span class="post-meta-item">
<span class="post-meta-item-icon">
<i class="far fa-folder"></i>
</span>
<span class="post-meta-item-text">分类于</span>
<span itemprop="about" itemscope itemtype="http://schema.org/Thing">
<a href="/categories/DevOps/" itemprop="url" rel="index"><span itemprop="name">DevOps</span></a>
</span>
</span>
</div>
</header>
<div class="post-body" itemprop="articleBody">
<h1 id="敏捷迭代为什么升级"><a href="#敏捷迭代为什么升级" class="headerlink" title="敏捷迭代为什么升级"></a>敏捷迭代为什么升级</h1><hr>
<p>团队在敏捷迭代实施的过程中,遇到了各种问题,在这个过程中,也发现了很多很好的方法论。所以,近期根据团队迭代的实际情况,做了2.0的迭代流程升级。<br>团队使用的工具,在很早的文章里面有介绍,请查看<a target="_blank" rel="noopener" href="https://www.jianshu.com/p/908cae2e23c5">小团队如何落地敏捷开发</a></p>
<h1 id="一切从需求开始"><a href="#一切从需求开始" class="headerlink" title="一切从需求开始"></a>一切从需求开始</h1><hr>
<h2 id="需求源分类"><a href="#需求源分类" class="headerlink" title="需求源分类"></a>需求源分类</h2><p>由于提出需求渠道比较多,为了便于管理,我们对需求源进行了分类,具体分类如下:</p>
<table>
<thead>
<tr>
<th>需求类型</th>
<th>描述</th>
<th>对应迭代版本号</th>
</tr>
</thead>
<tbody><tr>
<td>feature</td>
<td>基于产品价值的自主产品迭代</td>
<td>feature/sprintXX,如:feature/sprint40</td>
</tr>
<tr>
<td>cs</td>
<td>客户成功经理反馈的用户侧需求</td>
<td>cs/yyyyMMdd,如:cs/20210713</td>
</tr>
<tr>
<td>tech</td>
<td>研发内部发起的技术改进或重构类需求</td>
<td>tech/模块或重构名,如:tech/mtms、tech/res</td>
</tr>
<tr>
<td>hotfix</td>
<td>故障流程触发的线上问题修复需求</td>
<td>hotfix/yyyyMMdd,如:hotfix/20210713</td>
</tr>
</tbody></table>
<p>目前,我们团队开启Sprint的需求类型为:feature,其余类型不触发Sprint。</p>
<h1 id="迭代流程"><a href="#迭代流程" class="headerlink" title="迭代流程"></a>迭代流程</h1><hr>
<p><img src="/images/2021-08/%E6%95%8F%E6%8D%B7%E8%BF%AD%E4%BB%A3%E6%B5%81%E7%A8%8B2.0.png"></p>
<p>整体迭代分为6个阶段,分别是</p>
<ol>
<li> PRD Review:产品需求评审、用户故事评审</li>
<li> Estimate:概要设计、工作量估算(扑克牌)</li>
<li> Sprint Start:Jira创建Sprint、版本号、登记用户故事、创建甘特图</li>
<li> Sprint In Progress:迭代进行中,每天10点站会同步进度</li>
<li> Deploy:PM、UI验收、版本发布</li>
<li> Sprint Review:迭代复盘</li>
</ol>
<h2 id="1-PRD-Review"><a href="#1-PRD-Review" class="headerlink" title="1.PRD Review"></a>1.PRD Review</h2><h3 id="PRD-Review流程"><a href="#PRD-Review流程" class="headerlink" title="PRD Review流程"></a>PRD Review流程</h3><p><img src="/images/2021-08/%E6%95%8F%E6%8D%B7%E8%BF%AD%E4%BB%A3%E6%B5%81%E7%A8%8B2.0-01.png"></p>
<h3 id="参与者"><a href="#参与者" class="headerlink" title="参与者"></a>参与者</h3><ul>
<li> 推动:PM</li>
<li> 参与:RD FE QA UI</li>
</ul>
<h3 id="输入信息"><a href="#输入信息" class="headerlink" title="输入信息"></a>输入信息</h3><ul>
<li> Confluence中的本次迭代的PRD</li>
</ul>
<h3 id="输出信息"><a href="#输出信息" class="headerlink" title="输出信息"></a>输出信息</h3><ul>
<li> 蓝湖中本次迭代原型讨论终稿</li>
<li> 用户故事讨论终稿</li>
</ul>
<p>Confluence中的PRD<br><img src="/images/2021-08/%E6%95%8F%E6%8D%B7%E8%BF%AD%E4%BB%A3-Confluence-PRD.jpg"></p>
<p>钉钉中的用户故事<br><img src="/images/2021-08/%E6%95%8F%E6%8D%B7%E8%BF%AD%E4%BB%A3-%E9%92%89%E9%92%89-%E7%94%A8%E6%88%B7%E6%95%85%E4%BA%8B.jpg"></p>
<h2 id="2-Estimate"><a href="#2-Estimate" class="headerlink" title="2.Estimate"></a>2.Estimate</h2><p>估算方式采用的是「规划扑克估算法」。一种基于共识的估算方式(游戏),主要用于估算Scrum迭代中的开发任务的工作量问题,通过团队的共同的评估方式,使得偏差变得相对较小。</p>
<h3 id="什么是规划扑克"><a href="#什么是规划扑克" class="headerlink" title="什么是规划扑克"></a>什么是规划扑克</h3><p>规划扑克使用Fibonacci序列作为Story Point。Fibonacci序列是13世纪引入的数学系列数字,用于解释自然的某些形成方面,例如树的分支。通过将前两个数字相加来生成序列,以获得序列中的下一个值:0,1/2,1,2,3,5,8,13,20等。出于敏捷估计的目的,一些数字已经改变,导致以下系列:1,2,3,5,8,13,20,40,100</p>
<p><img src="/images/2021-08/%E8%A7%84%E5%88%92%E6%89%91%E5%85%8B.png"></p>
<p>扑克说明(点数约定:1 Story Point = 1 人/天)</p>
<table>
<thead>
<tr>
<th>牌</th>
<th>解释</th>
</tr>
</thead>
<tbody><tr>
<td>0</td>
<td>不需要工作量</td>
</tr>
<tr>
<td>无穷</td>
<td>任务巨大</td>
</tr>
<tr>
<td>?</td>
<td>无法估计</td>
</tr>
<tr>
<td>一杯咖啡</td>
<td>不足0.5,分分钟搞定</td>
</tr>
<tr>
<td>其他</td>
<td>按照字面意思理解点数</td>
</tr>
</tbody></table>
<h3 id="估算流程"><a href="#估算流程" class="headerlink" title="估算流程"></a>估算流程</h3><p><img src="/images/2021-08/%E6%95%8F%E6%8D%B7%E8%BF%AD%E4%BB%A3%E6%B5%81%E7%A8%8B2.0-02.png"></p>
<h3 id="参与者-1"><a href="#参与者-1" class="headerlink" title="参与者"></a>参与者</h3><ul>
<li> 推动:PM</li>
<li> 参与:RD FE QA</li>
</ul>
<h3 id="输入信息-1"><a href="#输入信息-1" class="headerlink" title="输入信息"></a>输入信息</h3><ul>
<li> 用户故事</li>
</ul>
<h3 id="输出信息-1"><a href="#输出信息-1" class="headerlink" title="输出信息"></a>输出信息</h3><ul>
<li> 用户故事的估算和优先级</li>
</ul>
<p>操作步骤(一般2轮估算基本可以达成共识)</p>
<ul>
<li> PM进行用户故事描述</li>
<li> RD / FE 的团队成员,通过面朝下的方式打出编号卡(斐波那契值:1,2,3,5,8,13,20,40)</li>
<li> 卡片同时亮出</li>
<li> 解释估算偏差,并讨论</li>
<li> 估算共识达成</li>
</ul>
<p>估算记录表<br><img src="/images/2021-08/%E8%AE%A1%E5%88%92%E6%89%91%E5%85%8B-%E4%BC%B0%E7%AE%97%E8%A1%A8.png"></p>
<p>估算完成后,我们把估算的结果填写到钉盘中的故事列表中,并确定故事优先级</p>
<h2 id="3-Sprint-Start"><a href="#3-Sprint-Start" class="headerlink" title="3.Sprint Start"></a>3.Sprint Start</h2><h3 id="Sprint创建-amp-开启流程"><a href="#Sprint创建-amp-开启流程" class="headerlink" title="Sprint创建&开启流程"></a>Sprint创建&开启流程</h3><p><img src="/images/2021-08/%E6%95%8F%E6%8D%B7%E8%BF%AD%E4%BB%A3%E6%B5%81%E7%A8%8B2.0-03.png"></p>
<h3 id="参与者-2"><a href="#参与者-2" class="headerlink" title="参与者"></a>参与者</h3><ul>
<li> 推动:Scrum Master(QA)</li>
<li> 参与:RD FE QA</li>
</ul>
<h3 id="输入信息-2"><a href="#输入信息-2" class="headerlink" title="输入信息"></a>输入信息</h3><ul>
<li> 用户故事 & 估算结果</li>
</ul>
<h3 id="输出信息-2"><a href="#输出信息-2" class="headerlink" title="输出信息"></a>输出信息</h3><ul>
<li> Jira内的Sprint & Gantt</li>
</ul>
<p>创建Epic<br><img src="/images/2021-08/%E6%95%8F%E6%8D%B7%E8%BF%AD%E4%BB%A3-Jira-Epic.jpg"></p>
<p>创建Story<br><img src="/images/2021-08/%E6%95%8F%E6%8D%B7%E8%BF%AD%E4%BB%A3-Jira-Story-01.jpg"><br><img src="/images/2021-08/%E6%95%8F%E6%8D%B7%E8%BF%AD%E4%BB%A3-Jira-Story-02.jpg"></p>
<p>Sprint面板<br><img src="/images/2021-08/%E6%95%8F%E6%8D%B7%E8%BF%AD%E4%BB%A3-Jira-Sprint.jpg"></p>
<p>Gantt<br><img src="/images/2021-08/%E6%95%8F%E6%8D%B7%E8%BF%AD%E4%BB%A3-Jira-Gantt.jpg"></p>
<h2 id="4-Sprint-In-Progress"><a href="#4-Sprint-In-Progress" class="headerlink" title="4.Sprint In Progress"></a>4.Sprint In Progress</h2><h3 id="日常流程"><a href="#日常流程" class="headerlink" title="日常流程"></a>日常流程</h3><p><img src="/images/2021-08/%E6%95%8F%E6%8D%B7%E8%BF%AD%E4%BB%A3%E6%B5%81%E7%A8%8B2.0-04.png"></p>
<h3 id="参与者-3"><a href="#参与者-3" class="headerlink" title="参与者"></a>参与者</h3><ul>
<li> 推动:Scrum Master(QA)</li>
<li> 参与:RD FE QA</li>
</ul>
<h3 id="输入信息-3"><a href="#输入信息-3" class="headerlink" title="输入信息"></a>输入信息</h3><ul>
<li> 站会同步</li>
</ul>
<h3 id="输出信息-3"><a href="#输出信息-3" class="headerlink" title="输出信息"></a>输出信息</h3><ul>
<li> 用户故事更新</li>
</ul>
<h2 id="5-Deploy"><a href="#5-Deploy" class="headerlink" title="5.Deploy"></a>5.Deploy</h2><h3 id="验收-amp-发布流程"><a href="#验收-amp-发布流程" class="headerlink" title="验收&发布流程"></a>验收&发布流程</h3><p><img src="/images/2021-08/%E6%95%8F%E6%8D%B7%E8%BF%AD%E4%BB%A3%E6%B5%81%E7%A8%8B2.0-05.png"></p>
<h3 id="参与者-4"><a href="#参与者-4" class="headerlink" title="参与者"></a>参与者</h3><ul>
<li> 推动:Scrum Master(QA)</li>
<li> 参与:PM UI RD FE</li>
</ul>
<h3 id="输入信息-4"><a href="#输入信息-4" class="headerlink" title="输入信息"></a>输入信息</h3><ul>
<li> UAT环境</li>
</ul>
<h3 id="输出信息-4"><a href="#输出信息-4" class="headerlink" title="输出信息"></a>输出信息</h3><ul>
<li> 迭代发布</li>
<li> Sprint Done</li>
</ul>
<h2 id="6-Sprint-Review"><a href="#6-Sprint-Review" class="headerlink" title="6.Sprint Review"></a>6.Sprint Review</h2><h3 id="Review流程"><a href="#Review流程" class="headerlink" title="Review流程"></a>Review流程</h3><p><img src="/images/2021-08/%E6%95%8F%E6%8D%B7%E8%BF%AD%E4%BB%A3%E6%B5%81%E7%A8%8B2.0-06.png"></p>
<h3 id="参与者-5"><a href="#参与者-5" class="headerlink" title="参与者"></a>参与者</h3><ul>
<li> 推动:QA</li>
<li> 参与:PM UI RD FE</li>
</ul>
<h3 id="输入信息-5"><a href="#输入信息-5" class="headerlink" title="输入信息"></a>输入信息</h3><ul>
<li> 测试报告</li>
</ul>
<h3 id="输出信息-5"><a href="#输出信息-5" class="headerlink" title="输出信息"></a>输出信息</h3><ul>
<li> 复盘结果</li>
</ul>
<p>测试报告<br><img src="/images/2021-08/%E6%95%8F%E6%8D%B7%E8%BF%AD%E4%BB%A3%E6%B5%81%E7%A8%8B2.0-06-TestReport-01.jpg"><br><img src="/images/2021-08/%E6%95%8F%E6%8D%B7%E8%BF%AD%E4%BB%A3%E6%B5%81%E7%A8%8B2.0-06-TestReport-02.jpg"><br><img src="/images/2021-08/%E6%95%8F%E6%8D%B7%E8%BF%AD%E4%BB%A3%E6%B5%81%E7%A8%8B2.0-06-TestReport-03.jpg"><br><img src="/images/2021-08/%E6%95%8F%E6%8D%B7%E8%BF%AD%E4%BB%A3%E6%B5%81%E7%A8%8B2.0-06-TestReport-04.jpg"></p>
<h1 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h1><hr>
<p>以上就是目前研发团队的2.0版本的敏捷迭代流程,后面需要重点改进的还是,如何引入CI、自动化测试等等手段,进一步提升测试的效率,从而更快的反馈出问题。</p>
</div>
<footer class="post-footer">
<div class="post-eof"></div>
</footer>
</article>
<div class="post-gallery" itemscope itemtype="http://schema.org/ImageGallery">
<img src="/images/wechat_qrcode.jpg" itemprop="contentUrl">
<span>微信关注我,及时接收最新技术文章</span>
</div>
<article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-CN">
<link itemprop="mainEntityOfPage" href="https://skywalkerai.com/2021/05/06/%E6%97%A9%E6%9C%9F%E9%98%B6%E6%AE%B5%E7%9A%84ToB%20SaaS%E5%A6%82%E4%BD%95%E5%81%9A%E3%80%8C%E6%95%B0%E6%8D%AE%E6%94%B6%E9%9B%86%E3%80%8D/">
<span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
<meta itemprop="image" content="/images/avatar.png">
<meta itemprop="name" content="天行者YANG">
<meta itemprop="description" content="技术团队管理者、10年以上互联网行业老兵,学会从本质出发的思考方式,希望通过写作,更好思考技术人生、分享一只老鸟的经验。">
</span>
<span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
<meta itemprop="name" content="天行者YANG - BLOG">
</span>
<header class="post-header">
<h2 class="post-title" itemprop="name headline">
<a href="/2021/05/06/%E6%97%A9%E6%9C%9F%E9%98%B6%E6%AE%B5%E7%9A%84ToB%20SaaS%E5%A6%82%E4%BD%95%E5%81%9A%E3%80%8C%E6%95%B0%E6%8D%AE%E6%94%B6%E9%9B%86%E3%80%8D/" class="post-title-link" itemprop="url">早期阶段的ToB SaaS如何做「数据收集」</a>
</h2>
<div class="post-meta">
<span class="post-meta-item">
<span class="post-meta-item-icon">
<i class="far fa-calendar"></i>
</span>
<span class="post-meta-item-text">发表于</span>
<time title="创建时间:2021-05-06 22:42:54" itemprop="dateCreated datePublished" datetime="2021-05-06T22:42:54+08:00">2021-05-06</time>
</span>
<span class="post-meta-item">
<span class="post-meta-item-icon">
<i class="far fa-folder"></i>
</span>
<span class="post-meta-item-text">分类于</span>
<span itemprop="about" itemscope itemtype="http://schema.org/Thing">
<a href="/categories/%E6%95%B0%E6%8D%AE/" itemprop="url" rel="index"><span itemprop="name">数据</span></a>
</span>
</span>
</div>
</header>
<div class="post-body" itemprop="articleBody">
<h1 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h1><p>早期阶段的ToB SaaS,从数据规模来讲,相对较小,所以从研发成本、服务器成本上,一切从简,采用「简单」的数据收集方案,进行用户行为数据的收集工作,从而指导业务和产品。</p>
<p>大数据计算一般的流程如下:<br><img src="/images/2021-05/%E6%95%B0%E6%8D%AE%E6%94%B6%E9%9B%86.jpg"></p>
<p>其中「数据收集」包含了「数据采集」「数据加工」「数据存储」三个步骤,通过这些步骤将用户的行为和环境信息转化为结构化数据,从而沉淀为数据资产,为产品设计、运营分析、业务决策提供重要的数据支持。</p>
<h1 id="事件模型"><a href="#事件模型" class="headerlink" title="事件模型"></a>事件模型</h1><p>记录用户行为,首先要考虑的就是如何结构化,即事件模型</p>
<ul>
<li>WHO:用户ID、设备指纹、学校ID ……</li>
<li>WHEN:事件发生时间、时间上报时间</li>
<li>WHERE:设备信息、网络环境、业务环境 ……</li>
<li>WHAT:事件标识、场景标识、事件参数</li>
</ul>
<p><img src="/images/2021-05/%E4%BA%8B%E4%BB%B6%E6%A8%A1%E5%9E%8B.jpg"></p>
<h1 id="埋点SDK"><a href="#埋点SDK" class="headerlink" title="埋点SDK"></a>埋点SDK</h1><p>为了简化业务同学开发埋点时的工作量,并对埋点日志进行一些必要的限制,需要统一的埋点SDK,目前需要2个端的SDK:微信小程序SDK、JS SDK</p>
<p>SDK包含的功能如下:</p>
<ul>
<li>用户标识管理</li>
<li>设备信息、网络环境、业务环境自动收集</li>
<li>事件上报生命周期管理(上报机制)</li>
<li>兼容性处理</li>
<li>……</li>
</ul>
<h1 id="数据存储"><a href="#数据存储" class="headerlink" title="数据存储"></a>数据存储</h1><p>日志经过「数据采集」「数据加工」「数据存储」这三个阶段,在每个阶段后,产生的数据,从类别、存储介质、保存时间上是有区别的。</p>
<p><img src="/images/2021-05/%E6%95%B0%E6%8D%AE%E5%AD%98%E5%82%A8.jpg"></p>
<h1 id="数据收集架构设计"><a href="#数据收集架构设计" class="headerlink" title="数据收集架构设计"></a>数据收集架构设计</h1><p><img src="/images/2021-05/%E6%95%B0%E6%8D%AE%E6%94%B6%E9%9B%86%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1.jpg"></p>
<ol>
<li>各种端的SDK监控用户行为,通过Http请求上报给日志收集服务</li>
<li>日志收集服务,把原始数据写到硬盘,并进行归档操作</li>
<li>通过Filebeat + Logstash转发到Kafka内(主要是为了在高并发下,利用队列模式降低IO)</li>
<li>日志ETL服务,针对原始数据进行分析和相关数据补全,存储到MySQL,形成中间层数据</li>
<li>日志分析服务,针对业务,进行数据分析,形成分析结果数据</li>
<li>WEB UI针对分析结果数据进行相应的报表展现</li>
</ol>
<h1 id="未来阶段"><a href="#未来阶段" class="headerlink" title="未来阶段"></a>未来阶段</h1><h2 id="数据量"><a href="#数据量" class="headerlink" title="数据量"></a>数据量</h2><p>由于目前SaaS平台的数据量不大,数据的ETL、存储等等,采取了经济、简单方案,在后面数据量升级后,ETL可以采用Hive、Spark、Flink等等大数据解决方案,存储可以采用分布式大数据存储方案,HDFS等等。</p>
<h2 id="大数据测试"><a href="#大数据测试" class="headerlink" title="大数据测试"></a>大数据测试</h2><p>当埋点较多、端类型比较多时,为了便于QA进行埋点测试,需要针对QA的测试方案,进行自动化大数据测试流程的设计和实现,保证埋点数据的准确。</p>
</div>
<footer class="post-footer">
<div class="post-eof"></div>
</footer>
</article>
<div class="post-gallery" itemscope itemtype="http://schema.org/ImageGallery">
<img src="/images/wechat_qrcode.jpg" itemprop="contentUrl">
<span>微信关注我,及时接收最新技术文章</span>
</div>
<article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-CN">
<link itemprop="mainEntityOfPage" href="https://skywalkerai.com/2021/01/31/%E5%AE%9E%E6%96%BDOKR%E7%9A%84%E8%AE%B0%E5%BD%95%EF%BC%88%E4%B8%80%EF%BC%89/">
<span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
<meta itemprop="image" content="/images/avatar.png">
<meta itemprop="name" content="天行者YANG">
<meta itemprop="description" content="技术团队管理者、10年以上互联网行业老兵,学会从本质出发的思考方式,希望通过写作,更好思考技术人生、分享一只老鸟的经验。">
</span>
<span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
<meta itemprop="name" content="天行者YANG - BLOG">
</span>
<header class="post-header">
<h2 class="post-title" itemprop="name headline">
<a href="/2021/01/31/%E5%AE%9E%E6%96%BDOKR%E7%9A%84%E8%AE%B0%E5%BD%95%EF%BC%88%E4%B8%80%EF%BC%89/" class="post-title-link" itemprop="url">实施OKR的记录(一)</a>
</h2>
<div class="post-meta">
<span class="post-meta-item">
<span class="post-meta-item-icon">
<i class="far fa-calendar"></i>
</span>
<span class="post-meta-item-text">发表于</span>
<time title="创建时间:2021-01-31 00:16:54" itemprop="dateCreated datePublished" datetime="2021-01-31T00:16:54+08:00">2021-01-31</time>
</span>
<span class="post-meta-item">
<span class="post-meta-item-icon">
<i class="far fa-folder"></i>
</span>
<span class="post-meta-item-text">分类于</span>
<span itemprop="about" itemscope itemtype="http://schema.org/Thing">
<a href="/categories/%E6%8A%80%E6%9C%AF%E7%AE%A1%E7%90%86/" itemprop="url" rel="index"><span itemprop="name">技术管理</span></a>
</span>
</span>
</div>
</header>
<div class="post-body" itemprop="articleBody">
<h1 id="第一次接触"><a href="#第一次接触" class="headerlink" title="第一次接触"></a>第一次接触</h1><p>在2019年年初的时候,第一次接触OKR,从一本叫做《OKR工作法》的书了解到的,非常认同OKR工作法带来的好处,也分析了实施OKR的难度。随后也曾在自己的团队尝试去使用OKR方式,当时公司整体业务并没有进行OKR的管理方式,所以也只是在研发内部形成的对某些目标尝试,但是由于某种原因,我「离开」了团队,OKR的后续实施也搁浅了,是一次不成功的尝试。</p>
<h1 id="新的起点"><a href="#新的起点" class="headerlink" title="新的起点"></a>新的起点</h1><p>时间来到了魔幻的2020,我有幸加入了「教育赛道」的创业团队,经过3个季度的努力,公司的SaaS平台经历了「重新建立」到「价值变现」的过程。2020年底的时候,针对业务和团队,进行全方面的复盘。</p>
<h1 id="创业维艰"><a href="#创业维艰" class="headerlink" title="创业维艰"></a>创业维艰</h1><p>复盘的过程,也充分体会到了「不容易」,多变的市场环境、有限的资源、「善变」的客户,在各种环境和压力下,跳出事情本身,从更加理性的角度审视,变得无比艰难。想起了2年前读过的一本硅谷创业家们的书籍《创业维艰》,回想自己这几年作为创业公司中的一员,确实艰难,2020年更是如此。</p>
<p>过程中,一个值得注意的现象:研发兄弟们在开发的过程中,有时候「抱怨」,非常不认同这次迭代做的事情。这背后应该是「产品价值」的传达不一致,产品、研发「目标」的不一致导致的。这2种应该紧密配合的角色,产生了「不信任」的情绪,这对事情本身,是有百害而无一利的。</p>
<h1 id="为什么需要OKR"><a href="#为什么需要OKR" class="headerlink" title="为什么需要OKR"></a>为什么需要OKR</h1><p>「目标」的不一致和不聚焦,「价值」认同的不一致,是我们遇到的一个非常大的问题。复盘后,我又想到了OKR,「公司老大」在2020年底的时候,也打算在2021年采取全公司OKR的目标管理方法。这让我有机会,更加全面的理解和实施OKR。我又再一次的认真读了一遍《OKR工作法》,并更加认同这就是解决我们遇到问题的良药。</p>
<h1 id="OKR解决的问题"><a href="#OKR解决的问题" class="headerlink" title="OKR解决的问题"></a>OKR解决的问题</h1><ul>
<li>从一个创意到让客户认可产品,还能快速上手使用,并愿意付费,这个过程每个环节难度都在增加,每个环节都需要你组建合适的团队完成。聚焦到具体的事情上,确保他们一直记得所做的事情的意义。</li>
<li>产品型公司的OKR关键在于,需要跨部门的产品团队层面上升到公司业务层面。</li>
<li>OKR不是唯一一件需要做的事情,而是必须做的事情。</li>
</ul>
<h1 id="OKR的实施"><a href="#OKR的实施" class="headerlink" title="OKR的实施"></a>OKR的实施</h1><h2 id="第一阶段:各自思考OKR"><a href="#第一阶段:各自思考OKR" class="headerlink" title="第一阶段:各自思考OKR"></a>第一阶段:各自思考OKR</h2><p>每个部门负责人,思考2021年的规划,并从规划中提取出自己认为的「核心目标」和相对应的「关键策略」,对应的OKR应该是「Core Objective」「KRs」。</p>
<h2 id="第二阶段:O的讨论"><a href="#第二阶段:O的讨论" class="headerlink" title="第二阶段:O的讨论"></a>第二阶段:O的讨论</h2><p>这个阶段主要是各个部门的负责人和「公司老大」一起讨论新的一年的Objective和KRs的过程。我们基于下面的表格进行讨论,并最终汇总成公司级别的OKR。</p>
<p><img src="/images/2021-01/OKR-01.png"></p>
<p><img src="/images/2021-01/OKR-02.png"></p>
<p>PS:O是什么的出发点,还是需要回到「初心」。从公司的「愿景」「使命」层面,逻辑推演出「产品价值」,并从「产品价值」推演出「核心目标」和要做的事情。这点耗费无数脑细胞,非常难,但是也是必须这么思考,这是对于思想锐变的一个过程。</p>
<blockquote>
<p>公司和产品存在的意义,在于可以为社会提供「价值」,没有「价值」的公司和产品,无法长期的存在下去。</p>
</blockquote>
<h1 id="未完待续"><a href="#未完待续" class="headerlink" title="未完待续"></a>未完待续</h1><h2 id="第三阶段:预算的确定"><a href="#第三阶段:预算的确定" class="headerlink" title="第三阶段:预算的确定"></a>第三阶段:预算的确定</h2><p>兵马未动,粮草先行。一个靠谱的预算,会给新的一年的规划保驾护航。所以,从预算的角度,对OKR的结果进行另外一个维度的校准。</p>
<h2 id="第四阶段:季度OKR的确认"><a href="#第四阶段:季度OKR的确认" class="headerlink" title="第四阶段:季度OKR的确认"></a>第四阶段:季度OKR的确认</h2><p>这个阶段主要从年度OKR的共识,抽取出每个季度的OKR。</p>
</div>
<footer class="post-footer">
<div class="post-eof"></div>
</footer>
</article>
<div class="post-gallery" itemscope itemtype="http://schema.org/ImageGallery">
<img src="/images/wechat_qrcode.jpg" itemprop="contentUrl">
<span>微信关注我,及时接收最新技术文章</span>
</div>
<article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-CN">
<link itemprop="mainEntityOfPage" href="https://skywalkerai.com/2021/01/21/%E3%80%8C%E5%B9%B4%E5%89%8D%E3%80%8D%E7%9A%84%E5%9B%A2%E9%98%9F%E6%80%BB%E7%BB%93%E6%88%91%E6%98%AF%E8%BF%99%E4%B9%88%E5%81%9A%E7%9A%84/">
<span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
<meta itemprop="image" content="/images/avatar.png">
<meta itemprop="name" content="天行者YANG">
<meta itemprop="description" content="技术团队管理者、10年以上互联网行业老兵,学会从本质出发的思考方式,希望通过写作,更好思考技术人生、分享一只老鸟的经验。">
</span>
<span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
<meta itemprop="name" content="天行者YANG - BLOG">
</span>
<header class="post-header">
<h2 class="post-title" itemprop="name headline">
<a href="/2021/01/21/%E3%80%8C%E5%B9%B4%E5%89%8D%E3%80%8D%E7%9A%84%E5%9B%A2%E9%98%9F%E6%80%BB%E7%BB%93%E6%88%91%E6%98%AF%E8%BF%99%E4%B9%88%E5%81%9A%E7%9A%84/" class="post-title-link" itemprop="url">「年前」的团队总结我是这么做的</a>
</h2>
<div class="post-meta">
<span class="post-meta-item">
<span class="post-meta-item-icon">
<i class="far fa-calendar"></i>
</span>
<span class="post-meta-item-text">发表于</span>
<time title="创建时间:2021-01-21 00:12:54" itemprop="dateCreated datePublished" datetime="2021-01-21T00:12:54+08:00">2021-01-21</time>
</span>
<span class="post-meta-item">
<span class="post-meta-item-icon">
<i class="far fa-folder"></i>
</span>
<span class="post-meta-item-text">分类于</span>
<span itemprop="about" itemscope itemtype="http://schema.org/Thing">
<a href="/categories/%E6%8A%80%E6%9C%AF%E7%AE%A1%E7%90%86/" itemprop="url" rel="index"><span itemprop="name">技术管理</span></a>
</span>
</span>
</div>
</header>
<div class="post-body" itemprop="articleBody">
<blockquote>
<p>这支团队是从2020 Q1开始接触的,在这个过程中,团队在迭代质量和效率上面得到了很大的提升。但是作为团队的「舵手」,我迫切想知道,大家对于团队的看法和新的一年的预期是什么,为2021年进行团队调整收集大家的真实想法,所以才有下面的「总结」活动。</p>
</blockquote>
<h1 id="目的"><a href="#目的" class="headerlink" title="目的"></a>目的</h1><hr>
<ul>
<li>了解团队成员关注的价值,为塑造团队价值作为参考</li>
<li>了解团队成员关注的团队的问题,并针对性解决</li>
<li>促使团队成员可以思考2020自己的好的和不好的地方,进行个人复盘</li>
<li>了解大家的目标,想成为什么样的人,从思考如何让「个人目标」和「团队目标」的重合度加大,使双方受益</li>
</ul>
<h1 id="形式"><a href="#形式" class="headerlink" title="形式"></a>形式</h1><hr>
<ul>
<li>线上调查</li>
<li>线下面谈</li>
</ul>
<h1 id="线上调查"><a href="#线上调查" class="headerlink" title="线上调查"></a>线上调查</h1><hr>
<p>主要是调查表的方式,这种方式,大家会有思考的时间,和谈话不同,调查表会更加客观看出问题。</p>
<h2 id="明确为什么做"><a href="#明确为什么做" class="headerlink" title="明确为什么做"></a>明确为什么做</h2><p>设计调查表的选项前,需要非常明确知道,通过选项的数据,我们希望得到什么,得到的东西可以帮助我们做什么。<br>这里,再强调一个调查前提</p>
<blockquote>
<p><strong><em>切忌</em></strong> 通过数据去衡量团队某个人的好坏。<br><strong><em>调查的目的</em></strong>是 通过团队反馈指导如何打造好团队,而不是做员工评价。就像是芬兰的学校的学生过程评价系统,评价的目的不是区分排名,而是从老师角度去看,如何调整教学策略,去帮助学生。</p>
</blockquote>
<h2 id="调查表工具"><a href="#调查表工具" class="headerlink" title="调查表工具"></a>调查表工具</h2><p>由于公司使用的钉钉,我就采取了钉钉收集表的方式进行了这个工作,从表单设计,到填表,再到收集汇总,钉钉的表现还是非常不错的。下面是钉钉如何设计表单的简单示意图。<br><img src="/images/2021-01/dingding-1.png"></p>
<p><img src="/images/2021-01/dingding-2.png"></p>
<p>设计的表单如下:<br><img src="/images/2021-01/dingding-3.png"></p>
<p><img src="/images/2021-01/dingding-4.png"></p>
<p><img src="/images/2021-01/dingding-5.png"></p>
<h2 id="数据的汇总和总结"><a href="#数据的汇总和总结" class="headerlink" title="数据的汇总和总结"></a>数据的汇总和总结</h2><blockquote>
<p>调查问卷的结果,我们应该认真总结和思考,从数据后面思考本质,下面的是针对问卷调查,我的总结的截图</p>
</blockquote>
<p><img src="/images/2021-01/questionnaire-1.png"></p>
<p><img src="/images/2021-01/questionnaire-2.png"></p>
<p><img src="/images/2021-01/questionnaire-3.png"></p>
<p><img src="/images/2021-01/questionnaire-4.png"></p>
<h1 id="线下面谈"><a href="#线下面谈" class="headerlink" title="线下面谈"></a>线下面谈</h1><hr>
<h2 id="明确谈话的Framework和思路"><a href="#明确谈话的Framework和思路" class="headerlink" title="明确谈话的Framework和思路"></a>明确谈话的Framework和思路</h2><p>提前给大家准备时间,我这里是提前了3天通知大家。并且在通知时告诉大家是在什么时间,每个人,也发了一张纸,内容主要是帮助和建议大家思考的方向和思路。</p>
<p><img src="/images/2021-01/interview-1.png"></p>
<h2 id="给自己整理出面谈日历"><a href="#给自己整理出面谈日历" class="headerlink" title="给自己整理出面谈日历"></a>给自己整理出面谈日历</h2><p>通过日历提醒自己,面谈的时间安排,提前做好认真准备,包含会议室,想谈话的内容等等。</p>
<p><img src="/images/2021-01/interview-2.png"></p>
<h2 id="做好面谈记录"><a href="#做好面谈记录" class="headerlink" title="做好面谈记录"></a>做好面谈记录</h2><p>我的记录基本是在面谈结束后做的,因为在面谈时,为了保持「尊重」,不要一直埋头记录什么,给别人感觉不好。所以,在结束后,马上回忆,进行记录。</p>
<h2 id="总结和思考"><a href="#总结和思考" class="headerlink" title="总结和思考"></a>总结和思考</h2><p>主要是通过了解大家的情况、预期、目标等等,汇总建议、思考建设的方向是否和大家预期有偏差。了解大家想要什么,如何使「个人目标」和「团队目标」重合度高。</p>
<h1 id="写在最后"><a href="#写在最后" class="headerlink" title="写在最后"></a>写在最后</h1><hr>
<p>这类方式,我也是第一次在团队中使用,效果其实还算在预期内,希望可以给大家带来一些思考和启发。</p>
</div>
<footer class="post-footer">
<div class="post-eof"></div>
</footer>
</article>
<div class="post-gallery" itemscope itemtype="http://schema.org/ImageGallery">
<img src="/images/wechat_qrcode.jpg" itemprop="contentUrl">
<span>微信关注我,及时接收最新技术文章</span>
</div>
<article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-CN">
<link itemprop="mainEntityOfPage" href="https://skywalkerai.com/2021/01/11/%E5%9B%A2%E9%98%9F%E5%BB%BA%E8%AE%BE%E7%9A%84%E6%80%9D%E8%80%83%EF%BC%88%E4%B8%80%EF%BC%89/">
<span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
<meta itemprop="image" content="/images/avatar.png">