The Cloud Camp Week#04 (Agile)

สำหรับสัปดาห์นี้มาพักเรื่อง Technical บ้าง มาคั่นด้วยแนวคิด Agile กันครับ ที่เป็นแนวคิดมาแรงในยุคนี้ หลายที่ทำสำเร็จ หลายทีทำตาม หลายทีล้มเหลว อย่างบริษัทที่ผมทำอยู่ ทำเพราะ CMMI ใส่คำนี้ 55555 (เมาส์ได้ทั้งวัน เรื่องนี้) สำหรับ Blog นี้ที่จดๆมา จะมีหัวข้อ ประมาณนี้

Introduction to Agile

Agile คืออะไร แนวทางการทำงานเป็นขั้นตอนและงานด้านเอกสารลง เน้นการสื่อสาร เปิดรับ Feedback มากขึ้น เพื่อให้ตัว Product ออกมาได้ตรงตามที่ต้องการมากที่สุด

ส่วนตัวผมไม่อยากใช้คำว่า Agile แล้วไว เพราะมันเป็นคำที่ผู้บริหาร ฟังไปแล้วเข้าใจผิดมากที่สุดเลย แบบเดิมใช้ 4 เดือน Agile แล้วต้องเหลือ 2 เหลือ ลดลงจริง แต่เป็นคนทำงาน ฝ่างงงง

สำหรับคนที่ทำงานสายนี้ มี Cert เหมือนกันนะ อันนี้เพิ่งรู้เลย มี 2 ตัว

  • Certify Scrum Master - ง่าย เกณฑ์ 69% ++ แต่ require ให้ไป Workshop 2 วัน + สอบ ทุก 2 ปี เราจะได้ความรู้ใหม่ๆตลอด
  • Professional Scrum Master Certificate ต้องสอบให้ผ่าน 85% ไม่มีวันหมดอายุ

Doing Agile / Being Agile

อันนี้เป็นคำที่ผมไม่เคยได้ยินจากใน บ นะ หรือ Consult CMMI โผล่มาคุ้ม Scrum เลย แล้ว 2 คำนี้มันต่างกันยังไงนะ ?

  • Doing Agile - Practices สั่งให้ทำก็ทำได้ มีแนวทางชัดระดับนึง (Framework)
    - Priority - Story Point / Planning poker
    - Visibility - Tools Kanban / Scrum
    - Productivity / Quality / Reduce Risk แนวคิด Automation หรือ ทำ CI/CD
  • Being Agile - Mindset กาย ใจ ไปในทางเดียวกัน ไม่ได้ทำเพราะหน้าที หรือฝืนไป มีใจใส่ลงไปของที่ได้ จะมี Idea
    - เข้าใจลูกค้า แต่ไม่ใช่ตามใจนะ (อันนี้ผมเสนอเจอจากประสบการณ์บางคนชอบคิดว่าตามใจ ทำให้ Customer Delight / Customer Centric)
    - ต้องเรียนรู้่ เพื่อให้เกิด Innovation / Creation ได้

** ถ้า ผบห ระดับสูงลงมาใน Loop ด้วย นอกจากการสั่งๆ ให้ทำ จะดีมาก

Why Agile?

เพราะแบบเดิมที่ทำกันมาอย่าง Waterfall ซึ่งมีการทำงานชัดเจน เป็นลำดับขั้นตอน (Defined Process) ซึ่งมันให้ Feedback มาช่วยท้ายๆของ กระบวนการ ทำให้แก้ไขได้ยากขึ้น + Cost สูงขึ้น

Ref: What is Agile Software Development? [Quick Guide] (visual-paradigm.com)

ในยุค Waterfall จริงๆแล้วมีหลายแนวคิด FDD / Scrum / XP เกิดมาก่อนอีกนะ แล้วมี Community ร่วมกัน และตุ้มได้ Agile Philosophy / Manifesto (แถลงการณ์) ขึ้นมา

4 Value - Over not Replace เลยเป็นที่มาของ Lightweight ลดขั้นตอน มีปฏิสัมพันธ์กันมากขึ้น

Individuals and interactions over processes and tools
- เน้น People ลูกค้า/ทีม มากกว่าขั้นตอน กระบวนการ
Working software over comprehensive documentation
- เน้น Product มากกว่าเอกสาร > Product อาจจะเป็น Feature หรือ Code + Test อ่านรู้เรื่อง
Customer collaboration over contract negotiation
- People ลูกค้า/ทีม เข้ามา Feedback บ่อยๆ
Responding to change over following a plan

12 Principle

  • Customer Satisfaction - โดยดึงเข้ามาแต่แรกๆ (Customer Involvement) และ Deliver เล็กๆบ่อยๆ ให้ได้ Feedback ไว
  • Welcome Change - ยอมรับการเปลี่ยนแปลง ถ้ามันเป็นประโยชน์กับลูกค้า (customer’s competitive advantage) //ส่วนตัวเงินคิดถึง เราด้วย ถ้า Internal ปรับเลย
  • Deliver Frequently
  • Working Together - ตัดงานแบบ Silo ออกไป
  • Motivate Team - ให้ support ให้ทุกด้าน เช่น environment/ resources / trust เป็นต้น
  • Face to Face
  • Working Software - เอามาดูการพัฒนาของ Product
  • Constance Pace - ทำทีละนิด ค่อยๆก้าวขึ้นไป อย่าสม่ำเสมอ
  • Good Design - technical excellence + good design มาเสริม Deliver Frequently เช่น Estimation / Productivity / Quality
  • Simplicity
  • Self-Organization - Cross Functional
  • Reflect and Adjust - Team + People / Process
- Agile 4 Value & 12 Principle
---------------------------------------------------------------------------
 Value                        | Principle
---------------------------------------------------------------------------
Individuals and interactions -> Self-Organization 
                             -> Face to Face
                             -> Working Together
                             -> Reflect and Adjust
                             -> Motivate Team
---------------------------------------------------------------------------
Working software             -> Constance Pace
                             -> Deliver Frequently 
                             -> Simplicity
                             -> Good Design
---------------------------------------------------------------------------
Customer collaboration       -> Customer Involvement > Customer Satisfaction-|   customer’s 
---------------------------------------------------------------------------  |-- competitive 
Responding to change         -> Welcome Change                            ---|   advantage
- MVP / MMP
Ref: What is MVP? Know MVP Meaning, Examples & Process (spaceo.ca)
  • Minimum Valuable Product ทำ Product (ในที่นี้จะเป็น Software) ออกมาให้ Minimum (เพียงพอ) และมี Value (คุณค่า) กับการใช้งานจริงๆ มาลองตลาดก่อน อาจจะมีคำอื่นๆที่คล้ายกัน เช่น Minimum Marketable Product เป็นต้น
  • ตอนทำพยายาม Weight Minimum Valuable ให้ครบทุกด้านด้วย ตัดแบบ thin vertical slices 

Scrum

Meme ที่เล่นกันช่วงนี้เลย Ref: มีมวิทยาศาสตร์ + สมปอนด์

อย่างที่เกริ่นไปแล้วว่าตัว Scrum เกิดมาก่อน Agile อีก แต่แนวคิดมันสอดคล้องกันครับ โดย Scrum มาจากกีฬารักบี้ (อันนี้เพิ่งรู้เหมือนกัน มาจากทีมต้องร่วมมือกัน เป็นกลุ่ม พาลูกบอลเข้าประตู)

Ref: What is a scrum in rugby union? - Rugby World magazine

สำหรับ Scrum ตอนนี้จะก็หมายถึง Empirical Process Control ที่เข้ามาช่วย people/ teams/ organizations จัดการกับชิ้นงานในกลุ่ม complex problems / adaptive problems และใส่ creatively / productively เพื่อให้เกิด Value ออกมา

- ปัญหาด้าน Requirement มัน Complex ใจคนยากนั่งถึง
- ส่วน simple problems จะใช้ Define Process มาแก้ Waterfall
- และ Empirical Process - กระบวนการที่ปรับเปลี่ยนจากความรู้ เหตุการณ์ที่ทำให้เราเอง นั้นมีประสบการณ์กับมันมากขึ้น (รอบเล็กๆ เพิ่มขึ้นทีละนิด Iterative เช่น Scrum) //เอาจริงๆ CMMI มีคำนี้นะ แต่คนนี่แหละที่ยึดติดมากกว่าเลย เอามาใช้ผิด มา Dark CMMI เฉยๆ 555

  • Scrum in Project Management - Empirical Process Control / Self-Organization / Collaboration / Value-Based Prioritization / Iterative Development / Time-Boxing จะเห็นว่าหลายๆ อันจะล้อไปกับ Agile Principle
  • Empirical Model Scrum หรือ The Three Pillars of Empiricism (Scrum)
  • 5 Scrum Values FOCUS / OPENNESS / RESPECT / COMMITMENT / EXTREME COURAGE
  • Output ของ Scrum Product Backlog / Sprint Backlog / Product Increment (Evolution)

เรื่อง Scrum มีจด Session ATH2023 ไว้นะ >> Scrum มูลบทแห่งสกรัม (ทฤษฏี) โดยพี่รูฟ

โดยใน Scrum Team มีลักษณะประมาณนี้ Cross-Functional (T-Shape Skill เช่น เชี่ยว Dev พอทำ Test / Biz นิดหน่อย) ที่สามารถ Self-organization / Self-management ประมาณ 6-10 คน (น้อยๆลด Communication Line) ทีมควรจะ Stable ไม่ต้องเอาคนเข้าออกบ่อยๆ โดยจะมีแต่ละ Role ดังนี้

  • Product Owner (PO)
    - Mini CEO เป็นคนที่ทำความเข้าใจกับ Stakeholder และทำตัว Product Backlog เพื่อให้ Development Team เอาใช้ต่อ
    - กำหนด Vision ของ Product และต้องมาตอบคำถามว่าทำไปเพื่ออะไร (What)
    - เข้าใจ Business Domain และหา Trend Analytic ให้ตอบตลาด
  • Development Team
    - ทีม Product โดยจะดึง Product Backlog ออกมาเป็น Sprint Backlog เพื่อมากำหนด DoD ในรอบนั้นๆ
    - และ Improve Quality
  • Scrum Master
    - กรรมการ คอยช่วยประสานงาน และ Coaching

สำหรับหน้าที่หลัก(สีขาว) และรอง (สีชมพู) ของแต่ละ Role ตามนี้

ส่วน Stakeholder อันนี้จะเป็น Role ที่ Deal กับ PO เป็นหลัก

Scrum Ceremonies

Ref: "Essential Scrum": Scrum Framework | Innolution

Initiation Phase > Plan and Est > Implement > Reiew Retro > Release

- Initiation Phase
  • business case
  • product vision (Scrum Team) - JAD Seccion (Workshop) / SWOT Analysis / GAP Analysis)
  • product strategy / roadmap >> PO แปลงเป็น PB
  • Product Backlog Refinement
    - Grooming=Describe Prioritizing Estimate Accountable โดยทำได้หลายครั้ง
    - Grooming จนได้ Deemed Ready (Prioritize แล้ว)

Grooming Checklist

  • Business value is clearly articulated.
  • Details are sufficiently จะไปขยายต่อใน Good PB User Story
  • Dependencies are identified
  • Small enough and estimated for sprint //ทำจบใน 1 Sprint
  • Team understands

PB Structure

Product Backlog

|-- Theme (Department / Sub System)
|---- Initiative รอบการทำงาน
|------ Epic Wording
| > Non-Tech เข้าใจ Feature เช่น Noti
| > หา Persona ตัวแทน user
|--------- User Story - Task / SubTask

Good User Story structure

General Information: Title / Priority / Estimate

User Story: ใคร ทำอะไร ที่ไหน อย่างไร

Technical Spec:
|-- naming convention
|-- current implementation
|-- suggest implementation

Acceptance Criteria (Condition of Satisfaction)
|- Given When Then
|- ควรทำให้มัน Testable จะได้ตรวจสอบได้ และตีความได้แบบเดียว

Risk

Design: - UI Figma / Architecture

Scrum Event 4 + 1 (The Sprint)

- The Sprint:
time-box 2-4 Week / ขนาดเท่าๆกัน
Sprint Cancellation ทำได้ ถ้าได้ Feedback ว่า Product มัน Obsolete แล้ว
- Event: Sprint Planning > Daily scrum > Sprint review Sprint retrospective

- Plan & Estimate phase
Prioritized PBs > Sprint Backlog Release > Planning Schedule > Grooming PB
  • How prioritized the backlog?
    - MoSCoW analysis / Paired Comparisons / 100 Point Method / Kano Analysis
    - วิธีอื่นๆ 9 Ways to Prioritize the Product and Feature | by Sakul Montha | Aug, 2023 | Medium --?
  • How measurement the sprint?
    - Estimate
    เดิม Velocity แต่มีปัญหา เช่น คนลา รอบถัดไปมันจะตก
    ใหม่ Capacity ดูจากคนที่ Available ใน Sprint นั้นๆ
    - Size ดูจาก Effort / Risk / Complexity
    - แทนด้วย Point-Based Sizing / T Shirt
  • Sprint Backlog = Product Backlog ที่เลือกเข้ามาทำใน Sprint นั้นๆ
    - Sprint Board แสดงให้เห็นงานที่ทำใน Sprint เน้น Transparency / visible มี State TO DO > IN PROGRESS / DONE
    - ตัวอย่าง Trello
  • Definition of done (Step) -Transparent / Inspection / Adaption Align Sprint Goal (SMART-=  Specific/ Measurable/ Attainable/ Relevant/ Time-Based)
- Implementation phase
  • Daily scrum
    - Time Box 15 นาที
    - Development Team Sync Status + Improve
  • แต่ละ Role มีงานตัวเองนะ
    - Product Owner Product Discovery / Product Backlog Refinement / Help team Validation
    - Development Team: Develop > Test > Deploy
    - Observe team capability / Time boxing / Mentor & Coaching
  • Burndown chart - Actual vs Estimation
    และจะได้ตัว Artifact > Product ที่มีการ Increment และ Evo ขึ้นมาแต่แต่ละ Iteration
  • Desk Check - Prepare show case ซ้่อมการ Demo ให้ Team Stakeholder ดูนั่นเอง
- Review & Retrospective phase

Review (Timebox: 4 hrs. / 1 month of sprint)

  • show case เพื่อมารับ Review + feedback งานที่แยกไปทำในแต่ละ Sprint ของ Product ด้วย ระหว่าง Stakeholder (Internal คนให้เงิน / External - คนที่อาจจะเกี่ยวข้องกับระบบ เช่น Customer Support) / Scrum Team
  • รวมถึง อาจจะมีการปรับ Product Backlog (Grooming)
  • Tech Huddle - KM Share ทำเถอะครับ เคยบ่นไว้อยู้่ ถ้าพลาแล้วจะเป็นแบบไหน KM มันควรสร้างตอนที่ยังอยู่ ไม่ใช่มาสร้างตอนที่จะลาออกไป //จากที่ใช้ facebook driven เออทำกับระดับนึงแล้ว แม้ว่าจะไม่ได้ถี่เท่าตอนที่เขียน Blog

Retrospective (Timebox: 3 hrs./ 1 month of sprint)

  • Scrum Team มาคุยกัน Continuous Improvement & Team engagement รวมถึง Insight Backlog
  • NOT blameless culture
  • Technique
    - Good / Bad
    - Like / Lacked / Learn
    - What Could be Improve / What went well / Not well or lack
    Note ทำ theme ไม่ให้เบิ่อ
  • หลังจากทุกคน Retro แล้ว Grouping และคุยกันต่อ ทำ theme ไม่ให้เบิ่อ
- Release phase

เปิดตัว product ใช้จริง หลังจากทำมาหลาย Sprint ภาพรวมทั้งหมดน่าจะประมาณนี้

Agile & Cloud Native

นอกจากเรื่อง Agile ที่ทำงานเป็น Iteration แล้ว แทนที่ Try & Error ตาม MVP ก็เอาตัว Designing Thinking + Lean + Agile มาเสริมให้ตัว Product รวมถึงถึงแนวคิดอื่นๆ อย่าง DevOps/SRE/ Microservice / Container Orchestration มาช่วยเสริม

ส่วนวันเสาร์ On-Site ได้มาลองเล่น Quiz ทวนความรู้ และมีลองเกม Agile Cooking สนุก เพราะไม่เคยเล่น 555 โดยจะเกมให้ลองทำ Pizza มันต้องแยกหน้าทั่กันใครจะจัดการอะไร รับ Order / เตรียมวัตถุดิบ / ประกอบอาหาร / จัดการงานภาพรวม เพื่อให้ pizza ออกทัน ต้องคิดตั้งแต่เริ่มเลือก Menu เลย รอบแรกผมพลาดตรงนี้แหละ เอามาคนละแบบเลย รอบหลังๆค่อยมาปรับให้ mass production และ lean process ได้มากขึ้น

อ๋อสำหรับสัปดาห์นี้ ไม่มีการบ้าน แต่มี Quiz ให้ทำ ผมลองทำและ ตก ครับ ข้อสอบแอบยาก ถ้าผ่านน่าจะแปลกมากกว่าสำหรับผมที่ไม่ได้ใช้ Agile + Scrum แบบจริงๆจังในที่ทำงาน

Releated Blog

ตามที่ไปจดๆในงานต่างๆ เลยแปะไว้ด้วยเลย เผื่อคนมาอ่านจะลองเข้าไปดูเพิ่ม หรือผมจะเขียนขัดแย้งกันเอง 555 เวลาเปลี่ยนไป ความรู้ ทัศนคติ มันปรับตามครับ

Reference


Discover more from naiwaen@DebuggingSoft

Subscribe to get the latest posts to your email.