One of the first step is to start with some infrastructure as well. I already setup some server on Amazon Cloud, but really needed full solution for Software Configuration Management with some other support features.
I was looking at following goals:
- Source code repository I can easily share with other people. Other considerations where my own SVN repository, Bitbucket or something else.
- Wiki where I can keep all code/project related information such as what needs to be done and so on. Alternative is to run some out-of-box wiki (Confluence, Mediawiki) or some other tools that has embedded wiki such as RedMine or Track.
- I needed some way to keep an eye on code itself and being able to perform code reviews. Alternative could be Crucible.
- It needed to be simple and top work well in distributed environment with people all around the globe included since this is how this might end up. So I opted more for already hosted option them me hosting it.
- Of course source repository clients needs to run on Windows, Linux and Mac.
- I needed Issue tracking system. There are many out there. RedMine or Track have integrated ones, there is of course Jira and Bugzilla.
- Source code repository and code review tools need to work nice with different technologies such as Java, PHP, Ruby, C++, Objective C ...
- Support for simple build and deploy
- Minimize all the effort regarding maintenance of any kind - ideally no effort.
- Enable developers to work in full isolation while working on same modules - so minimal dependencies on other people's work.
- No complex branching, but keep support for different stages of same code and simultaneous work on same modules
- Think about social component of development process and maybe make it a bit more fun if possible
Github simply answers all my requirements and is cheap. I took cheapest plan called Micro for 7 USD per month (1 private user, 5 repos) I will give it a try, will make 3, 4 modules ... will start with some Grails module and then move to maybe Wicket, do some iOS and Android stuff and will see how it works. Will perform deploys to my Amazon server via Capiostrano. If I involve some other people will have to upgrade account to Small for 12 USD per month. Well, if I need developers I will have extra 5 USD per month I guess to invest.
Thanks to Nicola Paolucci with whom I discussed about this and who pushed me toward this decision.