Mon 20 Oct 2008
Project Management according to Douglas Adams
Posted by hambrushman under Senior Project
[3] Comments
Time is an illusion. Lunchtime doubly so.
Douglas Adams - The Hitchhiker’s Guide to the Galaxy (Wikiquote)
Okay, I realize this is no excuse for not posting for two weeks, but it makes me laugh. Before it seems like I’m trying to avoid the inevitable admission, let me tell you now, my Constant Reader, that unfortunately I am behind by about three weeks. Over these past three weeks, when anyone has asked me how my senior project is going, I always had the same answer: a blank stare. After they kindly inform me that I haven’t said anything for 20 min, I usually say something along the lines of “slowly”, or “I’m making progress, just not as much as I’d like”. This was not so much a euphemism, as it was just a way of ending the conversation quickly so I could get back to work.
I am not ashamed of the progress I have made over the past three weeks, but I am about my timeline estimation. Although, I have been adamantly preaching the gospel of 37signals in both my blog world and physical world, my timeline did not reflect one of the key philosophies I have developed from them. My epicenter, the Profiles, rightly leads my timeline, but it does not reflect its importance in scale. I have almost completed this core of my site to the point where it could stand on its own, but it has taken a lot of work. The development, conceptually, for everything from the interface to the database took almost a week, and I have been programming ever since. Every day I have become exponentially more familiar with Drupal and, for the first time, jQuery. I have no doubt that this education was a valuable investment that will bear even sweeter fruit over the next seven weeks.
Anyway, let me quickly tell you what I have been up to so I can get back to work. I wanted give users the freedom to define themselves however they would like while still encouraging them to harmonize (sounds better than conform) their descriptors with the community at large. I have started a module called “tagharmony” to accomplish this. Contrary to my idea in the profiling and searching post, I am not segregating any categories or skills for diffrent majors. There is no reason why Graphic Designers wouldn’t have “Acting Skills”, or Dancers wouldn’t know “Programming Languages”. Any categories and skills created by the administration will be available to everyone on creation of their profile, and when users go to search they can use these preordained categories and skills to filter their results. Also, I am still going to allow the users to create their own taxonomy for their skills and the categorization of those skills. These skills will be visible to any user looking at their public profile information and are searchable by keyword. However, the custom categories and skills one user creates will not be a visible option for another when they are managing their profile. (Of course if more than one user creates the same custom category or skill, the system will allow for that). This will prevent users from having to wade through potentially thousands of options in the new equal-opportunity system. However, I am so arrogant to believe that I can generate the best taxonomy for all the students of UArts, and I wanted to harmonize tags that are repeated ad nauseam for the benefit of both profilers and searchers. I have a plan for this I will discuss later, but it has been demoted in priority so let me go over what I have completed. The following is live and without error (as far as I can tell).
Along with their other profile categories, users are presented with a “Manage Skills” subpage. This page is divided into two sections: “Yours” and “Ours”. It should probably be said here that I am flexible on any and all wording changes up until launch. “Yours” are the categories and skills of their profile, and what is going to be associated with them in the public veiw of their profile (on a different page). “Ours” is the database of categories and skills provided by the administration.
- They can start by adding skills from “Ours” to “Yours”. The “Skills” box in both “Yours” and “Ours” remain empty until there is a category selected or in focus. Skills can be added from “Ours” by clicking the plus icon next it.
- The users will get a brief “searching…” in the skills box between categories.
- If the user wishes to add custom skills to one of their harmonized categories they can use the form underneath the skills box in “Yours”. Any custom categories or skills are highlighted a different color than the harmonized ones.
- The users can use the form to the far right in “Yours” to add custom categories as well. The user must start a new custom category with a new skill. Once the new custom category is in “Your Categories” they can continue to add skills to it with the form underneath the “Your Skills” box.
At anytime the users can use the minus icon next to their skills in “Your Skills” to remove them from their personal database. Much of the time I spent developing this section went into efficiency seeing as it should be as painless and quick as possible. For example, as you add and delete skills from the system adds and deletes categories automatically to save time. It does not at anytime allow you to double categories or skills even as a custom addition. The “searching…” gif is necessary for a half second delay while the system uses AJAX to retrieve information from the database. This is so the users don’t have to wait an inordinate amount of time in the beginning to load a lot of information that would most likely not be used. No information is sent to the database and saved until the user clicks the “Save” button at the bottom of the page. In other words all the adding and subtracting is done instantaneously visually. It also enabled me to prevent redundant requests being sent at the time of confirmation. For example, if a user adds a skill changes their mind and subtracts it, the system simply deletes the add command from the queue of commands to be sent to SQL.
It goes without saying, that despite the time spent to complete it, it’s quite a brilliant system. The visual interface could probably still use some work, but rather than wasting too much time guessing, I’ll leave what changes need to be made up to the user testing before launch. Another thing I would like to add to this page is next to each harmonized category and skill in “Ours” the number of users that have already added it (maybe by major), and the ability to visually sort by this field. I think this will help users who want to think even less.
Now, onto my plan for harmonization. I want to create a collapsible section of this page (so that it can be unobtrusive) that will enable users to harmonize their tags. Let’s start from the administrator’s/moderator’s POV. I or my moderators will see a table of all the latest skills added in the community on a restricted admin page. If there are any skills that seem to match up with others, the admin writes the id of the potentially harmonizing skill in a field next to that custom skill. If the admin sees that certain skills seem to come up a LOT, they may add that skill in the master list of harmony (a great name for a band btw), in a previous harmony category or in a new harmony category. Then the admin goes back to the table of latest skills and makes the suggestion. The admin saves the changes and the system does its magic. Now, over to the user’s POV. In this “Skill Harmony” section of their “Manage Skills” page, they see a table that looks like this:

…only not like it was hand drawn in my notebook. It is a list of all their skills the admins felt would harmonize well with other skills. They have the option of approving (the [A] button) or disapproving (the [D] button) this suggestion. Upon either action that row disappears from their table (but not from the admin’s POV table). If they approve it, the skill is changed in their personal database of skills and, if it is not already there, the harmonized category is added to store it in. If they actively disapprove it, they simply won’t be bothered about it ever again. They also have the option of “Always Harmonize”, if they trust the admins and the community and they don’t want to be bothered with this. However, “Always Ask for Approval” would be set for each user by default.
I have received mixed feedback about this section. Most of the negative, concerns the users not want to be bothered with this, and this potentially becoming too much work for the admins. Although I disagree with both for now, I’m going to put more consideration into it before development and implementation. Here is my new timeline:
| task completed | by date |
| Sept. | |
| Drupal site is initialized; | 09/23/08 |
| Profile: public and private view, start Bio input and view screens; | |
| Home/Search: new registration/login | |
| Home/Search: show latest registrations | 09/30/08 |
| Oct. | |
| Profiles: develop awesome module | 10/07/08 |
| Profiles: develop awesome module | 10/14/08 |
| Profiles: develop awesome module | 10/21/08 |
| Profiles: finish awesome module to create and search profile bios; | 10/28/08 |
| Nov. | |
| Profile: Blogs, Private Messaging (forwarding to email, ability to send, inbox); | 11/04/08 |
| Profile: subscription to other profile blogs; | |
| Home/Search: show latest blogs made; | |
| User Testing: Phase I start; | |
| Forum/Links: start; | 11/11/08 |
| Profiles: public can view what forum/link posts the user has made; | |
| Profiles: user can subscribe to forums/links; | |
| Forum/Links: finalized; | 11/18/08 |
| User Testing: Phase II start; | |
| Branding: concept finalized, skin/visual schematics; | |
| Profile: skinned; | 11/25/08 |
| Forum/Links: skinned; | |
| Home/Search: skinned; | |
| Branding: digital promotional materials; | |
| User Testing: Phase III start; | |
| Dec. | |
| Branding: printed promotional materials, begin distribution; | 12/02/08 |
| Launch Date | 12/09/08 |
| Start of Exams | 12/15/08 |
I want to keep the same launch date, so I have have condensed features that I am confident I can complete faster now that I am much more familiar with Drupal and jQuery. I have also condensed the branding and skinning of the site, which are constraints I am just going to have to live with for now. I am okay with the skinning being minimal if it gets the functionality completed on time.
As always, my Constant Reader, any comments, questions, or suggestions are welcome.








