agilenewera
จากบทความเรื่อง Agile Software Development requires Software Development โดยคุณ Ron Jeffries
มันน่าสนใจมากๆ ในการพัฒนา software ด้วยแนวทาง Agile
มาดูว่าเขามีความคิดเห็นอย่างไรบ้าง ?
จึงนำมาแปลตามที่ผมเข้าใจนะ …

เริ่มด้วยด้วยการพูดถึง Agile Manifesto

โดยขึ้นหัวข้อใหญ่ๆ ด้วยคำว่า Manifesto for Agile Software Development
และขอเน้นย้ำว่า “Software Development”

ซึ่งในรายละเอียดของ Values และ Principles ของ Agile นั้น
มีคำว่า Software อยู่ไม่ตำ่กว่า 7 ครั้ง
และมีการกล่าวถึง

  • Technical excellence
  • Good design
  • Architecture
  • Development
  • Delivery

โดยที่ Scrum เป็นหนึ่งใน Agile framework ที่ได้รับความนิยมแบบสุดๆ
ในทุกๆ Sprint หรือรอบการทำงานจะต้องส่งมอบ Working software เสมอ

คุณ Jeff Sutherland หนึ่งในผู้สร้าง Scrum กล่าวไว้ว่า

“Any Scrum without working product at the end of a sprint is a failed Scrum.”

ดังนั้นลองกลับไปดูสิว่า ในแต่ละรอบการทำงาน
เรามีอะไรที่เรียกว่า Working software ส่งมอบหรือไม่ ?
ถ้าไม่มีอะไรส่งมอบ นั่นแสดงว่า คุณมีปัญหาแล้วนะ

แล้วต้องทำอะไรบ้างล่ะ ?

ในการทำงานอย่างหนึ่งให้ออกมาดีนั้น
จำเป็นต้องมีคนหลากหลายความสามารถสำหรับการสร้างงานนั้นๆ
ดังนั้น ที่มจำเป็นต้อง

  • มี Team Work หรือการทำงานเป็นทีม
  • มีการสื่อสารที่ดี
  • มีการ retrospective ที่ดี
  • บอกได้ว่าสิ่งที่กำลังทำมันมีคุณค่าหรือไม่
  • เน้นในสิ่งที่มีประโยชน์ต่อ business
  • ต้องรู้ว่าความสามารถของทีมเป็นอย่างไร หรือ รู้ WIP (Work In Progress) ของทีม

แน่นอนว่า เราจำเป็นต้องมีทุกอย่างข้างต้น
ถ้าเรากำลังสร้าง พัฒนา software
ดังนั้น เราก็ต้องรู้ด้วยว่า จะสร้างมันอย่างไร

เป้าหมายหลักในการพัฒนา software คือ
เราต้องสร้างระบบที่มันมีความน่าเชื่อถือ
และไร้ซึ่งความผิดพลาด
เพื่อสนับสนุนความต้องการของ business

ระบบที่สร้างขึ้นมานั้น ต้องมีโครงสร้างที่ดี
เพื่อให้การพัฒนาต่อไปมันยั่งยืน
ไม่ใช่สร้างไป แก้ไขไป …

อย่าลืมว่า Agile Software Development นั้น
คือการทำงานเป็นทีม ไม่ว่าจะ 2 คน หรือมีขนาดใหญ่ ( Large Scaled Agile )
เพื่อสร้าง software ที่มีคุณค่าขึ้นมา ในทุกรอบของการทำงาน

ถ้าเราไม่สามารถทำได้ล่ะ !!

“If we can’t build software well, all our “Agile” is for nothing. Nothing.”

นั่นหมายความว่า สิ่งที่เราทำกันมาคือ Nothing ( ไม่มีอะไรเลย )
เราทำงานเป็น Team Work หรือ ?
เราสื่อสารกันดีหรือ ?
เรา retrospective กันดีหรือ ?
เราเน้นทำสิ่งที่สำคัญต่อ business จริงหรือ ?
เรามี WIP เพื่ออะไรกันหรือ ?

ในความเป็นจริงๆ เราไม่ได้ต้องการ process อะไรมากมาย
เราเพียงต้องการรู้ว่า
เราจะสร้าง software ให้มี working software ออกมาในทุกรอบการทำงาน
หรือทุกๆ 2 สัปดาห์ได้อย่างไรต่างหาก

เราเกิดมาก็ไม่ได้รู้เรื่อง หรือ วิธีการหรอกนะ
แถมเรายังไม่เรียนรู้กันอีก
เนื่องจากโดนกดดันจากหลายๆสิ่ง หลายๆ อย่าง
ดังนั้นทีมต้องการความรู้พื้นฐานที่ดีในการพัฒนา software
และสามารถประยุกต์ความรู้พื้นฐานเหล่านั้นไปใช้งานได้

สุดท้ายแล้ว ทีมพัฒนาจำเป็นต้องรู้ว่า Agile Software Development
หรือ Software Development นั้นทำอย่างไร
นั่นคือสิ่งที่เราต้องให้ความสนใจ และ ใส่ใจมากกว่านะครับ

อย่าลืมว่า
“Software Development. It’s all about software development.”

Tags: