Individual days when developers "virtually" work together to focus on achieving SCAPE-related goal(s).
These days should have a "theme" to encourage some focus to the work being achieved, but this can be as widely or narrowly scoped as appropriate. Tasks worked on within these themes should ideally be achievable within a day (if not, break them down into smaller tasks which are).
For most people, you will predominantly be working on tasks you've identified that relate in some way to the day's theme. There'll be a bit of communication thrown in, reporting on what you're going to do, or what you've done, but ideally this should be kept to a minimum - perhaps a little like a scrum daily stand-up!
Someone will need to coordinate this communication at a top-level, doing things like getting people together at the start of the day (as a skype call), holding periodic update calls (as appropriate), and a final round-up call. It would also be good to capture what's been achieved on the wiki.
To get the most out of the day, it's best to be prepared - a little bit of preparation goes a long way. You need to come prepared with what you're going to be working on, have identified who you need assistance from, and hopefully got in touch with them (if you don't know who to ask, get in touch with me - Peter May), located any sample test sets you may need to assist development, set up your dev environment, etc. Basically prepare as much up front as possible.
Anyone who has an interest is welcome to take part in the hackathons, you don't have to be directly involved in the work underlying the "theme" - for example, you don't have to be one of the Scout development team to take part in the Scout Virtual Hackathon day. It's more important that you have a willingness to learn and an interest in improving things; in fact, it gives you a good opportunity to find out about another part of the project which you might not have had much involvement with!
If you don't know how you can help, just that you want to get involved, contact me - Peter May.
(not in any particular order)
- Scout Development (adaptors, content profiling, etc.) - Scout Virtual Hackathon
- Project API Documentation / Documentation Day
- Component Making/Tool wrapping (& upload to MyExperiment)
- Demo web page development
- VM Creation Day
- Continuous Integration Day
- Documenting code - JavaDoc
- Adding unit tests to your project
- Ensuring unit tests run and pass on Travis/Jenkins
- Consistency of package names/GroupIds etc
- Consistency of version numbers (-SNAPSHOT vs release)
- Using SCAPE parent pom file
- (non-Java) packaging for release
- Publishing snapshots to Sonatype