Хакер писал(а):...хватит приводить в качестве основного фактора - временной фактор. Дескать, быстро.
У нас на краю города возводят новостройки. Быстро, с применением новых технологий. Таджики строят. 9 этажки, и самая толстая стена в этом доме- всего лишь в два кирпича. Потом к тонкой стене приклеивается изовер (утеплитель) и всё это зашивается декоративными панелями. Выглядит красиво, сделано быстро (как ваши программы), и даже зимой тепло. Между тем, в одном из этих домов появилась 9 см. трещина. Потому что нарушили нормы, потому что не провели исследование состояния грунта. Потому что быстрее сделать надо было, чтобы отчитаться и набить карман.
Хакер, мне очень понравилось твое живописное сравнение со строительством дома
Смутно помню анекдот на тему "Если бы программисты строили дом" (кстати, если у кого-то есть ссылочка на него -- скиньте плиз).
Но, как ни странно, идея быстрее сделать, отчитаться и набить карман мне тоже нравится. Программа -- не дом, людей не привалит.
ИМХО, главное -- реализовать функционал. Пусть даже реализация будет далеко не самой оптимальной, но если скорость/удобство работы удовлетворяет заказчика, то все останутся довольными. Заказчик программой, а программист звонкой монетой в кармане.
А еще мне нравится идея "Good enough software", которую исповедуют в Майкрософте (так утверждают некоторые), т.е. "вполне нормальный софт", пусть не идеальный, но работоспособный, функциональный и такой, который вовремя удовлетворяет потребности рынка и позволяет "снять сливки" с потенциальных покупателей. И для того, чтобы успеть вовремя и раньше конкурентов придется чем-то жертвовать.
Конечно, мы не в Майкрософте работаем, но все-таки приятней за тот же промежуток времени сделать две (неидеальные) программы и получить за обе вознаграждение, чем одну, но "идеальную". Хотя насчет "приятней" я, наверное, неправильно выразился, скорее "выгоднее с материальной точки зрения". Ну а программирование для души и "вылизывание" программы лучше отнести к разряду "хобби", а не к ремеслу программиста.
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.