I am part of an organization that is formalizing their software development processes/capabilities/etc. While the organization is not traditionally a software organization, they want to do this right and provide the developers who work in the organization (which includes me) a solid set of tools in which to work from.
In particular, we are looking at standing up: source control, bug tracking software, documentation tools (for the developers – not for end-users), and, in general, project management software (continuous integration, project tracking, code review, software push). Some of the high-level requirements are:
- Free is better. While we will consider purchasing tools, there is so much support in the FOSS community for development tools, I want to look there first.
- Integration across systems. (For example, the bug tracking software should be able to link back to the source control.)
- Easy to Import To and Export From. I do not want lock-in.
- (Relatively) Easy to learn.
At this point, here is what I am looking at so far as my recommendations:
- Source Control – Mercurial or Git – I am personally leaning more towards Mercurial based on my research and the fact that Mercurial appears to be easier to setup in our environment.
- Bug Tracking – I'm at a loss here. I have used Bugzilla in the past, but, it makes me cringe when I use it.
- Documentation – MediaWiki, Screwturn Wiki, Atlassian (of course, this costs money so that is not ideal)
I am looking for other suggestions of productivity tools/development tools that you have used. Please remember that we are a small organization, so I don't want to go over the top, but I do want to give developers good tools to use.
Best Answer
Been through this before. Actually still living in it. You've generally got a good idea of where you are heading -- most folks doing this barely use source control. Alot of exactly what to use depends on which stack(s) you use. Can you share that?
Anyhow, running down your list:
The other angle here would be to ask your developers what they want to use. Or setup some sort of slushy tools fund budget for them. New stuff pops up all the time and it is very, very app/platform/language specific what people want.