views:

47

answers:

1

Hi,

I need some help from you guys. Let me explain you what we were doing, first:

We were working on a Windows Application and all of us are integrated with Team Foundation Server. We are done with all application features so now what we are working on is the list of defects that are reported from QA. QA list all their issues on Mercury QC where we see prioritize and assign to our team. On weekend, we update Mercury QC mark all the resolved issues FIXED in this week and provide them a build which is just a copy of our bin\Debug folder.

Now, as things are getting little less stressful we looked back and see how could we get more managed and advance our co-action and ease communication. One more fact is people are working from two different offices. We decided and implemented an agile project management and collaboration wiki tool - Assembla. It gives a separate space for every project and a separate SVN. Migrated from TFS to SVN, we used TortoiseSVN for SVN client and VisualSVN for operating SVN from Visual Studio. Assembla provides a ticketing system which is effective to monitor so QA drop Mercury QC and starting generating new tickets against each bug they found. As they started generating tickets we fix them and update in SVN. NOW THEY NEED TO REVIEW THE FIX AND CLOSE THE TICKET. Provide release against each ticket wouldn't a good solution here. I hope you guys must have a good suggestion on Build Automation. I've also googled and found a combination of CruiseControl.NET + Subversion + NAnt + MSBuild. Can you please guide us how to make a Build Automation environment for our QA so they can easily get the updates and make build for themselves so they don't need to bother us anymore for latest release.

Thanks.

+1  A: 

Can you please guide us how to make a Build Automation environment for our QA so they can easily get the updates and make build for themselves so they don't need to bother us anymore for latest release. It is very easy to setup!!

I would suggest Hudson CI for it's amazing plugins and ease of usability. Check the link here. You could set up your project to build the following ways:

  1. Just at a click of a button for separate environments i.e. on demand builds. Your QA team can just click one button and it can build and deploy the project for them.

  2. Once Code is checked in to SVN repository. Once you check in your fix. The project automatically detects svn check in and starts building and deploying.

  3. Set a schedule for build and deploy (daily or nighty)

  4. You can do remote builds so it is great for distributed teams.

  5. Email notifications can be sent once build is done.

There are tons of features, thanks to all the plugins developed by the community.

And as far as branching structure goes. I think a best practice is only branch once for a release. All the bugs found should be fixed and checked in to the branch. Also, the branches shoyld be merged with the trunk after a short period of time. The benefit of this? Ongoing development work is not affected because of high priority release bugs.

Hope this helps.

sjt
@sjt isn't designed for java based project?
Ramiz Uddin
No this is not just java based. You can use a plugin to use it for c# and .net as well. It is compatible with MSBuild.
sjt