I am a freelance Magento developer, based in Spain. One of my clients is a Germany based web development company and they're asking me something I think it's impossible. OK, maybe not impossible but definitely not a preferred way of doing things.
One of their clients has a Magento Entreprise installation, which is the paid (and I think proprietary) version of Magento. Their client has forbidden them to download the files from his server. My client is asking me now to study one particular module of the application in order to interact with it from a custom module I'll have to develop.
As they have a read-only ssh access to their client's server, they came up with this solution: Set up a desktop/screen sharing session between one of their developer's station and mine, alongsides with a skype conversation. Their idea is that I'll say to the developer:
show me file foo.php
The developer will then open this foo.php file in his IDE. I'll have then to ask him to show me the bar method, the parent class, etc...
Remember that it's a read-only session, so forget about putting a
Zend_Debug::log() anywhere, and don't even think about a xDebug breakpoint (they don't use any kind of debugger, sic). Their client has also forbidden them to use any version control system...
My first reaction when they explained to me this was (and I actually did say it outloud to them):
Well, find another client.
but they took it as a joke from me. I understand that in a business point of view rejecting a client is not a good practice, but I think that the condition of this assignment make it impossible to complete.
At least according to my workflow. I mean, the way I work or learn a new framework/program is:
- download all files and copy of db on my pc
- create a git repository and a branch
- run the application locally
- use breakpoints
- use Zend_Debug::log()
- write the code and tests
- commit to git repo
- upload to (test/staging first if there is one, production if not) server
I have agreed to try the desktop sharing session, although I think it will be a waste of time. On one hand I don't mind, they pay me for that time, but I know me and I don't like the sensation of loosing my time. On the other hand, I have other clients for whom I can work according to my workflow.
I am about to say to them that I cannot (don't want to) do it. Well, I'll first try this desktop sharing session: maybe I'm wrong and it can actually work. But I like to consider myself as a professional, and I know that I don't know everything. So I try to keep an open mind and I am always willing to learn new stuff.
So my questions are:
- Can this desktop-sharing workflow work? What should be done in order to take the most of it?
- Taking into account all the obstacles (geographic locations, no local, no git), is there another way for me to work on that project?