สวัสดีครับ หายไปนานมากกับ 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 จริงๆ
Monday, 5 May 2008
มองเชิงเปรียบเทียบ: การสร้างสะพานกับการบริหารจัดการ software
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment