มาตรฐานและการปรับปรุงกระบวนการควรนำมาใช้กับองค์กรที่ไม่มีพวกเขาอย่างไร


10

ฉันได้รับมอบหมายให้ปรับปรุงกระบวนการพัฒนาซอฟต์แวร์ผ่านการดำเนินการปรับปรุงกระบวนการซึ่งส่วนใหญ่เราจะใช้CMMI เพื่อการพัฒนาเวอร์ชัน 1.3เป็นแนวทางและนำแนวทางปฏิบัติที่ดีที่สุดมาใช้ทั้งหมดหรือบางส่วน อะไรคือวิธีที่ดีที่สุดในการแนะนำมาตรฐานและการปรับปรุงกระบวนการเพื่อให้ระดับการผลักกลับและการต่อต้านจากนักพัฒนาลดลง?


แค่อยากรู้อยากเห็นคุณมีความคิดใด ๆ อยู่แล้วว่าทำไมจึงมีข้อบกพร่องมากกว่านี้ที่ต้องการ?
Chris Pitman

2
@ S.Lott คุณสามารถสร้างกรณีสำหรับข้อบกพร่องที่ไม่ได้ลดลง (ในด้านผู้บริโภค) โดยไม่มีมาตรฐานได้หรือไม่? ประสบการณ์ของฉันกระบวนการและมาตรฐานช่วยลดสิ่งที่ผู้บริโภคเห็นเกี่ยวกับข้อบกพร่องอย่างมาก ... ไม่ใช่ว่าพวกเขาไม่มีตัวตนพวกเขาไม่เคยเห็นจากลูกค้า
Rig

@RobZ: ฉันไม่ได้ถามสิ่งที่คุณมีในขณะนี้ ฉันยังคงพยายามที่จะเข้าใจคำถาม "การปรับปรุงกระบวนการดำเนินการ" ดูเหมือนจะเป็นคำอธิบายที่ถูกต้องที่สุดในสิ่งที่คุณถาม ฉันขอแนะนำว่า "มาตรฐาน" เป็นคำที่สับสนเนื่องจากมีคำจำกัดความเป็นทางการและคุณไม่ได้ใช้คำนิยามที่เป็นทางการนั้น
S.Lott

@Robz: "มาตรฐานการเข้ารหัส" ไม่ใช่ "มาตรฐานที่เป็นทางการ" ที่จะชี้แจงคำถาม อีกครั้ง "มาตรฐานที่เป็นทางการ" คือ W3C, Posix, ISO, IEEE, ANSI มาตรฐาน ร่างและอนุมัติโดยองค์กรการตั้งค่าที่ได้รับการยอมรับ หากคุณกำลังพูดถึงมาตรฐานการเข้ารหัสโปรดอัปเดตคำถามเพื่อลบคำว่า "เป็นทางการ" และใช้คำว่า "การเข้ารหัส" ด้วยการเปลี่ยนคำถามของคุณที่เหมาะสม และซ้ำซ้อน
S.Lott

"ในส่วนที่เกี่ยวกับคำว่า" มาตรฐาน "ในชื่อร่วมกับการปรับปรุงกระบวนการมาตรฐานของคำไม่เพียงแค่ใช้กับรหัสที่มีคนเขียน"? อะไร? นี่คือคำใบ้ โปรดอย่าใช้คำว่า "มาตรฐาน" หากไม่มีตัวระบุบางอย่าง มันสับสน หากคุณหมายถึง "มาตรฐานการเข้ารหัส" โปรดใช้วลีนั้น หากคุณหมายถึง "มาตรฐาน" ประเภทอื่นโปรดระบุคำว่า "มาตรฐาน" ด้วยวลีที่มีคุณสมบัติเพื่ออธิบายสิ่งที่คุณกำลังพูดถึง "มาตรฐาน" นั้นคลุมเครือและสับสน
S.Lott

คำตอบ:


2
  1. เริ่มต้นการปรับปรุงกระบวนการซอฟต์แวร์ (SPI) โครงการ กำหนดขอบเขตและเป้าหมาย มันจะช่วยได้อย่างแน่นอนหากมาตรฐานมีเป้าหมายและการวัดที่ใช้กับองค์กรของคุณ
  2. คนกำหนดความรับผิดชอบสำหรับการใช้มาตรฐาน มันอาจจะเป็นคนหลายคนหรือแม้กระทั่งแผนกในกรณีขององค์กรขนาดใหญ่ สิ่งสำคัญคือทุกคนที่รับผิดชอบมาตรฐานจะเป็น:
    • มืออาชีพพอที่จะเห็นภาพรวมทั้งหมด
    • มีอิทธิพลมากพอที่จะจัดการกับทีมและช่วยให้พวกเขายอมรับ / เจรจาการเปลี่ยนแปลง
  3. พัฒนาการฝึกอบรมที่ครอบคลุมทั้งมาตรฐานที่คุณต้องการนำมาใช้และข้อกำหนดเฉพาะที่ใช้กับองค์กรของคุณ และที่สำคัญจริง ๆ ตราบใดที่ทุกคนที่ไม่ได้รับการฝึกอบรมอาจต้านทานต่อการเปลี่ยนแปลง ตัวอย่างเช่นเมื่อฉันทำงานใน บริษัท ขนาดใหญ่ฉันสั่งพนักงานใหม่ทุกคนเกี่ยวกับกระบวนการ QA, CMMI, ISO และระบบการจัดการคุณภาพ การฝึกอบรมดังกล่าวเป็นข้อบังคับ ช่วยปรับปรุงความรู้เกี่ยวกับกระบวนการจัดการคุณภาพและสร้างความตระหนักของพนักงานเกี่ยวกับปัญหาที่สำคัญของคุณภาพซอฟต์แวร์
  4. เจรจาต่อรองการเปลี่ยนแปลงและปรับแต่งวิธีปฏิบัติที่ยอมรับโดยทั่วไปสำหรับความต้องการเฉพาะของคุณ มันจะช่วยหลีกเลี่ยงระบบราชการและการดำเนินการตามกระบวนการที่มีน้ำหนักมากไม่มีใครต้องการจริงๆ
  5. สร้างการตรวจสอบว่ามีการสนับสนุนการปรับปรุงกระบวนการที่นำไปปฏิบัติอย่างไรและมีประสิทธิภาพเพียงพอในองค์กรของคุณหรือไม่

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


6

สองสามความคิดจากโรงเรียนของการเคาะอย่างหนัก:

1) โครงการปรับปรุงกระบวนการส่วนใหญ่ใช้เวลา 80% ในการออกแบบกระบวนการและ 20% สำหรับการศึกษาและการขัดเกลาทางสังคม พลิกเปอร์เซ็นต์เหล่านี้ มาตรฐานปานกลางที่ตามมาจะเป็นสิ่งที่สมบูรณ์แบบที่ไม่ใช่

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

3) ลดความซับซ้อนแล้วสร้างมาตรฐานไม่ใช่วิธีอื่น ๆ

4) คุณไม่สามารถมอบสิทธิ์นี้ให้กับสำนักงานปลัดฯ ได้อย่างสมบูรณ์ ผู้จัดการโดยตรงจะต้องซื้อในและหัวหน้าหน่วยธุรกิจจะต้องทำลายความสัมพันธ์เมื่อมีการร้องเรียนเข้ามา

5) ค้นหาผู้รับช่วงแรกที่เป็นมิตร ผู้คนจะบ่นว่าต้องใช้เวลาเท่าไร คุณต้องการใครสักคนที่คุณสามารถชี้และพูดว่า "ใช้เวลา 15 นาทีเท่านั้น"

6) สำหรับตัวชี้วัดให้ผลักดันอย่างหนักสำหรับเชิงปริมาณ มิฉะนั้นคุณจะมีโครงการที่เป็นสีเขียวจนกระทั่งวันก่อน Go Live เมื่อทุกอย่างหลุดไปหนึ่งเดือน

7) เน้นเทคนิคมากกว่าเครื่องมือ การวางแผนที่ดีนั้นสำคัญกว่า MS Project

8) ใส่ระดับของกระบวนการที่สัมพันธ์กับความต้องการ ร้านอาหารทุกแห่งต้องการกระบวนการ แต่ Nobu และ French Laundry ต้องการอาหารที่แตกต่างจาก McDonalds เช่นเดียวกันกับ บริษัท ซอฟต์แวร์

โชคดี!


1
คำตอบที่ยอดเยี่ยม - ฉันจะเพิ่มอย่างระมัดระวังด้วยกระบวนการที่คุณแนะนำ - ตรวจสอบให้แน่ใจว่าคุณไม่ได้ตกหลุมพรางของการทำสิ่งที่ดีที่สุดสำหรับกระบวนการไม่ใช่สิ่งที่ดีที่สุดสำหรับลูกค้า - เช่นกระบวนการต้องมุ่งเน้นลูกค้า นอกจากนี้ให้ระวังสิ่งที่คุณวัดด้วยคำจำกัดความว่าการวัดใดที่สำคัญและสิ่งที่ไม่ได้วัดนั้นไม่สำคัญ วัดสิ่งผิด ๆ (SLOC / วันบัก / SLOC ฯลฯ ) และคุณจะไม่ได้รับการปรับปรุง แต่การวัดจะบอกคุณว่าคุณเป็น
mattnz

1
@mattnz - ฉันไม่รู้ว่าข้อผิดพลาด / SLOC อาจเป็นตัวชี้วัดที่มีประโยชน์หากคุณใช้ถูกต้อง ถ้ามีคนบอกว่าพวกเขาเฉลี่ย 1 ข้อผิดพลาด / 10 SLOC ฉันอาจจะกังวล เคล็ดลับคือคุณต้องรู้ว่าบาร์อยู่ที่ไหนซึ่งอาจเป็นเรื่องยาก
rjzii

จุดดี. ผู้คนปรับให้เหมาะกับเมตริกของพวกเขา หากคุณสร้างตัวชี้วัดทางการเงินก่อนคนอื่นจะปรับให้เหมาะกับค่าใช้จ่ายของฟังก์ชันการทำงานหรือการบริการลูกค้า มันคือทั้งหมดที่เกี่ยวกับความสมดุลและลำดับความสำคัญ
MathAttack

1
วัดฉันด้วยข้อผิดพลาด / SLOC, SLOC / วันและคุณจะประหลาดใจว่าฉันสามารถสร้างซอร์สโค้ดได้อย่างไรโดยไม่ต้องเพิ่มอะไรที่มีประโยชน์ ตัวอย่างเช่นการจัดตำแหน่งของเครื่องมือจัดฟันในบรรทัดใหม่เสมอ - ยิ่งมีสถิติน้อยลงเท่าไรฉันยิ่งเป็นโปรแกรมเมอร์ที่ดีขึ้นทันที ให้ฉันวัดใด ๆ และฉันจะแสดงให้คุณเห็นว่าฉันสามารถทำให้การวัดที่ทำให้ฉันดูดีขึ้น
mattnz

1
@mattnz - นั่นคือสิ่งที่การตรวจสอบรหัสสำหรับถ้ามีคนทำรหัสของพวกเขาอย่างไม่จำเป็นเพื่อซ่อนความจริงที่ว่ามันเต็มไปด้วยข้อบกพร่องแล้วราคาที่พวกเขาไม่ควรจะเขียนรหัสเพื่อเริ่มต้นด้วย นอกจากนี้คุณยังสามารถดูข้อบกพร่องต่อจุดฟังก์ชั่นซึ่งยากต่อการปลอมมากเมื่อคุณเห็นการแสดงออกในจำนวนฟังก์ชั่นที่มีจำนวนลดลง (เครื่องหมายไม่ดี) หรือตัวเลขเพิ่งเริ่มลดลงเมื่อรหัสดีขึ้น (ดี เข้าสู่ระบบ)
rjzii

2

การอ้างอิงความพยายามของคุณใน CMMI อาจเป็นความคิดที่ดีแม้ว่าคุณจะไม่ได้รับการประเมินและได้รับการตรวจสอบและให้คะแนนอย่างเป็นทางการ มีมากมายของวรรณกรรมที่มีอยู่เกี่ยวกับการเป็นCMMI , CMMI และเทคนิคการปรับปรุงกระบวนการอื่น ๆ เช่น Lean และSix SigmaและCMMI และการพัฒนาซอฟต์แวร์เปรียว SEI มีการเก็บรวบรวมทั้งหมดของทรัพยากรบางใช้ได้ฟรีเกี่ยวกับแง่มุมที่แตกต่างกันของ CMMI และคำแนะนำสำหรับประเภทที่แตกต่างกันขององค์กร

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

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

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


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

@RobZ ตามคำนิยามคุณไม่สามารถผลักดันความพยายามระดับรากหญ้า - มันต้องมาจากล่างขึ้นบนตามธรรมชาติ เว้นแต่ทีมงานโครงการตระหนักดีว่ามีปัญหาจริงแนวโน้มคือการไม่เปลี่ยนแปลงและคัดค้านการเปลี่ยนแปลงที่ถูกมองว่าไม่ดีในทางใดทางหนึ่ง (เช่นทำให้งานมีความซับซ้อนหรือยากขึ้นซึ่งมักจะเกี่ยวข้องกับการปรับปรุงกระบวนการแม้ว่าจะไม่ใช่ มักจะเป็นกรณี)
โธมัสโอเวนส์

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

@RobZ และเมื่อขั้นตอนการจัดการและกำหนดการกระทำนักพัฒนาต่อต้าน คุณไม่สามารถควบคุมการเปลี่ยนแปลงทางวัฒนธรรมและคาดว่ามันจะเกิดขึ้นอย่างเรียบง่ายและเงียบ ๆ มันเป็นกระบวนการที่ยาวนานและเจ็บปวด
Thomas Owens

ไม่มีใครคาดหวังว่าจะเป็นอย่างนั้นและเราได้เผชิญกับการต่อต้านมาแล้ว ณ จุดนี้เรากำลังมองหาวิธีที่จะลดมันลง
rjzii

0

สำหรับการเปลี่ยนแปลงแต่ละครั้ง:

  • เรียกการเปลี่ยนแปลงที่ 1 และวิธีปรับปรุงการพัฒนา
  • ใช้การเปลี่ยนแปลง
  • แสดงให้เห็นถึงการปรับปรุง
  • ลบการเปลี่ยนแปลงที่ไม่ได้แสดงถึงการปรับปรุง

เห็นได้ชัดว่าการวิเคราะห์จะต้องเกิดขึ้นเมื่อเวลาผ่านไป แต่ไม่ควรยอมรับการเปลี่ยนแปลงจนกว่ามันจะแสดงให้เห็นว่ามีประสิทธิภาพ นั่นเป็นเหตุผลที่ฉันจะใช้ไม่เกิน 2-3 การเปลี่ยนแปลงต่อรอบมิฉะนั้นคุณมักจะไม่สามารถวัดได้ว่ามีการปรับปรุงหรือไม่

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

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.