ฉันจะติดตามได้อย่างไรว่าฉันกำลังพัฒนาซอฟต์แวร์มากขึ้นหรือน้อยลงกว่าเดิมเมื่อวันก่อน?
ฉันจะติดตามได้อย่างไรว่าฉันกำลังพัฒนาซอฟต์แวร์มากขึ้นหรือน้อยลงกว่าเดิมเมื่อวันก่อน?
คำตอบ:
มีคำตอบง่ายๆคือคุณทำไม่ได้ และยิ่งกว่านั้นคุณไม่ควร
คุณต้องการวัดผลผลิตของคุณเอง แต่คุณสามารถพูดคุยทั่วไป: คุณจะวัดประสิทธิภาพของโปรแกรมเมอร์ได้อย่างไร ก่อนอื่นคุณต้องกำหนดสิ่งที่คุณหมายถึงสำหรับ "การผลิต": จำนวนของรหัสที่ผลิต? จำนวนของการออกแบบ (หรือข้อมูลจำเพาะ) มีการใช้งานหรือไม่ จำนวนของปัญหาได้รับการแก้ไข? คุณภาพของรหัสที่ผลิต? (ใช่คุณภาพคือตัวนับผลผลิตคุณสามารถสร้างรหัสที่ไม่ดีจำนวนมากหรือรหัสที่ดีได้สองสามอย่างอะไรที่มีประสิทธิผลมากกว่านี้) ค่าทั้งหมดเหล่านี้สามารถแมปกับฐานรายวันได้ยากและความพยายามในการติดตามผลผลิตรายวันเป็นอันตรายต่อโครงการ บริษัท และโปรแกรมเมอร์
คำแนะนำของฉันคือการกำหนดสิ่งที่คุณหมายถึงอย่างชัดเจนว่า "ประสิทธิผล" จากนั้นกำหนดหน่วยวัดและใช้กับฐานรายสัปดาห์และรายเดือน
ฉันจะบอกว่าวิธีที่ดีที่สุดในการวัดประสิทธิภาพการทำงานของคุณคือการตั้งเป้าหมายในแต่ละวันสำหรับสิ่งที่คุณต้องการทำในวันนั้นและถ้าคุณทำเสร็จให้พิจารณาให้ได้ผล มันเป็นการวัดความรู้สึกส่วนตัว แต่คุณจะพบว่ามันคุ้มค่ามากกว่าเป้าหมาย
คำแนะนำทั้งสองด้านล่างนี้สามารถนำมาปรับใช้กับความต้องการของคุณได้ แต่ในทั้งสองกรณีคุณจำเป็นต้องทำการประเมินล่วงหน้าแล้วทำการวิเคราะห์แบบเฉพาะกิจ (และโดยสุจริตฉันไม่แน่ใจว่ามีวิธีอื่นที่มีประสิทธิภาพในการวัดสิ่งนี้หรือไม่ ด้วย TheLQ นั้นบรรทัดของรหัสต่อช่วงเวลาจะไม่สามารถใช้งานได้เลย)
วิธีการพัฒนาแบบ Agile
ถึงแม้ว่าฉันไม่แน่ใจว่าจะสามารถนำไปใช้กับสถานการณ์ของนักพัฒนาได้อย่างมีประสิทธิภาพเพียงใด แต่หลักการบางอย่างที่ใช้ใน Agile สามารถพิสูจน์ได้ว่ามีประโยชน์ในสิ่งที่คุณตั้งใจจะทำให้สำเร็จ Agile ทำงานในรอบที่นักพัฒนามีเป้าหมายที่จะใช้เรื่องราว (งาน) ซึ่งได้คะแนน (เป็นคะแนน) ตามความซับซ้อนของการใช้งานในช่วงเริ่มต้นของวงจรการพัฒนาแล้ววิเคราะห์เมื่อสิ้นสุดแต่ละรอบ สิ่งนี้ทำให้สามารถกำหนดความเร็วได้เช่นจำนวนคะแนนที่นักพัฒนาหรือทีมสามารถทำให้เสร็จภายในรอบการพัฒนาเดียว
หากวิธีการทำงานของคุณอนุญาตให้คุณนำหลักการบางอย่างมาใช้และจัดระเบียบงานของคุณเป็นรอบคุณสามารถใช้เมตริกความเร็วรอบต่อการพัฒนาเพื่อติดตามประสิทธิภาพของคุณ โปรดทราบว่าโดยทั่วไปรอบ 2-3 สัปดาห์ที่ผ่านมาอย่างไรก็ตามคุณควรจะสามารถย่อให้สั้นลงเมื่อใช้สำหรับตัวคุณเองเท่านั้น ทุกอย่างลงมาหากคุณสามารถใช้วิธีการดังกล่าวในสภาพแวดล้อมของคุณ
การจัดตารางตามหลักฐาน
แม้ว่าจะมีความสำคัญในการปรับปรุงการประเมินคุณควรจะสามารถใช้มันได้อย่างมีประสิทธิภาพเพื่อติดตามแนวโน้มการลดลงของผลผลิต
เห็นด้วยกับ Lorenzo กำหนดผลิตผล
ฉันก็ทำเช่นนี้: 1. แยกงานทั้งหมด (ระดับสูงหรือระดับต่ำลง) 2. ประเมินชั่วโมงการทำงานของแต่ละงาน (อย่าลืมกำหนดบัฟเฟอร์การหน่วงเวลาสำหรับแต่ละงาน) 3. เสร็จสิ้นภารกิจ 4. ทบทวนแต่ละงานและดูว่าคุณมีประสิทธิภาพเพียงพอหรือไม่
นี่คือการวัดประสิทธิผลที่มีความหมายและแม่นยำซึ่งเกี่ยวข้องกับการจัดทำสแนปชอตตามหลักฐานหลายประการ:
เมื่อคุณรวบรวมสถิติสองสามวันแล้วทำการจำลอง Monte Carlo ของคุณและสังเกตกราฟซึ่งควรมีลักษณะดังนี้:
จากนั้นให้ทำงานอีกหนึ่งวันและทำแบบจำลองอีกครั้ง หากคุณมีประสิทธิผลในวันนั้นกราฟควรเปลี่ยนดังนี้:
สิ่งสำคัญที่สุดคือถ้าคุณเป็นผลิตภัณฑ์ในวันนั้นความน่าจะเป็นของวันที่จัดส่งในวันที่ใด ๆ ควรเพิ่มขึ้นเนื่องจากเมื่อคุณใช้การจำลองครั้งสุดท้ายก่อนวันทำงาน ถ้ามันลดลงแสดงว่าคุณมีประสิทธิผลน้อยลงในวันนั้น
แน่นอนความถูกต้องของ EBS เพิ่มขึ้นตามเวลาและประสบการณ์เพื่อให้สามารถเป็นอีกเหตุผลหนึ่งในการเปลี่ยนค่าความน่าจะเป็นของวันที่จัดส่ง นั่นเป็นเหตุผลที่คุณต้องการเริ่มต้นทำอย่างน้อยหลังจากทำงานสองสามวันที่คุ้มค่า แม้ว่าจะไม่มีสิ่งนั้นก็ตามหากคุณมีประสิทธิผลมากขึ้นในวันใดวันหนึ่งความน่าจะเป็นน่าจะเพิ่มขึ้นอย่างเห็นได้ชัด
การนับจำนวนบรรทัดเป็นการวัดที่ไม่สมบูรณ์เนื่องจากไม่ได้มีความเข้าใจอย่างถ่องแท้เกี่ยวกับคุณภาพของรหัส แต่สามารถใช้เพื่อกำหนดประสิทธิภาพทั่วไป ขึ้นอยู่กับภาษาที่คุณใช้มีเครื่องมือต่าง ๆ ที่จะนับบรรทัดโค้ดให้คุณ แต่ฉันขอ BitBucket ซึ่งเป็น Git Repository เพิ่มสถิติที่เกี่ยวข้องกับการผลิต
https://bitbucket.org/site/master/issue/4307/feature-request-contributor-statistics
วัดเวลาที่คุณนั่งลงที่คอมพิวเตอร์ในตอนเช้าจนกว่าคุณจะทำกิจกรรมที่ไม่เกี่ยวข้องกับการทำงานเช่น 9gag, facebook, reddit และอื่น ๆ ผลผลิตของคุณในวันนั้นเป็นสัดส่วนกับจำนวนนั้น
สมมติว่าช่วงเวลาที่มีประสิทธิผลคือการจัดการเวลาของคุณเช่นที่คุณใช้เวลาทำงานทั้งหมดเพื่อทำงานให้เสร็จและสิ่งใด ๆ ที่ก่อให้เกิดการเสียเวลานั่นคือเวลาที่ใช้ไม่ได้ทำให้งานเสร็จ ประสิทธิผล
เกี่ยวกับสิ่งเดียวที่คุณทำได้จริงๆคือบันทึกเวลาของคุณเมื่อมีส่วนร่วมในกิจกรรมต่าง ๆ ตลอดทั้งวัน Time Boxing เป็นเทคนิคที่ใช้สำหรับวัตถุประสงค์ต่าง ๆ แต่จะเหมาะกับความพยายามในการบันทึกกิจกรรมของคุณในระหว่างวัน ใช้เวลา 15 นาทีในการจับเวลาเพียงทำงานบางอย่าง หากงานนั้นเป็นสิ่งที่คุณควรจะทำเวลาของคุณก็มีประสิทธิผล หากคุณพบว่าคุณกำลังแก้ไขบล็อกของคุณอ่านหนังสือพิมพ์หรือฝันกลางวันเกี่ยวกับผู้หญิงที่ดีคนนั้นในทางบัญชีแสดงว่าเวลาของคุณอาจไม่ก่อผล เพิ่มเวลาของคุณในตอนท้ายของวันและคุณจะรู้สึกว่าคุณเป็นอย่างไร ...
แต่มีการจับ! คุณทำอะไรเกี่ยวกับนาทีอื่น ๆ ... คุณรู้การหยุดพัก 5 นาทีไปทานอาหารกลางวันโดยให้หัวหน้าของคุณขัดจังหวะคุณเพื่อบอกคุณเกี่ยวกับปลาตัวใหญ่ที่เขาไม่ได้ไปเที่ยวตกปลาครั้งสุดท้าย? บันทึกทั้งหมดนั่นด้วย เวลาที่ใช้ไปกับการหยุดพักจะไม่สูญเปล่าถ้ามันมีส่วนทำให้สุขภาพจิตและความเป็นอยู่ที่ดีของคุณ ... ตราบใดที่คุณไม่ได้หยุดพัก 5 นาทีทุกๆ 10-15 นาที !! ในส่วนที่เหลือการขัดจังหวะการจัดการกับปัญหาอื่น ๆ ที่เกี่ยวข้องกับงาน .. ทั้งหมดนี้สามารถติดตามได้
แน่นอนคุณสามารถพบว่าตัวเองหมกมุ่นกับเรื่องแบบนี้และพระเจ้าช่วยคุณถ้าเจ้านายเป็นหนึ่งในคนเหล่านั้นที่เห็นคุณเป็นนักมวยเวลาและใช้สิ่งเหล่านั้นเพื่อแสดงเหตุผลที่จะทำงานมากขึ้นหรือวิพากษ์วิจารณ์ความพยายามของคุณ คุณเห็นว่าปัญหาเกี่ยวกับความหลงใหลในช่วงเวลาที่มีประสิทธิผลคือคุณสามารถทำงานได้ทั้งวันและยังไม่ได้รับความเกี่ยวข้องจริงเลย บางวันคุณสามารถเขียนโค้ดเหมือนว่ามันละลายเนยออกมาจากสมองของคุณและบนแซนวิชที่คุณโทรหาหน้าจอของคุณ ... ในขณะที่วันอื่น ๆ คุณสามารถมีบล็อกทางจิตใจที่รุนแรงในขณะที่คุณลองทำ 357 วิธีต่างๆ สิ่งเดียวที่จะดูมันล้มเหลว หลายคนบอกว่า "ความล้มเหลว" อย่างต่อเนื่องอาจไม่เกิดผลและในตัวมันเองจะไม่ได้รับการช่วยเหลือไม่ว่าคุณจะใส่กล่องเวลาเท่าใดและบันทึกชั่วโมงของคุณในระหว่างวัน
วิธีอื่น ๆ ในการดูคือการตั้งเป้าหมายหลายอย่างเพื่อทำให้สำเร็จในระหว่างวันและหนึ่งสัปดาห์จากนั้นมุ่งสู่การทำให้สำเร็จ หากคุณบรรลุเป้าหมายจริงคุณสามารถยืนยันว่าคุณมีประสิทธิผลและหากคุณไม่บรรลุเป้าหมายคุณอาจต้องเข้าใจว่าทำไมคุณถึงไม่บรรลุเป้าหมายเหล่านั้นและตัดสินใจว่าคุณเป็นหรือไม่ได้ผล ขึ้นอยู่กับสาเหตุที่แท้จริงของการพลาดเป้าหมาย ในที่สุดหากคุณส่งมอบรหัสการทำงานเมื่อจำเป็นและถ้าคุณสามารถรับการทดสอบเพื่อผ่านและงานที่เสร็จสมบูรณ์แสดงว่าคุณมีประสิทธิผล การวัดค่าจะมีค่าก็ต่อเมื่อมีเหตุผลที่ถูกต้องสำหรับการวิเคราะห์ทางสถิติในภายหลัง