ขณะนี้ฉันกำลังฝึกงานที่ได้รับค่าจ้างและได้รับมอบหมายให้ดูแลระบบที่ล้าสมัยซึ่งได้รับการพัฒนาโดยนักพัฒนาหลาย ๆ คน (ในเวลาต่างกัน) ตลอดระยะเวลา 5 ปีที่ผ่านมา ฝ่ายบริหารตกลง "ระบบสนับสนุนชีวิต" และฉันได้รับรายงานบั๊กจากผู้ใช้ปลายทางที่ใช้ระบบเป็นประจำ
ระบบไม่ล้าสมัยหากผู้คนยังใช้งานอยู่และสนับสนุนกิจกรรมทางธุรกิจ เนื่องจากยังคงมีการใช้งานอยู่ธุรกิจไม่สามารถทิ้งมันได้ - ต้องได้รับการสนับสนุนจนกว่าจะไม่มีความต้องการระบบอีกต่อไป นั่นอาจเป็นการเปลี่ยนแปลงวัตถุประสงค์ทางธุรกิจหรือระบบใหม่ได้รับการพัฒนาทดสอบและปรับใช้กับผู้ใช้ปลายทางได้สำเร็จ
จริงๆแล้ว 5 ปีนั้นไม่นาน ฉันเคยทำงานกับรหัสที่อายุ 10 ปีก่อน หากยังคงตอบสนองความต้องการของผู้ใช้อยู่ทำไมต้องโยนทิ้ง มันทิ้งเงินจำนวนมากไปกับการพัฒนามัน จนกว่ามันจะกลายเป็นไปไม่ได้ที่จะรักษาเนื่องจากการเพิ่มค่าใช้จ่ายหรือความต้องการที่เปลี่ยนแปลงอย่างมากไม่มีเหตุผลทางธุรกิจที่จะทิ้งมันไป
ฝ่ายบริหารต้องการที่จะขยายโครงการต่อไปอีกปีและในกระบวนการเกือบสามเท่าของฐานผู้ใช้
หากผู้บริหารบอกว่าระบบนี้เป็น "การช่วยชีวิต" ทำไมพวกเขาถึงพยายามปรับใช้เพิ่มเติม เป็นเรื่องปกติที่กิจกรรมการบำรุงรักษาจะดำเนินต่อไปในระบบเดิมจนกว่าจะถูกแทนที่ แต่ถ้าระบบหมดอายุ การขยายการบำรุงรักษาเป็นสิ่งหนึ่ง แต่การเพิ่มผู้ใช้ที่พึ่งพาระบบเป็นสถานการณ์ที่แตกต่างกันทั้งหมด
สำหรับฉันดูเหมือนว่ายังไม่สิ้นสุดชีวิตจริง แต่อยู่ในช่วงการบำรุงรักษาและจะยังคงอยู่ที่นั่นจนกว่าระบบจะไม่ตอบสนองความต้องการของผู้ใช้อีกต่อไป
ในฐานะที่เป็นผู้ฝึกงาน (หรือตำแหน่งระดับเริ่มต้น) ฉันจะ "ดันกลับ" ได้อย่างไร? ฉันได้เขียนรายงานที่ระบุถึงข้อกังวลของฉันแม้ว่าจะอยู่ในเอกสารปลายเปิด มีโปรโตคอลหรือประเภทเอกสารสำหรับแนะนำการเปลี่ยนแปลงหรือไม่ ฉันอยู่ในฐานะที่จะให้คำแนะนำหรือฉันควรสนับสนุนระบบเดิมต่อไปหรือไม่?
คุณต้องดำเนินการต่อเพื่อสนับสนุนระบบเก่า ต่อมาคุณพูดถึงว่าซอฟต์แวร์ไม่ใช่ธุรกิจหลักของ บริษัท คุณ ในสภาพแวดล้อมเช่นนี้หน้าที่ของทีมซอฟต์แวร์คือการสนับสนุนธุรกิจหลักของ บริษัท อย่างไรก็ตามทีมซอฟต์แวร์จำเป็นต้องคำนึงถึงวัตถุประสงค์ทางธุรกิจด้วย
ในระหว่างนี้ให้จับข้อเสนอแนะของคุณในแบบที่ไม่เหลือทน ชี้ให้เห็นถึงเทคโนโลยีหรือเทคนิคอื่น ๆ ที่สามารถรวมเข้ากับระบบหรือใช้ถ้า / เมื่อมีการสร้างระบบใหม่และข้อดี / ข้อเสีย วิธีที่คุณทำสิ่งนี้ขึ้นอยู่กับ บริษัท แต่การพิจารณาในภายหลังบางประเด็นบางทีการสร้างวิกิหรือเว็บไซต์ความร่วมมืออื่น ๆ อาจมีประโยชน์
ในธุรกิจที่ไม่ใช่ซอฟต์แวร์ซอฟต์แวร์เป็นค่าใช้จ่ายและทีมซอฟต์แวร์ (โดยเฉพาะโครงการซอฟต์แวร์ / ผู้จัดการโปรแกรม) ควรทำงานเพื่อลดค่าใช้จ่ายในการสร้างและบำรุงรักษาระบบซอฟต์แวร์ให้มากที่สุดเท่าที่จะเป็นไปได้ในขณะเดียวกันก็รองรับความต้องการของผู้ใช้ . ทิ้งซอฟต์แวร์ที่ (เท่าที่ฉันสามารถบอกได้จากโพสต์ของคุณ) ตรงตามความต้องการของผู้ใช้ที่ขัดแย้งกับสิ่งที่เป็นประโยชน์สูงสุดของทีมซอฟต์แวร์
* เพื่อชี้แจงการพัฒนาซอฟต์แวร์ไม่ใช่ธุรกิจหลักของ บริษัท ของฉัน ดังนั้นจึงไม่มีโปรโตคอลภายใน นอกจากนี้โครงการไม่มีเอกสารที่เป็นทางการเลยไม่มีเอกสารข้อกำหนด การพัฒนาเฉพาะกิจมาก
สำหรับฉันแล้วนี่เป็นปัญหา ไม่ผลิตเอกสารไม่พัฒนาเป็นข้อมูลจำเพาะและขาดความมั่นคงมีแนวโน้มที่จะเพิ่มต้นทุนในการพัฒนาซอฟต์แวร์ การทำงานเพื่อแก้ไขสิ่งนี้จะเป็นสิ่งที่สำคัญที่สุดของฉันและฉันจะทำเช่นนั้นโดยการทำงานกับสิ่งต่าง ๆ เช่นมาตรฐานการเข้ารหัสการควบคุมเวอร์ชันการสร้างรหัสเอกสารด้วยตนเองและเอกสารการออกแบบการติดตามข้อบกพร่องและข้อกำหนดเฉพาะ