We have Development department and the department of System Engineers that works on a big project (development of J2EE application).
We are using Build management system, Bug tracking system and a Wiki engine in our work.
Sometimes we have a situation when some developer initiate a server restart or an application build that breaks the debug process for other developers (in some cases developers using the same remote Developer server).
At the present moment we are using the chat application for approving the process of restartrebuild server (application).
Can anyone share the experience of solving collision like I described above?
My vision is to use application which was able to do the following things:
- create request for server restart (or application rebuildredeploy);
- subcribing for notification on “new request created” event;
- manual approving the request (by several members) and automatic approving of request (in case nobody declined the request during the some period of a time);
- subcribing for notification on “the request is approved” event;
- the request solving;
- subcribing for notification on “the request is solved (done)” event.
It looks like the request has its own lifecycle or workflow.
I think that some Bug tracking system (for example, by Atlassian Jira) can help to create the request and can start the workflow on it. But this solution does not look perfect (even good) for me – its too “heavy and bulky”.
Simple. Stop sharing the same development server. Give each developer his own environment in which to develop. This can be on their own box, or a VM each on the server.
Then the existing ‘dev’ server gets renamed to ‘integration server’ and it is used as a quality check after development code is merged from a developer’s branch to a mainline branch/trunk.
Never bother with a “workflow” solution to a problem like this, you’ll introduce a lot of process that will just serve to slow your developers down so they are less productive. Your solution in particular requires co-operation for all the other developers, who may well not bother to look at the requests, or worse will just say “no, my work is too important to be interrupted” which immediately blocks the dev who wants to update the system.
2