SA ใน Scrum team ต้องทำอะไร
Last updated
Was this helpful?
Last updated
Was this helpful?
อยากจะเล่าประสบการ์ณส่วนตัวที่พอเห็นมา เรื่องตำแหน่งของ SA ในช่วงที่เป็นยุคทองของ Dev ยุคนี้
เริ่มจาก SA ชื่อเต็มๆ คือ System Analyst ตำแหน่งนี้ทำอะไรเล่าแบบที่ไม่ยาวจนเกินไปก็...หลายคนจะบอกว่าเป็นนักวิเคราะห์ระบบ(ก็ตามชื่อมัน) แต่จริงๆ แล้วค่อนข้างทำหลายอย่างทีเดียวตั้งแต่
Gathering requirements
System design
Database design
Software document
Skill หลักๆ ที่กล่าวมาจะไม่ได้เน้น coding สักเท่าไหร แต่ๆๆๆ ควรจะผ่านงาน coding มาก่อนนะ ซึ่งถ้าใครเคย Search google เรื่อง SA แล้วมีคนถามเกี่ยวกับ SA ต้อง coding ได้ไม ต้องเป็น Dev มาก่อนไม โดนส่วนด้วยผู้เขียนก็ยังคิดว่าควรจะเป็น Dev มาก่อน แล้วก็ควรจะยังพอ Dev ได้ใน Tech Stack ที่ตัวเองดูแลนะ Activities อื่นๆ ที่ SA ต้องเข้าไป Involve ด้วยอีกก็ เช่น meeting, investigate, impact analysis, ...... อาจจะมีถึง project tracking เลยทีเดียว
ผมทำรูปคราวๆ มาให้ดูเพื่อให้เห็นชัดๆ ของ Skill SA 2 สาย SA+Dev และ SA+BA ตามประสบการ์ณผมนั้นเป็นยังไง
สรุปคราวๆ เป็น Role ที่ค่อนข้างจะจับฉ่าย ในด้าน Tech เลยละ ด้วนคุณสมบัติตามที่กล่าวมาหากใครที่เติมโตมาจากสาย Dev แล้วเสริมทักษะ Soft skill กับการทำ document + infra เข้าไปมันก็จะได้เป็น Full Stack Dev แล้วละ ทำให้ในช่วง 1-2 ปีที่ผ่านมานี้ ตัวผู้เขียนรู้สึกว่าตำแหน่ง SA นี้ค่อยๆ มีความต้องการลดลง(ไม่รู้เป็นคนเดียวหรือเปล่า)คือตั้งแต่เข้าสู่ยุคของ Tech Startup แบบหนักๆ ความต้องการของ Dev ที่เป็น Full Stack ก็มีมากขึ้นอย่างเห็นได้ชัดเนื่องจากรับคนเดียวก็เพียงพอที่จะทำหน้านี้ cover ทั้งหมด เลยไม่มีความจำเป็นที่ต้องมี SA ก็ได้ และ Tech Startup เริ่มแรกเหมาะกับการทำอะไร Lean ที่สุดเพื่อความคร่องตัว document ไม่ต้องเป๊ะเพราะส่วนใหญ่จะทำ Product innovation ก็ยิ่งเข้าทาง Senior Dev ที่เพิ่ม Soft skill เลย
SA ยังจำเป็นอยู่ไม
คิดว่ายังมีความจำเป็นอยู่ขึ้นอยู่กับรูปแบบการทำงานขององค์กรนั้นๆ นะ ตำแหน่งหน้าที่ก็จะต่างกัน
Agile(Scrum)
สมาชิกเป็น Senior Dev ทั้งหมด
แบบนี้คิดว่าไม่จำเป็นที่จะต้องมี SA ก็ได้ คงต้องดูบริบทของงานแต่ละคนขององค์กรนั้นๆ อีกที
สมาชิกเป็น Senior Dev และ Junior Dev
แบบนี้แนะนำให้ควรมี SA อยู่ด้วย เนื่องจาก Senior ที่ต้องมาดูแลน้องในทีมด้วยถือเป็นหน้าที่หนักพอด้วย หากต้องดูในเรื่องอื่นๆ เพิ่มด้วยจะส่งผลกับการออก Feature ได้
Water fall(Non Agile)
แบบนี้คิดว่ายังไงก็ยังควรต้องมีอยู่ เพราะกระบวนการและ process ยังเยอะอยู่ มีช่วงเวลาในการเก็บ requirement ค่อนข้างยาวไม่ควรต้องให้ทีม Dev เข้ามา join ตรงนี้เพราะจะ manday ไป free
ตัวอย่าง Scrum ที่มี SA ร่วมทีมจากประสบการ์ณผมเจอมา 2 แบบซึ่งคิดว่าก็ลงตัวในระดับนึง
แบบแรก SA คือ leader ของทีม
ผู้ร่วมทีมจะมี SA, Dev, QA โดยแต่ละทีมจะรับผิดชอบ Feature นั้นๆ ทั้งหมด Cover ทั้ง Frontend และ Backend มี SA ทำหน้าที่เป็น Leader ทำงานใกล้ชิดกับ PO เพื่อสรุป Story เข้า Sprint เมื่อได้รายละเอียดเพียงพอที่จะเอามาทำแล้วก็จะให้ทีม vote point ตอน planing อีกทีว่ารับงานได้แค่ไหน ในช่วงเวลาที่ start sprint SA ก็จะมีหน้าที่ประสานงานและเตรียมในสิ่งที่ต้องใช้ในงาน sprint ร่วมถึงวางแผ่น design งานใน backlog ที่จะเอาเข้ามาทำในรอบต่อไป หน้าที่อีกอย่างคือสรุปงานและเตรียมของรวมถึงแผน rollback สำหรับ deploy งานขึ้น production
SA ในทีมรูปแบบนี้จำเป็นที่จะต้องผ่านการ coding มาก่อนและควรมีความเป็น Senior เนื่องจากทีหน้าที่เป็นผู้นำของทีมและมีความรับผิดชอบทั้งในส่วน design และประสานงาน
แบบสอง SA ทำหน้าที่ Platform/Feature integration
ผู้ร่วมทีมจะมี SA, Dev Lead, Dev, QA โดยที่แต่ละทีมจะทำ Product เดียวกันแต่แบ่งทีมเป็นทีม Frontend และ Backend ทีมที่รับผิดชอบ Frontend จะดูแลในส่วน Feature ส่วนทีมที่รับผิดชอบ Backend จะดูแลในส่วน Platform SA ทำงานใกล้ชิดกับ PO และ Dev Lead เพื่อสรุป Story เข้า Sprint เมื่อได้รายละเอียดเพียงพอถึงเอางานเข้า planing
หน้าที่ในระหว่าง sprint ระหว่าง Frontend และ Backend ก็ต่างกัน
Frontend ในช่วง start sprint จะมีหน้าที่ค่อย support team ในเรื่องของ flow และ data ที่จะต้อง integrate กับทีมต่างๆ และจะต้องสรุป flow ของ feature ต่อไปที่อยู่ใน backlog เพื่อจะได้เอาเข้ามาทำใน next sprint ได้
Backend ในช่วง start sprint จะมีหน้าที่ค่อย support team ในเรื่อง spec ของ API ที่จะต้องทำและจะต้อง design API ต่อไปที่อยู่ใน backlog ที่ PO ต้องการให้ทำเพิ่มเพื่อ support frontend หรือ partner ที่จะมาเรียกใช้งาน
จะเห็นว่า SA ในรูปแบบการทำงานทีม Frontend ไม่จำเป็นต้องมีทักษะ Coding ก็ได้เนื่องจากจะดูในส่วนของ Flow และมี Dev lead ค่อยให้คำปรึกษา แต่ในส่วนของ Backend ควรจะมีทักษะ Coding อยู่บางเนื่องจากต้อง design API ขึ้นมาถึงแม้จะมี Dev lead ให้ปรึกษาแต่ถ้าไม่มีทักษะ Coding จะทำให้เวลาพูดคุยกันเข้าใจไม่ตรงกันได้
จะเห็นว่าทั้ง 2 รูปแบบนั้น SA จะทำงานใกล้ชิดและต้องมีส่วนร่วมในการ Design, Integrate และ Communicate อยู่ทั้งคู่การที่ skill coding หรือผ่านการ coding มาก่อนจะช่วยเสริมในส่วนนี้มากๆ หากไม่มีหรือไม่ผ่านมาเลยก็ใช่ว่าจะทำงานไม่ได้ แต่อาจจะเป็นอุปสรรคในการทำงานมากทั้งภายในทีมหรือระหว่างทีมมากอยู่เหมือนกันครับ
SA ยังจำเป็นต้องมีในทีมหรือไมนั้นขึ้นอยู่กับรูปแบบการทำงานของทีมขององค์กรนั้นแต่ SA จำเป็นที่จะต้องมี Skill coding ติดตัวในยุคนี้ครับ ถือว่าเป็น Skill จำเป็นที่ต้องมีเลยดีกว่า เพราะจะทำให้ SA ได้ทำหน้าที่ของ SA จริงๆ และช่วยทำให้ทีมเป็นสุขครับ