Gx Sprint Agenda (Oct 22-24)
Objectives
By the end of the sprint we will have:
- A better product and code name
- Project Management issues resolved (aka Chris's note to core)
- The framework of the Gx Hacking document (i.e. http://subversion.tigris.org/hacking.html)
- A working implementation of the basic Gx functionality. I'm thinking in terms of functionality:
- User management and permissions is operational
- The framework for administration functions is implemented
- images can be upload and organized into albums
- an extension framework is enabled
- An a standard theme is in place.
- Project Schedule in place with tasks assigned
- Implicit in above is a release schedule.
Overview
Approach
In an attempt to maximize our productivity and address the diverse skill sets and interests of the people attending the sprint, I chose to organize the agenda in such a way that we start with the broadest issues and move to the more focused.
The agenda is based on the following "4-tier" architectural design with a clear delineation between the layers:
Framework
The framework consists of the chosen 3rd party framework to uses as a basis of Gx. One of the deliverables of the Sprint is to chose a framework.
Gx Framework ExtensionsWhat I consider in this category are all the things we need to add to framework for Gallery. Things like (non inclusive list):
- How the application is structured within the context of the framework (i.e directory structure)
- Installation approaches and scripts
- Language Manager
- Downloadable features
- Addition features that need to be developed
- Do we want to go with an embedded database as the default (SQLite?)
Gx Features and Extended Features
- What goes into the core feature set, what is in the extended (community maintained) feature set.
- What features are delivered as part of the release packaging
- What features are delivered as downloadable features
Presentation Layer
This is how the information gets to and from the user to the various gallery functions. I might be swimming up stream on this one, but I believe we need a clear separation of between the controllers and models that make up a feature and the various views that can display that information.
Agenda
Waterfall approach to the agenda. Hopefully, given this schedule, which might be optimistic, we can be "cutting" some code by the end of the first day.
gmc

Task Detail
The names in brackets are a first cut at someone to lead the discussion of that section. If anyone feels strongly about being or not being a leader things can be changed.
1. Introduction (Tim) Welcoming remarks, agree on agenda, etc.
2. Project Issues (Chris) There are some high level project issues that need to be decided upon:
- Coding standards (php and javascript); Unit testing (php and javascript)
- We need to come up with a "Hacking GX" document along the lines of:
http://subversion.tigris.org/hacking.html Chris has offered to drive this as long as others actually contribute to it. This one single doc can serve as
an entire entry point to developers that might want to work on GX, as
well as a way for us to easily document our practices. It doesn't have
to be a lot of work, but it's going to take a conscious effort from
everyone.
- We need a public system for people to claim ownership of things to
provide some accountability. "Action Items" were cute, but when people
miss meetings with a lot of regularity, things don't get added to the
list that people are working on, etc.
Ccollab is nice, as are aspects of sf.net, but things just don't mesh
together very well. Chris has been using Chandler
(http://chandlerproject.org/) both personally and with work, and it
might be a more effective way to communicate as a team on who is doing
what. He has a Chandler server running and can spend time explaining
this work-flow to people.
- Our support options are pretty rough. FAQs are great, but we have
entirely too many entry points for people, and most of them don't get
any response from us (RFEs, IRC, forums, paidsupport, etc). We need
more user-to-user support and I'm not sure how to make this happen for
end-users. I think with #2, we'll get more "casual" developers that are
capable of supporting each other in the forums.
- Our releases take a long time, and are so huge that the blockers list
includes things that are holding us back but that need to get out sooner
than the next full point release. Release early and release often may
be worth going back to. We'll need a build/release system and upgrade
mechanism that allow us to put out new releases every couple of weeks.
- What do we want to do with RFE's. We have a huge pile of cruft that is the RFE tracker. It contains
every idea possible for an online media organizer and it's pretty
worthless to us in it's current state. We should turn this into
something we can use or stop presenting it to our users as such.
- Is there other technology we can use to make us more efficient (in conjunction with 3). i.e. Google Documents, Skype, a Google group for core? etc.
3. Framework (Tim)
Decide on the framework.
4. Gx Framework Extensions (Bharat)
Discuss and decide on various extension we need
5. Gx Feature Set (Andy)
- How to divide up the feature set into core supported, community supported
- What gets released as the standard (i.e. like the current minimal download type).
6. Presentation Layer (Chad)
- Discuss and approve Chad's CSS guidelines
- Extend wire frames for other key features
- Develop standard views
7. Wrap up Checkpoint (Chris)
- Project Issues (chris's stuff, coding standards, etc.)
- Framework decision
- Gx Framework extensions (install, support infrastructure, LM, DP)
- Feature set (core vs non core, SOA/ResTFUL etc)
- Presentation Layer (standard theme (Ux), embedding, rss, etc)
- Wrap up checkpoint