08 May 2005

New Era - New Way of Work#03 - 3-Tier Organization

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

เช่นเดียวกับธุรกิจ IT ที่ตอนแรกเปิดบริษัทให้คำปรึกษาอะไรสักอย่างขึ้นมา คนเริ่มต้นก็มียอดฝีมือมาห้าหกคนที่ทำงานด้วยกันไำด้ดีมารวมกัน บริษัทก็มีงานเข้า มีกำไร แต่เมื่อบริษัทเพิ่มคนเป็นสามสิบคน กลับเริ่มทำงานลูกค้าเสีย เสียแบรนด์และขาดทุนในที่สุด

โดยทั่วไปแล้ว โมเดลในการทำงานส่วนมากแล้ว ก็จะเป็นลำดับขั้นกันไปเรื่อยๆ ยิ่งคนมาก ก็ยิ่งลำดับขั้นมาก ห้าคนเปิดบริษัท เมื่อจะขยายบริษัท ก็ยกลำดับทั้งห้าขึ้นเป็นผู้จัดการ แล้วมีคนนึงเป็นประธาน เมื่อบริษัทมีหกสิบคน ก็มีหัวหน้าฝ่ายเข้ามา มีหัวหน้ากลุ่มเพิ่มขึ้น

บริษัทขนาดไม่ถึงร้อยคน แต่มีฝ่ายบริการจัดการไปถึง 10 คน ลำดับขั้นในการบริหารไปอีกสี่ห้าขั้น การดำเนินการช้าลง การแก้ไขปัญหาช้าลง ปัญหาในการสื่อสารมากขึ้นจนควบคุมไม่ได้

ต้นเหตุของปัญหาที่แม้จริงของกรณีนี้ ผมเชื่อว่าเกิดจากโครงสร้างบริษัทนั้นไม่ได้ถูกออกแบบมาก่อนทำให้เกิดอาการ Bad Engineered แล้วต้องมานั่ง Re-Engineering กันใหม่อยู่เนืองๆ

ผมเชื่อว่าโมเดลแบบลำดับขั้นนั้นไม่เวิร์ค และจะทำลายความสามารถในการแข่งขันเมื่อบริษัทเติบโตขึ้น ในวันนี้ผมจะเสนออีกโมเดลหนึ่ง ที่นึกเอาไว้ระยะหนึ่งแล้ว

การสร้างโมเดลการบริหารในบริษัทนั้น ทางที่ดีควรสร้างไว้แต่เริ่ม เนื่องจากการปลูกโครงสร้างแบบหนึ่งไว้ จะทำให้เกิดวัฒนธรรมในองค์กรณ์ตามมาด้วย ไอ้อย่างหลังนี่ล่ะที่แก้ยากถ้าปล่อยเอาไว้นานๆ

ผมตั้งชื่อโมเดลที่ผมคิดเอาไว้คือ 3-Tier Model

แวดวงคนเขียนซอฟท์แวร์คงรู้จักกับชื่อนี้กันดีพอควร เพราะเป็นโมเดลที่ใช้กันอย่างหนักในการพัฒนาแอปพลิเคชันในปัจจุบัน คือโมเดล MVC นั่นเอง

ผมออกแบบโมเดลองค์กรณ์ในรูปแบบคล้ายๆ กันเป็นสามชั้น คือ Creative-Implement-Routine ทั้งสามชั้นนนี้จะรวมกันเป็นหน่วยย่อยโดยมีงบประมาณและอำนาจการบริหารเป็นของตัวเอง เรามาดูแต่ละชั้นกันดีกว่า

Creative
ลำดับชั้นสูงสุดในแต่ละหน่วย มีหน้าที่คิด... ความคิดคืองานหลักในชั้นนี้ ยกตัวอย่างหน่วย Development ในชั้นนี้จะเป็น Project Manager/System Anaysis หรือถ้าเป็นฝ่ายขายจะเป็น หัวหน้าฝ่ายขาย เป็นคนที่คิดว่าควรจับลูกค้ากลุ่มไหน

Implement
ลูกน้องคนข้างบน มีหน้าทีทำความคิดของคนข้างบนให้เป็นจริง เช่น โปรแกรมเมอร์ เซลล์ ฯลฯ ชั้นนี้ปรกติแล้วเป็นกำลังหลักในงานของบริษัท จำนวนคนในกลุ่มนี้อาจจะเยอะมากถึงมากที่สุดเอาทีเดียว

Routine
กลุ่มผู้เชี่ยวชาญพิเศษในการทำงานที่ต้องทำซ้ำๆกัน เช่น เขียน Document ส่งลูกค้า เขียนใบเสนอราคา ฯลฯ สารพัดที่เป็นงานซ้ำไปมา ควรจะมีคนกลุ่มหนึ่งที่ทำงานตรงนี้ได้เร็วๆ เข้ามาทำในจุดนี้เพื่อให้สองชั้นบนสามารถทำงานที่ต้องการการปรับตัวมากๆ ได้ดีขึ้น

สามชั้นนี้เมื่อมารวมกันแล้วจะได้หน่วยทำงานขึ้นเป็นหน่วยๆ โดยแต่ละหน่วยติดต่อกันผ่านเครือข่ายการสื่อสารในบริษัททั้งหมด หรือการประชุมก็จะเป็นการประชุมในหน่วยตัวเอง แต่ละกลุ่มมีสิทธิที่จะแบ่งงานในหน่วยตัวเองออกไปให้หน่วยอื่นๆ ช่วยทำ

ถัดจากชั้นการทำงานนี้ขึ้นไปแล้ว จะมีเพียงระดับบอร์ดบริหารซึ่งมีไม่กี่คนเท่านั้น โดยผู้บริหารจะมองหน่วยเป็นภาพรวมๆ ไปเท่านั้น

ความอิสระในหน่วยย่อย เปิดโอกาสให้แต่ละหน่วยมีอำนาจบริหารเต็ม หากมีความพอใจที่จะแยกบริษัท บริษัทแม่ก็ยินดีให้แยกและแบ่งงานออกไปให้เป็นครั้งคราว

ปล. เอาไว้เรื่องที่น้องจ้อนมาตอบไว้ จะมาตอบกลับวันหลังนะครับ

8 comments:

Wiennat said...

ปัญหาก็คือไม่มีใครอยากเป็น programmer ไปตลอดชาติ

ดังนั้นมันคือระบบลำดับขั้น ที่เป็นลำดับขั้นมากกว่าเดิม

ichris said...

ที่ผมเห็น ทั้ง creative ทั้ง implementer ก็อยู่ระดับเดียวกัน มีหัวหน้าคุมอีกที ซึ่งผมว่าก็มีข้อดีนะ เพราะสองกลุ่มนี้เวลาทำงานด้วยกัน มันจะมีข้อขัดแย้งตลอดเวลา ถ้ากลุ่มนึงเป็นหัวหน้าอีกกลุ่ม คงยุ่ง

ABZee said...

จอห์น ๆ ๆ ๆ

lulu said...

ตอนแรกเห็น MVC ผมเกิด idea อย่างหนึ่งขึ้นมาในสมอง แต่พออ่าน ๆ ไป ไม่ตรงกันแหะ ผมนึกว่า
1. model ทำหน้าที่เป็น core business โดยจะเป็นทีมที่ทำหน้าที่รับงานเป็น project แล้วก็หมุนเวียนไปเรื่อย ๆ พอจบ project ก็แตกตัว แล้วก็ไปรวมตัวกันรับ project ใหม่
2. view พวกนี้ทำหน้าที่ติดต่อกับลูกค้า deal กับลูกค้า พวกนี้ต้องทำงานประจำ เปลี่ยนงานไปมาไม่ได้ เพราะไม่งั้นลูกค้าจะจำหน้าไม่ได้
3. control เป็นกึ่ง ๆ executive กึ่ง ๆ manager ทำหน้าที่ route งานจาก view ออกมา แล้วไปจับพวกใน model มารวมกันเป็น team แล้วให้รับงานไปทำจนเสร็จ project แล้วก็โยนงานที่เสร็จกลับมาที่ตรงนี้เพื่อทำ qa แล้วก็โยนกลับ view เพื่อส่งมอบ

คิดไม่เหมือนกันแหะ

Lew said...

pruet: ผมมองว่าการเชื่อมต่อกับลูกค้าน่าจะทำผ่าน อีกหน่วยหนึ่ง มากกว่าที่ในแต่ละหน่วยจะมีความสามารถในการเชื่อมไปต่อไปทั่วนะครับ อย่างเช่น เราอาจมีหน่วยการตลาด ทำหน้าที่หางาน ออกมาคล้ายกับบริษัทอย่าง Loxley ที่หางานมาขายช่วงงานต่อ

wientnat: งงๆ ครับ

ichris: เรื่องนี้ก็น่าคิดจริงๆ ครับ ตอนนี้ผมที่อยู่ในระดับ Implement เวลาเห็น Bad-Design แล้วหงุดหงิดเอาเหมือนกัน ด้วยความมือไม่ถึงของระดับ Creative ทำให้งานมากขึ้นโดยไม่จำเป็น

แต่ตรงนี้ต้องขอเก็บประสบการณ์อีกหน่อยไว้ค่อยมาปรับกัน

Wiennat said...

คือ ไม่มีใครอยากเป็น programmer ไปตลอดชาติไงครับ เพราะว่า"ส่วนใหญ่" programmer จะถูกมองว่าเป็นกรรมกรITอยู่แล้ว ทำงานหนัก ผลตอบแทนต่ำ ดังนั้นจะสังเกตได้ว่าเมื่อถึงจุดๆหนึ่ง มักจะย้ายสายงานไปทางบริหารหรือวางแผนมากขึ้น

ทีนี้ 3หน่วยมันถูกแบ่งออกมาในระดับของการมองเท่านั้น แต่จริงๆแล้วมันยังเป็นลำดับขั้นกันอยู่ครับ สังเกตได้ว่า Implement ก็ยังเป็นลูกน้อง Creative อยู่ และงานของ Implement ก็ยังเป็นงานแบบกรรมกร(ผมรู้สึกแบบนั้นจริงๆนะ) ในขณะที่ Creative สบายกว่า คนจาก Implement ก็ยังอยากกระโดดจากข่ายของตัว ไปยัง Creative อยู่ดี

แบบนี้มันก็คือลำดับขั้นแหละครับ เพียงแต่มันชัดเจนขึ้นมากกว่าเดิม

แต่ถ้าเป็นแบบที่พี่iChrisบอก มันก็น่าจะดีเหมือนกันนะ

หรือว่าผมเข้าใจอะไรผิดไปอะครับ

lulu said...

lew: เออออ ผมก็หมายถึงอย่างนั้นนะครับ คือแยก view department ออกมาจัดการกับลูกค้าโดยเฉพาะนะครับ แต่ไม่ควรจะ outsource จุดนี้ออกไป เพราะจะทำให้บริษัทไม่มีฐานลูกค้าอยู่ในมือเลย

Nippon Note said...

เหมือนกับโมเดลที่ผมสัมผัส และคิดว่าแต่ละ unit ที่จะดำเนินการได้สนุกสนาน ก็จะต้องมีคนอยู่ 3 ระดับอย่างนี้แหละครับ
สมัยเข้ามาทำงานใหม่ๆ อยู่ในองค์กรที่มีคนครบทั้ง 3 ระดับ (ของผมแบ่งระดับโดยอาวุโสด้วย) ทำงานกันมันมาก มีทีมรับงาน(หัวหน้าหน่วย)ทำหน้าที่อำนวยการ ทีมคิดวางแผน (รุ่นกลาง ทำหน้าที่ดีไซน์และวางแผนสร้างงานตลอดจนประสานกับหน่วยอื่นๆ) และทีมจูเนียร์ มีหน้าที่ ทำ อย่างเดียว ทีมที่ว่านี้ทำได้ทุกงาน (ที่ผมทำงาน งานประจำคือ สอนหนังสือ ต่างคนก็ต่างทำวิชาตัวเองไป แต่งานของหน่วยงานที่ต้องทำ จะทำกันเป็นทีมอย่างนี้ครับ ในตอนนั้นผมเป็นทีมจูเนียร์ ทำงานตามสั่งอย่างเดียว แต่สนุกมาก เพราะ brainstorm กันทุกคืน เมาเพียบ แต่งานไม่เคยเสีย) แต่อีกเรื่องที่ควรคิดถึงก็คือ ทีม 3 ระดับที่ว่านี้ ควรวางเรื่องอาวุโสด้วย (แรกๆ อาจนึกว่าไม่สำคัญ แต่พออายุมากในระดับหนึ่ง คุณจะรู้ว่ามันสำคัญ)เท่าที่ผมมีประสบการณ์ ในทีมเดียวกันน่าจะ vary ด้านอายุไม่เกิน 5 ปี (8 ปี มากสุด) มากเกินไปทัศนคติต่องานจะไม่เหมือนกันโดยสิ้นเชิง (คิดกันคนละ generation) ส่วนต่างระหว่างรุ่น ก็อย่าให้เกิน 8 ปี จะดีมาก(10 ปี มากสุด)และถ้ามีตัวแปรทางอายุมากๆ ก็ต้องมีตัวเชื่อมความคิดกันด้วยถึงจะดีครับ