รูปภาพสินค้า รหัส9789745122864
9789745122864
-
ผู้เขียนSteve Maguire, ธานี มงคลธนานนท์
ผู้แปลมงคล, มโน มงคลธนานนท์, ธานี, มงคล

ส่วนลด 0 %
ราคาปก 230.00 บาท
ราคาสุทธิ 230.00 บาท
Bookmark and Share
รายละเอียดหนังสือ
รหัสสินค้า: 9789745122864
จำนวน: 200 หน้า
ขนาดรูปเล่ม: 170 x 240 x 13 มม.
น้ำหนัก: 430 กรัม
เนื้อในพิมพ์: ขาวดำ 
ชนิดปก: ปกอ่อน 
ชนิดกระดาษ: -ไม่ระบุ 
หน่วย: เล่ม 
สำนักพิมพ์: ซีเอ็ดยูเคชั่น, บมจ. 
พิมพ์ครั้งล่าสุด:ครั้งที่ 20 เดือน 2 ปี ----
:: เนื้อหาโดยสังเขป
หนังสือเล่มนี้เป็นหนังสือที่ออกมาคู่กับหนังสือที่ขายดีชื่อ Writing Solid Code ของ สตีฟ แมกไกวร์ ซึ่งเป็นผู้เขียนคนเดียวกัน ในหนังสือ "กรรมวิธีสร้างทีมพัฒนาโปรแกรม" เล่มนี้ แมกไกวร์ได้อธิบายสิ่งที่ขัดแย้งกันแต่ว่าเป็นการปฏิบัติที่ได้ผบอยู่เสมอที่ช่วยให้ทีมงานซอฟแวร์ที่บริษัทไมโครซอฟต์ สามารถพัฒนาซอฟต์แวร์ที่มีคุณภาพสูงออกมาได้ตามกำหนดเวลา

จากการวิจารณ์อย่างตรงไปตรงมาในหนังสือเรื่อง Writing Solid Code เมื่อเร็ว ๆ นี้ แมกไกวร์ได้พูดถึงสิ่งที่ทำไม่ได้ที่บริษัทไมโครซอฟต์และที่จะบอกคุณคือ
- วิธีการอัดฉีดพลังงานให้ทีมงานซอฟต์แวร์ทำงานอย่างได้ผล และพึงพอใจในการทำงาน
- ทำไมคุณถึงต้องการที่จะดีดโปรแกรมเมอร์ดาวเด่นให้ออกไปจากทีมของคุณ
- วิธีหลีกเลี่ยงกับดักและกระบวนการที่มีมากเกินไปในบริษัท
- สิ่งใดที่เปลี่ยนแปลงนิดหน่อยแต่ได้ผลมากมาย
- วิธีส่งของตามกำหนดดดยไม่ต้องเหนื่อยมากเกินไป
- วิธีเพิ่มค่าในสิ่งที่คุณทำทุกอย่างให้เป็นสองเท่า
- วิธีที่จะให้ทีมงานของคุณก้าวหน้าไปอย่างสร้างสรรค์
:: สารบัญ
บทนำ
ถ้าต้องการให้โครงการซอฟต์แวร์ทำได้ผลสำเร็จ สมาชิกทุกคนในทีมจะต้องเข้าใจถึงหลักการแนวทาง และยุทธวิธีต่าง ๆ อันจะเป็นผลทำให้ได้ซอฟต์แวร์ที่มีคุณภาพ ส่งได้ทันเวลา หนังสือเล่มนี้สำหรับสมาชิกในทีมทุกคน เป็นหนังสือที่ออกมาคู่กับ Writing Solid Code ซึ่งเน้นในเรื่องของ "จุดบกพร่อง" ที่ร้ายแรงที่สุดในกระบวนการของยุทธวิธีคือ มีจุดบกพร่องของซอฟต์แวร์มากเกินไป คำแนะนำในหนังสือนี้จะกล่าวโดยละเอียดถึงกรรมวิธีพัฒนา เน้นในเรื่องเทคนิคและยุทธวิธีที่ทีมซอฟแวร์สามารถนำมาใช้อย่างได้ผล หนังสือนี้บรรจุเกร็ดตัวอย่างต่าง ๆ ไว้มากมาย ส่วนใหญ่ได้มาจากประสบการณ์ที่บริษัทไมโครซอฟต์ เพื่อให้ทำตามตัวอย่างได้ง่ายขึ้น ในบทนำได้ให้รายการสรุปในการจัดองค์การโครงการพัฒนา และวิธีดำเนินการที่บริษัทไมโครซอฟต์

บทที่ 1 วางพื้นฐาน
มีหลักการสองสามอย่างที่หัวหน้าโครงการซอฟต์แวร์ที่ประสบความสำเร็จจำไว้อยู่เสมอลำดับแรกคือ ความคิดที่ว่า โปรแกรมเมอร์ควรจะทำงานที่เกี่ยวข้องกับการปรับปรุงผลิตภัณฑ์เท่านั้น ไม่ว่าจะโดยตรงหรือโดยอ้อม เป็นหน้าที่ของหัวหน้าที่จะจัดที่จัดทางสำหรับการทำงานหลักของสมาชิกคนอื่นในทีม โดยการกำจัดงานที่เข้ามาขวางทางของการพัฒนาผลิตภัณฑ์ เช่นกระตือรือร้นในการรายงานสถานะการทำงานและการประชุม หรือการพัฒนาลักษณะเฉพาะที่ไม่มีประโยชน์ต่อผลิตภัณฑ์หรือบริษัท เพื่อที่จะให้เข้าใจได้ง่ายขึ้นว่างานใดสำคัญและงานใดทำแล้วเหนื่อยเปล่า หัวหน้าควรสร้างเป้าหมายและลำดับความสำคัญของโครงการ เป้าหมายและลำดับความสำคัญยิ่งละเอียดขึ้นเท่าใด ก็ทำให้ง่ายขึ้นต่อการหาจุดที่ทำงานแล้วสูญเปล่า

บทที่ 2 เริ่มต้นอย่างมีระบบ
เป็นเรื่องมหัศจรรย์ที่ว่า นิสัยหรือกรรมวิธีการทำงานที่ไม่ค่อยเป็นสาระบางอย่างสามารถที่จะให้ผลที่แตกต่างกันอย่างมากได้ ว่ากันตามคติของหลักการทำงาน นิสัยหรือกรรมวิธีการทำงานจะให้ความพยายามในการปฏิบัติได้เพียงเล็กน้อยหรือไม่มีเลย และผลของมันจะไม่ขึ้นอยู่กับระดับความชำนาญของโปรแกรมเมอร์ที่ใช้ เพื่อแสดงถึงยุทธวิธีที่ดีที่สุดในการทำงานอย่างมีประสิทธิภาพ หัวหน้าควรตั้งคำถามในปัญหาที่พวกเขาพยายามแก้ไขให้เป็นคำถามที่สละสลวยมากขึ้น หัวหน้าไม่ควรที่จะถามว่า "เราจะทำเสร็จตามวันที่ส่งของได้อย่างไร" ซึ่งผลที่ออกมาจะได้วิธีการแก้ไขปัญหาที่ไม่ปรารถนาจำนวนมาก คำถามที่เข้าท่ากว่าคือ "เราจะทำเสร็จตามวันส่งของได้อย่างไร โดยที่ไม่ต้องจ้างคนเพิ่มขึ้นหรือบังคับให้นักพัฒนาต้องทำล่วงเวลา ?" หัวหน้าควรจะพยายามนำเอาผลที่ตอบสนองกลับมาทางลบเข้ามาใช้ในยุทธวิธีที่พวกเขาพัฒนาขึ้นมา และเมื่อพวกเขาเสนอยุทธวิธีการทำงานให้กับพวกที่เหลือ ควรที่จะเตือนใจทีมงานว่า แม้แต่ยุทธวิธีหรือแนวทางที่ดี ไม่จำเป็นว่าจะต้องได้ผลเสมอไปในทุกสถานการณ์

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

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

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

บทที่ 6 ปรับปรุงไม่หยุดยั้ง อย่างสม่ำเสมอ
หัวหน้าสามารถที่จะกรุยทางให้กับกรรมวิธีการพัฒนาใปถึงจุดที่สมาชิกทุกคนในทีม ให้ความสนใจแต่ในงานที่เป็นยุทธวิธี แต่ถ้าหัวหน้าต้องการที่จะให้โครงงการของเขาก้าวหน้าได้จริง ๆ พวกเขาจะต้องให้ความสนใจในการฝึกอบรม เพื่อว่าสมาชิกทุกคนในทีมจะได้เรียนรู้ความชำนาญใหม่ ๆ อย่างกว้างไกลและสม่ำเสมอ วิธีหนึ่งที่รับประกันว่าสมาชิกในทีมจะก้าวหน้าได้อย่างรวดเร็วคือ การทำเป้าหมายการเติบโตส่วนบุคคล ให้เคียงคู่ไปกับการทำงานเป็นขั้น ๆ ของโครงการในช่วงเวลา 2 เดือน ดังที่ได้อธิบายไว้ในบทที่ 5 ซึ่งสามารถที่จะเพิ่มความชำนาญใหม่อย่างน้อยหกอย่างแก่สมาชิกแต่ละคนใน หนึ่งปี โปรแกรมเมอร์สามารถที่จะทำและรับความชำนาญได้จากงานที่ทำตามปกติ แต่ว่าการเติบโตของพวกเขาจะช้าจากการเรียนรู้แบบนั้น โดยหลักประกันผ่านทางการมอบหมายงานและเป้าหมายให้การศึกษาที่ชัดเจนที่ให้โปรแกรมเมอร์เรียนรู้ความชำนาญใหม่ ๆ หัวหน้าจะช่วยโครงการและช่วยบริษัทได้ และทำให้โปรแกรมเมอร์เจริญก้าวหน้าในอาชีพต่อไป

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

บทที่ 8 ความรู้สึกที่ดิ่งลง ๆ
เมื่อเริ่มมีการเลื่อนหมายกำหนดการอกไป ปฏิกิริยาที่เกิดขึ้นตามปกติก็คือ การจ้างคนเพิ่มขึ้นและการบังคับให้ทีม ทำงานเกินเวลา แต่ว่าการทุ่มจำนวนโปรแกรมเมอร์เข้ามามากขึ้นในโครงการและการโหมให้ทุกคนทำงานเกินเวลานั้น เป็นการแก้ไขปัญหาต่าง ๆที่มีอยู่อย่างไม่ถูกต้อง และเป็นการทำให้โครงการต้องเลื่อนออกไปเป็นลำดับแรก ถ้าทีมต้องทำงานสัปดาห์ละ 80 ชั่วโมง เพื่อให้ได้ตามกำหนดการที่วางไว้ 40 ชั่วโมง จะต้องมีสิ่งผิดพลาดร้ายแรงบางอย่างเกิดขึ้น หัวหน้าจำเป็นต้องหาสาเหตุต่าง ๆ และ (ในบางครั้ง) หาทางป้องกันไม่ให้ฝ่ายจัดการของเขาและระดับสูงนึกเดาเกี่ยวกับผลที่ได้จากการทำงานเกินเวลา การจ้างคนเพิ่มขึ้นหรือเรียกร้องให้ทำงานเกินเวลาก็เป็นเพียงการพรางปัญหาต่าง ๆ ที่มีผลต่อโครงการ หัวหน้าจะต้องค้นหาและแก้ไขปัญหาต่าง ๆ ไม่ใช้ปิดบังไว้

บทส่งท้าย