Как известно, способов написать программу существуют тысячи, а способов написать программу качественно — не более одного. Но зачем ее писать качественно? Ведь это удорожает разработку, при этом не приносит никаких очевидных профитов. Наоборот, это даже вредно для компании, потому что: а) на рынке выигрывает тот, кто быстрее выпустит первую версию, а не тот, у кого багов меньше или архитектура продуманнее; б) чем качественнее ПО, тем меньше затраты на его поддержку, тем меньше компания получает финансирования, тем выше вероятность сокращения штатов. Более того, поддержание качества ПО требует наличия квалифицированных кадров, которые редки и весьма недёшевы. Вывод: наиболее верная кадровая политика для софтверной компании — это найм максимально дешевых и наименее квалифицированных программистов («Цикл написать сможете? Ветвления? Вы приняты! Знаете инкапсуляцию, полиморфизм, наследование? Мы вам перезвоним!»). А мне как специалисту рекомендуется писать монолитный и максимально запутанный код. Все правильно?
P. S. Весь этот хайп вокруг качества ПО, вокруг всяких «Code Complete», «Программист-прагматик», культ Agile и Unit Tests, а также ненависть к быдлокодерам, к забагованности софта поддерживается людьми для того, чтобы извлечь максимум выгоды из программиста за счет его личных интересов; подобно тому как школьная пропаганда общественных ценностей: «малышей не обижать», «с детства дружбой дорожить», «и воспитанными быть», любовь, доброта, честность, вот это все — предназначена для того, чтобы в будущем человека было проще эксплуатировать.