+1 по четвертому пункту. Я как-то работал в офисе с 9:00 до 19:00 (с перерывом в два часа с 13:00 до 15:00) и действительно после 16:00 просто отсиживал часы до 19:00. Рекомендую работодателям, читающим это, обратить внимание на эту проблему.
Стив Макконнелл приводит этот пункт, как пример ошибочного проектирования, что тоже важно. Примеры хорошего проектирования:
Телекоммуникационной компании понадобилось изменить около 3 тысяч строк в базовом ПО объемом примерно в 1000000 строк. Изменения были внесены столь тщательно, что через год работы не обнаружилось ни одной ошибки. Время, которое потребовалось для внесения изменений, включая анализ требований, планирование, реализацию и тестирование, составило 9 часов.
Группа разработчиков ПО для ВВС США взялась реализовать некий проект за год с бюджетом $2000000, хотя другие вполне достойные разработчики предлагали срок до 2 лет при бюджете до $100000000. Когда же эта группа сдала ПО на месяц раньше срока, менеджер проекта заявил, что успех достигнут за счет методик, известных уже несколько лет, но редко применяемых на практике.
Авиастроительная компания разрабатывает ПО для клиентов по фиксированной цене, при этом только 3% ее проектов превышают сметную стоимость; 97% из 100 укладываются в бюджет.
Организация, твердо следующая политике достижения исключительного качества ПО, в течение 9 лет добивалась ежегодного снижения на 39% количества дефектов, обнаруживаемых после выпуска версий; итоговое снижение составило 99%.
Небольшая подборка ошибок в ПО и проектировании из книги Стива Макконнелла «Профессиональная разработка программного обеспечения»:
Космический зонд «Маринер-1» был потерян на пути к Венере из-за ошибки в программировании управления навигацией.
Самолет, выполнявший рейс № 655 иранских авиалиний, был сбит системой «Эгида» (щит Зевса) американского авианосца «Винсенн» в 1988 г. Погибло 290 человек. Поначалу ошибку записали на счет оператора, но позднее некоторые специалисты посчитали причиной происшествия плохой дизайн пользовательского интерфейса системы «Эгида».
Ракета «Ариан-5» взорвалась при первом пуске из-за ошибки в ПО.
Бомбардировщик «Б-2» также не взлетел с первого раза из-за проблем с ПО.
В Лондоне автоматизированная система отправки бригад скорой помощи по вызовам была введена в действие раньше, чем была готова, и полностью рухнула, что вызвало задержки до 11 часов. Новая система отправки бригад стала причиной 20 смертных случаев.
Цутому Шимомура оставил свой автомобиль на парковке аэропорта в Сан-Диего 29 февраля 1992 г. Когда он вернулся через 6 дней, счет за стоянку составил более 3 тысяч долларов. ПО парковки не распознало дату 29 февраля как правильную.
В январе 1990 г. из-за ошибки ПО за 9 часов было блокировано примерно пять миллионов телефонных звонков.
Первый полет корабля многоразового использования был отложен на два дня из-за трудноуловимой ошибки программиста.
Неполадки в системе обработки багажа привели к задержке открытия международного аэропорта в Денвере более чем на год. Потери оцениваются в $1100 000 в день.
Управляемые компьютером паромы в г. Сиэттл (штат Вашингтон) около полутора десятка раз врезались в доки, нанеся ущерб на сумму свыше $7 000 000. Власти штата рекомендовали выделить более $3000000 на перевод паромов обратно на ручное управление.
Налоговая служба США провалила программу модернизации ПО стоимостью $8000 000000, что обошлось в $50000 000 000 несобранных доходов в год.
Улучшенная АСУ Федерального управления авиации (FAA) превысила выделенный бюджет примерно на $3000 000 000.
Когда я впервые услышал эти истории [о неразумном корпоративном поведении], я пришёл в недоумение, однако после тщательного анализа я разработал сложную теорию, объясняющую такое странное поведение. Она заключается в следующем: люди – это идиоты.
Включая меня. Идиоты все, не только люди с низкими интеллектуальными показателями. Единственная разница между нами заключается в том, что мы идиоты по отношению к различным вещам в различное время. Неважно, насколько вы остроумны и находчивы, все равно большую часть дня вы проводите как идиот.
Давайте ещё раз: в примере благодаря грамотной социальной инженерии 95% больниц оказались критически уязвимы.
Думается, что такой высокий показатель связан с полным отсутствием знания у мед. персонала, что подобного рода атаки вообще существуют и возможны. Если дать жесткие инструкции и пару раз в год проводить семинар по безопасности, то можно значительно повысить уровень защиты.
Если ты по каким-то причинам не умеешь анимировать в 3д, то ты странный чел, и у тебя, наверно, родители часто переезжали с места на место. Ну а кодить — понятное дело, все равно, что писать, это будут уметь все.
Это вовсе не означает, что все выучат C++. Просто natural language processing уйдет так далеко, что сможет полностью понимать человеческие языки. Короче говоря, учиться анимировать в 3D и кодить будут машины, а не люди.
Два типа мышления. Вася — продавец, он думает про то, как срубить бабла и, следовательно, про маркетинг, себестоимость и т.д. Петя — художник, он может очень хорошо выполнять свою работу и написать совершенный код.
Каждый должен заниматься своим делом. Продавец должен заниматься продажами, программист должен писать код и с продавцом выстраивать отношения, чтобы его код продавали. В принципе если человек хорошо пишет код, то его с руками оторвут, и будут вкладывать деньги в развитие в некоторых компаниях.
Здраво. Но как не зря говорится — нет ничего более постоянного, чем временное. В реальной жизни на рефакторинг времени может просто не остаться, а потом все это превратится в снежный ком. По возможности лучше учиться сразу делать хорошо. И потом все относительно, может быть ваш говнокод для кого-то суперархитектура и наоборот.
Примерно представляю себе, что они чувствуют. Напомнило ситуацию, когда на удаленном сервере система перешла в режим read-only из-за bad-блоков на диске. Решение было почти аналогичное fsck и перезагрузка. Но перезагружать опасно было, потому что я не знал, поднимется ли при загрузке SSH или система откажется загружаться. Поэтому тоже пытался решить проблему без перезагрузки.
Поэтому он решил, что здесь не обойтись без грязного хака — и он полностью удалил часть кода, которая отвечала за предотвращение столкновений рабочих юнитов с другими юнитами.
Таким образом. рабочие юниты смогли буквально проходить друг сквозь друга, проблему с пробками решили.
© какой-то железячник
Используйте sci-hub.org в таких случаях.
© Эдвард Йордан
Думается, что такой высокий показатель связан с полным отсутствием знания у мед. персонала, что подобного рода атаки вообще существуют и возможны. Если дать жесткие инструкции и пару раз в год проводить семинар по безопасности, то можно значительно повысить уровень защиты.
Это вовсе не означает, что все выучат C++. Просто natural language processing уйдет так далеко, что сможет полностью понимать человеческие языки. Короче говоря, учиться анимировать в 3D и кодить будут машины, а не люди.
Каждый должен заниматься своим делом. Продавец должен заниматься продажами, программист должен писать код и с продавцом выстраивать отношения, чтобы его код продавали. В принципе если человек хорошо пишет код, то его с руками оторвут, и будут вкладывать деньги в развитие в некоторых компаниях.
Отличный пример превращения бага в фичу.