Jabber question/remote pair programming...

Daniel Vainsencher danielv at netvision.net.il
Sun Jun 29 01:06:39 UTC 2003


I have an idea for something nice, but I'm not sure how exactly it
should work. Please let me know what you think.

First, the scenario -
I want to program a new feature for SMLoader that requires changes to
SM. I email Goran, and he decides it's worthwhile, but we're not sure
about the API. The ideal thing would be to start pair programming the
changes together. How do we do it?

Well, we each fire up our JabbingBrowser clients. I tell my browser than
my definition of the SM categories should be compared to Gorans
(pointing out his Jabber presence). A window opens up showing the diff
between what each of us have. Because through jabber, he's been notified
I care about his change, every time he accepts a method, I get a notice,
and my diff updates.

As we're chatting, and I give him feedback on his changes in real time,
I decide to start fleshing out my feature, so I can test the API, and
see if something's missing. I tell my JabbingBrowser to stop showing the
diff, and instead slave my code to his. Now, every accept on his side
automatically happens on mine too (with a note to the Jabber client, so
I know what changes). Now I can quickly respond to his new code with my
own code relying on it.

This, of course, can be extended in many ways, to handle multiple users,
asynch changes (what happens when I log off then return and he's been
coding), integration with SUnit (set it to run tests when code updates
arrive) and more features. But does this seem to work well with the
Jabber model? for example, how do we distinguish the code updates from
the chat itself? if so, anyone care to hack up a demo implementation?

Daniel



More information about the Squeak-dev mailing list