Команда помогает обойти многие грабли. Да, дойти до всего своим умом — полезно, но общение с опытными коллегами полезно не менее. Коллеги помогут не изобретать велосипедов.
в любом случае вы можете использовать Inversion of Control, Dependency Injection, Observer-Listener и прочие паттерны увеличения ортогональности в вертикально связанных системах. Или вот еще AOP — очень удобно для сквознрй функциональности.
А, вот оно что. В посте не было про почасовую оплату.
Вообще это не полностью автоматическое решение. Так как программер должен будет сам назначить на себя задачу именно тогда, когда берется за ее решение.