bepanda,
The quick answer, as others pointed out, is: yes, you can. You'll have to go through a careful survey of all the resources being used by your application - and that might need to be replicated across the many installations. Depending on the size of your project, and the number of resources, that can be a bit of an annoyance and time-consuming, but the good news is that you do that once, and as long as you don't change that resource set that much, youŕe likely to be ok with that.
In my experience, though, the big challenge here is the human factor, not the technical one. Developers tend ot be very lazy and too self-confident, which can be a good thing in many situations, but it comes to lousy results in system administration.
I have been a WAS admin in a company where they did exactly that what you are asking. Every now and then they would come in despair because "nothing was working, this websphere server is a crap", only for me to find out they had deployed one version over another, or someone had forgotten to change one context root or some other configuration.
If you don't have solid build AND deployment procedures, I would say you are asking for trouble. If any of these installation-specific settings is manually set upon deployment, one day someone will forget - because he/she is in a hurry because of the deadline which will cost zillions of dollars, and will screw things up and blow the deadline and the money in one blow. Believe me, I've seen it happen.
There are other potential pain points here:
- developers usually move from one sub-team to another quite easily, after a while it's quite easy to have a developer wasting lots of time because he/she is using the wrong URL here or there - after switching the URL a dozen of times, it's not a hard thing to happen.
- depending on your application interfaces, and I am thinking web-services here, ou might have to replicate the multiple isntances in other systems to be able to effectively test the application
- if you don't have a solid branch-policy in your SCM repository, it's also easy to have one team stepping over the other(s) team(s) toes
- some developers use customized settings in their own developing environment, because they feel more comfortable with them. That's ok, but sometimes this may lead to situations where one's environment is not suitable for testing the whole application. Thus, you should not fully trust any of the developers' environemnt for testing purposes, thus, I'd recommend an additional installation, one in which the application is pulled from the lastest commit in version control, built and deployed, without any human intervention. Then you can test integration among the different development branches.
To name a few. Naturally, your mileage may vary. If you have a highly disciplined team of developers, you can scratch most of what I wrote. Just my $0.02.
Cheers,
Alexei