

How Do You Make Remote Fingers More Efficient? - yourapostasy

There are some clients (usually government-related) where there is an absolute requirement to perform all deployments through &quot;remote fingers&quot;. You literally have to tell a staff member of the client, &quot;type this, click that&quot;, either in-person, over a phone, or over a chat.<p>Does anyone ever do this regularly, and if so, what tools and techniques have you used to make this more efficient?<p>What I have done to mitigate the absolute productivity-death this requirement imposes are:<p>* Work from my own office if feasible.<p>* Use a multiple monitor setup.<p>* Run 2-3 simultaneous web conference sessions, each session with a staffer from the client taking instructions from me over chat. Feed a steady stream of instructions to all sessions.<p>* When there are extensive GUI instructions to perform, jump to audio, then jump back to chat when done.<p>* Schedule out people&#x27;s time available to work with me as far in advance as possible; this usually works out to be about a week.<p>* Determine who is the backup, and ensure management clears them to drop what they are doing and transfer to supporting me should the primary point of contact need to bow out.<p>* Do as much as possible via CLI.<p>* Set up a lab environment where you can mimic what you are about to deploy, as far as possible.<p>* Line up my meals for the day at my desk ahead of time.<p>* When the client staff break for a meal, have them SMS you as soon as they are ready to start again, so they never wait for you to join.<p>* Set up a private server on my side to let the staff members easily upload files and download files from you. Often these environments have extremely restrictive web site filters that make it all but impossible to ship out large trace logs, or to download a utility like PuTTY (seriously).<p>What have I missed?
======
migrantgeek
Why not setup a local lab that mimics the environment as closely as possible
and abstract all work with Fabric, Salt or something similar?

Then you just ship the code you wrote and have then run through the command(s)
you've prepared.

Configure an SFTP server on your end so they can drop log data if needed.

~~~
yourapostasy
I stopped going down this path after the third client in a row who was so
disorganized that "oh, sorry, didn't tell you about that GPO/NAT/firewall...".
Usually after I run smack into it and start asking along the lines of "it's as
if such-and-such is blocking thingamajig". They completely understand that
when they spring these surprises on me, the contract price goes up; it doesn't
faze them in the least, it is part of the landscape for them.

At the same time, they refuse to consider appliances or SaaS-oriented
solutions; everything has to be on-premises and built from the ground up with
them performing the remote fingers (and honestly, performing the steps without
really understanding them).

This seems to be a widespread requirement in US Federal Government contracting
circles, so I'm surprised there isn't some kind of telepresence solution that
lets you type a command and passes it through after the staff member presses
the "y" or Enter key to accept, and prompts in a similar fashion for each
mouse click/drag. Maybe even record each approved step.

------
yourapostasy
Commenting to myself after thinking some more about features I would be
looking for, so I can come back to this in the future.

I do a lot of this by chat; faster and easier than phonetic-alphabet-spelling
commands. So something that timestamps the chat entries.

The chat supports IRC-style /commands so I can enter something like /c to
style the following text in some programmer font so if someone chooses to type
in the command from the chat window they can easily distinguish between
similar characters.

Every client I work with who does this uses only Windows. So create a special
portable PuTTY client that supports some additional features.

Most recently-entered command in chat is placed into a clipboard that only
communicates back and forth with between the chat and the special PuTTY. When
the client pastes in the special PuTTY, the chat colorizes the command to
indicate it has been relayed. There is a setting that lets the client select
if the clipboard in the special PuTTY is automatically replicated to the
system clipboard, or only copied from/to the system clipboard when an
appropriate Edit menu item is explicitly selected. If the client highlights
anything in the PuTTY, it can be retrieved via the chat without asking the
client to paste it into chat.

The special PuTTY relays the output (but not keypresses) to this mythical
application so there is a complete log. Not just that, but timing information
is also preserved, so a real-time replay can be performed if necessary.

Something that scrapes the UI objects and organizes them in both alphabetical
and closest-to-mouse lists.

The chat session has auto-complete, auto-suggest and history for previous
entries. The auto-complete and auto-suggest are sensitive to the GUI items
that can be located and will show a suggestion list depending upon a selected
toggle when a GUI element marker is keyed into the chat. This makes it easy to
enter "Radio button Foobar". A mirrored session with the GUI items that could
be picked that are hot-linked would let you just click on an item and it would
enter the text into the chat as well.

