โอ้เจ้านั่นมากถ้าคุณหมายถึงทุกสิ่งที่เกิดขึ้นกับคุณจริงๆ!
คำเตือน : ในหลายประเด็นด้านล่างคุณอาจรู้สึกว่าฉันวิพากษ์วิจารณ์คุณและฉันต้องการให้คุณรับผิดชอบต่อความผิดพลาดและไม่พิจารณาปัจจัยภายนอก ฉันไม่. เป็นเพียงการที่คุณไม่ให้รายละเอียดมากนักและฉันเพียงแค่เตรียมรายการตรวจสอบการกระทำเพื่อรับรองว่าสิ่งต่าง ๆ ไม่ได้ผิดปกติ ฉันรู้ว่าฉันทำผิดพลาดมากมาย (ทุกคนทำ) และเราจะดีขึ้นถ้าเราเรียนรู้จากพวกเขา และเพื่อเรียนรู้จากพวกเขาเราต้องเริ่มเห็นพวกเขาเป็นความผิดพลาดตั้งแต่แรกและยอมรับความรับผิดชอบในสิ่งที่ผิดพลาดในส่วนของเรา นรกยอมรับความรับผิดชอบในสิ่งที่ผิดพลาดในส่วนของคนอื่นคุณสามารถเรียนรู้จากสิ่งนั้นได้เช่นกัน
โครงการของคุณล้มเหลว
ไม่มากที่คุณสามารถทำได้เพื่อลดผลกระทบในตอนนี้
อย่างไรก็ตามคุณสามารถทำได้หลายวิธีเพื่อหลีกเลี่ยงการทำซ้ำในอนาคต ฉันขอแนะนำให้พยายามพัฒนาโครงการและทักษะการบริหารเวลาของคุณ
หนึ่งในหนังสือที่มีอัตราส่วนที่ดีที่สุด ((คำแนะนำที่ถูกต้อง) / หน้า) ผมเคยอ่านเกี่ยวกับเรื่องนี้ในขณะที่อาจจะไม่ดีที่สุดก็ร็อบ Thomsett ของการบริหารจัดการโครงการหัวรุนแรง
คุณไม่ได้ระบุสิ่งที่โครงการของคุณล้มเหลว แต่ฉันคิดว่าการรวมกันของสิ่งต่าง ๆ ซึ่งทำให้เกิดความไม่สมดุลในรูปสามเหลี่ยมราคา / เวลา / qualiyปกติ ปัจจัยที่สำคัญที่สุดในสายตาของฉันคือการเป็นผู้นำโครงการและการพัฒนาในขณะที่ติดต่อกับนักแสดงด้านเทคนิคของคุณ (นักพัฒนาซอฟต์แวร์และผู้ทดสอบ) เสมอ โครงการมากเกินไปล้มเหลวเพราะพวกเขาไม่ฟังผู้สนับสนุนหรือผู้มีส่วนได้ส่วนเสียและไม่ผลักดันให้พวกเขามีส่วนร่วมในกระบวนการ
หากพวกเขาไม่เกี่ยวข้องคุณไม่สามารถรู้สิ่งที่พวกเขาต้องการ หากคุณไม่สามารถรู้ว่าสิ่งที่พวกเขาต้องการคุณไม่สามารถส่งมอบมัน หากคุณไม่ส่งมอบมันจะไม่มีความสุข นั่นคือความล้มเหลว นอกจากนี้หากคุณไม่เกี่ยวข้องกับผู้มีส่วนได้เสียพวกเขาจะถูกตัดการเชื่อมต่อจากความเป็นจริงของวิศวกรรมซอฟต์แวร์ซึ่งหมายความว่าพวกเขาไม่เข้าใจปัญหาของคุณ หากพวกเขาติดต่อกับคุณบ่อยครั้งพวกเขาจะเข้าใจสิ่งที่คุณต้องรับมือได้ดีขึ้น พวกเขาจะสามารถเข้าใจได้มากขึ้นเมื่อคุณบอกพวกเขาว่าคุณลักษณะ "เล็ก" [เสียงหัวเราะ] จะใช้เวลาเป็นเดือน พวกเขาสามารถไว้วางใจการวางแผนของคุณได้ดีขึ้นเพราะพวกเขาช่วยสร้างมัน โครงการไม่สามารถประสบความสำเร็จได้ด้วย "รายละเอียดที่จุดเริ่มต้นการพัฒนาการทดสอบการส่งมอบตอนท้าย" มันไม่เคยทำ คุณอาจส่งมอบสิ่งที่ถามในรายละเอียด
สิ่งที่สำคัญที่สุดก็คือทำเรื่องย้อนหลังและทำให้แน่ใจว่าเกมนี้ไม่มีอัตตาและไม่ใช่เกมโทษ เพียงระบุปัญหา
สิ่งที่คุณใช้เวลาเป็นวันทำการโดยทีมงานของคุณถูกปฏิเสธ
ฉันอยู่ในสถานการณ์นั้น อีกครั้งคุณไม่สามารถทำได้เพื่อลดขนาดนั้นยกเว้น:
- เก็บไว้ใน SCM ภายหลัง
- อาจพยายามดันบิตขนาดเล็กและชิ้นเข้าไปในฐานรหัสหลักแทนการเปลี่ยนขนาดใหญ่
แต่มีอีกหลายสิ่งที่คุณสามารถทำได้เพื่อป้องกันสถานการณ์เช่นนี้:
- ทำไมมันเกิดขึ้น อะไรคือสาเหตุของการถูกปฏิเสธ?
- ส่วนใหญ่เวลาที่ฉันเห็นสิ่งนี้เกิดขึ้น (และนั่นก็เป็นกรณีของฉันด้วยเช่นกัน) นั่นหมายถึงนักพัฒนาไปคนเดียวหรือในโหมดการเข้ารหัสโคบอย - บอยและสร้างสิ่งที่ไม่เคยถาม รหัสที่ไม่ได้มาจากความต้องการทางธุรกิจอาจเป็นเรื่องแฟนซีและ "ดีกว่า" แต่มักจะเสียเวลาและเงิน นอกจากนี้ยังมีค่าใช้จ่ายมากขึ้นหากคุณรวมเข้ากับมันเพราะมันจะต้องมีการทดสอบอีกครั้ง คิดเหมือนคนที่จัดการเงินให้คุณ: คุณต้องมีประสิทธิภาพในระดับนั้นเช่นกัน
- คุณภาพของซอฟต์แวร์ที่ผลิตนั้นเป็นที่น่าพอใจหรือไม่? มันเป็นไปตามมาตรฐานและอนุสัญญาในกิจกรรมที่ บริษัท ของคุณ?
- คุณรายงานเป็นระยะ ๆ (และบ่อยครั้ง!) ถึงผู้จัดการโดยตรงเกี่ยวกับเรื่องนี้หรือไม่? คุณแลกเปลี่ยนกับผู้พัฒนาคนอื่น ๆ ของทีมเป็นครั้งคราวหรือไม่? ถ้าไม่พวกเขาไม่รู้อะไรเลยมันจะมีค่าใช้จ่ายมากสำหรับพวกเขาในการประเมินและตรวจสอบตอนนี้ มันไม่ได้บัญชีในเวลาเดียวกันในที่สุด มันเหมือนพยายามทำความสะอาดอพาร์ทเมนต์ให้เช่าของคุณเสมอและพยายามทำความสะอาดเมื่อคุณย้ายออก: มันเป็นงานที่ยุ่งเหยิงเหนื่อยมากมันยากกว่าที่เคยทำมาเป็นประจำและบ่อยครั้งจะไม่ทำ ขวา.
- คุณผลิตการทดสอบผลิตผลหรือไม่ ทดสอบหน่วย? การทดสอบบูรณาการ?
- มีการตรวจสอบรหัสของคุณใน SCM เป็นประจำหรือไม่ มันแตกต่างจากสาขาอื่นหรือไม่? มันต้องการกิ่งที่แตกต่างกันหรือว่าจะทำในลำตัว? การปิดรหัสยืนยันมักเป็นสัญญาณที่ไม่ดี เห็นได้ชัดว่าบางครั้งคุณถูกล่อลวงให้ทำ แต่คุณเพียงแค่ยิงตัวคุณเอง
ไม่มีใครฟังความคิดของคุณใน บริษัท ของคุณ
ทีนี้มีตัวเลือก 2 ตัวที่นี่และเราจะดูทั้งสองอย่าง:
- คุณมีไอเดียไม่ดี
- คุณมีความคิดที่ดี
เรามาเริ่มสมมติว่าพวกมันแย่ (อีกครั้งการไตร่ตรองตนเองและยอมรับความคิดของคุณก็แค่เลวร้าย ๆ อาจเป็นเรื่องยากฉันรู้) คุณจะเปลี่ยนอะไร
- ทำไมคุณถึงคิดด้วย? อะไรคือเหตุผล ? มีความจำเป็นจริง ๆ ไหมที่ความคิดของคุณพยายามนำไปที่โต๊ะ?
- คุณคิดอย่างไร? คุณทำด้วยตัวเอง? คุณแบ่งปันหรือไม่ ระดมความคิด? วางแผน? ต้นแบบ? (ทำสิ่งเหล่านี้ตามลำดับที่ถูกต้องหากล้มเหลวระหว่างทางให้ละทิ้งความคิดอย่าไปต่อหรืออย่างน้อยก็ไม่ได้อยู่ในตารางงานของคุณ)
ความคิดเป็นเพียงความคิด หากคุณเพียงแค่แนะนำให้พวกเขาเป็นแนวคิดและพวกเขาถูกปฏิเสธฉันไม่เห็นว่าทำไมคุณถึงรู้สึกไม่ดีเกี่ยวกับมัน หากคุณทำตามพวกเขาโดยไม่ต้องแจ้งใครแล้วส่งความคิดของคุณและพวกเขาก็ถูกปฏิเสธแน่นอนว่าฉันรู้สึกหงุดหงิดในเวลาที่เสียไป และผู้จัดการของคุณทำเพื่อ!
สมมติว่าความคิดของคุณเป็นสิ่งที่ดี:
- การนำเสนอของคุณดีไหม
- คุณมีวิธีการนำเสนอที่ดีหรือไม่? (ฉันเป็นนักพัฒนาฉันรู้ว่าสิ่งที่ผมพูดเกี่ยวกับ: เราไม่พอใจหยิ่ง , อวดความรู้ Pitas ที่อยู่เสมอขวาและกับใครมันเป็นเรื่องยากที่จะทำงานร่วมกับเพราะบ่อยของอัตตาสัดส่วนของเรา )
- คุณมีแผนที่จะใช้มันหรือไม่? คุณคิดเกี่ยวกับค่าใช้จ่ายและเวลาหรือไม่? คุณคิดว่ามันมีประโยชน์ต่อผู้ใช้ / ลูกค้าอย่างไร? คุณคิดว่ามันส่งผลกระทบต่อยอดขายหรือไม่ คุณคิดว่าการทำงานกับความคิดนั้นอาจส่งผลกระทบต่อโครงการและลำดับความสำคัญอื่น ๆ ได้อย่างไร คุณจะบอกฉันว่า "ทำไมฉันต้องทำสิ่งเหล่านี้พวกเขาเป็นหน้าที่ของผู้จัดการของฉันและทีมการตลาดหรือการขาย!" ยกเว้นตอนนี้คุณกำลังพยายามทำส่วนหนึ่งของงานทั้งหมดของพวกเขา
รูปแบบการออกแบบที่คุณแนะนำด้วยแรงในทีมของคุณสร้างความวุ่นวาย
- ทำไมคุณถึงแนะนำรูปแบบ?
- หากมันสร้างความยุ่งเหยิงก็อาจเป็นได้ทั้ง:
- ไม่ใช่รูปแบบที่ถูกต้อง
- ไม่ถูกต้อง
- ไม่ถูกต้อง
- คุณแนะนำอย่างไร คุณกำหนดสถานะ "ระเบียบ" ได้อย่างไร?
- อ่านน้อยรหัส?
- บำรุงรักษาน้อยลงหรือไม่
- งานสร้างเสียหายหรือไม่
- มี "ระเบียบ" ที่แตกต่างกัน การรู้ว่าสิ่งที่ยุ่งเหยิงคืออะไรอาจช่วยให้รู้ว่าความล้มเหลวในนั้นคืออะไรและถ้าเป็นความผิดของรูปแบบการออกแบบ
นอกจากนี้ฉันรู้สึกประหลาดใจเล็กน้อยจากแนวทางนี้ คุณต้องผลักดันรูปแบบการออกแบบจริง ๆหรือไม่ ดูเหมือนจะค่อนข้างแปลก รูปแบบอาจมีอยู่แล้วหรือคุณจำเป็นต้องปรับโครงสร้างส่วนหนึ่งของโซลูชันตามรูปแบบ คุณไม่ต้องผลักดันมันเหมือนกับว่าคุณจะต้องใช้เฟรมเวิร์กหรือเทคโนโลยี (เช่นผู้ที่ผลักอย่างหนักเพื่อให้มี XML อยู่ทุกหนทุกแห่งและตอนนี้ผู้คนเริ่มที่จะผลักดันให้สามารถเขียนHTML5บนผลิตภัณฑ์ได้ด้วยตัวอักษรขนาดใหญ่)
ทำไมคุณต้องผลักดัน ทำไมถึงมีการต่อต้าน? อาจจะเป็นธรรม
คุณสามารถให้ตัวอย่างที่รูปแบบเฉพาะนี้จะช่วยในการปรับปรุงฐานรหัสของคุณในรูปแบบที่สำคัญ (ตัวอย่างเช่นโดยการจับคู่กับตัวอย่างของการเปลี่ยนรูปแบบเป็นรูปแบบ )
หมายเหตุนอกหัวข้อทั้งหมดแต่นั่นคือสิ่งแรกที่ฉันนึกถึงเมื่อฉันอ่านชื่อคำถามเนื่องจากฉันคิดว่ามันอ้างถึงความล้มเหลวของซอฟต์แวร์ ... ฉันมีซอฟต์แวร์ที่ใช้คลาส BlackHole เพื่อจัดการข้อยกเว้นแบบพิเศษอย่างใดอย่างหนึ่ง ส่วนประกอบ ดูเหมือนว่า (และจริงๆแล้ว) เป็นแฮ็คที่แปลกและสกปรกอย่างเห็นได้ชัด แต่การตั้งชื่อตัวเองนั้นยอดเยี่ยมมากเราทุกคนชื่นชมมันสำหรับวิธีที่ยอดเยี่ยมในการจัดการกับความล้มเหลว! :)