Я буду справді тупим ...
- Ви відповідаєте за розробників у цій роботі?
- Ви керівник проекту?
- Скільки «пакетів» мають розробники у проекті?
- Яке виправдання вашого бізнесу для переписування?
- Що це стосується кодової бази, яка робить її абсолютно марною і не підлягає відновленню?
Ви заявили, що ви тільки що почали роботу, і все-таки вже представляєтесь господарем ситуації там. Можливо, я неправильно зрозумів наміри вашого запитання, але у мене складається враження, що ви вступили на роботу, де бачите цілу низку проблем, і ви перейшли до найпростішого висновку, в якому код порушений і єдиний шлях вперед - перепишіть, але чи дійсно ви вважали затрату свого роботодавця на це?
При будь-якій існуючій кодовій базі - незалежно від того, наскільки це стан поганий - власник, як правило, матиме значні інвестиції в продукт (и), який представляє код. З базою коду пов'язані як прямі, так і непрямі витрати, і перезапис часто є останнім, що ви хочете зробити як розробник програмного забезпечення, оскільки ви ризикуєте знецінити кодові активи та отримати таким чином меншу віддачу від усіх своїх попередніх зусилля.
Візьмемо для прикладу операційну систему Window. З кожною новою версією створено великий фрагмент коду, перенесений з попередньої версії. Іноді цілі бібліотеки та API перетягуються протягом декількох поколінь ОС. Чому? Тому що розробники знають, що ці елементи працюють, пройшли перевірку, були виправлені та виправлені, щоб запобігти проблемам із безпекою та пам’яттю, і тому, що вони коштували пекло великих грошей, щоб потрапити в цей стан. Ніхто не хоче викидати робочий код, коли він заробляє на них гроші, навіть якщо витрати на технічне обслуговування відносно високі, витрати на старт з нуля завжди будуть ще вищими, і в такій компанії, як у випадку з Microsoft, у банку є мільярди, які дозвольте їм починати спочатку, якщо хочуть, але вони не хочуть ' t тому, що вони хочуть максимально повернути свої інвестиції. Ваш роботодавець нічим не відрізняється від Microsoft, окрім дефіциту про наявність мільярдів готівкою, щоб кинути на проект.
Таким чином, код - безлад, і звучить так, що між різними сферами компанії існують комунікаційні та межові проблеми. Що ви можете зробити з вами з колегами?
Один із варіантів - просто продовжувати роботу в команді та сподіватися на диво в майбутньому. Напевно, це не дуже гарна ідея, і, ймовірно, лише посилить ваші розлади і стрес.
Кращий варіант - просто збити ручки і виконувати свою роботу, але в рамках цього шукайте можливості додати тести для підтримки тих областей коду, які здаються найбільш крихкими, а потім перефактуруйте їх до тих пір, поки вони не стануть стабільнішими. Вам буде легше зробити обґрунтований аргумент, щоб покращити інвестиції компанії, а не сперечатися просто кинути все це.
Ще кращим варіантом є організація як команда, а також забезпечити отримання когось на стороні з достатньою чисельністю, щоб вони могли зробити хороший випадок, щоб дозволити команді більше гнучкості планувати час для поліпшення бази коду. Мені все одно, наскільки зайнята компанія, або наскільки жорстким є графік роботи, завжди виникають випадкові «затишшя» в діяльності, які можна використати для притиснення до покращення або двох. Але ще краще, якщо поліпшення можна зробити, виконуючи інші завдання. Якби це я, я б погодився з менеджером і ознайомив їх з поняттями в деяких канонічних книгах, які читали розробники програмного забезпечення. Чистий кодце, мабуть, той, хто найбільше потребує вашої команди. Посадіть кілька насінин про те, як поліпшити код, і наведіть кілька прикладів того, що ви маєте на увазі. Хороший менеджер побачить значення додавання додаткових удосконалень до коду, особливо якщо ви зможете описати концепцію технічного боргу . Допоможіть вашому керівнику команди або менеджеру скласти хороший бізнес-приклад для поліпшення коду, і вони матимуть кращу мотивацію діяти на ньому.
Також недостатньо сказати, що "код неприхований". Вам потрібно заохочувати своїх колег практикувати кодування чистим весь час та використовувати чисту техніку кодування, щоб заохочувати трохи прибирати вгору. У мене є невеликий плакат, який я роздруковую і вішаю зі стіни свого офісу щоразу, коли беруся на нову роботу. Там написано: "Завжди прагніть залишити код трохи красивішим, ніж ви знайшли". Прямо біля нього я додаю ще одну, яка говорить "Лілії не потрібно позолотити". Вони обидва служать нагадуванням мені, що я завжди повинен намагатися вдосконалити те, що знаходжу, але уникати просто позолочення однієї проблеми з іншою. Масивні переписування часто є найгіршим різновидом «позолочення», оскільки вони часто робляться з неправильних причин. Впевнений, що абсолютно нова версія продукту може бути виправданою в якийсь момент,