We should provide docker image and a docker file that contains all necessary dependencies that one needs for development. In addition there should be a Dockerfile that can be used for development where the sources are (bind-)mounted into the container. A typical workflow should consist out of a wrapper script that starts the container, takes care of the bind mounts and runs cmake if necessary.
People that want to get started with Arrow development on e.g. OS X will spend a long time setting up the environment. I hope this lowers the barrier for a first contribution a bit.