nitip.at

nitip.at

สรุปคลาส Agile for software development วันที่ 1/3

สรุปคลาส Agile for software development วันที่ 1/3

Nitipat Lowichakornthikun's photo
Nitipat Lowichakornthikun
·Mar 29, 2018·

2 min read

วันนี้ผมได้มีโอกาสมาร่วมการสอน Agile for software development ที่มหาวิทยาลัยเทคโนโลยีราชมงคลธัญบุรี ซึ่งกล่มผู้เข้าร่วมศึกษาในคลาสนี้เป็นอาจารย์ทั้งหมดครับ

โดยในตอนเช้ามีการอธิบายถึงที่มาที่ไปของ Agile โดยการบรรยาย ซึ่งพี่หนุ่มเป็นผู้บรรยายหลักในช่วงเช้า

ซึ่งเปิดมาด้วยการอธิบาย SDLC จากเดิมที่โปรเจกต์กินระยะเวลา 1 ปี ถ้าเราใช้แบบเดิมที่แต่ละ Phase แยกกันชัดเจน เสมือนการวิ่งผลัดส่งไม้ต่อเรื่อย ๆ สิ่งที่พบคือปัญหาในการทำงานของแต่ละ Phase อาจจะไม่ได้ตรงไปตามแผน ยิ่งร้ายไปกว่านั้นสิ่งที่ทำออกมาด้วยระยะเวลาที่นานกว่าจะเห็นของที่สามารถให้ผู้ใช้ทดลองได้แล้ว ทำให้เกิดปัญหาตามมามากมาย ทีนี้ถ้าเราเปลี่ยนการทำงานมาเป็นรูปแบบ Iterative มีการทำงานเป็นรอบ (Iteration) และ สามารถปล่อยของออกมาให้ใช้งานได้ทุก ๆ รอบการทำงานแบบทีละ Feature ล่ะ ซึ่งมีชื่อเรียกว่า Incremental

พี่หนุ่มก็เล่าประวัติความเป็นมาของ Agile ซึ่งจะพบว่าไม่ใช่เรื่องที่ใหม่แล้ว อีกทั้งก่อนที่จะมาเป็น Agile ก็มีการทดลองทำหรือมีรูปแบบการทำงานอื่น ๆ อยู่แล้ว ซึ่งการมาพูดคุยกันนี้เพื่อนพูดคุยหาสิ่งที่ในรูปแบบการทำงานที่เจอมามีความสอดคล้องกัน ซึ่งข้อความนี้ปรากฎใน http://agilemanifesto.org/

We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value

ซึ่งเป็นการที่ทั้ง 17 คนผู้ลงนามได้ประสบพบเจอผ่านประสบการณ์ของตนเอง และ การที่ได้มีส่วนร่วมกันการช่วยผู้อื่น ซึ่งได้ข้อสรุปออกมาเป็นแถลงการ Agile

การเล่าของพี่หนุ่มมีที่มาที่ไปที่สอดคล้องกัน โดยจาก 4 Values แรกนั้น

Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

ถ้าอ่านเองก็จะเกิดการตีความที่ผิดออกไป ซึ่งตอนนี้การตีความว่า Over คือ ไม่ ซึ่งไม่ถูกต้องคือ ทุกอย่างยังควรมีแต่สิ่งที่เราควรให้น้ำหนักคือฝั่งซ้าย เช่น Individuals and interactions over processes and tools จะพบว่าการมีปฏิสัมพันธ์ของคนสำคัญมากกว่าวิธีการและเครื่องมือ นั้นคือ เราควรให้น้ำหนักไปที่คน มากกว่าการเอาวิธีการและเครื่องมือมาตีกรอบการทำงานของคน ส่วนอีกข้อนึงคือ Responding to change over following a plan คนส่วนมากที่นำเอา Agile ไปประยุกต์เพราะมองว่าข้อนี้ทำให้เราปรับเปลี่ยนแผนได้ตลอดเวลา แต่นั้นไม่ใช่ทั้งหมด เพราะยังต้องมีการวางแผน แต่การทำงานแบบ Agile เอื้อให้เราสามารถนำเอาแผนมาปรับได้ตามสถานการณ์ที่พบเจอ

แต่การที่เราสนใจเพียง 4 Values นี้ ก็ไม่ได้ทำให้เราสามารถเข้าใจได้ทั้งหมด เพราะเป็นการบอกเพียงกว้าง ๆ จึงมีอีก 12 Principles มาอธิบายรูปแบบที่ชัดเจนขึ้น ซึ่งสิ่งที่นำเอาไปใช้แล้วตกไปนั่นคือการสร้าง Technical excellence ควบคู่ไป ซึ่งรวมทั้งการจัดการ Source code, การทำ Automate testing รวมถึงการทำ Automate build สิ่งนี้จะเสริมทำให้ทีมสามารถสร้างของออกมาได้ด้วยความเร็วที่ไม่ตกลงไปในอนาคต เพราะ ปัญหาปัจจุบันคือยิ่งมีการทำงานเป็นรอบ ของที่ออกมาบ่อยขึ้น แต่ไม่เกิดการดูแลที่ดีในแง่ของคุณภาพของของ

ซึ่งถ้าเมื่อดูแล้วทั้ง 4 Values, 12 Principles ของคำแถลงการณ์ Agile จะสามารถสรุปออกมาเป็น Heart of Agile

http://alistair.cockburn.us/Rediscovering+the+Heart+of+Agile

หลังจากนั้นช่วงสายจนถึงบ่าย เราได้ทำกิจกรรม Coin game ถ้าในครั้งต่อไป ผมจะนำเอากิจกรรม Coin game มาลงรายละเอียดครับ สิ่งที่จะได้จากเกมนี้คือทำให้ได้เห็นข้อเปรียบเทียบที่ชัดเจนเรื่องการวางแผนจัดงานเข้ารอบการทำงาน, การปรับ Scope ตามสถานการณ์ที่อาจจะเกิดขึ้นจริง, การปรับแผนเพื่อเตรียมการจากความเสี่ยงที่จะเกิดขึ้น ซึ่งกิจกรรมนี้จะอยู่ราว ๆ 2–3 ชั่วโมง

แตกรายละเอียดจาก Goal > Milestone > Iteration

เมื่อเข้ารอบการทำงานก็แนะนำให้ทีมรู้จักกับการนำเอางานขึ้นกระดาน เพื่อให้ทีมและคนนอกทีมเข้าใจตรงกัน

สำหรับในช่วงบ่ายถึงเย็น เราได้พาทำ Fish bone ซึ่งเป็นเครื่องมือที่ใกล้ตัวมาก เราได้หยิบนำมาใช้เป็นเครื่องมือในการช่วยการ Generate Idea เพื่อสร้าง Requirement ออกมา รวมทั้งทำให้ประชุมไม่ยืดยาว จากที่เราทำกันเพียง 20 นาที ผู้เข้าร่วมพบว่าเครื่องมือนี้มีประโยชน์อย่างมาก เพราะ ประหยัดเวลา ทุกคนมายืนกันอยู่มากระดานมาสรุปร่วมกัน

หลังจากนั้นในช่วงสุดท้ายเราได้ทำการลงรายละเอียดและการวางแผนผ่านเครื่องมือ A-DAPT Blueprint ซึ่งผลตอบรับดีมาก เพราะอาจารย์ที่เข้าร่วมมองว่าสิ่งนี้จะทำให้นักศึกษาวางแผน และ พูดคุยกัน จากเดิมที่ต้องเสียเวลาทำเอกสาร UML Design หรือ อื่น ๆ ถ้าเริ่มจากเครื่องมือนี้ก็จะทำให้ทั้งทางอาจารย์เองทราบว่านักศึกษามีความเข้าใจหรือติดปัญหาตรงจุดไหนไหม

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

 
Share this