Agile : 5 เรื่องพื้นฐานในการทำงานร่วมกัน

คำหนึ่งที่เรามักจะได้ยินอยู่เสมอ ในการเรียนรู้เกี่ยวกับกระบวนการในการพัฒนา Software ในรูปแบบ Agile คือ Learn Agile to be Agile not to do Agile. จะเห็นได้ว่าเขาให้ความสำคัญกับการ "เป็น Agile" มากกว่าการทำ "ทำ Agile" ซึ่งพูดอีกนัยหนึ่งก็คือการเข้าใจถึงคุณค่าและหลักการ และสามารถนำไปใช้ในการทำงานจริงได้มีความสำคัญกว่าวิธีการ

ในทางปฏิบัติ เรามีวิธีการให้เลือกหลากหลายในการนำเอา Agile ไปใช้ แม้นว่าจะใช้วิธีการเดียวกัน แต่ก็ล้วนผ่านการประยุกค์ให้เข้ากับ วัฒนธรรม หรือ สภาพแวดล้อมภายในของแต่ละองค์กร ดังนั้นวิธีการเดียวกัน ก็ใช่จะเหมือนกันซะหมด แต่ไม่ว่าวิธีไหน ก็ล้วนแล้วแต่ยืนอยู่บนพื้นฐานและหลักการเดียวกัน

Communication

Agile Manifesto ทุกข้อ ล้วนแล้วแต่เกี่ยวข้องกับการสื่อสาร ที่แตกต่างกันคือ บริบท หรือรูปแบบในการสื่อสารเท่านั้น

  • "Individuals and interactions over processes and tools" มนุษณ์เราไม่อาจจะมีปฏิสัมพันธ์ดีกับบุคคลรอบข้าง หรือสังคมได้โดยปราศจากการสื่อสารที่ดีและมีประสิทธิภาพ
  • "Working software over comprehensive documentation" การที่เราจะพัฒนา Software ที่ใช้งานได้จริงนั้นจะไม่สามารถเกิดขึ้นมาได้หากการสื่อสารของผู้ที่เกี่ยวข้องทั้งหมดขาดประสิทธิภาพ นอกจากการสื่อสารระหว่างมนุษณ์แล้วยังครอบคลุมไปถึงการสื่อสารระหว่างตัว Software กับผู้สร้างและผู้ใช้งาน ผ่านการบวนการในการออกแบบ พัฒนา ทดสอบ ทดลอง ตลอดจนถึงการสร้างความน่าเชื่อถือให้กับผู้ใช้งานด้วย
  • "Customer collaboration over contract negotiation" การมีส่วนร่วนในกระบวนการพัฒนา Software ของลูกค้าหรือผู้ที่เกี่ยวข้อง ถือเป็นตัวอย่างที่เห็นได้อย่างชัดเจนของความสำคัญของการสื่อสาร การที่ลูกค้าหรือผู้ที่เกี่ยวข้องจะเข้าใจ, มองเห็นข้อดี และประโยชน์ของการมีส่วนร่วมในกระบวนการพัฒนาได้ และยินยอมที่จะเข้าร่วมเป็นส่วนหนึ่งในกระบวนนั้น จะไม่สามารถเกิดขึ้นหากปราศจากการสื่อสารที่มีประสิทธิภาพ
  • "Responding to change over following a plan" มันยากที่จะจินตนาการถึงการตอบสนองต่อการเปลี่ยนแปลงได้อย่างรวดเร็วและทันท่วงทีได้อย่างไร หากปราศจากการสื่อสารที่ดีของผู้ที่เกี่ยวข้องทัังหมด

Collaboration

การมีส่วนร่วมถือเป็นผลลัพท์ประการหนึ่งของการสื่อสาร การมีส่วนร่วมจะไม่เกิดขึ้นอย่างแน่นอน หากปราศจากการสื่อสารมีประสิทธิภาพ ในการทำงานเป็นทีม หลายครั้ง หลายคน มักจะสับสนว่าตัวเองอยู่ในสถานะไหนระหว่าง Collaboration กับ Co-operation

To “co-operate” literally means to operate together, to function in conjunction with, which can occur with limited interaction. Individuals can have their own work assignments, work to get them done, and be willing
to help out others when they can. But they can essentially focus on what
they feel they must accomplish individually, expecting others to do the
same. People can cooperate without assuming any responsibility for any
work other than their own.
To “col-laborate” literally means to work together. It involves deliberately
sharing work, and responsibility for the work, involved in getting something done. This means structuring tasks so people work closely with one another to accomplish planning, estimation, commitment, development,
and testing. It also means communication must be more direct and frequent, which cooperation doesn’t necessarily demand.

จากความหมายที่ให้มา จะเห็นว่า Collaboration เป็นเรื่องที่เกี่ยวข้องโดยตรงกับ Agile Manifesto ข้อที่หนึ่ง คือ Individual Interactions และข้อสามคือ Customer Collaboration ส่วนข้อสองกับข้อสี่แม้จะไม่เกี่ยวข้องโดยตรง แต่ก็ไม่อาจจะบรรลุได้หากปราศจากพื้นฐานในข้อนี้

Commitment

การจะปรับปรุงพื้นฐานด้าน Communication และ Collaboration ให้ดีขึ้น จำเป็นต้องมีผู้ที่มีความมุ่งมั่นพยายามในการเผลักดันให้เกิดการปลี่ยนแปลงปรับปรุงอย่างแท้จริง เมื่อความพยายามส่งผลที่ชัดเจน ย่อมง่ายที่จะได้รับการยอมรับ Commitment เป็นสิ่งที่เราไม่สามารถกำหนดหรือบังคับให้เกิดขึ้นใด้ ต้องเกิดจากแรงผลักดันภายในของแต่ละคน และแรงกระตุ้นของเพื่อนร่วมทีม

Continuous Improvement

สิ่งที่สำคัญที่สุดในความเป็น Agile คือการปรับปรุงแก้ไขและพัฒนาอย่างต่อเนื่อง ในโลกของการทำงานเป็นทีมแล้ว ไม่มีคำว่า Perfect หรือสมบูรณ์แบบร้อยเปอร์เซนต์ ต้องมีการปรับปรุงเปลี่ยนแปลงเพื่อให้ทุกคนทำงานร่วมกันอย่างมีประสิทธิภาพอยู่อย่างสม่ำเสมอ และการเปลี่ยนแปลงก็ไม่จำเป็นต้องใหญ่โตแบบพลิกฟ้า คว่ำดิน หากแต่เริ่มจากจุดเล็ก ๆ ค่อยเป็นค่อยไป ไม่ว่าจะเล็กน้อยแค่ไหนก็ล้วนมีความหมาย เพราะอย่างน้อยก็ถือว่ามีความก้าวหน้า ย่อมดีกว่าย่ำอยู่ที่เดิม

Trust

มีคนกล่าวไว้ว่า "Trust is earned in pennies and lost in dollars." การได้มาก็แสนจะยากและการรักษาไว้ก็ยากเย็นไม่ด้อยไปกว่ากัน ไม่มีอะไรในโลกนี้ที่จะทำลายความเป็นทีมได้ดีเท่ากับการที่คนในทีมไม่ไว้วางใจ และเชื่อถือซึ่งกันและกัน. ปราศจากความไว้เนื้อเชื่อใจการสื่อสารและความร่วมมือก็ยากที่จะก่อกำเนิด กับ Commitment และ Continuous Improvement ก็ยิ่งไม่ต้องกล่าวถึง ความเชื่อถือย่อมไมอาจก่อกำเนิดได้ด้วยตนเอง หากแต่เกิดจากการสร้างและพัฒนาขึ้นมา ดังนั้นจงหมั่นเรียนรู้ เพราะมีเพียงความรู้เท่านั้น ที่จะทำให้คุณมีความน่าเชื่อถือ


นี่คือพื้นฐาน 5 เรื่องที่จะทำให้ทีมคงความเป็น Agile ไว้โดนตลอดรอดฝั่ง

ข้อมูลอ้างอิง

Understanding Agile Values & Principles. An Examination of the Agile Manifesto