<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
    <title>Coworking｜林鼎淵 Dean Lin</title>
    <link>https://deanlin.net/tags/coworking/</link>
    <image><url>https://deanlin.net/images/author_hu_aa256fc934e9a932.jpg</url><title>Coworking｜林鼎淵 Dean Lin</title><link>https://deanlin.net/tags/coworking/</link><width>144</width><height>144</height></image>
    <description>林鼎淵（Dean Lin）的部落格：生成式 AI 企業內訓講師、外商資安公司軟體專家、7 本書作者。400 多篇文章用白話分享生成式 AI 實戰、Claude Code 與 Vibe Coding 教學、團隊合作與職場成長。</description>
    <generator>Hugo</generator>
    <language>zh-tw</language>
    <copyright>© 2020–2026 林鼎淵 Dean Lin</copyright>
    <lastBuildDate>Tue, 12 Jul 2022 21:16:40 +0800</lastBuildDate>
    <atom:link href="https://deanlin.net/tags/coworking/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>當 Scrum Master 跟 PM 同時存在，權力與責任該如何區分？ — 工程師血淚史</title>
      <link>https://deanlin.net/blog/202207/scrum-master-vs-pm/</link>
      <pubDate>Tue, 12 Jul 2022 21:16:40 +0800</pubDate>
      <guid>https://deanlin.net/blog/202207/scrum-master-vs-pm/</guid>
      <dc:creator>林鼎淵</dc:creator>
      <category>團隊合作</category>
      <description>在過去的文章中有提到，為了提高團隊成員在 Scrum 的參與度，我們改成輪流擔任 Scrum Master 的機制，但這樣真的有效果嗎？而且 Scrum Master 跟 PM 的工作高度重疊，要如何區分兩者的權力與責任呢？</description>
      <media:content url="https://deanlin.net/blog/202207/scrum-master-vs-pm/images/scrum-master-vs-pm-og_hu_1b3b0247b9449758.jpg" medium="image" type="image/jpeg" width="1200" height="675" />
      <content:encoded><![CDATA[<p>在<a href="https://deanlin.net/blog/202205/team-development-problems/">過去的文章</a>中有提到，為了提高團隊成員在 Scrum 的參與度，我們改成輪流擔任 Scrum Master 的機制，但這樣真的有效果嗎？而且 Scrum Master 跟 PM 的工作高度重疊，要如何區分兩者的權力與責任呢？</p>
<p>這篇文章將與您分享我們是如何調整，以及調整後發生哪些改變。</p>
<p><img src="https://deanlin.net/blog/202207/scrum-master-vs-pm/images/scrum-master-vs-pm-01.webp" width="1400" height="730" alt="當 Scrum Master 跟 PM 同時存在，權力與責任該如何區分？ — 工程師血淚史（圖 1）" fetchpriority="high" decoding="async"></p>
<blockquote>
<p>本文提及之專案、人物、事件純屬虛構，如有雷同，實屬巧合，請勿對號入座。</p>
</blockquote>
<pre tabindex="0"><code>大綱
ㄧ、調整的目的是什麼？
二、定義 Scrum Master 跟 PM 的權限
  ➤ Scrum Master
  ➤ PM
三、調整後發生哪些改變
  ➤ 成員對專案、團隊有更深刻的認知
  ➤ Scrum 參與度提升
  ➤ 回顧時發表更踴躍
四、總結
</code></pre><h2 id="ㄧ調整的目的是什麼">ㄧ、調整的目的是什麼？<a class="h-anchor" href="#%e3%84%a7%e8%aa%bf%e6%95%b4%e7%9a%84%e7%9b%ae%e7%9a%84%e6%98%af%e4%bb%80%e9%ba%bc" aria-label="這個段落的連結"></a></h2>
<p>明明跑的是 Scrum，卻沒有團隊合作的感覺。</p>
<p>每間公司跑 Scrum 的方式與目的不同，有些 Scrum 跑起來更像是傳統的工作匯報；即使在身處在同一個會議中，卻只有主管跟 PM 關心每個人的工作內容。</p>
<p>如果團隊成員不關心彼此的工作內容，單獨匯報或是用紙本報告其實更加省時；開 Scrum 的目的是希望大家了解彼此的任務，確認是否有需要調整的地方，避免任務的先後順序、優先度搞錯，導致專案進度延宕。</p>
<p>但如果只是口頭上說希望大家積極參與，實際效果就跟老師要學生好好聽課一樣，因此想透過流程來進行改善。</p>
<p>而我們選擇的方案是 — 讓團隊成員輪流擔任 Scrum Master。</p>
<hr>
<h2 id="二定義-scrum-master-跟-pm-的權限">二、定義 Scrum Master 跟 PM 的權限<a class="h-anchor" href="#%e4%ba%8c%e5%ae%9a%e7%be%a9-scrum-master-%e8%b7%9f-pm-%e7%9a%84%e6%ac%8a%e9%99%90" aria-label="這個段落的連結"></a></h2>
<p><strong>我們希望在提升成員參與度的同時，盡可能不要增加負擔。</strong></p>
<p>因為 Scrum Master 的工作內容與 PM 高度重疊，如果沒區分好彼此的界線，勢必會導致其他成員的困惑，比如：</p>
<ol>
<li>開單要找誰？</li>
<li>Sprint Planning 的規劃由誰負責？</li>
<li>需求規格由誰來寫？</li>
</ol>
<p>所以我們做了如下區分：</p>
<h3 id="-scrum-master">Scrum Master<a class="h-anchor" href="#-scrum-master" aria-label="這個段落的連結"></a></h3>
<ol>
<li><strong>主持 Daily Scrum Meeting</strong>：了解每個人工作的進度、預計要做的事、以及遇到的問題。</li>
<li><strong>主持 Sprint Review、Retrospective 會議</strong>：讓大家報告在這個 Sprint 中做了什麼，有哪些好的可以繼續保持，有哪些壞的要進行調整。</li>
<li><strong>參與 Sprint Planning 會議</strong>：了解下個 Sprint 要完成的事項。</li>
</ol>
<h3 id="-pm">PM<a class="h-anchor" href="#-pm" aria-label="這個段落的連結"></a></h3>
<ol>
<li><strong>專案管理</strong>：追蹤成員的進度、討論需求、協調資源…原則上工作內容不變，只是部分工作交由 Scrum Master 主持。</li>
<li><strong>輔助 Scrum Master</strong>：儘管已經簡化許多 Scrum Master 的工作，但因為部分成員並沒有接觸過敏捷開發，因此需要幫忙拾漏補遺。</li>
<li><strong>規劃 Sprint Planning</strong>：無論是規劃要完成的工作，還是與每位工程師確認工時，都是需要花費不少心力的任務，因此主要還是由 PM 專職處理。</li>
</ol>
<blockquote>
<p>之所以這樣設計，是希望成員在擔任 Scrum Master 的同時，儘可能不影響到他的本職工作，我們期待這樣的流程可以讓每位成員更融入專案，而不是取代 PM 的工作。</p>
</blockquote>
<hr>
<h2 id="三調整後發生哪些改變">三、調整後發生哪些改變<a class="h-anchor" href="#%e4%b8%89%e8%aa%bf%e6%95%b4%e5%be%8c%e7%99%bc%e7%94%9f%e5%93%aa%e4%ba%9b%e6%94%b9%e8%ae%8a" aria-label="這個段落的連結"></a></h2>
<p>目前實行了 3 個 Sprint，成員的接受度還算高（希望不是敢怒不敢言 😅）。</p>
<h3 id="-成員對專案團隊有更深刻的認知">成員對專案、團隊有更深刻的認知<a class="h-anchor" href="#-%e6%88%90%e5%93%a1%e5%b0%8d%e5%b0%88%e6%a1%88%e5%9c%98%e9%9a%8a%e6%9c%89%e6%9b%b4%e6%b7%b1%e5%88%bb%e7%9a%84%e8%aa%8d%e7%9f%a5" aria-label="這個段落的連結"></a></h3>
<p>不管是否願意，主持 Daily Scrum 時一定要了解每個人具體的狀況；原本專注在自己任務的人，也會因為主持 Sprint Review、Retrospective 而強迫了解整個專案，並更加認識團隊。</p>
<h3 id="-scrum-參與度提升">Scrum 參與度提升<a class="h-anchor" href="#-scrum-%e5%8f%83%e8%88%87%e5%ba%a6%e6%8f%90%e5%8d%87" aria-label="這個段落的連結"></a></h3>
<p>因為 Scrum Master 是輪流的，如果我今天不給你面子好好聆聽跟報告，下次換我當 Scrum Master 時可能大家會不理我；同儕間的心理因素會讓參與度變得更高（但這個情形未必適用在每個團隊身上）。</p>
<h3 id="-回顧時發表更踴躍">回顧時發表更踴躍<a class="h-anchor" href="#-%e5%9b%9e%e9%a1%a7%e6%99%82%e7%99%bc%e8%a1%a8%e6%9b%b4%e8%b8%b4%e8%ba%8d" aria-label="這個段落的連結"></a></h3>
<p>由成員來做 Sprint Retrospective 時，大家相對來說更敢發表意見；這就跟同學分組討論時比較熱絡，但當老師問同學有沒有問題時，台下直接靜音的道理一樣。</p>
<hr>
<h2 id="四總結">四、總結<a class="h-anchor" href="#%e5%9b%9b%e7%b8%bd%e7%b5%90" aria-label="這個段落的連結"></a></h2>
<p><strong>花的時間越多，就會越認真投入。</strong></p>
<p>其實並不是每位成員在剛開始的時候都願意跑 Scrum 的，因為他們覺得這是在浪費時間、單純走一個形式、對專案沒有幫助…</p>
<p>因此初期更像是每天集合匯報工作，直到要輪流當 Scrum Master 時，因為無法拒絕，所以每位成員都一定要有所了解，而這個過程促使團隊往好的方向發展（應該 🤔）。</p>
<p>當然還要更多時間來驗證，相信每次的 Sprint Retrospective 都能讓原本的流程更加完善。</p>
<blockquote class="pullquote"><p>如果讀者有敏捷開發的經驗，歡迎留言分享，你的留言或許可以幫助到其他人。</p>
</blockquote>
<hr>
<pre tabindex="0"><code>工程師血淚史
▋ 團隊在系統開發上遇到了哪些問題
▋ 需求不斷變更，到底哪個環節出錯了
▋ 當 Scrum Master 跟 PM 同時存在，權力與責任該如何區分？(本篇)
▋ 如果沒有明確的開發流程，團隊將會無所適從
▋ 你知道對專案來說，README.md 有多麼重要嗎？
</code></pre>]]></content:encoded>
    </item>
    <item>
      <title>使用 Visual Studio Live Share 來即時共同開發 — Pair programming</title>
      <link>https://deanlin.net/blog/202106/vscode-live-share-pair-programming/</link>
      <pubDate>Mon, 21 Jun 2021 17:52:13 +0800</pubDate>
      <guid>https://deanlin.net/blog/202106/vscode-live-share-pair-programming/</guid>
      <dc:creator>林鼎淵</dc:creator>
      <category>團隊合作</category>
      <description>在遠端工作後，我們使用 Teams、Skype、Google meet…</description>
      <media:content url="https://deanlin.net/blog/202106/vscode-live-share-pair-programming/images/vscode-live-share-pair-programming-og_hu_bc7be76d4a153ac0.jpg" medium="image" type="image/jpeg" width="1200" height="675" />
      <content:encoded><![CDATA[<p>在遠端工作後，我們使用 Teams、Skype、Google meet 來完成日常的會議，但如果使用上述工具來討論專案中的程式碼並不方便，因為所有使用者都聚焦在同一個畫面上；但看到問題時只能用口頭表達：「去app資料架下面找出xxxController，第30行的程式邏輯有問題。」這樣的表達方式欠缺效率且容易帶有情緒；所以今天向大家介紹一款共同開發超棒的工具。</p>
<figure class="figure"><img src="https://deanlin.net/blog/202106/vscode-live-share-pair-programming/images/vscode-live-share-pair-programming-01.webp" width="1400" height="785" alt="圖片來源：Visual Studio官網" fetchpriority="high" decoding="async">
  <figcaption>圖片來源：<a href="https://visualstudio.microsoft.com/zh-hant/services/live-share/?fbclid=IwAR3B2oFFd4kuofFKVm5qh7r5T-QCdOXSSta87b87jBhGGTdob4Ztl3Gp6-U">Visual Studio官網</a></figcaption>
</figure>

<pre tabindex="0"><code>一、我們現在協作時遇到了哪些困境？
二、這個工具能給我們開發帶來什麼樣的幫助？
三、安裝套件＆登入使用者
四、使用方式
</code></pre><h2 id="一我們現在協作時遇到了哪些困境">一、我們現在協作時遇到了哪些困境？<a class="h-anchor" href="#%e4%b8%80%e6%88%91%e5%80%91%e7%8f%be%e5%9c%a8%e5%8d%94%e4%bd%9c%e6%99%82%e9%81%87%e5%88%b0%e4%ba%86%e5%93%aa%e4%ba%9b%e5%9b%b0%e5%a2%83" aria-label="這個段落的連結"></a></h2>
<ul>
<li>使用螢幕分享做 Debug 時，需要依靠大腦來做運算邏輯，想要看哪一支檔案與程式也要靠口述，非常不方便</li>
<li>有些程式（Teams），不只螢幕分享來能直接控制對方的電腦做操作，但同一時間只允許一人做操作</li>
<li>就算團隊使用 git 版控，你切到對方有 Bug 的 branch 時可能無法順利重現問題發生（很多套件版本及環境參數設定不同）</li>
<li>因為無法完全模擬對方程式運作環境導致 Debug 時困難重重</li>
</ul>
<h2 id="二這個工具能給我們開發帶來什麼樣的幫助">二、這個工具能給我們開發帶來什麼樣的幫助？<a class="h-anchor" href="#%e4%ba%8c%e9%80%99%e5%80%8b%e5%b7%a5%e5%85%b7%e8%83%bd%e7%b5%a6%e6%88%91%e5%80%91%e9%96%8b%e7%99%bc%e5%b8%b6%e4%be%86%e4%bb%80%e9%ba%bc%e6%a8%a3%e7%9a%84%e5%b9%ab%e5%8a%a9" aria-label="這個段落的連結"></a></h2>
<ul>
<li>對方能夠很清楚理解自己現在講述的程式在哪個檔案的哪個位置，不再雞同鴨講</li>
<li>雙方能自由瀏覽專案下的資料夾與程式，無需依靠口述</li>
<li>可以模擬對方的環境進行程式編譯，更清楚問題發生點</li>
<li>雙方的游標顏色不同，方便討論時不會產生誤會</li>
</ul>
<h2 id="三安裝套件登入使用者">三、安裝套件＆登入使用者<a class="h-anchor" href="#%e4%b8%89%e5%ae%89%e8%a3%9d%e5%a5%97%e4%bb%b6%e7%99%bb%e5%85%a5%e4%bd%bf%e7%94%a8%e8%80%85" aria-label="這個段落的連結"></a></h2>
<blockquote>
<p>下面的步驟及操作可能會隨著 VScode 改版而有所不同，僅供參考</p>
</blockquote>
<p><strong>SETP 1</strong>：在 VScode 的 EXTENSION 分頁搜尋「Live Share」，點擊「install」即可完成安裝</p>
<p><img src="https://deanlin.net/blog/202106/vscode-live-share-pair-programming/images/vscode-live-share-pair-programming-02.webp" width="1400" height="658" alt="三、安裝套件＆登入使用者（圖 2）" loading="lazy" decoding="async"></p>
<p><strong>SETP 2</strong>：安裝完後會在左下角多出「LIVE SHARE」的icon</p>
<p><img src="https://deanlin.net/blog/202106/vscode-live-share-pair-programming/images/vscode-live-share-pair-programming-03.webp" width="514" height="664" alt="三、安裝套件＆登入使用者（圖 3）" loading="lazy" decoding="async"></p>
<p><img src="https://deanlin.net/blog/202106/vscode-live-share-pair-programming/images/vscode-live-share-pair-programming-04.webp" width="1296" height="862" alt="三、安裝套件＆登入使用者（圖 4）" loading="lazy" decoding="async"></p>
<p><strong>SETP 3</strong>：第一次按「Share」時，會要求你登入 GitHub 或是 Microsoft 的帳號</p>
<p><img src="https://deanlin.net/blog/202106/vscode-live-share-pair-programming/images/vscode-live-share-pair-programming-05.webp" width="1296" height="862" alt="三、安裝套件＆登入使用者（圖 5）" loading="lazy" decoding="async"></p>
<p><strong>SETP 4</strong>：這裡我選擇登入Github，基本上就是一路按接受授權的過程</p>
<p><img src="https://deanlin.net/blog/202106/vscode-live-share-pair-programming/images/vscode-live-share-pair-programming-06.webp" width="1400" height="573" alt="三、安裝套件＆登入使用者（圖 6）" loading="lazy" decoding="async"></p>
<p><img src="https://deanlin.net/blog/202106/vscode-live-share-pair-programming/images/vscode-live-share-pair-programming-07.webp" width="1400" height="1429" alt="三、安裝套件＆登入使用者（圖 7）" loading="lazy" decoding="async"></p>
<p><strong>SETP 5</strong>：註冊成功後，你就會看到以下畫面</p>
<p><img src="https://deanlin.net/blog/202106/vscode-live-share-pair-programming/images/vscode-live-share-pair-programming-08.webp" width="1300" height="668" alt="三、安裝套件＆登入使用者（圖 8）" loading="lazy" decoding="async"></p>
<h2 id="四使用方式">四、使用方式<a class="h-anchor" href="#%e5%9b%9b%e4%bd%bf%e7%94%a8%e6%96%b9%e5%bc%8f" aria-label="這個段落的連結"></a></h2>
<blockquote>
<p>完成安裝＆登入的步驟後，下面提供本機模擬的操作方式</p>
</blockquote>
<h3 id="-自己跟自己的連線模擬操作">自己跟自己的連線，模擬操作<a class="h-anchor" href="#-%e8%87%aa%e5%b7%b1%e8%b7%9f%e8%87%aa%e5%b7%b1%e7%9a%84%e9%80%a3%e7%b7%9a%e6%a8%a1%e6%93%ac%e6%93%8d%e4%bd%9c" aria-label="這個段落的連結"></a></h3>
<p><strong>SETP 1</strong>：在本機用 VScode 開啟一個資料夾或是專案</p>
<p><img src="https://deanlin.net/blog/202106/vscode-live-share-pair-programming/images/vscode-live-share-pair-programming-09.webp" width="1286" height="856" alt="自己跟自己的連線，模擬操作（圖 9）" loading="lazy" decoding="async"></p>
<p><strong>SETP 2</strong>：點擊「Share」做分享，此時你會得到一組邀請連結</p>
<p><img src="https://deanlin.net/blog/202106/vscode-live-share-pair-programming/images/vscode-live-share-pair-programming-10.webp" width="945" height="856" alt="自己跟自己的連線，模擬操作（圖 10）" loading="lazy" decoding="async"></p>
<p><strong>SETP 3</strong>：此時開用「New Windows」開啟一個空的 VScode，點擊「Join」加入</p>
<p><img src="https://deanlin.net/blog/202106/vscode-live-share-pair-programming/images/vscode-live-share-pair-programming-11.webp" width="1020" height="761" alt="自己跟自己的連線，模擬操作（圖 11）" loading="lazy" decoding="async"></p>
<p><strong>SETP 4</strong>：加入後加入後便可以開始共同開發嚕</p>
<p><img src="https://deanlin.net/blog/202106/vscode-live-share-pair-programming/images/vscode-live-share-pair-programming-12.webp" width="1174" height="855" alt="自己跟自己的連線，模擬操作（圖 12）" loading="lazy" decoding="async"></p>
<p>當 Join 的人對檔案操作時，Share 的人可以看到他的操作</p>
<p><img src="https://deanlin.net/blog/202106/vscode-live-share-pair-programming/images/vscode-live-share-pair-programming-13.webp" width="1400" height="681" alt="自己跟自己的連線，模擬操作（圖 13）" loading="lazy" decoding="async"></p>
<h3 id="-了解-share-的人跟-join-的人正在操作的畫面">了解 Share 的人跟 Join 的人正在操作的畫面<a class="h-anchor" href="#-%e4%ba%86%e8%a7%a3-share-%e7%9a%84%e4%ba%ba%e8%b7%9f-join-%e7%9a%84%e4%ba%ba%e6%ad%a3%e5%9c%a8%e6%93%8d%e4%bd%9c%e7%9a%84%e7%95%ab%e9%9d%a2" aria-label="這個段落的連結"></a></h3>
<p>按下右上角的「圖釘」，就是「Follow Participant」觀看對方現在操作的檔案</p>
<p><img src="https://deanlin.net/blog/202106/vscode-live-share-pair-programming/images/vscode-live-share-pair-programming-14.webp" width="915" height="395" alt="了解 Share 的人跟 Join 的人正在操作的畫面（圖 14）" loading="lazy" decoding="async"></p>
<h3 id="-直接在對方的環境下執行程式了解問題">直接在對方的環境下執行程式了解問題<a class="h-anchor" href="#-%e7%9b%b4%e6%8e%a5%e5%9c%a8%e5%b0%8d%e6%96%b9%e7%9a%84%e7%92%b0%e5%a2%83%e4%b8%8b%e5%9f%b7%e8%a1%8c%e7%a8%8b%e5%bc%8f%e4%ba%86%e8%a7%a3%e5%95%8f%e9%a1%8c" aria-label="這個段落的連結"></a></h3>
<p>Join的人可以直接在終端機下指令，了解程式執行狀況</p>
<p><img src="https://deanlin.net/blog/202106/vscode-live-share-pair-programming/images/vscode-live-share-pair-programming-15.webp" width="1354" height="826" alt="直接在對方的環境下執行程式了解問題（圖 15）" loading="lazy" decoding="async"></p>
<hr>
<blockquote class="pullquote"><p>本篇文章只是很簡略地讓大家了解如何使用「Live Share」這款套件，更多的功能就讓大家<a href="https://visualstudio.microsoft.com/zh-hant/services/live-share/?fbclid=IwAR3B2oFFd4kuofFKVm5qh7r5T-QCdOXSSta87b87jBhGGTdob4Ztl3Gp6-U">直接去官網</a>了解吧！</p>
</blockquote>
]]></content:encoded>
    </item>
  </channel>
</rss>
