Values ของ Framework ต่าง ๆ

Values ของ Framework ต่าง ๆ

ผมหาคุณค่า (Values) ของผมเจอจากการสังเกตความต้องการที่มักจะมาหาผมบ่อย ๆ ทั้งตอนที่มันได้รับการตอบสนองและทำให้ผมรู้สึกดีมาก ๆ รวมถึงตอนที่มันไม่ได้รับการตอบสนองและทำให้ผมปั่นป่วนมาก ๆ

พอความต้องการไหนมาเคาะประตูใจผมบ่อย ๆ ผมก็เริ่มพิจารณาว่าความต้องการนี้แหละที่เป็น Value หนึ่งสำหรับผม เช่น ความอ่อนโยนเป็น Value หนึ่งที่สำคัญสำหรับผม

Framework ต่าง ๆ ก็มี Values ที่ Framework นั้นยึดถือ ซึ่งถ้าเราจะเลือกใช้มัน เราก็คาดหวังได้ว่ามันจะนำคุณค่าเหล่านั้นเข้ามาในบริบทการทำงานของเรา ถ้าเราไม่ชอบคุณค่าเหล่านั้น ก็ไม่ควรใช้ Framework นั้น

Scrum Values

Focus ตอนที่ทีมหยิบ item จาก Product Backlog เข้า Sprint Backlog แล้ว ทีมจะโฟกัสกับการแก้ปัญหาในรอบนี้ พฤติกรรมของทีมเหมือนม้าลำปางที่เค้าเอาฉากมากั้นข้าง ๆ ตาม้าเลย คือ ทีมแทบจะมองไม่เห็นอะไรอีกเลย นอกจากพยายามทำของใน Sprint Backlog ให้เสร็จก่อนถึง Sprint Review

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

Openness คือความโปร่งใส สกรัมอยากให้ Sprint Backlog และ Product Backlog เป็นของที่ใคร ๆ ก็เข้าถึงได้ ดูได้ เพื่อให้เกิดความโปร่งใสของทีมที่กำลังทำงานนี่แหละ

มี Daily Scrum ให้ทุกคนในทีม sync กัน ก็เป็นความโปร่งใสเหมือนกัน ถ้าใช้สกรัม คนในทีมแทบจะรู้ชัดมากเลยว่าใครทำอะไร ช่วยได้แค่ไหน เรียกว่าอู้งานได้ยากมาก เพราะมันโปร่งใสเหลือเกิน ใครเก่งอะไร อ่อนอะไร ไม่สามารถซ่อนได้เลย

Commitment คือ ถ้ารับปากแล้วก็ทำให้ได้ เพราะเหตุนี้ สกรัมถึงให้ทีมเป็นคนเลือกเองว่าจะแก้ได้กี่ปัญหาใน Sprint นี้ เพราะอยากได้คำมั่นจากทีมนี่แหละ ทีมที่เลือกเองว่าจะทำแค่ไหน พอเจออุปสรรคเค้าจะหาทางแก้ ทีมที่ไม่ได้เลือกเองจะหาคำแก้ตัว

Respect ในสกรัมคือการเคารพความเป็นมนุษย์ แต่ละคนมีบทบาทหน้าที่ต่างกัน มุมมองต่างกัน มาอยู่รวมกันต้องขัดแย้งกันอยู่แล้ว ความเคารพนี่แหละที่จะทำให้เราได้ยินกัน ความเคารพนี่แหละที่จะเป็นตัวตัดสินว่าความขัดแย้งจะนำไปสู่การเติบโตหรือความแตกแยก

Courage คือความกล้าที่จะทำตามสกรัม สิ่งเดียวที่สกรัมสัญญาคือ ไม่ว่าอนาคตจะรุ่งเรืองหรือวอดวาย เราจะเห็นมันเนิ่น ๆ ในทุก Sprint Review เลย ซึ่งบางครั้งความจริงมันสะเทือนใจมาก การเห็นปัญหาตำตาแต่แก้ไขไม่ได้ จะเพราะเหตุใดก็ตาม มันขัดกับสัญชาตญาณของมนุษย์ ทำให้หลายทีมเลือกจะบิดสกรัมไป เพื่อให้ Feedback มันไม่ชัด ไม่ทิ่มตาเท่าเดิม

Extreme Programming Values

Communication คือการสื่อสาร XP ตระหนักว่า XP เป็น framework สำหรับผู้คน การสื่อสารเป็นปัจจัยสำคัญสำหรับทั้งงานและคน การสื่อสารช่วยป้องกันการตัดสินใจผิดพลาดจากข้อมูลที่ไม่ครบในงาน และการสื่อสารช่วยสานสัมพันธ์และทำให้ทีมเป็นทีม

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

Respect หรือความเคารพ คนที่ใช้ XP ตั้งใจจะส่งมอบคุณค่าอยู่ตลอดเวลา ทำให้ release แต่ละครั้งมันเล็ก ๆ การทำแบบนี้นอกจากจะลดความเสี่ยงของ release ได้แล้ว ยังเป็นการดูแลผู้ใช้งาน ไม่ให้ได้รับผลกระทบจากความเปลี่ยนแปลงของซอฟต์แวร์มากเกินไปจนปรับตัวไม่ทันด้วย

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

Feedback จากการส่งมอบคุณค่าอยู่ตลอดเวลา XP จึงให้ความสำคัญกับ Feedback มาก คนใช้ XP เหมือนคนที่กำลังขับรถไปในที่ที่ไม่เคยไปมาก่อน จึงเช็กแมพและอาศัย Feedback ในการนำทางตลอดเวลา

มีตั้งแต่ Feedback ที่ได้จากการลองทำมันแล้วดูเอง Feedback ที่ได้จากเพื่อนร่วมทีม หรือ Feedback ที่ได้จากคนอื่น

Courage คือความกล้า สำหรับ XP Courage หมายถึงการลำเอียงเข้าข้างการกระทำ ถ้าเห็นปัญหา ก็ลองทำอะไรสักอย่างกับมัน แทนที่จะวิเคราะห์หรือบ่นเฉย ๆ ไม่ต้องแก้ทั้งหมดก็ได้ ทำให้มันดีขึ้นกว่าเดิมนิดหนึ่งก็พอแล้ว

ความกล้าเป็นเหรียญด้านตรงข้ามของการวิเคราะห์ ถ้าเสี่ยงลองทำก็จะได้เรียนรู้ ถ้าวิเคราะห์ก็ได้ความปลอดภัยจากความระแวดระวัง คุณค่าเรื่องความกล้านี้ทำให้ XP เอียงไปทางการกระทำมากกว่ายึดมั่นกับความปลอดภัย

Large-Scale Scrum Values

LeSS ไม่มี Values มีแต่ optimization goal เพียงหนึ่งเดียว คือ อยากให้ค่าใช้จ่ายในการปรับเปลี่ยนทิศทางขององค์กรต่ำที่สุด

Values เป็นเหมือนดาวเหนือที่บ่งบอกว่า Framework ที่เราเลือกใช้กำลังมุ่งไปหาอะไร สิ่งนี้สำคัญ เพราะเวลาเราเลือกใช้ Framework จะได้รู้ว่ามันกำลังนำทางองค์กรของเราไปในทิศทางไหน และถูกใจเราไหม

Read more

Accepted Responsibility

Accepted Responsibility

ช่วงนี้ผมกำลังอ่านหนังสือ Extreme Programming Explained ของ Kent Beck แล้วก็ได้เจอหัวข้อหนึ่งที่กระทบใจ คือ principle ที่เรียกว่า Accepted Responsibility Principle คืออะไร? ในหนังสืออธิบายว่า Principle คือหลักการที่ทำให้ Values ของ XP กลายเป็น Practices ได้

By Chokchai Phatharamalai
The Five Ideals

The Five Ideals

จากหนังสือ The Unicorn Project ในนั้นจะมีที่ปรึกษาเก่ง ๆ คนหนึ่งชื่อ Erik เป็นเหมือนเซ็นเซหาตัวยาก เดี๋ยวก็มา เดี๋ยวก็ไป ถ้าโชคดีก็จะเจอเค้าว่าง แล้วเค้าก็จะสอนอะไรที่สำคัญ ๆ แต่ฟังดูล้ำ ๆ และลึกซึ้ง

By Chokchai Phatharamalai
Communication, Reliability and Modern concepts - System Design, Simply Explained

Communication, Reliability and Modern concepts - System Design, Simply Explained

บทความนี้จะอธิบายพื้นฐานของ System Design โดยต่อยอดจากตัวอย่าง Gym Application เพื่อให้เห็นภาพว่า เมื่อระบบเริ่มเติบโตและถูกแยกออกเป็นหลาย Service แต่ละ Service จะสื่อสารและทำงานร่วมกันอย่างไร งานแบบไหนควรสื่อสารแบบ Synchronous งานแบบไหนควรประมวลผลแบบ Asynchronous รวมถึงอธิบาย Concept พื้นฐานต่าง ๆ ที่ควรรู้ เช่น API

By Boonsong Srithong
Race condition

Race condition

ผมกำลังอ่านหนังสือ The Unicorn Project ซึ่งเป็นนิยายเกี่ยวกับ developer สาวคนหนึ่งที่ใช้ชีวิตในองค์กรท่ามกลางกระแส digital disruption อ่านแล้วสนุกมาก เป็นเรื่องที่ตื่นเต้น และหลาย ๆ dynamic ที่เกิดขึ้นก็คล้ายกับที่ผมพบเจอในบริษัทซอฟต์แวร์ เลยทำให้

By Chokchai Phatharamalai