Дивіться заголовок, але я прошу з технічної точки зору, ні
Візьміть мою 40-річну племінницю-діву на побачення або вас звільнять.
Дивіться заголовок, але я прошу з технічної точки зору, ні
Візьміть мою 40-річну племінницю-діву на побачення або вас звільнять.
Відповіді:
Щоб випустити на ринок науковий фантастичний трилер Snow Crash Ніла Стівенсона, мене попросили написати "доброякісний" комп'ютерний вірус. "Доброзичливо" буде прикидатися захопленням комп'ютера користувача та заміною екрана на сніг, який називається "сніговою аварією". Через хвилину або близько снігу сніг затухає і замінюється рекламою книги. Розумієте, це було б "доброякісно". Вірус поширився б звичайними засобами, але ніхто не заперечує, тому що, перейнявши їхній комп’ютер, "ви просто отримаєте забавну рекламу, а потім будете полегшені, що з вашим комп'ютером нічого поганого не трапилося"
Мені насправді сказали зробити це у великій світовій корпорації. Мені довелося написати доповідь із поясненням усіх законів, які це порушить, і всіх 17 поганих речей, які можуть статися, якщо вони дійсно змусять мене це здійснити.
"Цей DLL, який ви написали, складає всього 17 кбіт. Чи можете ви додати якийсь код, щоб збільшити його? Клієнт платить нам багато грошей, і ми хочемо, щоб вони отримали свої гроші."
Використовуйте Visual SourceSafe.
"Ви знаєте цю величезну 20-річну програму Cobol, яка містить купи та купи жорстко закодованих правил бізнесу, які більш-менш визначають нашу компанію? Чи не проти ви б перетворити її на .NET?"
Yikes.
Ми вирушаємо жити через кілька тижнів.
Побажай мені успіху..
Ми з братом багато років тому працювали над мультимедійним важким веб-сайтом для дуже відомої рок-зірки .
Коли клієнт побачив сайт, він помітив артефакти стиснення на деяких JPEG і запитав, що з ними не так. Ми пояснили, що зображення потребують стиснення для пропускної здатності і що в даний час зображення стискаються приблизно на 80%. Він образився і щось сказав на користь
Я не потрапив туди, де я сьогодні, займаючись на 80%, встановивши це на 100%.
Ми намагалися пояснити, як це вплине на користувачів, але він нічого цього не мав. Це призвело до найповільнішого веб-сайту "віртуального світу". Це фактично сталося .
Нам потрібно затримати запуск сайту на два тижні, оскільки Меркурій перебуває в ретрограді, і це поганий час для початку нових речей.
Очевидно, прочитавши якийсь журнал бізнесу в літаку про те, як XML була гарячою новою технологією (це було приблизно в 2002 році), один з наших керівників запитав мене, чи використовує наша програма XML, коли я сказав, що ні, він запитав мене, чи можемо ми додати її.
Тепер я не говорю про функцію імпорту / експорту файлів у форматі XML, він просто хотів, щоб вона була частиною архітектури, без будь-якої іншої причини, ніж вона була популярною на даний момент і надала б надійності нашому додатку.
"Зараз імена користувачів повинні бути унікальними, а паролі - ні. Чи можемо ми зробити це навпаки?"
Близько 7 років тому я працював у замовленому магазині програмного забезпечення, який вирішив продати одну із своїх товарів. Це був набір оперативних операцій для певної галузі. Що ж, ця галузь не була відомою надзвичайно технологічною, тому ми якось в кінцевому підсумку надавали сторонню технічну підтримку для своїх серверів та ІТ-інфраструктури, а не передавали її незалежним ІТ-консультантам малого бізнесу.
Одного разу сервер клієнта зіткнувся з пошкодженням диска. Сервер, на якому ми їх продали, був налаштований за допомогою RAID-контролера Adaptec, встановленого для дзеркала RAID 1. Їх база даних додатків була тостами. Вони не виконували резервні копії протягом місяців. Резервні копії, які вони виконували, були непридатними. Вони втратили 8 місяців даних. Вони взяли на роботу ІТ-консультанта, який займався цією слідчою роботою.
Зателефонували телефонні дзвінки, і менеджер з продажу (відомий обіцяючими неможливими функціями), мабуть, сказав їм, що це буде потурбовано, і записав це в контракт.
Менеджер з продажів пообіцяв клієнту, що ми гарантуємо, що база даних додатків та будь-які інші файли, пов’язані з додатком, ніколи не будуть реплікуватися контролерами RAID, якщо файли будуть визнані пошкодженими. Жодна конфігурація також не повинна бути необхідною. Так. Нам сказали доставити цю функціональність за 2 тижні, або клієнт нас звільнить.
Тож менеджер програми - який мав під своїм поясом кілька великих корпоративних продуктів CRM та інші серйозні успіхи в розвитку - і у мене була зустріч із керівником директора та менеджером з продажу. Менеджер програми детально розповідав, як це було шалено, неможливо та шалено неможливо. Менеджер з продажу (військовий досвід) просто кричав би йому в обличчя (буквально!): "Мені все одно! Як важко зробити RAID річ не RAID ?! Їх дані будуть добре на іншому диску, якщо Рейд-річ цього не накрутив! "
Наприкінці цієї зустрічі менеджер програми кинув повідомлення з нульовим днем. Отож, мені зараз це було доручено. Протягом наступного тижня я подав клопотання як Adaptec, так і LSI Logic, щоб надати інженера для проведення конференц-дзвінка, просто посміятися перед обличчям менеджера з продажу.
Зрештою, вони зобов’язалися і стримували кінець угоди. І вони детально розібралися, як це смішно нездійсненно. Хлопець з LSI був особливо суворий - він нічого не цуртував.
Мені не довелося реалізувати цю функцію. Мені довелося реалізувати спеціальну схему захисту, яку запитував клієнт, яка дозволила б їм перемикати будь-який елемент управління додатком - на основі керування за допомогою керування - як видимий, відключений, увімкнений, лише для читання або запису читання-запису . Теоретично було 146 000 комбінацій. І якби ви випадково обгризли сказу ... вимкнення контрольної групи, у вас виникли б випадкові побічні ефекти. Потрібно сказати, що коли мені дали ультиматум, що його потрібно здійснити, я також кинув заяву з нульовим днем.
+1
для "киньте з повідомленням про нульовий день", тому що іноді просто потрібно піти, а деякі люди ніколи цього не отримують і продовжують каламутити.
Вони попросили мене здійснити пошук комерційного продукту, який міг би автоматично і автоматично виправити помилки вихідного коду.
Досі шукаю..з 2001 р. :).
Я колись мав специфікацію клієнта, яка буквально вимагала коду, здатного подорожувати назад у часі.
Мій роботодавець збирав дані для клієнта, і ми повинні були доставляти їх у форматі X з десятихвилинними інтервалами між 9:00 та 17:00, за винятком остаточної доставки, яка була у форматі Y (просто X з іншим колонтитулом). Я зробив саме це ... і вони злякалися. Ми збирали дані з низьким обсягом, і насправді було доставлено лише один-два пункти передачі даних у будь-який день.
"ЗАВЖДИ СПАМИНУВАННЯ З НАМИ ПОДІЛЬНИМ ФАЙЛОМ !!!" вони плакали. "П'ять K'S КОЖНІ ХВІЛЬНІ ХВІДКИ ВКЛЮЧАЮТЬ НАШІ БАНДУТИ!"
Добре. Отже, мій код перевірявся кожні десять хвилин і доставлявся лише в тому випадку, якщо було що доставити. Досить справедливо.
"АЛЕ ОСТАННІЙ ФАЙЛ МОЖЕ БУТИ В ФОРМАТУ Y !!!" вони кричали. "СУЧАСНА ТЕХНОЛОГІЯ ПЕРЕГЛЯДУЄТЬСЯ І ЗЛУЖИТЬ НАМ! ВИПРАВЛІТЬСЯ АБО МИ БИМО ВАМ З МАСТОДОННОЇ ПЕЧЕЛОЮ! *"
(* - Можливо, я неправильно запам'ятовую частину розмови.)
"Отже, я можу доставити файл лише в тому випадку, якщо є нові дані."
"ТАК."
"І кінцева доставка цього дня повинна мати інший формат файлу."
"ТАК."
"За винятком того, що я не можу знати, який файл буде останнім до кінця дня."
"ТАК."
"Тож єдиний спосіб для мене реалізувати це - написати код, який в кінці дня відходить назад, щоб повторити формат того, що виявилося остаточною доставкою".
"МОЖЛИ ВИ ВІДПОВІДИТИ СПОРТИВНІ ОГНОШЕННЯ? Ми бачимо НАЗАД до майбутнього.
Я частково відмовився, оскільки порушення причинності - це неетична практика програмування, частково тому, що CPAN.org не мав модуля, який би дозволив мені це робити. (Я перевірив.) Врешті-решт, вони дозволили мені в кінці дня надіслати файл у форматі Y, незалежно від того, мав він чи ні фактичні дані. Я впевнений, що їх пропускна здатність пережила хіт.
+1
бо "порушення причинності - це неетична практика програмування". Тепер є правило, яке потребує більшої уваги.
Без будь-якої помітної причини мене привели на приватну зустріч і сказали не перевіряти, чи за моїм комп’ютером ведеться моніторинг - в тому числі, ніколи не перевіряючи мене менеджера завдань з будь-якої причини. Я запитав, чи вони контролюють мій комп’ютер, і мені відповіли (приблизно) "це просто превентивна річ - ви знаєте, наш юрист сказав нам розповісти працівникам про це - але ви знаєте, ми не можемо сказати справді - - але я зараз не стежу за цим ".
(поштовху, я думаю, що вони стежили за моїм комп’ютером, тільки не тоді, коли мені казали не шукати жодних програм моніторингу. Насправді через кілька тижнів я прийшов рано і буквально спостерігав, як миша рухається по моєму екрану, ніби віддалений - тому я зазирнув у вікно генерального директора і побачив, як він віддалено клацає на своєму комп’ютері зі свого ноутбука.
Я колись довго тривав "дискусію" з гострим босом, який наполягав на тому, щоб ми могли зберігати 2 у типі даних, тому що це "лише одна цифра".
Найрозумніше, про що мене просили, - це, мабуть , перезаписане дуже великого проекту. Це було близько 350 тис. Рядків, усі на C (з невеликим perl, змішаним для "помічників"), і добре працювали, незалежно від того, що з цим робили клієнти.
Майже через рік у нас було:
По суті, ми не досягли нічого, чого розумного рефакторингу не вдалося виконати. Але мій начальник був щасливий, ми позбулися сценаріїв-помічників.
Я вважаю це найжахливішою марною тратою часу та існуючим кодом, який я коли-небудь бачив.
Клієнт: Ми користуємось вашим програмним забезпеченням для баз даних протягом декількох років, розробляємо власні додатки з ним та час від часу закликаємо вас на допомогу.
Я: Так, ми цінуємо ведення бізнесу з вами.
Клієнт: Так. Кожен раз, коли ми дзвонимо, ви кажете нам, як використовувати нову функцію, або ви допомагаєте нам налагоджувати використання, або надаєте вирішення якоїсь проблеми.
Я: Звичайно, ми завжди раді допомогти.
Клієнт: Інколи ваш продукт має фактичну помилку, і ваша компанія виправляє його та надає нам оновлення програмного забезпечення.
Я: Ми робимо все можливе.
Клієнт: Ну, що нам зараз потрібно від вас - це певна впевненість, що у нас більше не буде проблем.
Me: . . .
Мене попросили написати у презентації нашого програмного забезпечення великому багатонаціональному потенційному клієнту, що ми використовували техніку кодування «код спагетті».
Звичайно, ми в Італії ... звучить добре.
Зміна кольорів виділення синтаксису відповідно до тих, які використовуються в системі управління версіями.
Подивимось:
Напишіть програми на C ++
Чи можете ви взяти цей 10-сторінковий звіт, який я попросив вас підготувати як текстовий документ і внести його в презентацію Powerpoint, оскільки я дійсно візуальний мислитель і насправді не прочитає письмовий звіт, який я просив вас скласти?
Гаразд, я хочу, щоб ви просканували цю картину будинку, коли я повернусь, ви зможете показати мені задню її частину.
"Мені не подобається, як працює ця база даних Oracle. Чому ми просто не напишемо власну базу даних?"
(Правда, це було понад 15 років тому, але все ж!)
Мене попросили завантажити статті з веб-сайту конкурента всередині рамки, яка буде знаходитись у шкірі нашого веб-сайту, і це виглядає так, ніби воно надійшло від нас.
Для мене було найбожевільнішим (і цілком можливо, найсмішнішим)
Бачите це 10 мільйонів рядків коду в (застаріла веб-технологія)? Напишіть компілятор, щоб перетворити його на робочий сайт Asp.net.
Він ніколи не виплюнув робочу версію (звичайно, я намагався сказати їм, що це непрактично), але все одно було весело.
Однією з головних особливостей програми, яку розробила наша компанія, була можливість пошуку великої кількості документів за повним текстом документа. У маркетинговій презентації один із наших клієнтів конкурент висунув таку заяву,
Наша технологія пошуку є кращою, оскільки вона не просто шукає текст документів, а також шукає "біти та байти" фактичного файлу у двійковій формі.
Вони давали смішний приклад того, як репрезентації слів десяткових слів "черевик" і "човен" були набагато менш схожими, ніж ті самі слова у двійковій формі, коли ви порівнювали фактичні числові цифри у поданні. Тож пошук на основі 1-х та 0-х точніше відображав, наскільки подібні ці два слова виглядали візуально, і таким чином покращував згадування.
Природно, що я мав завдання дослідити цю методику, яка, напевно, була результатом того, що хлопець, що продає маркетинг, десь зовсім не зрозумів програміста, і склав відповідь, яку ми могли б включити до нашої пропозиції.
Невелика команда програмістів, бос хоче, щоб ми створили систему бронювання квитків для невеликої авіакомпанії (звичайно, в дуже короткі терміни). Команда каже:
- як ви можете собі уявити, нам знадобиться кілька тестерів для цього проекту
Бос каже:
- не хвилюйтесь, вчіться у автомобільної галузі. Час від часу вони згадують машини: користувачі будуть робити тестування.
Я був частиною команди підтримки мейнфрейму, яка здійснювала зміну з іншими командами підтримки в центрі обробки даних. Після зміни ми зазвичай проводили інструктаж з менеджерами та командою наступної зміни. Одного разу наш новий директор з'явився і поставив питання: "Чому середнє завантаження процесора під час вашої зміни було всього 72%, тоді як попередня зміна показує близько 95%? Я думаю, якщо ми постараємося реально, ми могли б врешті досягти 100% завантаження процесора! "
Близько 12 років тому, коли я навчався в коледжі, я працював над додатком для моделювання даних для Windows. Проект був майже завершений після близько 60 000 рядків коду Win32, як відомо, код орієнтований на платформу Windows. Потім клієнт сказав, що програму також потрібно запустити "в Інтернеті". Їй важко було зрозуміти, як ця одна «незначна невелика» вимога може мати такий великий вплив на проект. Я почав з нуля на Java, але закінчив виходити з проекту, перш ніж він був закінчений.
Я працював над великим проектом у 1996 році, де ми забили спортивні змагання наживо. Ця розмова сталася:
Бос: Вийдіть до місця проведення наступного заходу.
Я: Що мені потрібно робити.
Бос: Будьте там про всяк випадок.
Я: На всяк випадок, що?
Бос: Якщо технічний провід втратить його. Він занадто підкреслений, і я не знаю, що він може зробити.
Я: А якщо він його втратить, що ти хочеш, щоб я зробив?
Бос: Просто виведіть його звідти, щоб усі інші могли продовжувати працювати. Мені все одно, як ти це робиш.