Blog ตอนนี้ผมแตกมาจาก สรุปงาน Agile Thailand 2016 ครับ จะได้ไม่อ่านกันยาก บทความได้ไม่ยาวเกินไปและเฉพาะเรื่องด้วย เข้าเรื่องเลยดีกว่าครับ หัวข้อ Installing & Self-Management โดยคุณ Verokas ได้เสนอประเด็นที่ว่าปัจจุบันการทำงานในชีวิตจริง การจัดงานโครงการต่างๆ มันขึ้นอยู่กับ Project Manager คนเดียว ที่มีคนอำนาจสั่งการ จัดการ ตัดสินใจ บางครั้ง ปัญหาบางเรื่องมันคอขวดที่ PM คนเดียวครับ (Centralization) มาเป็นการกระจายอำนาจ การจัดการต่างๆ (Decentralization) ลงไปเป็นลำดับชั้นไปรากหญ้าครับ
แล้วรากหญ้า คือ ใคร เป็น Manager, Senior Dev หรือป่าว ? ไม่ใช่ครับ พยายามกระจายให้ลงไปยังรากหญ้าจริงๆ คือ พวก Junior ทั้งหลายครับ ไม่ว่าเป็น DEV, QA ฯลฯ แต่การกระจายงานลงไปได้ เราต้องทำการ Distributed management skills ครับ ฝึกก่อนครับ
People vs Technical
❤️ People - บริหารคน กระจายงาน
🖥️ Technical - ดูงานด้านเทคนิคแทน ไม่ว่าจะ IT หรือ Business
People vs Technical เป็นงานที่ Manager อยู่ครับ หลายคนเห็นว่า Manager ทำงานดึก เดินไป เดินมา แต่ไม่รู้เนื้องานว่าทำอะไร เวลาที่หมดไป หมดไปกับการบริหาร การตามงาน
⏱️Time Management จัดการเวลา จัดการง่ายๆ ลำดับความสำคัญครับ (Prioritization)
- Always more work than time - งานมันเยอะกว่าเวลา ดีแล้วครับ อย่างน้อย บริษัทยังมีงานทำ ไม่ได้เจ๊ง !!!
- Busy != Productive don't use time to fix problem - อย่าเสียเวลากับปัญหามาเกินไป ควรกำหนด Limit ของเวลาในการแก้ปัญหา ถ้าไม่ได้ถาม Senior หาคนช่วยครับ เวลาเป็นเงินเป็นทอง ย้อนกลับ ไม่ได้
⛔Say no offer alternatives
- ปฏิเสธ ถ้ามันเป็นไปไม่ได้ อย่าเอาเวลาไปอื่นไปทุ่ม แต่ให้ทางเลือกอื่นมาครับ ตัวอย่าง ให้ทำเว็บ Amazon 1 สัปดาห์ ซึ่งความจริง มันทำไม่ได้ แต่ถ้าบอกว่าไม่ได้ไป เราเสียลูกค้า แต่ให้ทางเลือกแทน เช่น ให้ดู Prototype ก่อน
🚞Goal Setting (Concept ดูคล้ายกับ TDD นะ)
- Expect not well defined work - ชีวิตจริง งานที่ได้มันไม่ได้มีวิธีการแก้ปัญหาเหมือนกับตอนเรียน มันจะมาในแบบ Abstract นึกถึง Requirement มามืนๆตลอดครับ พยายามให้ Junior แก้บ้าง
- ไม่เข้าใจ ถาม Ask - ถามเพื่อทดสอบว่าเราเข้าใจงานที่ทำจริงๆ
- Constantly verifying - ยืนยันว่่าทำได้จริง เข้าใจตรงกัน
🚩Solve problem
- Generate Solution - Effective Brainstrom & Meeting เสนอวิธีให้ทุกคนมาช่วยกันคิด โดย Manage เริ่มนำก่อน แล้วครั้งหลังๆให้ Junior ออกมาแสดง Idea ครับ
- Decide what to do - Group Decisions 10 minute rule พยายามให้มีการหยุดระหว่าง 10 นาที เพื่อไม่ให้มันออกทะเล กินเวลายาวเกินไป ให้คิดสักนิดก่อนครับ
🗳️Manage Process
- Look what is wrong - Retrospective มาประชุมสรุปครับ Manage ต้องดูด้วยนะ โดยใช้โมเดล Good | Bad |Try หรือวิธีอื่นๆก็ได้
- Improve Process - Fix it ปรับแก้ให้มันดีขึ้น
🤓Hiring
- Best talent - ทักษะตรงความต้องการ
- Verify Team Compatibility เข้ากับทีม ดูการจัดการปัญหา และเอาคนที่ทำงาน หรืออยู่กับสมาชิกใหม่มาเข้าร่วมสัมภาษณ์ด้วย
📍Tracking
- Responsibiliy and Authority ให้มากไป หรือน้อยไป เมื่อเทียบกับเวลา แต่ต้อง Balance ให้ดี ในการมอบหมายงานและอำนาจ ในการจัดการ กับ Junior เช่น หาร้านอาหารกลางวัน กินอะไรให้เลือกเลย จากนั้น
- ค่อยๆ เพิ่ม เมื่อสำเร็จ
- ค่อยๆ ลด เมื่อไม่ Work
- ลองดู Keyword มาด้วย ประมาน Decentralization(ซ้าย) กับ Centralization(ขวา)
- Monitoring ดีกว่า Approve
- Coaching ดีกว่า Command
- Learning ดีกว่า Blaming
- Example ดีกว่า Abstract
📖 Pitfall - CAP Theorem
- Centralize มี Consistency ดี ขาด Availability พวก MS SQL Database ถ้าบึ้มไปก็จบ
- Decentralize Availability ดี ขาด Consistency พวก Cassandra DB ถ้ามี Node ไหนบึ้มไป ยังมี Node อื่นทำงานแทน
You are limited by what you think you can do
อย่าไปคิดว่าตัวเอง หรือน้อง ทำไม่ได้
ค่อยๆ เพิ่มขีดจำกัด ความเสี่ยงดูครับ



