Шрифт:
Программист — это профессионал; кодировщик — это обыкновенный конторский служащий. Такова моя точка зрения; этот вопрос, однако, все еще обсуждается. Министерство труда имеет промежуточное мнение. При чтении циркуляра министерства может создаться впечатление, что все программисты считаются конторскими служащими, которые не обязаны в своей работе проявлять творческую активность. Им, следовательно, нужно платить сверхурочные!
Решением флоридского суда было признано, что три программиста, требовавшие от своего бывшего работодателя сверхурочных выплат за несколько лет, имеют право не только на возмещение убытков, но даже на их возмещение в тройном размере!
Можно себе представить тот хаос, который начнется, если 10 тыс. программистов фирмы IBM вдруг потребуют оплаты нескольких лет сверхурочных работ в трехкратном размере!
Циркуляр министерства труда только на первый взгляд считает программистов не творческими работниками; циркуляр написан весьма неопределенно, он, очевидно, написан человеком, который не понимает, что такое вычислительная машина и что делают программисты!
Ключевое различие между конторскими служащими и творческими работниками, применяемое в министерстве труда, основано на требовании принимать в своей деятельности ответственные решения. Проектирование и состоит в принятии ответственных решений.
Чтобы стать инженером, нужно окончить университет и пройти специальные тесты. Не так обстоит дело в мире программирования. Поскольку акт проектирования очень тяжело поддается описанию, обучать этому делу так же нелегко. Чтобы стать программистом, не обязательно быть выпускником факультета прикладной математики. Но принимать ответственные решения программисты должны, поскольку они должны вести проектирование. Кодировщики этого не делают.
Процесс проектирования даже на самом нижнем уровне, на уровне кодирования, проектирования алгоритма и структуры данных, остается творческим процессом. Если кому-то нужно написать программу в 100 команд, он должен проектировать и всю программу, и ее отдельные части.
Как организовать программу, где расположить константы, где организовывать проверки — после тела функции или перед ним, — все это принимается во внимание на нижнем уровне. Каким образом должен я разделить 3000 операторов языка высокого уровня на отдельные модули? Это и есть принятие ответственного решения.
Рассмотренные нами этапы процесса проектирования можно обнаружить во всех отраслях человеческой деятельности — в медицине, авиационной промышленности, мостостроении, строительстве и т. д. И в каждой отрасли имеется свой, специфический для нее момент тривиальности.
Это такой момент, когда становится бесполезным дальнейшее уточнение деталей, поскольку все уже знают, как это делается, и дополнительные подробности лишь вносят путаницу при реализации.
Момент тривиальности обычно зависит от сочетания двух факторов — развитости данной отрасли (какое число людей и в течение какого времени работают в ней) и сложности (сколько сил потребуется, чтобы четко описать все, что нужно описывать). Очевидно, что эти факторы воздействуют друг на друга, причем сложность тормозит развитие отрасли.
Разработка программного обеспечения находится в самом начале пути. Мы уже видели всю ее сложность, к тому же это очень молодая отрасль. Возникла она недавно, занято в ней не так уж много людей.
По мере совершенствования отрасли практические методы и конкретные сведения, передаваемые с одного уровня на другой, изучаются и проверяются опытным путем. Со временем они становятся четко определенными. Если накопленный опыт игнорируется или просто плохо используется, проектировщик нижнего уровня сразу заметит, что спецификация имеет серьезные дефекты. Его реакцией на плохой проект будет комментарий: «Это несерьезно!».
В программировании опыт и практические навыки еще не накоплены. Сталкиваясь с недостаточно подробными, неясными или неточными описаниями, проектировщик нижнего уровня не отвергает их, а с большей энергией принимается за реализацию. Не удивительно, что в результате могут возникать и задержки, и отклонения от целей, и путаница, и неудачи.
Из-за отсутствия стандартов, регламентирующих взаимодействие между уровнями, руководить разработкой программного обеспечения приходится с мучительной точностью. Каждая межуровневая связь, каждый уровень имеют слишком много возможностей для развития в самых случайных направлениях.
Когда мы ведем проектирование в области хорошо нам знакомой, когда мы уверены в успехе, мы доводим наш проект до определенного уровня и останавливаемся, оставляя дальнейшее проектирование менее квалифицированным специалистам. В случае достижения уровня, на котором все оставшиеся работы настолько просты, что ничего плохого уже не может произойти, мы говорим, что достигли уровня тривиальности.
Различия в уровнях тривиальности, которые мы можем наблюдать в разных областях человеческой деятельности, связаны с тем, что некоторые из этих областей достигли большего развития, чем другие, а также с разной степенью подготовленности и компетентности проектировщиков и технического персонала, их способности завершить проект после выхода на тривиальный уровень.
Жанры
- Романы
- Приключения
- Детективы
- Техно триллер
- Дамский детективный роман
- Исторические детективы
- Классические детективы
- Шпионские детективы
- Триллеры
- Юридический триллер
- Крутой детектив
- Полицейские детективы
- Медицинский триллер
- Иронические детективы
- Боевики
- Криминальные детективы
- Политические детективы
- Маньяки
- Зарубежные детективы
- Прочие Детективы
- Спецслужбы
- Драматургия
- Фантастика
- Хентай
- Ранобэ
- Сянься
- Дорама
- Уся
- Аниме
- Космоопера
- Юмористическая фантастика
- Боевая фантастика
- Героическая фантастика
- Технофэнтези
- Готический роман
- Социально-философская фантастика
- Попаданцы
- Историческая фантастика
- Ироническая фантастика
- Зарубежная фантастика
- Историческое фэнтези
- Юмористическое фэнтези
- Детективная фантастика
- Эпическая фантастика
- Мистика
- Космическая фантастика
- Фантастика: прочее
- Постапокалипсис
- Научная фантастика
- Киберпанк
- Альтернативная история
- Ненаучная фантастика
- РПГ
- Стимпанк
- Ироническое фэнтези
- Ужасы и мистика
- Сказочная фантастика
- Фэнтези
- Городское фэнтези
- Эзотерика
- Проза
- Военная проза
- Легкая проза
- Сентиментальная проза
- Советская классическая проза
- Антисоветская литература
- Афоризмы
- Эпистолярная проза
- Новелла
- Семейный роман
- Рассказ
- Классическая проза
- Эпопея
- Эссе
- Проза прочее
- Повесть
- Магический реализм
- Современная проза
- Контркультура
- Роман
- Историческая проза
- Русская классическая проза
- Феерия
- Стихи и поэзия
- Юмор
- Дом и досуг
- Рыбалка
- Охота
- Здоровье детей
- Домашние животные
- Воспитание детей
- Отдых / туризм
- Зарубежная прикладная литература
- Прочее домоводство
- Прикладная литература
- Домашнее хозяйство
- Кулинария
- Медицина и здоровье
- Сделай сам
- Спорт
- Хобби и ремесла
- Образовательная литература
- Сад и Огород
- Здоровье и красота
- Развлечения
- Коллекционирование
- Секс / секс-руководства
- Образование и наука
- Боевые искусства
- Органическая химия
- Обществознание
- Военная история
- Ветеринария
- Ораторское искусство / риторика
- Физика
- Химия
- Семейная психология
- Военная техника и вооружение
- Иностранные языки
- Прочая научная литература
- Психотерапия и консультирование
- Биохимия
- Cпецслужбы
- Астрономия и Космос
- Школьные учебники
- Учебная и научная литература
- Учебники
- Государство и право
- Психология
- Литературоведение
- История
- Научно-популярная литература
- Политика
- Детская психология
- Юриспруденция
- Шпаргалки
- Педагогика
- Физическая химия
- Медицина
- Биофизика
- Языкознание
- Зарубежная образовательная литература
- Зоология
- Геология и география
- Краткое содержание
- Зарубежная психология
- Саморазвитие / личностный рост
- Технические науки
- Религиоведение
- Военное дело
- Личная эффективность
- Аналитическая химия
- Рефераты
- Экология
- Философия
- Альтернативная медицина
- Математика
- Культурология
- Военное дело: прочее
- Ботаника
- Биология
- Словари и Энциклопедии
- Финансы и бизнес
- Отраслевые издания
- Бухучет и аудит
- Недвижимость
- Деловая литература
- Ценные бумаги
- Внешнеэкономическая деятельность
- Торговля
- Зарубежная деловая литература
- О бизнесе популярно
- Стартапы и создание бизнеса
- Корпоративная культура
- Управление, подбор персонала
- Маркетинг, PR, реклама
- Личные финансы
- Работа с клиентами
- Менеджмент
- Интернет-бизнес
- Поиск работы, карьера
- Малый бизнес
- Делопроизводство
- Государственное и муниципальное управление
- Банковское дело
- Экономика
- Книги по IT
- Техника
- Древние книги
- Документальное
- Прочее
- Интерьеры
- Газеты и журналы
- Театр
- Музыка
- Комиксы / манга
- Зарубежная классика
- Современная зарубежная литература
- Изобразительное искусство, фотография
- Мода и стиль
- Искусство и Дизайн
- Зарубежная литература о культуре и искусстве
- Фанфик
- Подростковая литература
- Шахматы
- Кино
- Культура и искусство
- Недописанное
- Классическая литература
- Без Жанра
- Народные
- Книги Для Детей
- Детские остросюжетные
- Сказки
- Детские стихи
- Прочая детская литература
- Детская образовательная литература
- Книги для дошкольников
- Детская фантастика
- Детские детективы
- Книга-игра
- Детский фольклор
- Буквари
- Детская проза
- Детская познавательная и развивающая литература
- Внеклассное чтение
- Зарубежные детские книги
- Детские приключения