PDA

View Full Version : SW dev tools on Mac




jpyc7
Jul 30, 2012, 10:41 AM
Hi,

I'm looking for recommendations for software development tools either on Mac and/or in conjunction with a Linux system as well.

I am setting up for Android development (with just myself as the single developer for now).

Documentation (reqts, design, test) - Pages word processor? I think I want something with better support for UML. In MS Windows, I used IBM Rhapsody (a really expensive reqts tracking tool), Visio, and MS Word.

IDE/Coding/testing - Eclipse/junit. I plan to stick with this.

Version Control - Bazaar? I am new to it and not that thrilled about its integration with Eclipse. I picked bzr over git since it seemed better for someone with svn experience.

Defect tracking - ??? I've used gnats and bugzilla.

Scrum tools - ??? Mostly, I would like to track tasks (product backlog, sprint backlog). I am not too concerned about graphical output like burn-down charts. I've used "trac", a python-based web tool with sql backend, which my last company customized for scrum and not so much for defect tracking. It was okay, but I hope to use something developed specifically for scrum.

My impression is that I might be better off going with just Linux for all development since I prefer free open-source tools, but I already have some tools working in my Mac. Installation on Linux from a major distro seems like less hassle than installing Mac versions. From what I can tell, one cannot download many of these tools from the App store.

Feel free also to "disrecommend" any tools that you think are not very good.

Thanks.



displaced
Aug 2, 2012, 03:44 AM
Documentation (reqts, design, test) - Pages word processor? I think I want something with better support for UML. In MS Windows, I used IBM Rhapsody (a really expensive reqts tracking tool), Visio, and MS Word.

I've not used anything with in-built UML support, but I tend to do my documentation using the wiki pages in my issue tracker (see below).

At work (.net developer), I use xml codedoc comments which are parsed by Sandcastle into a nice website. Not sure what there is on the Eclipse/Java side (javadoc?).


Version Control - Bazaar? I am new to it and not that thrilled about its integration with Eclipse. I picked bzr over git since it seemed better for someone with svn experience.

I've stuck with SVN despite the interest in git/bazaar. If you're already very comfortable with SVN and have experience with the useful tools (WebSVN, etc) that exist, then I'd stay with it.


Defect tracking - ??? I've used gnats and bugzilla.


I use (and love) Redmine (http://www.redmine.org/). Very extensible and has great source control integration.

For example, put the following in your commit log:


Workaround for race condition at startup if no network is available (fixes #1234 @2h)


... and it'll link your commit with ticket #1234, will close that ticket and also log 2 hours work against it.

It's also got a very good per-project wiki with various PDF and HTML export options that makes for good redistributable documentation.


Scrum tools - ??? Mostly, I would like to track tasks (product backlog, sprint backlog). I am not too concerned about graphical output like burn-down charts. I've used "trac", a python-based web tool with sql backend, which my last company customized for scrum and not so much for defect tracking. It was okay, but I hope to use something developed specifically for scrum.


Redmine has a few Scrum-based plugins, but I've not played with them.


My impression is that I might be better off going with just Linux for all development since I prefer free open-source tools, but I already have some tools working in my Mac. Installation on Linux from a major distro seems like less hassle than installing Mac versions. From what I can tell, one cannot download many of these tools from the App store.


For this sort of stuff, the difference between OS X and Linux is pretty similar to the difference between Linux and another *nix such as Solaris. It's no more difficult to get this stuff up and running -- it's just different.

I run Subversion, Redmine, WebSVN and the Jenkins continuous integration server on OS X and found the initial setup a breeze. Most of the 'base' stuff (ruby, mysql, php, perl, python, etc) is part of a default OS X install. Java, whilst not a default install any more, is no harder to install than any other platform.

I mentioned Jenkins CI just now -- I highly recommend having a continuous integration system if you're going to be building software for anyone but yourself. I have mine (both home and work) set up to build on every commit. This gives me the freedom to mess about as much as I want in a debug environment, but get the assurance from Jenkins that the committed code still builds and tests correctly in a release environment. Add some automation for installer builders etc. and you've got a solid release pipeline. Also prevents you doing the classic howler of releasing some code with accidental debugging #define's in there!


Feel free also to "disrecommend" any tools that you think are not very good.
Thanks.

You mentioned 'trac' in your post. We used that for a long time before finding Redmine. We've not regretted the change in the slightest! Not that trac's bad, just Redmine's much better. Redmine's also much friendlier than something like Bugzilla. We have no qualms exposing part of our Redmine site to customers so that they can log issues themselves.

Good luck!

Chris

softwareguy256
Aug 2, 2012, 05:16 AM
sounds like you already have your mind made up so why are you even asking this question.

Hi,

I'm looking for recommendations for software development tools either on Mac and/or in conjunction with a Linux system as well.

I am setting up for Android development (with just myself as the single developer for now).

Documentation (reqts, design, test) - Pages word processor? I think I want something with better support for UML. In MS Windows, I used IBM Rhapsody (a really expensive reqts tracking tool), Visio, and MS Word.

IDE/Coding/testing - Eclipse/junit. I plan to stick with this.

Version Control - Bazaar? I am new to it and not that thrilled about its integration with Eclipse. I picked bzr over git since it seemed better for someone with svn experience.

Defect tracking - ??? I've used gnats and bugzilla.

Scrum tools - ??? Mostly, I would like to track tasks (product backlog, sprint backlog). I am not too concerned about graphical output like burn-down charts. I've used "trac", a python-based web tool with sql backend, which my last company customized for scrum and not so much for defect tracking. It was okay, but I hope to use something developed specifically for scrum.

My impression is that I might be better off going with just Linux for all development since I prefer free open-source tools, but I already have some tools working in my Mac. Installation on Linux from a major distro seems like less hassle than installing Mac versions. From what I can tell, one cannot download many of these tools from the App store.

Feel free also to "disrecommend" any tools that you think are not very good.

Thanks.

Reason077
Aug 2, 2012, 05:25 AM
My impression is that I might be better off going with just Linux for all development since I prefer free open-source tools, but I already have some tools working in my Mac. Installation on Linux from a major distro seems like less hassle than installing Mac versions. From what I can tell, one cannot download many of these tools from the App store.


Pretty much all open-source Linux tools work just fine on the Mac.

For a Mac equivalent of your Linux distro's package manager, check out Homebrew (http://mxcl.github.com/homebrew/) (my favourite) or Macports (http://www.macports.org).

In my own workflow I use a mix of XCode, Eclipse, and open source command line tools.

Cromulent
Aug 2, 2012, 06:33 AM
Frankly I just use Bitbucket or Github to handle task tracking and version control. I have no experience with Bazaar but I do have experience with Git and I'll say that it is quite easy to learn the basics of it which most of the time is all you need. As long as you understand branching, tags and merging in Git you'll be fine.

jpyc7
Aug 2, 2012, 09:13 AM
. . .

I use (and love) Redmine (http://www.redmine.org/). Very extensible and has great source control integration.

. . .

It's also got a very good per-project wiki with various PDF and HTML export options that makes for good redistributable documentation.

Redmine has a few Scrum-based plugins, but I've not played with them.


I mentioned Jenkins CI just now -- I highly recommend having a continuous integration system if you're going to be building software for anyone but yourself.
. . .

Good luck!

Chris

Thanks for your comments, Chris. I definitely want to look into redmine; I vaguely recall that it was something I had run across before too. Especially since it is built on Ruby and I'd like to learn some of that.

I forgot about continuous integration. I "used" Hudson, the predecessor to Jenkins at work, but did not actually set it up. It's pretty easy to forget about all the SW dev tools that one COULD use for best practices, but frequently do not such as code coverage, static checking, memory leak checking, etc. I don't expect to be using these anytime soon.

Pretty much all open-source Linux tools work just fine on the Mac.

For a Mac equivalent of your Linux distro's package manager, check out Homebrew (http://mxcl.github.com/homebrew/) (my favourite) or Macports (http://www.macports.org).

In my own workflow I use a mix of XCode, Eclipse, and open source command line tools.

I will look into these tools. I had vaguely heard of them, but didn't really understand that they are package managers. I mostly used the Mac for consumer software for which Apple provides a good ecosystem.

Frankly I just use Bitbucket or Github to handle task tracking and version control. I have no experience with Bazaar but I do have experience with Git and I'll say that it is quite easy to learn the basics of it which most of the time is all you need. As long as you understand branching, tags and merging in Git you'll be fine.

I have used git with ucLinux (a variant for embedded systems), but it involved the kernel and I had trouble with pulling and merging. I recall my issues (due to lack of knowledge) had to do with auto-generated files, which did not have any documentation.

For app-level software, you are probably correct that just the basics are required.