notes from running an online sprint (Pacific Rim Sprint)

classic Classic list List threaded Threaded
2 messages Options
Dylan Jay Dylan Jay
Reply | Threaded
Open this post in threaded view
|

notes from running an online sprint (Pacific Rim Sprint)

Hi,

Last weekend we ran a fully online sprint for Plone and I wanted to share my experiences so it might help future sprints.
In the Asia region, Plone developers are very spread out. Even in Australia where I am we don't have any one place with more than a few people in it. The distances in flight times for us to converge on one place vary between 3 hours to 10 hours. Yet collectively we all felt it was time to get together, sprint and give back to plone. We decided that if we went completely online and used screensharing such as google hangouts we might still be able to capture the some of the momentum you get by being in the same room.

Day 1 - Mockup
---------------------
- https://github.com/plone/mockup
This is the future home of *all* javascript in core Plone. It is a development environment that uses no plone or python but instead uses tools familiar to javascript developers such as NPM, less, requirejs, mocha, chai, sinon and lots of other stuff that lets you develop "patterns" (new kind of JS widgets) and have them tested before they even touch any plone code.
For example here is a test https://github.com/plone/mockup/blob/master/tests/pattern-pickadate-test.js
here is the build and test process https://travis-ci.org/plone/mockup
and here is the 100% coverage for that test https://coveralls.io/files/53178741

For most of us this kind of code was all new to us. Rok Garbas gave an intro on the first day which we did via hangouts-on-air. This worked really well and the automated youtube clip (you can see on https://plus.google.com/events/ckrjsf9ai5ah9cqgt2bj3thjcdg) allowed those who came later to catchup quicker. I think hangouts-on-air is a great idea for any sprint into and report-out.

We then all chose a pattern and worked at improving the test coverage and documentation for it. This allowed us to lean about testing in JS and how patterns work.
We decided to use trello to coordinate who was working on what so there wasn't conflict. This wasn't that successful as most people aren't familiar with trello. Also the numbers of people meant that coordinating via IRC was perhaps easier. We did still get some working on the same code. For a larger online sprint trello, or something like "unhangouts"  or www.sococo.com might be more useful for co-ordination of teams.

The plan was for everyone to be running google hangout, to split into a different hangout groups and to help each other via the use of screensharing. This worked really well for those that hangout worked for. We ended up just running one hangout with everyone doing screensharing continuously, with mics muted most of the time. In enabled you say "hey can you have a look at this code here and see what I'm missing" which was as quick or quicker than pulling someone over to your computer at a single room sprint.
However there was a significant proportion of people who hangout didn't work for. Reasons included :-
- kept crashing or couldn't reliably connect
- low bandwidth
- too much CPU
- plugin wouldn't install on their version of linux.
Also because it was video we normally had to increase font sizes to make some text seen.
It would be worth looking into other screensharing technology that allowed 10+ screens + voice to be shared in a low bandwidth way. We didn't really need video.

We managed to increase the number of tests and also increase the test coverage from 51% to 56%. Given how much most of us had to learn and that this included adding tests to code that wasn't tested at all, this was a major achievement for one day.

Day 2 - Bugs in toolbar and widgets
-----------------------------------------------

plone.app.widgets is what will replace any of the widgets in plone that currently use JS, including tinymce, relateditems, datetime picker etc. It has overrides for dexterity, AT, z3cform and formlib. Once installed Plone becomes more usable and looks more up to date.
plone.app.toolbar does two things. #1 it changes the layout of plone editing experience to put all editing functions into a single bar and using modal popups for all actions including tinymce. #2 it does this via an iframe so all JS/CSS used for editing does interfere with your theme. This makes creating a theme a lot easier.

We managed to get over half way though the milestone. If we'd had more days we'd have got further.
https://github.com/plone/mockup/issues?milestone=2&page=1&state=open
We also identified and in some cases fixed bugs not in the milestone.
There isn't that much left to do for a 4.3 compatible release of toolbar.
Some of the major outstanding items are
- integrate the new tinymce4 with existing or new configuration options
- isolate the sitesetup from the theme. Currently you would have to do that via a different domain name.
- functional test suite for plone with toolbar and widgets installed.
I look forward to working on these at the conference sprint.

Attendance
---------------
At various stages we had attendees from
- Australia
- New Zealand
- Slovenia
- USA
- Malaysia
- Philippines
- Indonesia
Hopefully I didn't miss anyone.

We didn't get as many attend as we initially expected. One downside of an online sprint is that plane tickets are good incentive to ensure you attend the whole time. However it is a lot to ask for anyone to give up their entire weekend so thank you very much to those that did.

Future online sprints?
-----------------------------
I'm interested in hear ideas on how we can use these experiences to make future sprints better or enable other sprints in other parts of the world that might not have happened otherwise.

Dylan Jay

---
www.pretagov.com - Secure SaaS for Government hosted locally.
P: +61-2-9955-2830  +44-87-0392-7071 | linkedin.com/in/djay75




------------------------------------------------------------------------------
LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99!
1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint
2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes
Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13.
http://pubads.g.doubleclick.net/gampad/clk?id=58041151&iu=/4140/ostg.clktrk
_______________________________________________
Plone-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/plone-developers
Jean Jordaan Jean Jordaan
Reply | Threaded
Open this post in threaded view
|

Re: notes from running an online sprint (Pacific Rim Sprint)

Hi Dylan & all

As participant in the sprint, my 2c:

The testing/development/documentation environment of the patterns
widgets was an eye-opener for me.
The best javascript dev experience I've had. The only bad thing about
it is: it's still javascript ... couldn't mockup use coffeescript?
This convinced me: http://aseemk.com/talks/intro-to-coffeescript

> For most of us this kind of code was all new to us. Rok Garbas gave an intro on the first day which we did via hangouts-on-air. This worked really well and the automated youtube clip (you can see on https://plus.google.com/events/ckrjsf9ai5ah9cqgt2bj3thjcdg) allowed those who came later to catchup quicker. I think hangouts-on-air is a great idea for any sprint into and report-out.

I'm listening to it again now. Thanks Rok!
I didn't catch much of the intro at the time, mainly due to timing and
bandwidth issues (mental and network bandwidth), but as long as we can
go back to it, the effort wasn't wasted.

> Also because it was video we normally had to increase font sizes to make some text seen.
> It would be worth looking into other screensharing technology that allowed 10+ screens + voice to be shared in a low bandwidth way. We didn't really need video.

Here's another one to keep in mind:
  https://www.nitrous.io/
(get more free resources by inviting friends, so invite the collective
and get something usable for Plone sprints?)

> I'm interested in hear ideas on how we can use these experiences to make future sprints better or enable other sprints in other parts of the world that might not have happened otherwise.

- Build up a base of practices and tools that work well, like a recipe
to kickstart future online sprints.
- Keep track of sprint outputs, on a best-effort basis. This provides
continuity and shows the value delivered. This includes git branches,
issues, pull requests, Trello boards, and e.g. the hangout I'm
listening to at the moment. Maybe as links from the sprint's page at
http://plone.org/events/sprints

--
jean                                              . .. .... //\\\oo///\\

------------------------------------------------------------------------------
LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99!
1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint
2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes
Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13.
http://pubads.g.doubleclick.net/gampad/clk?id=58041151&iu=/4140/ostg.clktrk
_______________________________________________
Plone-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/plone-developers