Повторне використання коду як проблема
Я думав над цим питанням щодо доставки програмного забезпечення, і я постійно повертався до питання повторюваності та / або відтворюваності . Вони мають значення, тому що якщо ви не повторите проект, то вдосконалити процес, який ви використовували для створення проекту, стає складніше. Інжиніринг передбачає постійне вдосконалення процесів, пов'язаних із проектуванням та будівництвом з метою отримання більш якісних проектів.
Програмне забезпечення може значною мірою покладатися на повторне використання завдяки своїй цифровій формі. Замість того, щоб переписувати модуль, ми просто викликаємо його ще раз або копіюємо в іншу систему. Деякі приклади - це автентифікація / вхід або, можливо, функція реєстрації. Існує багато відомих прикладів для цих категорій, і загальноприйнята мудрість полягає в тому, щоб повторно використовувати те, що існує, а не прокручувати своє.
Деякі порівняння з іншими дисциплінами
Будівництво
Навпаки, будівництво фізичних систем (будівель, мостів) ніде не є настільки багаторазовим. Це правда, що план будинку можна багато разів використовувати для створення однієї копії будинку, але будівництво потрібно виконувати кожного разу. Вирізати та вставити не працює так у аналоговому світі. Креслення мостів менш багаторазові, ніж будинки, оскільки умови майданчика будуть різними.
Майстри будівельники - це експерти, визнані за те, що спроектували та / або побудували десятки, сотні чи тисячі речей у своєму районі. Наприклад, Френк Ллойд Райт , всесвітньо відомий архітектор і дизайнер designed more than 1,000 structures and completed 532 works
. Порівнюйте це з Андерсом Хейльсбергом, який створив "всього" п'ять мов (Turbo Pascal; Delphi; J ++; C #; Typescript). Багато в чому це несправедливе порівняння, оскільки домени різні. Але на широкому рівні кількісно оцінюється виробництво у двох дуже розумних людей сильно відрізняється.
Бойові мистецтва
Бойовики скажуть, що оволодіння рухом виходить лише з тисяч повторень. Після того, як хороша частина цих повторів була зроблена, багато артистів бойових дій дивуються тому, як раніше сприйнята складна ката або форма стала простою. Викладачі цих студентів також помітять, як рух стає більш плавним і цілеспрямованим, а також економією руху. Так само досвідчені бойові артисти здатні швидше збирати складніші ката, ніж менш досвідчені студенти. Досвід повторення дав їм рамки або процес, який дозволяє їм швидше вчитися.
Деревообробка
Деревообробники переживають подібну трансформацію. Виробники деревообробки завжди посилаються на свій перший проект, який вимагав багато ящиків. Якщо вони завершать проект, вони отримають нову оцінку ефективності, яку виробляють складальні лінії. Є й інші переваги, такі як краще розуміння того, як розкласти деталі ящиків на аркуші аркуша, щоб максимально використовувати деревину. Порівняно з любителями, професійні деревообробники здатні швидше спроектувати, запустити та побудувати предмети, які вони робили багато разів раніше. Вони також отримують можливість бачити притаманні проблеми в чужому дизайні, зробивши цю помилку у своїй роботі.
Отже, чи повторне використання програмного забезпечення перешкоджає розробникам програмного забезпечення ставати більш досвідченими?
Багато в чому дизайн та побудова програмного забезпечення завжди є новим. Ми не повторюємо минулих робіт, тому що якщо ми можемо повторно використовувати модуль, бібліотеку чи систему, ми це робимо. Ми бажано розширити існуючу систему, перш ніж переписати всю справу з нуля. Але повторення - це те, що дозволяє знайти ефективність в дизайні та конструкції. Кожен, хто займався спортом чи фізичними вправами, скаже вам, що повторення - це ключ до того, щоб стати хорошим практиком.
Моє запитання: чи здатність повторного використання програмного забезпечення перешкоджає необхідному вдосконаленню процесів та ефективності, що виникає при повторенні проекту?