A couple of years ago in a previous job I had gathered a little momentum in my team for a code jam - the idea being that a few intense hours of collaboration on an otherwise ignored idea could be the springboard for a fun project. In the end it never happened, getting people together for a code jam on their own time isn't the simplest thing. As anyone in the web development industry knows, client projects always find a way to take precendence above unproven internal projects. I put the idea aside and forgot about it.
Having been inspired by Mark Zuckerburg's 'Face Mash' coding frenzy in The Social Network, this past month Jude and I started a little competition: Who can build a small scale MODx brochure site the quickest. We each picked a project and setup a time where everyone in the office knew we were 'wired in' and were not allowed to disturb us. We also picked forfeits for each of the losers. These were very small projects, they had a handful of templates and around 10 - 15 pages of content.
In the spirit of competition, I am going to rub it in Jude's face by telling everyone that I won. My time was 70 minutes, his time was 90. I will not be disclosing what his forfeit is, because it probably isn't suitable for this blog ;)
After we finished the competition, it became apparent that given that everything is in place, we can be remarkably efficient (e.g. in the context of our competition, those things were design, content, sitemap etc.)
So now we're ready to put the previously discarded code jamming concept to the test with a project that we hope will provide significant utility to anyone using MODx Revolution. We have many, many ideas bouncing around in our office, some would say too many. But given the restrictions we are placing on ourselves for this code jam, we were able to filter out a lot of those ideas and focus on one that is realistically acheivable in a day. Although we do not intend to finish the project in its' entirity in a single session, we will be tackling a request that we see a lot of in the MODx forums: A front end Resource editor for MODx Revolution.
First up, here's our rules for the code jam:
- Each iteration of the project will be coded in a single non-work day, between 3 or 4 developers (whoeever wants to participate and work on a weekend). All phones are off, emails are unread/unanswered, and IM clients are switch off.
- Each developer will be responsible for one part of the project.
- At the end of the day we will blog about our progress, and set another date for the next code jam. We will release our days work to the community on github. Depending on the state of it, we may submit it as a package.
- Core hacking is not allowed.
- We will start at 10AM, and finish at 7PM. Afterwards, we will gorge ourselves on food and beer as we celebrate what awesome ninja's we are.
Any breaking of the above rules will result in being Iced. Ice blocking is not allowed.
Here's our main set of features for the first release:
- Allow editing of all core resource fields (e.g. pagetitle, longtitle).
- Allow editing of all Template Variables.
- Support form customisation.
- Provide the full site tree within the editing interface.
- Respect all access policies.
- Reuse as much core code as possible, e.g. whatever can be sent to existing processors will be.
- By the same logic, we will use ExtJS & MODext to render the interface.
- Provide translation packages in English and Chinese.
- As premiere partners of MODx, we intend to do our best to spread adoption of the best open source CMS in the world. We think that releasing a good front end editor for Revo would help with that.
- To finally put the code jam concept to the test, hopefully along the way inspire others to finally start and finish the ideas that got lost along the way.
- To familiarise ourselves with Git as we try to improve our internal workflow, and to release the code onto GitHub so that the community can continue to improve our initial offering.
If we get round to a second release, there's many features that we can add to make the front end editor a true alternative to the existing manager interface. To list a few: Preview mode (e.g. view changes on the page without saving), drag and drop of elements and files, custom tv types. We'll be taking suggestions after our first release.
(rollover for an expanded view).
So - when is this happening? It's pencilled in for January the 8th, with christmas and new years out of the way, we'll have a clear road ahead to make this happen.
- The Ninja
- Monday, 13 December 2010
- 10 comments