> For the complete documentation index, see [llms.txt](https://www.saladpuk.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://www.saladpuk.com/cloud/azure-devops/kanban-board.md).

# เล่น Kanban Board

{% hint style="success" %}
**แนะนำให้อ่าน**\
บทความนี้เป็นส่วนหนึ่งของคอร์ส [**👶 Azure DevOps**](https://saladpuk.gitbook.io/learn/cloud/azure-devops) ที่จะมาสอนการใช้งานทุกสิ่งที่ DevOps ควรจะต้องมี เพื่อให้เราสามารถทำ Feedback loop ได้ไวขึ้น ดังนั้นถ้าเพื่อนๆสนใจอยากดูว่ามันทำอะไรได้ก็กดไปอ่านที่บทความหลักได้เลยครัช
{% endhint %}

ในฝั่งของการวางแผนจัดการต่างๆของโปรเจค เช่น **Product Backlog** หรืองานที่แต่ละคนในทีมจะได้รับผิดชอบของแต่ละ **Iteration/Sprint** เราสามารถจัดการได้ง่ายๆในสิ่งที่เรียกว่า **Azure Board** นั่นเอง โดยเราสามารถเข้าไปเล่นได้จากเมนู **Boards** เลย ซึ่งตัวแรกที่ผมอยากแนะนำคือเมนูย่อยที่ชื่อว่า **Backlogs** ตามรูปด้านล่างเลยครัช

![](/files/-M-i5UyP7BeAkzLpQ_Gg)

## 🔥 Backlogs

คือสถานที่เอาไว้รวบรวมงานทั้งหมดของทั้งโปรเจคเอาไว้นั่นเอง ซึ่งโปรเจคตัวอย่างของผมยังไม่มีอะไรอยู่เลย ดังนั้นผมจะลองสมมุติว่า เรากำลังจะทำเว็บโชว์โปรไฟล์บริษัทก็แล้วกันนะ ดังนั้นก็ลองสร้างกันเบย

![](/files/-LshcJwh1oU5Iu0spl7n)

### Feature

ของที่ผมจะสร้างในรอบนี้ก็คือ Feature ดังนั้นผมก็เลยตั้งชื่อ feature นี้ว่า Profile แล้วก็กดสร้างตามรูปเลย (อย่าลืมเลือกเป็น Features ตามที่ขีดเส้นสีส้มๆด้วยนะ)

![](/files/-LnUkU67_D48mooRcjXV)

{% hint style="info" %}
**เกร็ดความรู้**\
ปรกติเวลาที่เราแบ่งงาน เราจะแบ่งออกเป็น 3 กลุ่มคือ **Feature**, **Story**, **Task** ซึ่งรายละเอียดเรื่องนี้ยาวเลยเดี๋ยวผมเอาไปอธิบายเป็นบทเสริมอีกทีนะ
{% endhint %}

### Story

เราก็จะได้ feature ใหม่ขึ้นมาเรียบร้อย ดังนั้นถัดไปเราก็จะมากำหนดว่าภาย feature นี้มันจะต้องทำอะไรได้บ้าง ดังนั้นผมก็จะกดเครื่องหมาย `+` หน้า Profile ตามรูปเลย

![](/files/-Lw951GlZivoBoj8iCYE)

เขาก็จะเปิดหน้าต่างให้เรากำหนดรายละเอียดของ User Story นั่นเอง ซึ่งในตรงนี้เราสามารถกำหนดของลงไปได้เยอะเลยเช่น **Description**, **Acceptance Criteria**, **Story Points**, **Priority** บลาๆ ลองดูในช่องสีส้มเอาละกัน ซึ่งเมื่อใส่จนพอใจแล้วก็กด `Save & Close` ให้เรียบร้อย

![](/files/-LofM7_46tLvyTahhTzE)

{% hint style="info" %}
คำศัพท์ต่างๆยังไม่ต้องไปสนใจมันหรอก เดี๋ยวผมจะอธิบายรายละเอียดทั้งหมดไว้ในบทความ **Agile** เรื่องการทำ **Planning** อีกที ถ้าสนใจก็ไปกดอ่านได้จากลิงค์เรื่อง [👦 **Agile Methodology**](https://saladpuk.gitbook.io/learn/basic/agile-methodology)\*\*\*\*
{% endhint %}

### Task

เรียบร้อยแล้วนะตอนนี้ผมก็จะมี User Story ขึ้นมาใหม่ละ ถัดมาเราก็จะลองมากำหนด Task กันดูบ้างว่ามันควรจะต้องทำอะไรต่อบ้างเพื่อจะปิดงานตัวนี้ได้ โดยการกดปุ่ม `+` หน้าชื่อ User Story แล้วก็เลือกสร้าง Task เลยตามรูป

![](/files/-Lw1plvUIvyWium7cADY)

สมมุติว่างานที่ผมจะต้องทำเพื่อปิด story นี้คือ **สร้างฐานข้อมูล** ละกันดังนั้นก็ใส่ลงไปแล้วกดเซฟซะ (เราสามารถกำหนดได้เลยนะว่างานนี้ใครจะเป็นคนรับผิดชอบ ตามกรอบสีเหลือง)

![](/files/-LsZg69OmfgykQOF7W_y)

เรียบร้อยละเพียงแค่นี้เราก็สามารถสร้างของเอาไว้ติดตามงานแบบง่ายๆได้แล้ว ตามรูปด้านล่างเลย

![](/files/-LnrLtcfIDg5Wg0J4x75)

เพื่อความสมจริงผมขอเพิ่มงานอื่นๆเข้าไปหน่อยละกัน จะได้เห็นภาพที่ชัดเจนว่าเวลาทำงานจริงๆมันจะออกมายังไงตามรูปนี้เลย

![](/files/-LpMeFvLVbm0hcdSmO1D)

## 🔥 วางแผนส่งงาน

หลังจากที่เรารู้แล้วว่า ตัวโปรเจคมีงานอะไรบ้าง ถัดมาเมื่อถึงเวลาที่เรา Planning เพื่อเลือกว่าภายใน **Iteration/Sprint** นั้นๆจะทำงานตัวไหนบ้าง เราก็จะมาดูที่เมนมู **Boards** ตามรูปเบย

![](/files/-Lsb4M48UJHmodfdUjDw)

### Feature

ในหน้านี้เขาก็จะโชว์รายการ Feature ทั้งหมดของเราออกมา ซึ่งทีมก็จะคุยกันว่าจะเอา Feature ไหนมาทำบ้าง โดยการเลื่อนมันไปที่ column ต่างๆ เช่นอาทิตย์นี้ทีมจะเริ่มทำ Feature ละก็ลากมันไปที่ Active ได้เบย

![](/files/-LoQe0Q1Tti5EssJPhVB)

### Commit Stories

ถัดมาทีมก็จะเลือกงานตัวที่จะ commit ส่งลูกค้า ซึ่งเราจะปิดงานในระดับของ Story ดังนั้นที่มุมบนขวาก็ปรับไปที่เมนู **Stories** ได้เบย

![](/files/-LqlEt_x__t0TiqP84Jd)

เราก็จะเห็นรายการ Story ที่เราสร้างไว้ ดังนั้นเราจะ commit ตัวไหนก็ลากไปได้เบย

![](/files/-LpTuRBa17El6djVWUld)

## 🔥 ติดตามงานรายวัน

เมื่อแบ่งงานที่จะทำกันเรียบร้อยแล้ว ถัดไปถ้าเราอยากติดตามงานที่ถูกแบ่งออกไปว่าไปถึงไหนแล้ว ก็สามารถกดไปดูที่ **Sprints** ได้เลย

![](/files/-LpcQWyZkmmQtEvOuPlP)

ซึ่งเขาก็จะแสดงรายการให้เราดูว่างานในแต่ละ Story เสร็จไปถึงไหนแล้ว ตัวไหนกำลังถูกทำอยู่บ้าง ใครเป็นคนรับผิดชอบงานนั้นๆ ตามรูปเลย

![](/files/-LuDSt4A4h1T51Gsf04O)

ซึ่งเวลาที่คนในทีมอัพเดทสถานะงานในระดับ Task ปุ๊ป เมื่อเราไปดูที่ระดับ Story มันก็จะมีการอัพเดทด้วยนะ ดังนั้นมันเลยทำให้เราสามารถติดตามได้ว่า งานของ Iteration/Sprint นั้นๆตอนนี้เป็นยังไงบ้าง ปิดได้ตามกำหนดหรือเปล่านั่นเอง

![](/files/-LoALQJMDDNC90vqS3ZN)

## 🔥 กำหนด Iteration/Sprint

ในรอบส่งงานแต่ละครั้งบางทีก็มีจำนวนวันไม่เท่ากัน เช่นบางครั้งก็ 1 อาทิตย์ บางทีก็ 2 อาทิตย์ หรือบางบริษัทก็อาจเป็นเดือน ดังนั้นเราสามารถไปตั้งได้จากด้านบนขวาตามรูปเลย

![](/files/-Lw3ny7dhXcO1WvreneZ)

เมื่อเรากำหนดของพวกนี้ไปเสร็จเรียบร้อย เราก็จะสามารถติดตาม หรือดูประสิทธิภาพของทีมได้แล้วว่า ทีมของเราสามารถทำงานได้กี่ **Story Points** เพื่อหา **Velocity** นั่นเอง

![](/files/-LnUmL12--KeQ3ACyBvz)

## 🔥 วิเคราะห์ประสิทธิภาพของทีม

เมื่อทำงานไปถึงจุดนึง ทีมก็ควรจะมาวิเคราะห์ตัวเองกันได้แล้วว่า ภายใน 1 Iteration/Sprint ทีมสามารถรับโหลดงานได้ขนาดไหน โดยการกดที่ **Backlogs > Analytics** ตามรูป

![](/files/-LpwBabh1hdwjVFKf4kc)

ซึ่งเราก็จะสามารถไปดูพวก **Burndown Chart** หรือ **Velocity** ของทีมได้

![](/files/-LpcG7wP2C9B2zdapz_n)

## 🤔 ทำได้แค่นี้เหรอ

ใจเย็นๆนะโยม ในเรื่อง **Board** ของ Azure DevOps นี้ขอบอกเลยว่ายาวที่สุดเลย เพราะมันมีอีกหลายเรื่องให้เราเล่นได้ เช่น ทุกอย่างที่ผมโชว์มาให้ดู เราสามารถไป custom ปรับเพิ่มลดทุกอย่างได้หมดเลย ใส่สี ติด tag เพิ่มลดเมนูได้หมด กำหนดทีมย่อย และขอบเขตการมองเห็น สิทธิ์ต่างๆ โอ้ยแค่คิดก็ปวดตับแล้วว่าจะอธิบายมันออกมาให้หมดนั่นผมจะต้องเขียนอีกกี่บทความกันแน่ ดังนั้นเอาไว้เท่านี้ก่อนไว้ว่างๆแล้วเดี๋ยวมาอธิบายต่อ
