Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

In our organization some of the resources (such as QA machines etc) are shared. Different folks get done at different times and some tests have to be run (during dev and QA) on these machines. Right now, we just skype a message to the team stating "I am going to run some destructive tests on such and such machines - let me know if anyone has an issue". This approach obviously has many issues (what happens if someone missed the message etc.) Apart from maintaining a shared google doc that needs to be constantly updated - is there an easier way that folks use for such coordination?

share|improve this question

closed as too broad by gnat, GlenH7, Michael Kohne, Bart van Ingen Schenau, MichaelT Mar 19 at 12:53

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.

    
Sharing your research helps everyone. Tell us what you've tried and why it didn’t meet your needs. This demonstrates that you’ve taken the time to try to help yourself, it saves us from reiterating obvious answers, and most of all it helps you get a more specific and relevant answer. Also see How to Ask –  gnat Mar 18 at 18:57
    
You could require people to book the resources through Outlook, or something like that. People would be able to see who's using which machine, and when. –  FrustratedWithFormsDesigner Mar 18 at 19:05
    
Why not simply run your tests in a virtual machine? Then you won't affect anyone else. –  Robert Harvey Mar 18 at 19:44
    
Hi gnat, So far as I mentioned, we just skype message to a group of folks set up. Have not really tried anything further. –  serverman Mar 18 at 23:17
    
Hi Robert, Interesting approach. Would require spawning an entire vm with all s/w installed and stuff. Will give it a thought- thanks! –  serverman Mar 18 at 23:19

1 Answer 1

up vote 0 down vote accepted

A central scheduler is the heavy weight way to go but has several advantages.

If you set up a number of machines (or virtual machines) that tests can be run on (or machines can be spun up when a test is required) then you can have a central queue that people can submit jobs to and it can figure out what machines are free and what resources can be made available for them.

Advantages:

  1. That way you know tests can be run one at once (if they need to be e.g. are destructive).
  2. You can see what is in the queue.
  3. You can schedule regular tests to have an appropriate priority to your new requests for tests.
  4. You can also kill off tests when you know you need to clear the queue for an important test run.

The other big option that I would normally recommend you consider is continuous delivery / deployment but from your question I'm guessing that isn't an option at the moment.

share|improve this answer
    
Thanks - makes sense! Are there any resources you would recommend for continuous delivery/deployment (assuming you start from a legacy system not set up for continuous delivery/deployment)? –  serverman Mar 18 at 19:53
    
Now that is a good question. I've seen chef scripts to deploy (although there is puppet too) and then circleCI for continuos integration. You can then hook it up to deploy to EC2 or something. Even if your real systems are not in the cloud, then I think testing in the cloud can be valuable. –  Encaitar Mar 18 at 21:36
    
Thanks Encaitar - appreciate your help! –  serverman Mar 18 at 21:49

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