關於Release 的二三事
             thegiive
 Release Manager of Yahoo!奇摩購物中心
          thegiive@gmail.com
幹嘛需要 release manager ?
Release manager (RM) 的工作


 把測試完成的 code 丟到伺服器上….
 ›   建立 CODE 的 build
 ›   溝通 RD , QA , PM , User , SE , DBA 等等..單位
 ›   自動化部屬到 Beta/Staging 等測試環境
 ›   管控沒有測試完成的 code 不上伺服器上
 ›   處理 release 的流程




                                     3
一開始的RM工作是輪流的

        Manager




  RD                  RD

         值星官

           RM
   RD
                      RD
          RD



                  4
值星官做太好,值星帶一不小心就縫上去

             Manager

       RD
                            RD


  RD
             RM

                             RD


        RD
             RD        RD



                  5
Team 越來越多,乾脆獨立 RM team

               Scrum 1



   Scrum 2
                           Central
                           Scrum 1
                RM Team



     Scrum 3                Central
                            Scrum 2
                  Team 4




                    6
現今的狀況

 相關人員大概 100人左右
 ›   5個 scrum team , 2 個waterfall team,約 60 個人
 ›   外圍單位大概 40 個左右 (SE,DBA,PM,PD)


 Hybrid System (PHP/.NET)

 一年 release 50次 , 平均 release item 30 ~ 40 個

 1.5 個 Release Manager 人力搞定



                                     7
這是設立 release manager 的成果

100
 90
 80
 70
 60
 50
 40                           bug rate
 30
 20                           ThroughPut
 10
  0



       # of bug / # of item

                        8
Yahoo! 另外一個超大 team
                              Team 1                32個 team
                                                    跨 6個國家
                                  Team 1            共用同一個 source tree
                                    Team 1
                                      Team 1
         Release                        Team 1
         Manager                          Team 1
                                            Team 1
                                              Team 1
                                                Team 1
                                                  Team 1
                    偉大的                             Team 1
   CI                                                 Team 1
  DEV               CI 大神                               Team 1
                                                          Team 1
                                                            Team 1
                                                              Team 1
                                                                Team 1
                                                                  Team 32




           CI
        Operation
                      9

                          9
演進表


                         CI 時代
         大 RM 時代
值星官時代
         • 專制時代          • 機械時代
• 史前時代
         • 目前我在這裡        • Auto everything
                         • 已經跑了半年多的目標




                    10
Release manager
聽起來很帥氣,我可以立下志願當 RM 嘛?
NO
為什麼固定要禮拜二上線?
為什麼要禮拜二上線

 禮拜一大家喜歡開週會 , 很多人會請假

 禮拜五大家喜歡請假,而且上線,隔天有 bug 也找不到人修

 尾牙,連續假期的後一天千萬不要 release




                   14
購物中心的 bug 有個特色


 通常會 48hr 之內發現…

 若禮拜四上線 , 兩天後已經週六了,要 call 大家加班修嘛?

 若禮拜三上線 , 兩天後是週五,修完又有問題…怎麼辦?




                   15
重點是:讓你的 bug 在 禮拜五之前被發現
農曆是個不錯的參考


 可以尋找宜「破土,開光」之類的日子



 「諸事不宜,餘事勿取」還真的挺準的




                17
英國研究指出:購物中心從 waterfall 轉
scrum 之後 release quality 便好了兩倍
其實不是 Scrum 好

 Release 會有問題 , 9成 9 來自測試不足

 測試不足通常來自 testing plan 設想不周

 Testing plan 設想不周通常來自太趕的時程

 太趕的時程絕對來自 Over Promise




                       19
Waterfall , RD處處是破綻
   很會凹的 PM           經驗不足的RD



   很會凹的 PM           過度自信的 RD



   很會凹的 PM           很會擋的RD



   很會凹的 PM            人太好的RD



   很會凹的 PM            很忙但是又不會擋的RD


                20
In scrum , 呈現敵消我長之勢   SCRUM Team



很會凹的 PM
                      經驗不足的RD


很會凹的 PM               過度自信的 RD


          很會凹的 PO     很會擋的RD
           兼 scrum
很會凹的 PM    team PO
                      人太好的RD

很會凹的 PM
                      很忙但是又不會擋的RD



很會凹的 PM


                 21
Release manager
要怎麼強化 release quality?
以前的狀況

很會凹的 PM                   SDE team 1



搞不清楚狀況的主管                 SDE team 2
                  苦命的RM

以為一個 CSS 問題都很重
    要的xxx                  SDE team 3




 嗷嗷待哺的 user                 SDE team 4



                 23
設計一套計算每個 team quality 的標準公式

 要能夠反應 release quality

 要能夠評量每個 team 的表現

 要能夠數字化呈現成長或是退後的幅度( +10% or -5% )

 為每個 team 設定目標( 本季目標是 release quality +15% )




                          24
壓力還諸給 SDE
                  觀虎鬥的RM

很會凹的 PM

                                        SDE team 1

搞不清楚狀況的主管
                       表現最差的
                       SDE Team
                                      SDE team 2
 以為一個 CSS 問題都很重
     要的xxx


                           表現次差的
                           SDE team
 嗷嗷待哺的 user



                  25
最厲害的是


 RM 的生活過的越來越開心

 Release Quality 提昇了 40%




                            26
Thanks you!

Webconf