มีวิธีที่สวยงามในการวิเคราะห์กระบวนการของวิศวกรหรือไม่


12

มีความเชื่อมั่นมากมายที่การวัดความมุ่งมั่นนั้นไม่เหมาะสม

มีการศึกษาใด ๆ ที่พยายามวาดในแหล่งข้อมูลมากกว่าที่กระทำ - เช่น:

  • รูปแบบการเรียกดู
  • งาน IDE (กระทำล่วงหน้า)
  • เวลาว่าง
  • มัลติทาสกิ้ง

ฉันไม่สามารถคิดวิธีง่ายๆในการทำมาตรการเหล่านี้ แต่ฉันสงสัยว่ามีการศึกษาใด ๆ เกิดขึ้นหรือไม่


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

คำตอบ:


6

ไม่แน่ใจว่าคุณจะพิจารณาว่ามันสง่างามหรือไม่ แต่ Watts Humphrey เขียนหนังสือทั้งเล่มที่เรียกว่า Personal Software Process ที่เกี่ยวกับการวัดประสิทธิภาพของคุณเอง เขาระบุตัวชี้วัดสำหรับอินพุตเช่นเวลาที่โต๊ะทำงานของคุณเทียบกับการหยุดชะงักเวลาที่ใช้ในการทำงานกับกิจกรรมวงจรชีวิตซอฟต์แวร์ประเภทต่างๆข้อบกพร่องต่อจำนวนรหัส มีรายงานทางเทคนิคที่ให้รุ่นสั้นที่:

http://www.sei.cmu.edu/library/abstracts/reports/00tr022.cfm

หากคุณต้องการดูคุณภาพของรหัสนักพัฒนาChidamber & Kemererเสนอตัวชี้วัดหลายประการสำหรับโค้ดเชิงวัตถุ

ตัวชี้วัดสำหรับรหัสเชิงวัตถุ

  • ความลึกของต้นไม้มรดก
  • จำนวนวิธีการถ่วงน้ำหนัก
  • จำนวนฟังก์ชั่นสมาชิก
  • จำนวนเด็กและ
  • ข้อต่อระหว่างวัตถุ

ด้วยการใช้ฐานของรหัสพวกเขาพยายามเชื่อมโยงตัวชี้วัดเหล่านี้กับความหนาแน่นของข้อบกพร่องและความพยายามในการบำรุงรักษาโดยใช้การวิเคราะห์ covariant การศึกษาในภายหลังได้ทำการวิเคราะห์ที่คล้ายกันในโครงการ Source Forge Java หลายร้อยโครงการเพื่อกำหนดลักษณะที่สัมพันธ์กับ CK Metrics และตัวชี้วัดเพิ่มเติมที่เสนอในภายหลัง

ตัวชี้วัดที่เกิดขึ้นในบริบทของการวิจารณ์รหัส

ข้อบกพร่องสามารถแบ่งได้เป็นหลายเกณฑ์:

  • ความรุนแรง: (หลัก, เล็กน้อย, เครื่องสำอาง, ตรวจสอบ / ไม่ทราบ),
  • ประเภท (ตรรกะ, การพิมพ์ผิด, การสะกด, การเข้ารหัสการละเมิดมาตรฐาน ฯลฯ ),
  • การบรรจุต้นกำเนิด / เฟส (ข้อกำหนดการออกแบบรหัส ฯลฯ )

นอกจากนี้ยังมีอัตราการจัดเตรียมและการตรวจสอบ (เวลาต่อผู้ตรวจสอบเวลาต่อบรรทัดของรหัส) และความหนาแน่นของข้อบกพร่อง (ต่อKLOC (รหัสพันบรรทัด) ต่อนาทีของเวลาของผู้ตรวจสอบ / ผู้ตรวจสอบ)

การพล็อตค่าเหล่านี้กับแผนภูมิควบคุมสามารถแสดงให้เราทราบว่าเราอยู่ภายในขอบเขตของกระบวนการหรือไม่ (ตัวอย่างเช่นทีมที่ตรวจสอบโค้ด 200 บรรทัดที่ไม่พบข้อบกพร่องในกลุ่มที่ค่าเฉลี่ยข้อบกพร่องยี่สิบห้าต่อ KLOC อาจทำงานผิดปกติ)

ตัวชี้วัดอื่น ๆ

ตัวชี้วัดอื่น ๆ ที่สามารถช่วยได้ ได้แก่

ข้อ จำกัด ของการวิเคราะห์

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

นอกจากนี้ยังมีสิ่งที่ทำให้ไขว้เขวบางอย่างและอาจสูญเสียการโฟกัสและความเพลิดเพลินที่สามารถมาพร้อมกับการวัดที่ล่วงล้ำ คุณไม่สามารถได้รับความสง่างาม (และเป็นภาระทางอารมณ์) มากกว่ากวีทะเลสาบเช่นWordsworthที่พูดว่า

      Sweet is the lore which Nature brings;
      Our meddling intellect
      Mis-shapes the beauteous forms of things:--
      We murder to dissect.

ในขณะที่ซอฟต์แวร์ไม่ได้เป็นธรรมชาติอย่างแท้จริงให้ฉันละติจูดเพราะฉันคิดว่าฉันจะไม่ได้ใช้อะไรจากชั้นเรียนวรรณคดีภาษาอังกฤษของโรงเรียนมัธยม

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


ฉันชอบคำตอบนี้ไม่ว่าคนอื่นจะได้รับข้อมูลที่ดีขึ้นหรือไม่ก็ตามดังนั้นฉันจึงแก้ไขสำหรับเนื้อหาส่วน
Alexandria ใหม่

ฉันไม่เข้าใจความคิดเห็นของคุณเกี่ยวกับคุณค่าที่ได้รับสำหรับ "นักพัฒนาที่ไม่ได้เปลี่ยนเป็น Agile" เพียงแค่ค้นหา "ค่าที่ได้รับในความคล่องตัว" และ "มูลค่าที่ได้รับความคล่องตัว" นำมาซึ่งผู้คนจำนวนมากที่ใช้เทคนิค EVM แบบดั้งเดิมกับสภาพแวดล้อมที่คล่องตัว ...
Thomas Owens

มูลค่าที่ได้รับดูเหมือนว่าเป็นเทคนิคการปรับตัวที่ดีโดยคำนึงถึงการประมาณ ฉันคิดว่าการประเมิน Agile มีวิธีการของตัวเองที่เกี่ยวข้องกับคะแนนเป็นหลัก ฉันจะดูว่าฉันสามารถ reword สิ่งที่จะรวม
DeveloperDon

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

2

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

http://en.wikipedia.org/wiki/Seven_Basic_Tools_of_Quality

ฉันชอบแผนภูมิควบคุม

http://en.wikipedia.org/wiki/Control_chart

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

การวัดส่วนบุคคลอาจเป็นสิ่งที่คุณสามารถเชื่อมโยงด้วยตัวคุณเองโดยเริ่มจากคำถามเช่น "ฉันรู้สึกได้ผลมากที่สุดเมื่อฉัน ... "

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

คนชราเห็นว่าสิ่งที่เราวัดคือสิ่งที่ทำเสร็จแล้วอาจนำคุณไปสู่ปัญหาตามสิ่งที่คุณพิจารณาว่าเป็นปัจจัย จำกัด

หรือหลายปัจจัยตามลำดับความสำคัญโดยใช้แผนภาพ Pareto

http://en.wikipedia.org/wiki/Pareto_chart

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