LearnersGuild / learning-os

The Learning Operating System of Learners Guild. Our applied game and player support.
0 stars 1 forks source link

How should the physical space be optimized for pair programming? #23

Closed tannerwelsh closed 8 years ago

tannerwelsh commented 8 years ago

laptops/pairing stations?

Criteria 1: every learner should have her own keyboard and pointer device

Criteria 2: more privileged students shouldn't have a better experience / learning advantage

Criteria 3: whatever environment a learner is using to learn (e.g., in-person pairing, remote pairing) should be optimized to keep learner focused on task at hand

Option 1: 2 laptops, pairing happens on one learner laptop, 2nd laptop is used for google searches, docs, etc. ($$)

pros: seamless interactions, forces attention on pairing cons: requires bluetooth reconfiguration every time we switch pairs (or else wired devices and at least 2 USB ports)

Option 2a: 2 laptops, pairing happens via software (a la Floobits); each learner has own monitor and laptop for screen real estate, but controls own machine and only syncrhonizes for pairing as necessary ($$)

pros: laptop provides keyboard and pointer device cons: easier for students to get distracted since keyboards / pointers aren't affecting each other

Option 2b: 2 laptops, pairing happens via software (a la ScreenHero); each learner has own monitor and laptop for screen real estate, but controls own machine and only synchronizes for pairing as necessary ($$)

pros: laptop provides keyboard and pointer device cons: easier for students to get distracted since keyboards / pointers aren't affecting each other; clunky pixel-sharing sub-optimal for pairing

Option 3: separate pairing stations, no laptops ($)

pros: less expensive than buying 1 laptop per student cons: students can't work independently unless they're rich enough for their own laptop; causes a sorting based on privilege

Option 4: pairing stations for full pod (12x monitors, 6x machines, 12x keyboards, 12x pointers) plus 1 laptop per learner ($$$$)

pros: best of all worlds cons: more expensive

Option 5: in a pod of 12, assume 6 "free" monitors, 3 pairing stations (3 machines, 6 monitors, 6 keyboards, 6 pointers), and 12 laptops; students can be on a pairing station together or working independently with extra screen real estate, or pairing via software ($$$)

pros: allows for us to observe learner behavior with respect to how they like to work and optimize the environment on an ongoing basis cons: more expensive

Recommendation: Option 5 (depending on budget)

tannerwelsh commented 8 years ago

My "instant runoff vote" would be to order the options thusly: 5, 4, 1, 2a, 2b

I don't think 3 is really viable because of Criteria #2.

https://app.asana.com/0/62830781673321/62830781673321?

[--- Commented from Asana.com

commenter Jeffrey Wescott

---[aa]

tannerwelsh commented 8 years ago

I'd assign the same priority as Jeffrey.

[--- Commented from Asana.com

commenter Tanner Welsh

---[aa]

tannerwelsh commented 8 years ago

Sharyn, please https://app.asana.com/0/47048083292211/71743475308267  Ask Tanner about any technical details.

[--- Commented from Asana.com

commenter Shereef Bishay

---[aa]

tannerwelsh commented 8 years ago

Sure, I can do a comparison of those. https://app.asana.com/0/62830781673321/62830781673321 if you can ping me specs for any of the items, that would be very helpful!

[--- Commented from Asana.com

commenter Sharyn Richardson

---[aa]

tannerwelsh commented 8 years ago

https://app.asana.com/0/49617261930934/49617261930934 will do! Task logged here: https://app.asana.com/0/68600950521261/71775068380795

[--- Commented from Asana.com

commenter Tanner Welsh

---[aa]

tannerwelsh commented 8 years ago

Hi all, I'm a little confused on the configurations and wonder if someone can help me out. Option 4 seems to be the same as Option 5 to me unless I'm misinterpreting something. For option 4, I'm assuming a pairing station is 1 machine, 2 monitors, 2 keyboards, 2 pointers. And by 2 laptops, do you mean for a pod of 12 or for each "pair?"  

I guess another questions is, would you like cost estimates for a pod of 12 for each of the 3 options?

[--- Commented from Asana.com

commenter Sharyn Richardson

---[aa]

tannerwelsh commented 8 years ago

Hi https://app.asana.com/0/49617261930934/49617261930934 sorry for the confusion. I updated the description to make it more explicit; let me know if it's still unclear!

[--- Commented from Asana.com

commenter Tanner Welsh

---[aa]

tannerwelsh commented 8 years ago

Thanks, https://app.asana.com/0/62830781673321/62830781673321, very much helpful! So in Option 1, it would be 12 laptops total?

[--- Commented from Asana.com

commenter Sharyn Richardson

---[aa]

tannerwelsh commented 8 years ago

Options 1, 2a, 2b, 4, and 5 all require 1 laptop per learner. Only option 3 does not.

In addition, Option 4 requires an additional 6 computers (likely a Mac Mini or similar), 12 monitors, 12 keyboards and 12 pointers.

In addition, Option 5 requires 3 additional machines (Mac Mini or similar), 6 monitors, 6 keyboards, and 6 pointers.

[--- Commented from Asana.com

commenter Jeffrey Wescott

---[aa]

tannerwelsh commented 8 years ago

Hi all, I've priced out Options 1, 4 and 5 based on the specs that Tanner gave me. I wasn't sure how many total laptops would be in Option 1 for a pod of 12, so I assumed it would be 18 (12 individual and 6 shared). Let me know if I need to make any adjustments. 

https://docs.google.com/spreadsheets/d/1tiscYMYdCzo4nDIFbRF2YJPCB3jlX03xkkjDFH58Rpk/edit?usp=sharing

[--- Commented from Asana.com

commenter Sharyn Richardson

---[aa]

tannerwelsh commented 8 years ago

https://app.asana.com/0/49617261930934/49617261930934 did you mean option 4 with the 6 shared?

It might be worth considering something like a Mac Mini rather than a laptop for the shared computer.

[--- Commented from Asana.com

commenter Jeffrey Wescott

---[aa]

tannerwelsh commented 8 years ago

No, I got Option 4. I meant with the laptops in Option 1. Should it be 1 laptop for each student (total 12) and 6 shared?

[--- Commented from Asana.com

commenter Sharyn Richardson

---[aa]

tannerwelsh commented 8 years ago

Here's how I read the options:

Option 1: 12 laptops Option 2a/2b: 12 laptops Option 3: 6 "Mac Mini" or similar machines Option 4: 12 laptops, 6 "Mac Mini" or similar Option 5: 12 laptops, 3 "Mac Mini" or similar

[--- Commented from Asana.com

commenter Jeffrey Wescott

---[aa]

tannerwelsh commented 8 years ago

Ok, thanks https://app.asana.com/0/56975740003731/56975740003731 I've updated it accordingly.

[--- Commented from Asana.com

commenter Sharyn Richardson

---[aa]

tannerwelsh commented 8 years ago

https://app.asana.com/0/62830781673321/62830781673321 I'm not sure I understand the difference between what you are proposing and the draft answer. What am I missing?

[--- Commented from Asana.com

commenter Shereef Bishay

---[aa]

tannerwelsh commented 8 years ago

https://app.asana.com/0/56975740003731/56975740003731 fyi. When a design issue in "draft" resolution is assigned to someone, it means it's on them to move it across the line to "solid" or "final" once they feel the answer is sufficient.

[--- Commented from Asana.com

commenter Shereef Bishay

---[aa]

tannerwelsh commented 8 years ago

Weird, I completely read into the answer a "monitor + computer" solution, but reading it again that is not what was proposed. Talk about legacy bias.

Scratch my whole suggestion; I was on the same page and I didn't even know it. :smile:

[--- Commented from Asana.com

commenter Tanner Welsh

---[aa]

tannerwelsh commented 8 years ago

I'd like to play with different options "for realz" in person (perhaps with Tanner?) to get a sense of Synergy vs. monitors + keyboards. I have no idea how well Synergy will work.

[--- Commented from Asana.com

commenter Jeffrey Wescott

---[aa]

tannerwelsh commented 8 years ago

Also, https://app.asana.com/0/62830781673321/62830781673321, as I said, I think a docker-based solution to the "shared development environment" is much more sustainable than other things. Would love to hear your thoughts, though.

[--- Commented from Asana.com

commenter Jeffrey Wescott

---[aa]

tannerwelsh commented 8 years ago

https://app.asana.com/0/47048083292211/47048083292211 understood on draft vs. solid vs. final -- I'll do it with this one once I can try out all of these competing solutions for real.

[--- Commented from Asana.com

commenter Jeffrey Wescott

---[aa]

tannerwelsh commented 8 years ago

Don't have strong opinions yet on shared dev environment options. Definitely think we should test drive some different configurations.

https://app.asana.com/0/56975740003731/56975740003731 just invited you to a day of pairing on 12/3 while I'm out in SF. If you're free, let's play!

[--- Commented from Asana.com

commenter Tanner Welsh

---[aa]

tannerwelsh commented 8 years ago

I tried Synergy today with two of my laptops at home. It was a FAIL for pairing. Basically, it let's you use one mouse / keyboard on two machines, but not two mice and keyboards on two machines. It's a client-server configuration, not a peer-to-peer configuration.

[--- Commented from Asana.com

commenter Jeffrey Wescott

---[aa]

tannerwelsh commented 8 years ago

The Messages app on OS X used to allow for screen sharing over Bonjour automatically. As of El Capitan, that no longer works. :disappointed:

ScreenHero may be an option, but with the Slack acquisition, it seems like it would only work if we lock ourselves into Slack for learners.

[--- Commented from Asana.com

commenter Jeffrey Wescott

---[aa]

tannerwelsh commented 8 years ago

As such, I think the best option with the most flexibility is to have one monitor, bluetooth keyboard, and trackpad / mouse for each learner. When people are learning independently, they can have the joy of their own big monitor. When they are pairing, one laptop can take control of both keyboards, mice, and monitors.

There's probably some good "KVM" style hardware to make this work seamlessly, but I'm not a hardware expert.

[--- Commented from Asana.com

commenter Jeffrey Wescott

---[aa]

tannerwelsh commented 8 years ago

Bummer that Synergy is suboptimal. :/

Another option to consider is using iPads as a second screen. Might be nice to have tablets available for reading on, and they can be turned into a second screen with an app like Duet (http://www.duetdisplay.com/)

[--- Commented from Asana.com

commenter Tanner Welsh

---[aa]

tannerwelsh commented 8 years ago

I've used similar things to duet ... cool stuff.

Are we assuming learners will have iPads?

[--- Commented from Asana.com

commenter Jeffrey Wescott

---[aa]

tannerwelsh commented 8 years ago

https://app.asana.com/0/62830781673321/62830781673321 when you're in town, let's spend an hour on this together to see if we can find a cost-effective solution to empower laptop-to-laptop pairing. I find it hard to believe that nothing out there does this well. Honestly, maybe Floobits "self-hosted" is the answer?

[--- Commented from Asana.com

commenter Jeffrey Wescott

---[aa]

tannerwelsh commented 8 years ago

Sounds good Jeffrey. Just added this to our agenda: https://app.asana.com/0/67959297600242/67959297600246

[--- Commented from Asana.com

commenter Tanner Welsh

---[aa]

tannerwelsh commented 8 years ago

https://app.asana.com/0/56975740003731/56975740003731 please take this over to solid resolution when it's ready

[--- Commented from Asana.com

commenter Shereef Bishay

---[aa]

tannerwelsh commented 8 years ago

Just wanted to add... My findings on optimizing pair programming for learners:

1) Have the less experienced programmer drive 2) Encourage verbalization (the more words and gestures exchanged, the faster people achieve a sense of context and arrive at a solution) 3) Make programming challenges clear, concise, and incrementally more difficult until competency > fear.

[--- Commented from Asana.com

commenter Adam Lupu

---[aa]

tannerwelsh commented 8 years ago

Showed https://app.asana.com/0/62830781673321/62830781673321 our "cloud collaboration" solution. We have to set up some time to try it "side by side" to see how it works.

[--- Commented from Asana.com

commenter Jeffrey Wescott

---[aa]

tannerwelsh commented 8 years ago

After thinking through this with https://app.asana.com/0/62830781673321/62830781673321, we've documented what we believe are the criteria as well as the viable options and have decided on a recommendation.

Re-assigning to https://app.asana.com/0/47048083292211/47048083292211 for budgetary considerations. He can make the CLO / final decision.

[--- Commented from Asana.com

commenter Jeffrey Wescott

---[aa]

tannerwelsh commented 8 years ago

What's the runner up option here?

[--- Commented from Asana.com

commenter Shereef Bishay

---[aa]

tannerwelsh commented 8 years ago

during admissions (before people are in the room), collaboration must be possible with ONLY a browser

[--- Commented from Asana.com

commenter Jeffrey Wescott

---[aa]

tannerwelsh commented 8 years ago

6 monitors, 12 keyboards, 12 pointer devices, 12 laptops

[--- Commented from Asana.com

commenter Jeffrey Wescott

---[aa]

tannerwelsh commented 8 years ago

do we need the keyboards and pointers if people are using their laptops + synergy?

[--- Commented from Asana.com

commenter Shereef Bishay

---[aa]

tannerwelsh commented 8 years ago

Is the value of having 2 keyboards + pointer devices per pair greater than the cost of increased complexity? What is the simplest solution that still retains enough flexibility?

Another idea:

What this does:

[--- Commented from Asana.com

commenter Tanner Welsh

---[aa]

omoju commented 8 years ago

How should the physical space be optimized for Pair Programming?

Roles

It is important for a successful pairing session to include switching of roles, which ensures each Player get adequate practice being the Navigator as well as the Driver.

Space Planning

  1. Layout style:
    • U-Pods. Why? Because they allow for Players to easily wheel chairs over and look at other's monitor. However Pods have final say over their space.
  2. Monitor:
    • One monitor, at least (23 inch) flatscreen, with two external keyboard and mouse.
    • Note: Do not put monitor in a corner, it inhibits the ability for two people to simultaneously look at it.
  3. Table:
    • Big enough for two chairs set side-by-side.
    • Note: Do not place tables against a wall. We want to create a situation where it is easy to get to the walls, as they will be utilized as additional work surfaces.
  4. Room:
    • Ideally a room where a door could be shut, creating an environment with low noise level.
    • Multiple Players in the room. Without much effort, Players need to see each other and overhear each other.
    • There should be natural light, air circulation and live plants.
    • Additionally, one or more small rooms for distraction free pairing; these could be phone rooms or such.
  5. Walls:
    • Should allow for adhesion of papers, posters and so on.
    • Should have at least one whiteboard.
  6. Remote Pairing:
    • Through software like Floobits.

Pairing stations for full pod

omoju commented 8 years ago

@tannerwelsh @jeffreywescott @shereefb would love your feedback on this issue.

jeffreywescott commented 8 years ago
tannerwelsh commented 8 years ago

Thanks @omoju. Looks great. My feedback is the same is @jeffreywescott's, with one more: seems like the U-shape might feel cramped. Also there's something to be said for the slight sound barrier and added privacy that having monitors back-to-back provides.

omoju commented 8 years ago

Are we assuming that each pairing station also has a computer (Mac Mini or equivalent)?

I was thinking of not including the computer in the pairing station to reduce cost. But I think a mac mini would be okay.

I highly recommend having two keyboards and pointer devices per pairing station. Pairing is much less efficient if keyboards and mice are being slid back and forth across the desk(s), especially when one person is left-handed and the other is right-handed.

This makes sense, I will update to reflect this change

I'd also recommend 2 monitors (if costs allow) to reduce neck strain.

Ditto

Any reasons we went from 6 to 4 stations?

Cost is the major reason. If we have a pod of 12, I figured ALL won’t be pairing at the same time, so perhaps we could get away with 8 Players in-person pairing at a time.

Seems like the U-shape might feel cramped. Also there's something to be said for the slight sound barrier and added privacy that having monitors back-to-back provides.

The u-shape in the picture is cramped. We could have a looser U.

However as I think about this some more, I feel the pods should have final say in arranging their work environment. So these remain guidelines, and at a minimum we provide the resources.

jeffreywescott commented 8 years ago

????

[--- Commented from Asana.com

commenter Bot

---[aa]