HeaderSIS.jpg

Difference between revisions of "WRESSENCE Midterm Wiki Page"

From IS480
Jump to navigation Jump to search
Line 206: Line 206:
  
 
[[Image:WRESSENCES2.jpg|center|500px |Deployment]]
 
[[Image:WRESSENCES2.jpg|center|500px |Deployment]]
 +
<br>
 +
[http://www.wressence.com/ WRESSENCE Website]
 
</div>
 
</div>
<br>
 
[http://www.wressence.com/ WRESSENCE Calendar]
 
  
 
<br>
 
<br>

Revision as of 01:50, 9 March 2012

Back to WRESSENCE PROJECT PROGRESS PAGE

Team WRESSENCE
Project Progress Summary


Progress Description


Our team is progressing quite slowly due to the high complexity of our web-based calendar application. We have been facing difficulties in conceptualize the processing logic of a calendar as there are several factors to be considered. One of the major issues faced will be the rendering of our calendar which has resulted in us having to reschedule the development of some features.

Up till now, we have got a working calendar with the basic functionalities as well as the location-based features out. Moreover, we have also placed our web application under stress test in order to test the stability.


Project Highlights


  • After facing some major difficulties in using plug in for building our web-based calendar, we have decided to build our own calendar from the scratch.
  • We have made a major change to the architecture of our web application after considering the future scalability and complexity of the web application
  • We have presented a simple prototype of our web application to several developers to showcase the usage of new technology in developing this project
  • The amount of major bugs that we have encountered so far is more than we have expected
  • The team has spent a much longer time in developing the basic of our calendar than planned which resulted in us having delayed task completions



Team WRESSENCE
Project Management


Project Status

Features Status
Account Registration Completed
Account Login & Logout Completed
Events Creation Completed
Edit Events Completed
Events Deletion Completed
View Event Completed
Venue Suggestion 80% Completed
Write Venue Reviews 80% Completed
Read Reviews 90% Completed
Edit Profiles 90% Completed
Quick-Add Event Not Started
Social Media Platforms Posting Not Started
Reminder for Upcoming Events Not Started
Synchronization of Different Calendar Platforms Not Started
Public Feeds & Events Not Started
Import Birthdays Not Started


Project Metrics

The Schedule Graph
The Bug Points Graph
Metric Type Link
Schedule Metric Detailed Summary
Bug Metric Detailed Summary


Risk Analysis

Project Management Risks
Risk Rating Risk Description Impact Level Likelihood of Occurrence Mitigation Strategy Impact of Strategy
A Unable to complete all the defined additional functionalities in time High High
  • Development team to set clear target in order to complete tasks on a daily basis
  • Re-assignment of manpower to tasks that are delayed
  • Prioritize functionalities to drop those with low priortization when necessary
  • Team members may need to compromise their time spent on other work for FYP
  • Tasks completion on a daily basis are easier to track
  • Coding tasks can be done in a more systematic way with prioritization
  • Duration of delay can be shortened


Technical Risks
Risk Rating Risk Description Impact Level Likelihood of Occurrence Mitigation Strategy Impact of Strategy
A Inexperience in making architecture decisions that is sustainable High High
  • Pair team members up to research on architecture requirements and aspects pertaining to our features
  • Carefully conceptualize architecture as a team before development of each feature to consider all possible constraints
  • Additional time will need to be used on doing research
  • The possibilities of having to make huge changes to the architecture for before developing each new features is minimized
  • The sustainability and quality of architecture is improved


Technical Complexity

Several technical complexities have been involved since we started to develop this web-based calendar. One complexity will be to handle the different browser capabilities. As JavaScript event object model is differently supported in different browsers, different versions of dedicated codes are required to achieve one functionality. Moreover, nested functions are not supported in browsers like Mozilla Firefox, adding extra complexities in debugging process.


Another complexity will the client side event handling whereby we need to deal with unnecessary event bubbling propagates events which have added more difficulties for us to accurately identify the intended html element. Furthermore, to access controls from C# code behind, ASP.Net requires us to use ASP.Net controls which make form submissions mandatory and user experience intermittent.


With the usage of several external services in our development of this product, our team has to consider the complexity of using these external services when we are still quite unfamiliar with them. Issues such as the functionalities offered by external services add UI elements and controls dynamically during page load, and change properties at will during run time, making us difficult and sometimes impossible to track them and apply our own properties to them to suit our UI. Furthermore, external web services return JSON/XML data in inconsistent formats having certain nodes one time and not including them in the next service call. For example, Google Maps API returns phone number for certain locations only.


Server side linkages using Ajax and PageMethods have also created complexity for our development tasks. Our UI side requires systematic breakdown of pages using master page feature of ASP.Net. However, master pages do not support Page Methods. To resolve the issue, we had to use Base Page feature of ASP.Net.


Working with external APIs when developing social media login is also an issue for us due to its complexity when we are inexperienced. We are using the following:

  • Facebook Login: Facebook Graph API (with OAuth 2.0 for authentication and authorization)
  • Twitter Login: Twitter Platform REST API (with Oauth 2.0 for authentication and authorization)
  • Google Login: Google API (with Oauth 2.0 for authentication and authorization)

Different platform requires us to consider the differences in their authentication process and ensure the right information is being handled.



Team WRESSENCE
Product Quality


Deliverables Status

The Quality


Deployment

A working copy of our Wressence web-based calendar has already been deployed successfully onto our server.

Deployment


WRESSENCE Website


Testing


Our team had done first round of User Acceptance Test with close to 50 test users. The web application is deployed onto the our server and put under stress test. This can allow us to better understand how our web application will actually perform under realistic environment.

UAT

View summary of our User Acceptance Test 1 here



Team WRESSENCE
Reflections


Yi Hui

I have always thought being a project manager is all about managing my team in terms of ensuring allocated tasks are completed on time. However, this FYP experience has given me a new perspective towards this important role.


Other than keeping track of schedule, one crucial role of project manager that I realized through this FYP is to manage the different expectations of each team members within the team. When differences in expectations are not properly handled, it can easily cause conflicts within the team which was what happened to our team previously. Thus, I have learnt the importance of being firm to set common standards for all to follow and ensure there is an opportunity for each of them to voice any unhappiness in order to better align their expectations.


So far, it has been a great experience being a project manager in this team!


Johnathan

Since day one, I have been very excited about learning acquiring new technical skills as well as management skills through this BIG project. As far as I am concerned, I always believe in self learning in which I will find answers to my doubt when it comes to learning new things. This was how I code using the new programming language adopted for your FYP in the initial stage. However, after having several knowledge sharing sessions with the team to discuss technical issues, I have come to realize that it is much more efficient when someone with that particular technical knowledge can bring about enlightenment for me much more effective than learning myself.


Thus, I strongly think that it is really essential for everyone in a team to share their skills and knowledge to bring about greater efficiency in project development as well as increasing the motivation of team members since the learning culture is a good one.


Darren

Taking up the role of system architect in this team has been a challenging task for me. I have met with problems in regards to attain common understanding among the development team of the architecture I proposed. Each of our team members has their own understanding in developing their specific system parts and this caused us to have serious issue when integrating, Thus, one key takeaway is that ensuring common understanding of what is being developed and how it will be developed will determine the success of a project.


Furthermore, having this common understanding will minimize the possibilities to do unnecessary work.


Myo

My passion for IT stemmed from curiosity and spontaneity in that I attribute my operational style for IT-related projects to be that of ‘Hopper’ and ‘Perfectionist Plus’ according to Sunny Schlenger and Roberta Roesch’s book “How to be organized in spite of yourself”. I usually involve myself in deciding/discovering which technologies to be used and figuring out how to achieve the desired result. Although a certain level of planning is involved, I never tire myself down with planning in details. Instead, I let the machine handle what would work and only take care of what would not. This operational style has been serving me well for a number of projects I have done, most of which I handled alone and some, with a few team members.

However, when I joined WRESSENCE, I realized this operational style did not fit in due to the many components involved in calendaring which are complex and fragile by means of programming logic, requiring comprehensive and well-thought-through architectural design that covers every little possibility and loophole. Once, the product went through serious bugs that one way or the other, could be attributed largely to my experimental way of handling the codes.

I was very appreciative of the fact that our team members guided each other along and pointed me out what they thought would be improvements I could make in context of this project. I took in the comments and changed for the better. Now, I am finding that the work I deliver is more reliable and developer friendly. I took a lot of learning points from my team members in working under defined sets of protocols that other members can relate to as well. That way, we eliminated a lot of unnecessary debugging and integration issues and made our working environment very efficient.

This is only even up to the mid-term and we, as a team, have enriched ourselves with valuable experiences from various areas. As a team member, I really look forward to another half of rewarding experiences and fun doing FYP. All the best, Team WRESSENCE!


Xue Ling

Being the Visual Developer in this team has enabled me to do what I like. I am a visual person and I like to see beautiful things. Thus, having the opportunity to design and beautify the user interfaces of our system in this project is totally my thing to start with.


Through the experience of building the designs of user interfaces in the past weeks, I have learnt to appreciate beautiful things more as I know it is not easy to attain it. Behind the beautiful product is the hard work and the considerations being put in to make things work. This is what I would not have understand if I were not given the chance to take up this role. I must say, it is really a good experience for me to learn how to balance expectations as well as constraints.