[ATH] Installing & Self-Management

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
อย่าไปคิดว่าตัวเอง หรือน้อง ทำไม่ได้
ค่อยๆ เพิ่มขีดจำกัด ความเสี่ยงดูครับ