Зараз я перебуваю на платній стажуванні, і мені доручено підтримувати застарілу систему, розроблену декількома розробниками (в різний час) протягом останніх 5 років. Керівництво погоджується з тим, що "система працює на підтримку життя", і я отримую досить регулярні повідомлення про помилки від кінцевих користувачів, які зараз використовують систему.
Система не застаріла, якщо люди все ще користуються нею і підтримує бізнес-діяльність. Оскільки він все ще використовується, бізнес не може просто його викинути - його потрібно підтримувати, поки потреби в системі більше не існує. Це може бути зміною бізнес-цілей, або нова система буде розроблена, протестована та успішно розроблена для кінцевих користувачів.
Дійсно, 5 років не так вже й довго. Я працював з кодом, якому раніше було 10 років. Якщо він все ще обслуговує потреби користувача, навіщо його викидати? Це викидає багато грошей, витрачених на його розвиток. Поки це не стане неможливим зберегти через збільшення витрат або вимоги кардинально зміниться, немає жодної ділової причини відкидати його.
Зараз керівництво хоче продовжити проект на ще один рік, і в цей час майже втричі базу користувачів.
Якщо керівництво каже, що ця система "знаходиться на підтримці життя", чому вони намагаються її розгорнути далі? Загальноприйняте, що роботи з обслуговування тривають у застарілій системі, поки її не замінять, але якщо система закінчується, вона зазвичай не розгортається для більшої кількості людей. Подовження технічного обслуговування - це одне, але додавання користувачів, які покладаються на систему, є різною ситуацією.
Для мене це здається, що насправді це не кінець терміну служби, а скоріше у фазі технічного обслуговування і буде продовжувати існувати, поки система більше не задовольнить потреби користувачів.
Як стажист (або будь-яка позиція початкового рівня) як я "відштовхуюся"? Я вже писав звіт, в якому висловлював свої занепокоєння, хоча у відкритому документі. Чи є протокол або тип документа для пропонування змін? Я в змозі вносити пропозиції, чи просто продовжую підтримувати стару систему?
Вам потрібно продовжувати підтримувати стару систему. Пізніше ви згадуєте, що програмне забезпечення не є основним бізнесом вашої компанії. У таких умовах завданням програмних команд є підтримка основного бізнесу компанії. Однак командам програмного забезпечення також потрібно пам’ятати про цілі бізнесу.
Тим часом, захоплюйте свої пропозиції таким чином, що не надмірно. Вкажіть інші технології чи методи, які можуть бути інтегровані із системою або використовуватися, якщо / коли буде створена нова система, та їх плюси та мінуси. Як ви це зробите, залежить від компанії, але, враховуючи деякі пізніші моменти, може бути корисним створення вікі чи іншого веб-сайту для спільної роботи.
У непрограмному бізнесі програмне забезпечення - це вартість, і команди програмного забезпечення (особливо менеджери програмного забезпечення / програм) повинні працювати над тим, щоб максимально знизити витрати на створення та підтримку програмних систем, підтримуючи потреби кінцевих користувачів. . Викидання програмного забезпечення, яке (наскільки я можу сказати, з вашого допису в будь-якому разі) відповідає потребам користувачів, суперечить тому, що відповідає інтересам команди програмного забезпечення.
* Для уточнення, розробка програмного забезпечення - не основний бізнес моєї компанії. Тому таких внутрішніх протоколів не існує. Крім того, проект взагалі не має офіційної документації, ніяких вимог. Розробка дуже спеціальна.
Для мене це проблема. Невиробництво документації, невдосконалення специфікацій та відсутність узгодженості мають тенденцію до збільшення витрат на розробку програмного забезпечення. Робота над виправленням цього була б моїм найвищим пріоритетом, і я би це зробив, працюючи над такими речами, як стандарт кодування, контроль версій, виготовлення коду самодокументування та конструкторських документів, відстеження дефектів та специфікацій вимог.