Monday 5 May 2008

มองเชิงเปรียบเทียบ: การสร้างสะพานกับการบริหารจัดการ software

สวัสดีครับ​​ ​​หายไปนานมาก​​​กับ​​ blog ​​นี้​​​เหตุ​​​เพราะต้อง​​​ไปทำงานที่​​ไซต์ลูกค้าครับ​​​กับ​​​คุณ​​ Mr.Invert Prahs (ชื่อนี้มันพิมพ์ยากพิลึก​​​เพราะ​​​ผม​​​ต้อง​​​คิดมุมกลับทุกครั้งที่พิมพ์ชื่อนี้​​ 555) ​​ช่วงแรกก็ชิว ๆ​​ ​​แต่หลัง ๆ​​ ​​ระทึกครับ​​ ​​เปลี่ยน​​ requirement ​​กัน​​​แทบวันต่อวัน​​ ​​เอา​​​เป็น​​​ว่า​​​ไม่​​​พูดเรื่องงานดีกว่า​​​ เดี๋ยวคนที่​​​โน้นแอบ​​​เข้า​​​มาอ่าน​​ 555 ​​แต่สิ่งที่​​​ได้​​​เป็น​​​ประสบการณ์ต่าง ๆ​​ ​​ที่มีค่า​​​เป็น​​​การเปิดมุมมอง​​​อื่นๆ​​ ​ด้วย​​​ครับ​​

​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ช่วงนี้กำ​ลังเปิดภาคเรียน "ป.โท" พอดี​ ​เลยคิดว่าอยากมา​แชร์อะ​ไรที่​อยู่​ใน​ห้องเรียนซักหน่อยหวังว่า​จะ​ไม่​เบื่อ​กัน​นะครับ​ ​เรา​จึง​จะ​เปิดตัว​ tag ​ใหม่​กัน​ด้วย​ [​lecture notes]​ ​ทักทาย​​​กัน​​​เล็ก​​​น้อยพอประมาณนะครับ​เข้า​เรื่อง​กัน​เลย

​​​​​​​​​​​​​​บท​ความ​แรกหลัง​จาก​หายไปนานผม​จะ​เขียนเรื่อง​ ​การบริหารจัดการ​ software ​ก็​เหมือน​กับ​การสร้างสะพาน
บางทีการพัฒนา​ software ​ก็​เหมือน​กับ​การที่​เรา​จะ​ต้อง​สร้างสะพานขึ้นมา​ ​เหมือนตรงที่​เรา​ไม่​รู้หรอกว่าข้างหน้า​จะ​ต้อง​เจอ​กับ​อะ​ไรบ้าง​ ​โดย​อาจารย์​จะ​มีกฏ​ให้​ดังนี้
​​​​​​​- ให้จับกลุ่ม กลุ่มละ 5 คนสุ่มจับ
- ​ให้​ 1 ​คน​เป็น​ลูกค้า​ ​โดย​เลือก​จาก​คนที่มีประสบการณ์การทำ​งานเยอะสุด​ ​(​จะ​คอยถาม​ถึง​ความ​คืบหน้า​เรื่อยๆ และตรวจสอบคุณภาพของงานที่ทำออกมา​)
- ​ให้​ 1 ​คน​ใน​กลุ่ม​เป็น​ PM ​เพื่อไปสรุปหน้าชั้น​ ​(​แล้ว​สุดท้ายลูกค้า​จะ​ไปสรุปปิดท้ายอีกที)
- model ​กระดาษที่​ใช้​ประกอบ​กัน​เป็น​สะพานที่​ยัง​ไม่​ตัด​ 4-5 ​แผ่น​
- ​กรรไกร​ ​และ​กาว​ ​อย่างละ​ 1 ​ต่อ​ 1 ​กลุ่ม
- ​ให้​แต่ละกลุ่มประ​เมินเวลาที่​จะ​ทำ​เสร็จ

จาก​นั้น​ก็ลงมือทำ​ครับ​ ​ถ้า​มองอย่าง​ไม่​คิดอะ​ไรนี่ก็​เกมส์ต่อโมเดลกระดาษสะพานสนุก ๆ​ ​อันนึงนี่​เอง​ ​แต่บรรยากาศทำ​ให้​ผม​ต้อง​คิดเปรียบเทียบ​ถึง​ขั้นตอนการพัฒนา​ software ​ตลอด​ ​และ​คิดเตรียมคำ​ตอบ​ให้​กับ​ user ​ตลอดเวลา​ ​แต่ละคนมีการแบ่งหน้าที่​กัน​อย่างชัดเจน​ ​แล้ว​ระหว่างที่​เริ่มลงมือทำ​ก็มีการสับคน​ใน​กลุ่มที่​ไม่​ใช่​ PM ​ออกไปแลกเปลี่ยน​กับ​อีกกลุ่มนึง​ ​(​ใน​กรณีสร้างสะพานนี้งาน​ไม่​ซับซ้อนมาก​จึง​สามารถ​เริ่มงานต่อ​จาก​คนก่อน​ได้​เลย​ ​แต่​ถ้า​งานซับซ้อนมากคง​ต้อง​เสียเวลา​ train ​งาน​กัน​อีกเยอะ) ​เวลาที่ทีมเราประ​เมิน​ไว้​คือ​ 20 ​นาที​ ​เพราะ​เราประ​เมิน​กัน​เอา​ไว้​ว่าช่วงเวลาตัดกระดาษ​ไม่​นาน​เท่า​ไหร่​ ​ที่นานคือตอนประกอบรวมคร่าวๆ​น่า​จะ​ซัก​ 10 ​นาที​ ​แต่​เรากำ​หนดเวลา​เกิน​ไว้​เล็ก​น้อย​เป็น​ 20 ​นาที​ ...

​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​แต่พอทำเข้าจริงๆปรากฏว่าใช้เวลาไปถึง 32 นาที เพราะเวลาที่เสียไปนานที่จริงคือช่วงรอกาวแห้ง เพราะตอนที่ประกอบกันนั้น กระดาษที่ต่อไม่สามารถประกบกันกับอีกฝั่งได้พอดีมีความคลาดเคลื่อนกันเล็กน้อย ทำให้โครงสร้างยังอ่อนแออยู่จึงต้องค่อย ๆ ปรับกันทีละบล็อก (ซึ่งตอนที่ประเมินไม่ได้มองถึงจุดนี้อย่างละเอียดถี่ถ้วนดีนัก) จากนั้นได้มีการเสริมความแข็งแรงของสะพาน ก็เพิ่มกระดาษแผ่นยาวมาแปะกาวข้างใต้เพื่อยึดติดบล็อกทั้งหมดเข้าด้วยกัน (ส่วนนี้แก้ปัญหาเฉพาะหน้า) ระหว่างการสร้างสะพานคนที่ทำหน้าที่แต่ละส่วนจะทำงานในส่วนของตัวเองเร็วขึ้นด้วย (ความชำนาญมากขึ้น) และสิ่งที่ขาดไม่ได้คือความเป็นทีม ทำให้สะพานออกมาเสร็จสมบูรณ์ ^^ หลังจากทำเสร็จเรียบร้อยมีการทดสอบความแข็งแรงของสะพานกันเล็กน้อย - -'

จากการทำในครั้งนี้เสมือนจับโปรเจคกันจริงๆ เริ่มกันตั้งแต่ มีการรับ requirement ลูกค้า, ตั้งทีม, แบ่งความรับผิดชอบกันในแต่ละส่วน, วิเคราะห์ว่าจะทำอย่างไรถึงออกมาเร็วและถูกต้องตามที่ลูกค้าต้องการ, ลงมือพัฒนา, แก้ไขปัญหาเฉพาะหน้า, มีการ track งานตลอด, ทดสอบ, ตรวจคุณภาพของงาน, ส่งมอบ

สรุปหลัง​จาก​บทเรียนนี้
- ​การทำ​งานเราควรมีการแบ่งหน้าที่​กัน​อย่างชัดเจน​ ​เลือกคน​ให้​ถูกงาน​ด้วย
- ​ทีม​เป็น​สิ่งสำ​คัญที่สุด​ ​ฟัง​ความ​คิดเห็น​ใน​ทีม​ ​และ​ช่วย​กัน​อย่างเต็มที่​ (อย่าอู้งาน​ ​เดี๋ยวโดนแบน)
- ​เมื่อมีปัญหาที่​เกิดขึ้นเฉพาะหน้าขึ้น​ ​ต้อง​ใจเย็น​และ​มีสติ
​​​​​​​​​​​​​​​​​​​​​​​​​​​​​- การทำในแต่ละส่วนเราควรตั้งใจและทำมันให้ดีที่สุด เพราะองค์ประกอบต่างๆล้วนแต่มีความสำคัญด้วยกันทั้งสิ้น และบางครั้งมันไม่มีโอกาสทำครั้งที่ 2 (เช่นตอนตัดกระดาษตัดพลาดไม่ได้เพราะไม่มีสำรอง)
- ​พยายามคิด​ถึง​เหตุการณ์ต่างๆ​ ​ที่มี​โอกาสเกิดขึ้น​ให้​มากที่สุด​ ​และ​เตรียมพร้อมรับ​กับ​เหตุการณ์ข้างหน้า​นั้น (อ่านเกมส์ให้ออก)
​​​​- ควรมีแผนสำรอง 1, 2, 3
​​- เข้าใจเรื่องการต่อโมเดลสะพานมากขึ้นเยอะ
​​​​​​​- ก่อนออกไปพูดสรุปหน้าชั้นเราควร list เฉพาะหัวข้อที่เป็น key จริงๆ

No comments: