HeaderSIS.jpg

IS480 Team wiki: 2010T2 Fission1: Final Project Progress Summary

From IS480
Jump to navigation Jump to search
Fission1 Logo.jpg

Project Progress Summary

Overview

A lot of unexpected events has occurred since the Mid-Term review till now. The 2 significant events that occurred would be the 3-week long period in which our UPL PC was unavailable and when the INSG Team made a decision to 'upgrade' our project from a tab in their proposed revamped site to the prototype that will be the replacement for INSG.com

That prompted a lot of changes in both our scope, goals and project purpose... but the good thing is that we managed to complete our project!

Project Highlights

Frequent Database corruption

One of our biggest problems with Drupal is that most of the settings and configurations are stored as database entries instead of being implemented through code (unlike in OOAD, SE, or other IS mods). Sometimes when we make a configuration changes to a module or block of display content on a page, it can 'corrupt' the entire site and render it unusable.

Two significant examples of when this happened was when an early version of the video banner implemented a version of jQuery unsupported by Drupal, and when we attempted to test a Drupal theme that was not 100% functional.

Negative repercussions

  • At the initial stage of our project, we were not aware of the issue. Hence, we had to spend time re-doing the site from scratch multiple times

Positive repercussions

  • Be aware of the need to make regular database backups
  • Became more careful with committing codes and making changes to Drupal

UPL PC going offline for 2-3 weeks

This event was significant to us, mainly because our project depended heavily upon our site being online to make changes. Although the UPL PC were offline for about 2 weeks, ours was slightly longer as our cable was disconnected from the network. Our cable being disconnected was probably an accident as PC's were shifted around since the RJ45 cable head was faulty and was easy to dislodge.

The issue held us back from active development for around 3 weeks, and while development still continued on our personal localhost, nothing new could be implemented or tested on the site.

Negative repercussions

  • Shift development schedule backwards by 3 weeks and move into our experimental/buffer phase
  • Scrapped user-to-user chat feature
  • Scrapped development of a mobile browser compliant theme

Positive repercussions

  • Development of a more aesthetically pleasing theme
  • Included more opportunities for user interaction
  • Allowed us to explore more options for the project -> got upgraded from a tab extension to a full INSG.com prototype replacement.

Adjusting project scope to increase end-user interactivity

Following the mid-term review, we received comments that the site was 'boring' and not very engaging. One of our big breaks to solve this was when the UPL PCs became unavailable for around 2-3 weeks. The lull gave us time to evaluate the comments that we have received and think of 'manageable' options to address the site.

One of the measures that we were able to do was to make available more opportunities for users to interact with the site. Within the time available for the project, we created a better UI and made more content available to users.

Project Challenges

Designing the UI

Creating a Drupal theme (or page UI) is very different for Drupal. Being a CMS, one of the biggest pains is to create a design that will be re-usable over multiple pages, instead of having individual pages. This was quite challenging as we have to learn how to do it the Drupal way.

Displaying Content & Creating Custom Pages

Drupal handles content display very differently from most of our IS projects. Instead of running code to display content on the page, content in Drupal is handled via blocks which need to be put in specific regions on the page.

The easy way to overcome this would be to directly insert PHP code unto the page, however, such a practice is heavily frowned upon and heavily advised against by the Drupal community. So in order to conform to Drupal best practices, most of our content display was done via the Views module and overriding Drupal and module pages with our own custom pages. This was particularly difficult as there was a steep learning curve for this and online help is not readily available.

Extending Drupal Modules

Although we did not create any new modules, extending Drupal modules were challenging as well. Perhaps the largest contributing factor for this challenge is that we had to learn and adapt to another person's code and coding style. Another contributing factor would be that the modules that we use are not the more 'popular' modules used widely by the Drupal community, hence, help and assistance is really scarce for the customizations that we need to do.

Project Achievements

Improved Technical Knowledge and Competency

Beyond getting familiarized with Drupal, we've also learnt and familiarized ourselves the following:

  • Modules - CSS, JavaScript, PHP, MySQL
  • Video Banner - jQuery, Silverlight (previous iteration)
  • Strength & weakness of Drupal & other CMS
  • Benefits of creating modular applications that can be easily upgraded in the future

Everyone had a chance to code and contribute

This is an achievement because everyone has given a portion that was critical to the site which was individually difficult, but everyone completed their tasks and made significant modifications to the stock Drupal module.

Contributed to Open Source Projects

Some of our modifications have been submitted to the respective module creators for vetting and committing into their module's core code.

Project Management

Project Schedule (Plan Vs Actual)

Overview

On the whole, our project was completed later than previously planned on during the Project Acceptance Presentation.

The reasons for this are as follows:

  • Added a 2 Week Mid Term Review Preparation Period
  • Active development was hindered for the 3 weeks that our UPL PC was unavailable.

The change in our schedule could be summarized in the below image:

Schedule overview.png

Phase 1

I1.png

Phase 2

I2.png

Phase 3

I3.png

Phase 4 + Completion

I4.png



Project Metrics


Schedule Metric

Schedule metric.png

Bug Metric

Bug fix tracking

F1 bug fixes tracking.png


Sample of open issues

F1 sample open bugs.png

Technical Complexity


Video Banner (final product)

  • Had to learn jQuery in addition to Drupal's PHP to modify the slideshow transition/effects
  • Integrate with YouTube API to play YouTube videos
  • Added new capability to DDBlock module
  • Have to make it exist side-by-side with other instances of DDBlock on the front page

Wall Functions

  • Added Share capabilities to FBSS module
  • Integrated Flag modules to 'Like' & 'Report' posts
  • Integrated capability to attach links, images and documents
  • Made major UI improvements over the default stock Drupal module

Alternate Sign In

  • Reduce number of user clicks to link their Facebook and Twitter accounts
  • Created new display types (a Drupal block)

Themeing + Custom Pages

  • Drupal themeing is very different from creating UI in other IS mods
  • Override many default Drupal pages
  • Created multiple custom pages to display specific content (About Us page, Badges page, etc.)
  • Profile pages - specific blocks for profile page owners, other authenticated users and anonymous users.

Badges

  • Added a new feature to delay display of badges in User Badges module
  • Added a new feature to give each badge an individual page in User Badges module
  • Integrated Userpoints module and allowed users to gain points for different actions on the site
  • Integrated Rules module to allow the site to award badges to users automatically



Quality of Product

Value to Client


Original Issues faced by the current INSG.com

  • Website lacks 2-way communication
  • Information/content feeding is mostly 1-way, from Microsoft to end-users
  • Only 1 type of content

Our Solution to Microsoft

  • Provides user directed content
  • Incorporates more multimedia content to make the site 'sticky-er'. The added content provided are videos, comics, and user generated content
  • Allows users to play a part in generating content, in the form of sharing links, articles or trends
  • Allows Microsoft to get feedback from audience
  • Allows Microsoft to build up a network of local developers and be able to make decisions based on their actions/profile on the site.



Project Deliverables

Specification Files
Project Management
Minutes Client Meeting Minutes

Client Meeting Minutes

Supervisor Meeting Minutes

Supervisor Meeting Minutes

Requirements
Functional Requirements

User Requirement Specification

Analysis
Use Case

Use Case Diagram

Screen Shots

Old & Current UI

Testing
UAT Test Plan

UAT Instructions

Documentation
Implementation

Drupal Modules List
Codes & Configurations Documentation
Set-up Manual
Code
ER Diagram
Network Architecture Diagram
User Manual

Quality


Modifying from Drupal vs. Build-from-scratch

  • Allows us to make use of most of Drupal core's features (e.g. User account management & permissions) , hence allowing us to work on features that matter more (e.g. Wall, Badge System, Video Banner)
  • More 'stable' code. This is owing to the use of the stable versions of Drupal modules which have been tested to give users a relatively bug-free experience
  • Much higher and easier future extensibility, as it is much easier to integrate more features in the form of modules, compared to self-developing the features.

Benefits inherited from Drupal

  • Transparent and well-tested security features (hardened by years of widespread use and developer contributions)
  • Through use of multiple modules, it is possible to make a complete social network within the community portal
  • Active developer community (more features/functions could be added via new modules)
  • Built-in caching and integrates well with 3rd party caching to give better site performance
  • Search engine friendly (good for site propagation)
  • Browser-based administration (much less chance of having to modify code to make changes > good for INSG Team as not all of them are programmers)



Deployment


Currently, there are 2 versions of the site running - Dev & Staging versions. Deployment on client servers is delayed as we await a deployment server from Microsoft to be readied for us. However, our project is packaged and ready for a deployment using Microsoft Web Matrix on MS Server 2008.

To access the non-admin features of the site, the following account details could be used:

Username: SampleINSGUser
Password: SampleINSGPassword

Alternatively, sign in via your Facebook or Twitter account (we're currently not extracting any personal data).

Testing


Audience

We have conducted 2 UAT sessions - Half-way mark UAT & Final UAT. A final UAT session, the Handover UAT session, will be conducted when the project is deployed on Microsoft servers.

Our testers are split into 2 groups:

Full System Testers

  • Consist of client users (2) & other FYP friends (6)
  • Test both User & Admin functions and use cases
  • Purpose is to get feedback on the ease of use of Admin functions and site usability

UI Testers

  • Currently consist of X completed tests
  • Purpose is to get feedback on the general feel and ease-of-use for users and how it has evolved over the course of our project


Results & Comments

Full System Testers

  • First look is okay, and is a good improvement from the previous site
  • Admin functions are quite intuitive and easy to access
  • Good enough for a 'first step' prototype

UI Testers

  • 'Good! Way better than the first time I saw it.'
  • 'Video Banner looks better than the previous time I remember
  • 'The functions are easy to use as they are quite similar to Facebook's'
  • Some users have asked questions on the criteria for earning the badges
  • Average Rating Overall: 3.95/5.0



Reflection

Team Reflection

  • Linkages between business strategy and end-user engagement
  • Getting requirements, and developing a plan on how to complete it
  • Learning to use Drupal
  • Extending open-source projects and contributing back


Gabriel's Reflection

Personal Level

I think the biggest lesson that I've learnt from FYP is managing expectations, not just with what the client expected of us, but also what I expected from my fellow group mates.

On the client side, it was a tough experience because we met them very regularly and it was definitely awkward (and embarrassing) to attempt to explain why we had development slowdowns and buggy features. As the PM, there was extra pressure on me to make our group look good, remind clients that we're not "uber-l33t" developers, while ensuring that my group mates deliver a product of reasonable quality.

Managing what I expected of my group mates was an extremely tough process as well, mainly because, unlike most other groups, every member in our team did coding and was working on individually critical pieces of the entire project. Along the way, I had to come to terms with the very big gap between my level of technical competencies and theirs. Where initially I micro-managed down to the code level to achieve "elegant and perfect" code, I eventually learnt the importance of mellowing down and accepting that they had limits to their capabilities and were doing the best they could.

In the PM role

For the duration of the project, I felt that it was extremely refreshing to work with people who were highly talented, knew what exactly they wanted, and were knowledgeable with what will or will not work. I must admit that our group made many mistakes along the way, and we're extremely appreciative for the INSG Team's patience in quantifying and explaining them

One of the most important lessons that we've learnt from the INSG Team was that "Good User Interface does not equal to good User Experience". Working with the INSG Team and having them give feedback taught us a lot about what's "cool" and what was needed to build good user experience.

Seow Theng's Reflection

This FYP has been a remarkable journey. 6 months through good and bad times and finally we break through this learning journey and experience together as a team. During this period, I have learnt how it is like to go on board on a real world IS project dealing with real people who are clients from IT industry and certain changes that will keep bouncing to and fro after several meetings with them. What I have gain from this experience is that change is the only constant in life. Therefore, so is our project, though I acknowledged much changes was needed in our project to give the client, the "user experience". Working on a project that looks into design, user experience is very important and viral. Such as, how many clicks, does the name make sense, where the function is placed at, the buttons used, the color, and the font style etc. As much as possible, I strongly believe that the site should be make easy and intuitive for end users to use at their comfort. As a design lead for this project, I finally recognized the importance of user interface heuristic that was taught during software engineering by Prof Lee Yeow Leong.

Apart from user experience, I have also learnt to understand real world business issue that clients faced and providing IS solutions with the right technologies incorporated into the project. For this project, our client have chosen Drupal, which was a framework that we does not get to learn during our IS curriculum. Hence, the major take away from this project is ability to realize functional requirement and implemented it using a framework that was totally new to us. Managing the expectations of various stakeholders is also one thing I have learnt. We had multiple tiers of clients and with that sponsor, real world developer who are end user of the site as well as school which also presented certain requirements that we have to fulfil. It is important to establish a good working relationship and understand each other expectations and objectives of the project so that you will be able to deliver what has been required.

Overall, I have enjoyed working these 6 months with team mates who make things happen through those hard times which we have been through together.

Heng Pei's Reflection

The greatest takeaway is to manage the clients' expectations. Good time management skills is also essential. This is because we are expected to show something new or make changes to existing features everytime we meet the client as well as juggle with project deadlines of other modules as the term comes to an end. Clients expect to see something new every meeting most of the time. Hence, we are motivated to meet that expectation as we meet up with them almost every week.

In addition, I am glad to learn how to code out blocks where the admin user can choose to arrange in different regions of the page. Over time, I grew to appreciate the amount of control Drupal allows for the admin user. This is because I am able to use php code to control blocks to appear on only certain pages as well as display blocks to only certain users. For instance, when a user is logged in, they can view other people's profile page but not being able to view the link to edit their profile page. Moreover, I learnt that it is very important to test previous functionalities as there may be breakages especially as we introduced custom pages after the mid-term presentation and there were issues with the page links as a result.

Another observation is that good project management cannot be overly task-oriented and that the people factor is of utmost importance. Addressing conflicts openly may be good at times as it allows team members to air their grievances and an opportunity for all to clarify doubts or misunderstandings. I have learnt about the importance of ensuring transparency which is the precursor of trust. The element of trust is the most crucial factor in getting the team bonded.

Overall, I am glad that we have learnt tremendously from each other as well as from our clients. The process is long but a very fruitful one.

Sophie's Reflection

Doing Final Year Project this term, I come to realize that it is not only a degree requirement but also a great opportunity to apply what I have learnt during 3 years in SMU in term of technical knowledge, project management skills and more importantly, people skills. It is a first time I learnt how to deal with external clients with real business requirements, real challenges and the need to be adaptable sometimes.

It is also important to have clear and frequent communication with clients to update them about our progress, asking relevant questions to modify our parts according to what the clients really want to achieve. Even though our team really wants to fulfill all clients' requirements, we also realize that there are a few things that we need to prioritize and a few things we need to compromise due to time and resources limitation. It is important to always reflect back on the project objectives, clients' expectation at the beginning to make appropriate modifications and improvements whenever we feel stuck or confused. More importantly, the way we communicate with clients decides what and how we work on the project as well. It helps us to improve our people skills, communication skills to bring our ideas across, negotiate effectively without damaging the relationship.

Secondly, to me, I feel happy working with my teammates. We are committed, hardworking and be considerate to each other. The workload is allocated appropriately to be suitable with each individual's skills and expectations. However, it would be better if we could allocate more time and effort for integrations and cross-functions working pairs to minimize confusions and utilize teammate's knowledge and skills during team discussion.

Dit Ching's Reflection

This has been a challenging journey; it did not only challenge my capability to cope with the technical aspect in a short period of time – that’s just half of the challenge – but it also stretched our ability to juggle with our own team’s dynamics, client’s expectations, as well as the FYP module requirement itself. The pressure to cater to all of these different areas of concerns, on top of learning and fixing an endless list of Drupal bugs, it sometimes made our team felt inadequate that led to higher level of anxiety and stress.

Prior to this project, I am fully aware that there may be a clash in my personality with the group’s. I was more of a people person and the team is more of tasks and result-driven. I understand that this is important to ensure that the group stayed focused and committed to the project – and what I have to do is to align myself to the group’s objective and.. mood? However, in times of difficulty and tensions, trust and clear communication play as important role to keep the team together as well. Being too much of a task-driven group, we rarely hang out and/or get to know each other more than mere work-based group mates. Human, after all, are not objects and have complex thinking process and feelings. Throughout this whole experience, I realise trust can easily be broken by simple unconscious actions or when feelings are hurt by words. Neither task nor people oriented people are capable of being a competent manager. A manager is only commendable when he is able to balance both the importance of tasks and the wellbeing of their people.

Challenges are bad in times of desperation and stress but in hindsight, because of all these challenges, it taught me so much more about human interaction and working styles. And last but not least, of course, it was awesome to be given the chance to work with Microsoft and Prof Jason! This will definitely be one of my most memorable journeys with these great people I met and get to work with – for all the knowledge and lessons that my group has learnt, the sadness, disappointments as well as the joy and laughter we (managed to) share along the way – it’s all worth it.

Matthew Lim

"Coming from a non-technical person point of view, I think the team is very good at managing the scope of the project which had help them to deliver this project successfully. I can see that the team had work very hard for the project and they are also very responsible in term of explaining to us what can be done and what cannot done as well as the reason behind these obstacles. Overall, they did a good job!


Kinda Lau

"I also agree with Matthew that the team manages the scope of the project well and I also can see that they really work very hard for this project to make it a success. At times of facing issues with development, they are very responsible and good at explaining to us what's the reason behind the issues they faced as well as proposed to us work-around ways to get things done so as to achieve the same effect we want. Overall, I would like to say, "Good job, guys!"


Click here to return to main page.