Вони називають це справжнім світом ™ не просто так.
99% того, що ви зіткнетесь у реальному корпоративному світі, вважатимуться лайнами, і це я поясню. 1%, які не вважаються лайнами, з часом перетворяться на лайно.
# 1 Написати код, №2 ????, # 3 Прибуток!
По-перше, підприємства існують для отримання прибутку, вони не існують для створення гір ідеально теоретично чистого дизайну та незайманого академічного коду, розміщеного в золотих сховищах досконалості. Навіть близько, навіть не ті, хто продає вихідний код, який вони виробляють.
У діловому світі код - це засіб для досягнення мети . Якщо якийсь код вирішує проблему бізнесу і заробляє більше грошей, ніж коштує створити та підтримувати, то для бізнесу це бажано. Робота з вами для написання коду - лише один із способів отримання коду для бізнесу.
Теорія 0 - Практика ∞
В ідеалі технічне обслуговування повинно викликати велике занепокоєння, але зазвичай це не так, оскільки за короткий термін воно не виграє фінансово. У довгостроковій перспективі програмне забезпечення зазвичай має порівняно короткий життєвий цикл, особливо веб-додатки, вони швидко застарівають і частіше переписуються.
У домашній лінійці бізнес-додатків - це ті, які сприймають як те, що сприймається як нескінченні проекти зомбі через багато причин, що базуються на імпульсі. Ці проекти - це фактично успіхи, які вони продовжують, оскільки вони продовжують отримувати прибуток від бізнесу.
У теорії немає різниці між теорією та практикою. На практиці є. - Йогі Берра
Теоретично ідеально сконструйовані абсолютно чисті незаймані кодові бази зі 100% кодовим покриттям повинні економити гроші компаній, на практиці це навіть не наближається до доставки будь-якої речі, близької до дійсної віддачі від інвестицій.
Фізика життєвого циклу програмного забезпечення
Також у світі програмного забезпечення існує надзвичайно потужна ентропійна сила. Це чорна діра неминучості, яка засуджує все програмне забезпечення перероджуватися у Велику кульку грязі .
Чим далі ви починаєте від BBM, тим краще, але кожна програмна система з часом потрапить туди, даючи достатньо часу. Наскільки швидко ви наближаєтесь до 100% ентропії, визначається з того, з чого ви починаєте і наскільки швидко ви накопичуєте технічну заборгованість і наскільки високі відсотки до неї.
Програмні системи вироджуються і загнивають через технічне обслуговування, а не через його відсутність. Система, яка існує роками без змін коду за визначенням, відповідає всім її вимогам і цілям і є успішною.
Саме системи потребують постійних змін, оскільки вони почали наближатись до максимальної ентропії - це ті, які постійно ткнуться і продаються, і саме технічне обслуговування прискорює негативні зміни.
Good Enough - достатньо добре
Системи короткого життєвого циклу, такі як веб-сайти, які постійно змінюються, не виграють від дорогого величезного передового дизайну, 100% покриття коду в одиничних тестах, оскільки час амортизації занадто короткий, щоб компенсувати витрати.
Системи тривалого життєвого циклу, як вищезазначена внутрішня лінійка бізнес-додатків, теж не отримують користі від масштабних інвестицій у 100% тестування блоку покриття коду, оскільки швидкість зміни впродовж життя проекту наближається до постійної, яка майже до нуля. нелінійна мода.
Ось чому важливіші плани на кінець життя , і системи заміни слід планувати так само, як щось вивільняється, а не тоді, коли воно пройшло кілька років, і непідтримується, тому нову систему потрібно прискорити.
Наскільки я знаю, вони не вчать про BBM, я ніколи не стикався з недавнім випускником CS, який знав, що це таке, тим більше чому це відбувається.
Ось чому Good Enough є Good Enough , нічого більш-менш не є.
Програмне забезпечення Slumlords
Нещодавно є лорди з нерухомості, які приносять прибуток на зруйнованих ними будинках. Отримайте більший прибуток, ніж витрачаєте на додаткове утримання збитого майна. Якби не вони, вони зруйнували будівлю та замінили її. Але вони цього не роблять, оскільки додаткові витрати набагато менше, ніж капітальний ремонт або заміна всієї будівлі. Також є клієнти (орендарі), які готові платити за збільшене майно.
Жоден власник будівлі, лорд-господар або не збирається витрачати гроші на нерухомість лише через деяку академічну концепцію досконалості, яка не означає значного прибутку над пов'язаними з цим витратами.
Жоден клієнт не збирається платити за оновлення програмної системи, яка працює на них прийнятно. Жоден бізнес не збирається витрачати гроші на просто написання та перезапис коду, щоб не отримати істотного прибутку.
Microsoft є найбільш домінуючим та найуспішнішим програмним забезпеченням. Windows не почала отримувати основні фундаментальні переписування ще зовсім недавно. І вони досі не скинули весь застарілий код з ядра. Для них це не має сенсу для бізнесу, люди більш ніж готові прийняти низьку планку очікувань, яку вони поставили за останнє десятиліття.
Прогноз
Це було зразком протягом 20+ років, я працював у розробці програмного забезпечення. Це не скоро зміниться. Це не так, як люди хочуть, щоб це було поза якоюсь системою переконань, це реальність зовнішніх сил для бізнесу. Бізнес стимулює прийняття рішень, прибуток - це не зло, вони платять вашу зарплату, короткострокове або довгострокове бачення не має значення, це короткострокова галузь постійних змін за визначенням. Той, хто сперечається з достатньою мірою для отримання прибутку , не розуміє бізнесу.
Я витратив 15 років на консультації і дуже швидко дізнався, що досить добре було саме це, і все інше коштувало мені грошей. Так, я хотів, щоб речі були ідеальними, але якщо ви не продаєте базу коду, яка 99,99999% часу, коли ви продаєте рішення , весь цей префект чистого організованого елегантного коду втрачається, і ви просто витратили свій час, за який ви ніколи не отримаєте компенсацію. .
Прогрес і надія
Спритні методики - це хороший крок у правильному напрямку, принаймні з філософського. Вони звертаються до хаосу та постійних змін як громадянина першого класу і приймають його. Вони відкидають догматичні практики, визнаючи, що методології та практики повинні змінюватися, а також вимоги та технології.
Вони приймають ентропію, яка вводиться через брак часу або мінливі вимоги, зміну персоналу та життєдіяльність програмної системи з концепцією технічної заборгованості.
Але Agile не є панацеєю, вона не збирається змінювати фундаментальні закони фізики, і кодові бази будуть гнити незалежно. Керівництво планує розібратися з гниллю, перш ніж воно повністю вийде з-під руки і не може бути керованим.
Agile, коли це зроблено правильно, допомагає керувати ентропією, сповільнювати її, відстежувати, вимірювати та боротися з нею заплановано. Це не зупинить це!
Рішення про кар’єру
Якщо це справжня філософська проблема для вас, ви, ймовірно, повинні враховувати інші варіанти кар’єри, тому що спосіб роботи має за собою справжні ділові заслуги. Проекти з відкритим кодом не мають кращого досвіду, і в багатьох випадках код навіть гірший, ніж більшість корпоративних кодів, які я бачив.