I'm having problems bringing the software engineering I learned in school into my projects at my job.
The patterns are all easy enough to apply, but coming up with architectures and general class structures is tough for me. It's so open ended and I never know how to approach my projects, with the exception of any project that cleanly fits the MVC architecture.
I've been working on some increasingly larger projects. The end product works because I know testing well, but getting there is hell and going back to add features is worse. My work usually degrades into planning from the applications entry point and thinking through the use cases. This works eventually, but I end up with low cohesion and tightly coupled code. I had enough experience coming out of school to start in a job with more responsibilities than entry level programmers, so I don't have the benefits of learning from a more experienced team.
The problem is I'm very inefficient. My boss said once that if I get these projects out faster and with the same level of testing I can make more.
So I have to teach myself software engineering. I've read a lot of books, but they are a little too abstract; I need something concrete. Where should I go to learn real project software engineering?
EDIT: It may help to know that I sometimes end up with clean code. It either just takes me a really long time to get there, or I give up and hack it cause I know it will work. Most people will say this comes with experience, but there must be some place I can go that says: if your project is like this this and this, try these architectures.