I'm currently in a team where it lacks of its resources. The dev't team had only one websphere server for testing and we could not deploy our project in our local desktop because the websphere is only installed in one unit. Hence, every one is waiting after another in testing their fixes and feature. I tried to ask the manager if we could have our own copy of websphere installed in our local desktop but the manager is questioning us why we need it. I said some of the reason, but I guess the manager is still in doubt.

The question now is, in a development team, is having your own local application server installed in your desktop part of a best practices? how and why? what are the benefits? or what are the cons and pros?

  • 1
    recommended reading: What is the problem with “Pros and Cons”? – gnat Apr 10 '15 at 16:21
  • Hi gnat, thanks for answering, but I looking for the con's and pro's of having a one server instance that used by all the developer for testing – juliusgutierrez Apr 10 '15 at 16:50
  • 1
    @juliusgutierrez I think you are missing the point of gnat's suggested reading. Questions that ask for pros and cons on a given topic rarely produce quality answers and often devolve into a list of "I like X" and "I don't like X". There is too much ground to cover in questions such as these that if becomes a never ending list - not a good fit for the Q&A format. If you could identify the problem you are having that you are looking for a solution to, it would work to make a better question that can get better answers. – user40980 Apr 10 '15 at 17:35
  • Would this question be good quality if he simply removed the pro/con question from it? – Daniel Kaplan Apr 10 '15 at 18:07
  • @DanielKaplan possibly, though I'm not sure exactly what the problem is (the answers seem to be taking stabs at it). The jist of the post seems to be about trying to persuade one's manager that another way is the best way (related: How do I explain ${something} to ${someone}?). I currently work in a "one websphere server, local tomcat" environment - and no, I don't have the license for local websphere. The problem of "we are having trouble testing in websphere because we have to queue up" is a solvable one - but is that the problem? – user40980 Apr 10 '15 at 18:23

Very valid question and my team was in a similar situation - which is why sticking to the core specification of the API in use is so much more important to avoid vendor lock-ins. My answer is assuming you are on a Java stack but you can juxtapose for other language stacks. So yes get local setups for your team but you may not be able to get WebSphere so improvise - here are a few suggestions...

For your local environments I would suggest you deploy you application in Apache Tomcat preferably if you have no application server requirements. If you do have application server requirements consider Apache TomEE.

Other options where you can reduce the dependency on the application (and the web server) is by writing and diverting efforts towards Unit Testing (JUnit or TestNg) - this is reduce dev and deployment times in the long run and also reduce your competition for resources like the one WebSphere server you talked off.

Now the critical part - if in prod you are deploying on WebSphere for whatever reason - you have to test on WebSphere - however infrequently that may be. That is necessary since there are cases where some libraries in WebSphere may conflict with your application libraries and you may have to say adjust the ClassLoader Policy! This is something you can only discover when the application is deployed on WebSphere and not the 2 alternatives I proposed above. Another area that is notorious with WebSphere is JDBC if you use it with JDBC3 types like CLOBs, BLOBs, etc. It does not follow standards and you may have to write some conditional logic for such issues - so you identify the environment weather it is Dev or Test environment and execute conditional logic. If you use underlying container frameworks like Spring unit Testing, Working with a plain web container like Tomcat, and even running conditional environment specific logic/config (called even profiles) is so much easier.

Of course these aren't overnight changes - but since you are loosing time anyways on the shared system you might as well consider investing in some of these suggestions. So as a closing comment - focus on ways to reduce your team's dependency on a proprietary vendor server product even though you have to deploy on it for prod - that is exactly why we have standardized specifications.

| improve this answer | |
  • thanks for your input. I thinking also that having one server for the team will cause the deliverable to delay since testing of each features are in queues. – juliusgutierrez Apr 11 '15 at 3:19
  • I agree being dependant on a limited resource will slow your team down. – Yazad Apr 11 '15 at 14:54

I don't know if it's a best practice but I like to have a development environment as complete as possible. Including application server, database and external applications that are invoked during execution if possible.

This allows me to develop independent from others. I can redeploy and restart servers when I need. I can fill my database with my test data, and restore it when I need. I can install different versions of components. And when I need to debug, I can start a server in debug mode or change the logging configuration.

It also makes it more easy to try new things, like change server configuration settings, or develop automation scripts.

By using virtualization software like Virtualbox, together with tools like Vagrant or Docker, maintaining and sharing preconfigured server instances gets quite easy.

As a start you could try and run a Websphere instance on your development machine. I have worked that way, connecting to a shared database. Perhaps the server is not really fast, but it may be good enough.

| improve this answer | |
  • thanks @kwebbie for you input. The management is asking why would we need a local server on our desktop and I could not give them a valid answer as off why we need it since having a local websphere will be needed a licensed. they're still looking if we could have it. the option that I came up is use an opensource server like tomcat or a websphere developer edition, its free. but still need an approval from the manager. I would like to give them a presentation about the said server. – juliusgutierrez Apr 11 '15 at 3:36
  • According to this www-03.ibm.com/software/products/en/appserv-wasfordev, there is a development server available at no cost. – Kwebble Apr 12 '15 at 22:18

Not the answer you're looking for? Browse other questions tagged or ask your own question.