มีโอกาสได้ไปเรียนคอร์ส CSD กับทาง Odd-e Thailand มาครับ เลยมาบันทึกอะไรเก็บไว้หน่อย
CSD ย่อมาจาก Certified Scrum Developer เป็นคอร์สที่มีทั้งนั่งฟัง Lectucre และ Workshop รวมอยู่ด้วยกัน ใช้เวลาทั้งหมด 6 วัน เนื้อหาก็ตามชื่อครับ เกี๋ยวกับ Agile และ Scrum แต่จะเน้นทางด้าน Developer และการทำานร่วมกันเสียมาก (ผมไม่เคยเรียนคอร์สเกี่ยวกับ Scrum master หรือ Product owner นะ แต่เนื้อหามันคงจะต่างกันเยอะอยู่ เอาไว้มีโอกาสคงได้สัมผัส ตอนนี้ต้องหาตังมาจ่ายค่าเรียนก่อนครับ ฮ่ะๆๆ)
สำหรับเนื้อหาในชั้นเรียนไม่ได้มีอะไร surprise เท่าไหร่ (สำหรับผมนะ แต่ถ้าใหม่ๆมาเลยมันจะเหมือนเอาตัวเองเข้าไปอยู่ท่ามกลางพายุดีๆนี่ล่ะครับ ซึ่งคงไม่มีหรอก...มั้ง) ตัวผมก็เคยผ่านค่าย Spartan กับชั้นเรียนมหาสนุกอย่าง Geek academy มาแล้ว แต่พอลองเอามาใช้กับงานจริงๆมันก็ไม่ได้เป็นอย่างที่ฝันไว้เท่าไหร่ กิจกรรมหรือpracticeบางอย่างก็ทำบางอย่างก็ไม่ หลายตัวที่ไปเรียนมาแล้วก็ขายไม่ออก ผมจึงอยากรู้ว่าที่เขาทำกันจริงๆน่ะ มันเป็นยังไง
เนื้อหาคร่าวๆในชั้นเรียน
- Hyper productivity
- Introduction to Agile & Scrum
- Unit test
- Collective ownership
- Code smell
- Mocking
- Robot framework
- ฯลฯ
ส่วนใหญ่จะได้เรียนไปแล้วใน Geek academy และค่าย Spartan นะครับ ถ้าไม่เคยเรียนก็ไปเรียนกันนะ
ระหว่างเรียนเราก็จะต้องทำ Product สุดเมพขึ้นมา 1 ตัว กับทีมที่ไม่เคยทำงานร่วมกันมาก่อน ภายในเวลา 5 วัน ระหว่างทางเราก็พบกับปัญหาเต็มไปหมด ทั้งปัญหาจริงๆ ทั้งวางกับดักกันเอง กระทั่งผู้สอนวางให้ แต่ก็ส่งงานได้ในวันสุดท้ายนะครับ :)
ในชั้นเรียนนี้เราจะมีครบ ทั้ง ทีม, Product owner, Scrum master และ Technical coach (บางทีก็มาช่วย บางที่ก็มาวางยา 555) อะไรที่ทำไม่ได้หรือไม่ได้ทำในที่ทำงาน ลองมาที่นี่ครับ ได้ทำทุกกิจกรรมจริงๆ
ทำให้ผมเข้าใจเลยว่า Scrum master กับ Product owner มันมีความจำเป็นจริงๆ ไม่ใช่ว่านึกจะอุปโลกน์ใครขึ้นมาเป็น หรือ ไม่มีเลยได้
การมี Scrum master ทำให้เรามีกิจกรรมที่ไม่ได้ทำที่ทำงานอย่างเช่น การกำหนด Working agreement การเปลี่ยนคู่ Pair ทุกชั่วโมง อ้อ รวมไปถึงการทำ Pair programming ด้วยนะครับ ยากมากเลยนะเวลาจะเอาไปใช้ในที่ทำงาน แรงต้านเยอะมาก แต่ในชั้นเรียนนี้เราจะแพร์มันทุกๆอย่าง กระทั่งการติดตั้งweb server หรือJenkins เขียนATDDด้วย Robot framework แต่จนจบคอร์สผมก้ยังแพร์ได้ไม่ครบทุกคนอยู่ดี น่าเสียดายนัก
พูดถึงเรื่อง Pair หน่อย ปกติแล้ว เวลาเราทำงานอะไรอยู่ เราก็จะปล่อยให้ตัวเองจมดิ่งลงไปในตัวงานนั้น ถ้ามีใครมาบอกให้หยุดหรือขัดจังหวะเราก็หงุดหงิด ก็อยากจะทำงานของเราต่อไป ผมคิดว่านี่เป็นสาเหตุที่หลายๆทีมล้มเหลวนะ เพราะเราก็ไม่ค่อยอยากจะขัดใจเพื่อนพอนานๆไป เราก็เลิกไปเองโดยปริยาย Scrum master ต้องมีไว้เพื่อเหตุนี้แหละครับ คอยบอกกับทีมว่า เฮ้ย พวกแกทำข้อตกลงอะไรกันไว้ ลืมแล้วป่าว ช่วงแรกก็ฝืนๆหน่อย ที่จะต้องทิ้งงานที่ทำอยู่ไป แต่ช่วงกลางถึงท้ายของคอร์ส เราก็ชินกับมันแล้วก็เปลี่ยนคู่กันเองได้เลยครับ เวลาติดปัญหาหรือresearchได้หรือไม่ได้ก็ให้ทีมมาร่วมรับรู้(มีกระดิ่งวิเศษหนึ่งอัน พอดังแล้วทุกคนต้องหยุดงานแล้วมาดู มีอยู่ใน Working agreement ด้วย)
ยังมีเรื่องที่ประทับใจอีกครับ อย่างเช่นการได้solutionจากเพื่อนร่วมทีมที่เราไม่รู้หรือไม่เคยคิดถึงมันมาก่อน การเอาปัญหามาแชร์กับทีมมันไม่ได้เป็นเรื่องเสียเวลาเลยครับ ถ้าเรานั่งอมมันเอาไว้ อาจจะเสีย feature ที่เราจะ release ใน sprint นั้นไปเลยก็ได้
แล้วก็การได้pairกับระดับปรมาจารย์อย่างSteven Mak(ผู้สอนท่านหนึ่ง เป็นคนฮ่องกง)นี่มันช่วยเปิดหูเปิดตาเราได้มากจริงๆ อย่างเช่นการมีอยู่ของ Getter,Setter ถ้ามันไม่มี test ที่เรียกใช้มันก็ลบทิ้งไปซะ เป็นต้น รู้สึกว่าเรานี่ยังห่างไกลกับเค้าอีกหลายล้านปีแสงเลย แต่ไม่ได้ทำให้หมดกำลังใจนะครับ กลับกันเลย เหมือนทางที่ต้องเดินต่อไปข้างหน้ามองเห็นได้ชัดขึ้นมากกว่า
แล้วก็การทำ Code review ที่แท้จริง ผมเรียกอย่างนี้ก็แล้วกันนะ เพราะที่เคยทำมามันไม่ได้เป้นแบบในชั้นเรียนเลย บรรยากาศมันผิดกัดลิบลับ ตรงนี้จะนำไปปรับใช้ในทีมแน่นอน
เรื่องเพื่อนร่วมชั้นนี่ก็เกรียนกันดีมากครับ ผมอยากจะทำ Product กับทีมนี้ต่อไปเลย แถมยังได้เป็นเพื่อนร่วมชั้นกับพี่หนุ่ม อันนี้ผมรู้สึกเป็นเกียรติมาก ปกติแล้วเคยเป็นแต่นักเรียนของพี่เขาน่ะ 555
เรื่องที่ไม่่ค่อยพอใจก็มีอยู่บ้าง เช่นการพยายามจะไม่เป็น Hero แต่ก็อดไม่ได้ อันนี้ไม่ได้อวยตัวเองนะครับ แต่ผมหมายถึงอาการแบบเห็นคนอื่นทำไม่ได้ ก็เลยเข้าไปทำเองอะไรเงี้ย บางทีก็ทำไม่ได้ ก็ติดเหมือนกันอย่างเช่นวันแรกๆที่ต้องทำ Jenkins ก็นังทำไปทั้งวัน มาวันสุดท้าย เมล์ยังส่งไม่ได้เหรอ มาผมลุยเอง แอบ Hardcode อีกตะหาก ดีนะวันสุดท้ายไม่มี code review แบบนี้น่ะครับ บางทีแอบนั่งว่างก็มี :(
แล้วก็ระหว่างทางไม่ได้เอางานให้ PO ดูเลยซักกะนิด (ไม่ค่อยจะอยู่ด้วยแหละ อันนี้ถือว่าแบ่งๆกันไปนะครับ ฮ่าๆ)
อ้อ แล้วก็การทีทีมตกลงใช้ Netbeans ด้วยครับ ที่ทีมเราตกลงใช้ Netbeans ในตอนแรกเนี่ย เพราะเชื่อว่ามันจะมี Web server อย่าง tomcat มาให้ครับ ซึ่งปรากฏว่าไม่มี สุดท้ายก็ต้องมาลงกันเองอยู่ดี เจอปัญเรื่อง Maven เรื่อ Java path/version อีกตะหาก แต่ก็ผ่านมาได้นะ ทีมเราเทพ อิอิ
มีเรื่องที่ข้ามไปอีกนะครับ เช่นเรื่องที่เรากินกันตลอดเวลา, มุขแป๊กของคุณแอร์ หรือ commit น้อยไปมั้ย ฯลฯ แต่หมดแรงแล้ว เอาเป็นว่าถ้ามีโอกาสก็ลองมาเรียนดูครับ แค่ได้มาลองทำ Practice ทั้งหลายที่อาจจะทำไม่ได้ในที่ทำงานเราก็คุ้มแล้วครับ
สวัสดีครับ -/\-
No comments:
Post a Comment