The programming environment I use is Xubuntu Linux, with Notepad++ running through Wine emulation. I find Notepad++ very handy for categorizing project files. Its Z80 assembly syntax highlighter makes the code very readable, and its label name completion function saves a lot of time.
I use [[RASM ]] to compile my source code, along with RomInject and BuildCPR to create the Amstrad Plus cartridge files, and 2CDT to create the emulated tape files. This enables me to make modifications to my code and see the results within a few seconds.
I use WinAPE as my Amstrad emulator. Its debugger is very useful for inspecting memory addresses.