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


Discover more from naiwaen@DebuggingSoft

Subscribe to get the latest posts to your email.