shortcut to open multiple programmes and have them open a specific file
The short answer is yes. The longer answer is, it can be done more then one way.

I'd probably opt for a bash script and wrap it in a application bundle using Platypus, although you can use a Run Shell Script action in Automator too.

In Automator you might want to try the Watch Me Do action, although that will be slower then just a bash script.

Note that some things you mentioned may not be able to be bash scripted, can't say for sure because I do not use Tower or MAMP, although the others are bash scriptable

I can't give a complete answer as I do not use Tower or MAMP however for Sublime Text, Terminal and Safari the following works for me.

Note that Sublime Text includes a command line executable subl within its application bundle. The typical path might be, /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl and executing it with --help will display its internal help information.

The following script example could be used if you can ascertain the commands necessary for Tower and MAMP.

#!/bin/bash

/path/to/subl --project &lt;project&gt;
open -a Terminal /path/to/the/location/I/want
# Tower commands.
# MAMP commands.
open -a Safari http://127.0.0.1