Thursday, April 28, 2011

GSoC 2011 GUI Overhaul Project

Hi, everyone. This blog post is about self introduction by me, Akeda Bagus, after my proposal, GUI Overhaul (Backend and Frontend), got accepted. For those who don't know what Melange is, you can read its project page and try the getting started page — yes, Melange is open source project that powers Google Summer of Code (GSoC) and Google Highly Open Participant (GHOP) contest. Melange was written in Python, using Django framework, that runs on Google App Engine (GAE). So, if you want to dig into Melange codebase you should have basic knowledge of Python, probably Django framework too, and GAE. Don't worry, Django and GAE have good documentation available on their sites. When I cloned Melange's repository for the first time and read its codebase it was little bit confusing because at that time Melange's fronted is being renovated. Some new contributors didn't recognize which one is the new codebase (V2) and which one is the old one. But it doesn't matter actually if we know how Melange system dispatch the request and how django template renders a response. Maybe in the next post I'll talk about the internal working of Melange. But for now this post is just about what "GUI Overhaul (Backend and Frontend)" project talks about.

As the name suggests, "GUI Overhaul (Backend and Frontend)" project has a goal to improve the newly Melange's UI both from backend (administration) and frontend (public, student, mentor or organization admin). The idea of administration interface improvement is described at Melange's GSoC 2011 Ideas Page. The rest of the timeline during GSoC period will be devoted to improve the frontend, of course, after administration interface is finished. This project fits my skill as my previous experience on GSoC 2010 also to enhance GUI side — It was "Improve GUI Configuration" project. But this time is little bit different than the last year — where I defined the spec of GUI and Validaton by myself. In Melange, I don't use administration interface regularly, neither know what kind of features wanted mostly. So, I need to gather requirements from users that use Melange in regular basis. From the requirement, we build a spec and then implement it. Of course, there will be much iterations over the spec and implementation until we get the "hey, this is awesome" or "we don't need that". I googling a bit about requirement gathering and found articles written by Joel Spolsky. The article has four parts and worth reading it. Recently, I found a nice quote that related to spec and implementation :

Implementations and specifications have to do a delicate dance together. You don't want implementations to happen before the specification is finished, because people start depending on the details of implementations and that constrains the specification. However, you also don't want the specification to be finished before there are implementations and author experience with those implementations, because you need the feedback. There is unavoidable tension here, but we just have to muddle on through ... I think we're doing OK.

No comments:

Post a Comment