Thursday, April 25, 2013

What I'd do with a ScreenHero API

So Screenhero rocks, but I was thinking it would be really cool if it had an API so you could scaffold the interaction between pair programmers collaborating on code.

Imagine that you've got a couple of relative novice programmers who are new to pair programming and to related concepts like TDD.  Think about being able to have suggestions pop up once they had completed certain parts of the task.  You could do this without plugging directly into ScreenHero, but what would be nice would be to ensure that one person did one portion of coding, followed by the other person doing another.

I guess what I should really do first is work out the precise flow of a scaffolded pairing session and then think more carefully about what prompts the users would need, and how to keep track of who's doing the work.  Ultimately we want to be able to have a reliable automated check that actual pair programming is happening rather than just one person doing all the work.

Perhaps having each person check their code into github separately - but that then pulls the pair apart.  I guess it raises the question of how to attribute code changes in a version repository when two people are working on the same file at the same time on one computer ...

Follow up - just watched great talk by Sam Livingston-Gray, which mentioned a pair programming protocols "Ping Pong" and some variations called "Change the Message" and "one-undermanship":


Looks like ping pong protocol goes way back.  I think this is what I'd really like to be scaffolding.

http://c2.com/cgi/wiki?PairProgrammingPingPongPattern

I wonder if the best way to scaffold would be through checkins to a Github repo - then at least you could check in retrospect how people coded ...

No comments: