HeaderSIS.jpg

Difference between revisions of "IS480 Midterm wiki: 2011T1 Discover Linkage"

From IS480
Jump to navigation Jump to search
 
(30 intermediate revisions by 3 users not shown)
Line 36: Line 36:
  
 
==Project Management==
 
==Project Management==
 
Provide more details about the status, schedule and the scope of the project. Describe the complexity of the project.
 
  
 
===Project Status===
 
===Project Status===
Line 133: Line 131:
 
===Technical Complexity===
 
===Technical Complexity===
  
Describe and list the technical complexity of your project in order of highest complexity first. For example, deploying on iPhone using Objective-C, customizing Drupal with own database, quick search for shortest flight path, database structure, etc.
+
* The idea of allocating every user passion to a combined forum is totally new to us. Designing the database with CakePHP convention was the first technical complexity we faced. CakePHP has its own set of convention and we had to follow the convention strictly together with the planning of the ER-diagram of the system.
 +
 
 +
 
 +
* The importance of JQuery was later identified by us. Thus, we had to learn a new front-end framework which was totally different from any back-end languages. As JQuery uses chained methods, it was a major challenge for us to understand its convention. Apart from JQuery, the integration of JQuery with CakePHP was another drawback for our team. CakePHP has its own set of JavaScript framework (prototype). However, it was very limited. There were many examples available for JQuery and not prototype. Thus, the team had to choose JQuery as prototype has lack of examples on the net. The team faced another challenge in making CakePHP back-end coding integrate with JQuery.
 +
 
 +
 
 +
* Initially, the team had to source out its own server as the client was still in the midst of getting a server for us. We were using a free shared server that had many limitations. When the client got us a server, the team identified that the server was configured differently and thus, faced another technical problem in integrating the codes in the new server.
 +
 
 +
 
 +
* Google location which was initially proposed by the team were every user of a particular passion will be plotted based on their locations. However, after tremendous research, the team discovered that the idea was moving towards data visualization and it is way too complex to develop the feature within the given timeframe. Thus, the team decided to use Google YouTube services instead where the users can post a YouTube link on the forum and have the video be embedded in the website itself. This means that the user would not need to be redirected to YouTube to watch the video; user can view the video on xConnect itself.
  
 
==Quality of product==
 
==Quality of product==
 
Provide more details about the quality of your work. For example, you designed a flexible configurable system using XML.config files, uses Strategy Design Pattern to allow plugging in different strategy, implement a regular expression parser to map a flexible formula editor, etc.
 
  
 
===Intermediate Deliverables===
 
===Intermediate Deliverables===
 
There should be some evidence of work in progress. 
 
  
 
{| border="1"
 
{| border="1"
|- style="background:blue; color:white"  
+
|- style="background:maroon; color:white"  
 
|align="center"| Stage  
 
|align="center"| Stage  
 
|align="center"| Specification
 
|align="center"| Specification
Line 152: Line 155:
 
|rowspan="2"| Project Management
 
|rowspan="2"| Project Management
 
|| Minutes
 
|| Minutes
|| Sponsor weeks -10 -5 3 7 Supervisor weeks -2 3 5 7
+
|| [[https://wiki.smu.edu.sg/is480/Team_Discover_Linkage_Meeting_Minutes Meeting Minutes Repository]]
 
|-
 
|-
  
 
|| Metrics
 
|| Metrics
|| Bug metrics
+
|| [[https://wiki.smu.edu.sg/is480/IS480_Team_wiki:_2011T1_Discover_Linkage#Project_Metrics Metrics Repository]]
|-
 
 
 
|| Requirements
 
|| Story cards
 
|| [http://www.agilemodeling.com/artifacts/userStory.htm CRUD Customer], [http://www.agilemodeling.com/artifacts/userStory.htm Trend Analytic]
 
 
|-
 
|-
  
 
|rowspan="4"| Analysis
 
|rowspan="4"| Analysis
 
|| Use case
 
|| Use case
|| [http://en.wikipedia.org/wiki/Use_case_diagram overall]
+
|| [[https://wiki.smu.edu.sg/is480/IS480_Team_wiki:_2011T1_Discover_Linkage#Project_Deliverables Acceptance Use Case Diagram]]
 +
 
 +
[[https://wiki.smu.edu.sg/w/is480/index.php?title=IS480_Midterm_wiki:_2011T1_Discover_Linkage#Use_Case_Diagram Mid-Term Use Case Diagram]]
 
|-
 
|-
  
|| System Sequence Diagram
+
|rowspan="2"| Design
|| [http://en.wikipedia.org/wiki/System_Sequence_Diagram client], [http://en.wikipedia.org/wiki/System_Sequence_Diagram server]
+
|| [http://en.wikipedia.org/wiki/Entity-relationship_model ER Diagram]
|-
+
* [[Media:Entity Relationship Diagram1.jpg]]
  
|| [http://en.wikipedia.org/wiki/Business_Process_Modeling_Notation Business Process Diagram]
+
[http://en.wikipedia.org/wiki/System_sequence_diagram System Sequence Diagram]
|| Here
 
|-
 
  
|| Screen Shots
+
* [[Media:SSD_ProfileManagement.png]]
|| CRUD Customer, Trend Analysis
 
|-
 
  
|rowspan="2"| Design
+
[http://en.wikipedia.org/wiki/Sequence_diagram Sequence Diagram]
|| [http://en.wikipedia.org/wiki/Entity-relationship_model ER Diagram]
 
|| 1, 2, 3
 
|-
 
  
|| [http://en.wikipedia.org/wiki/Class_diagram Class Diagram]
+
* [[Media:SD_ProfileManagement.jpg]]
|| [http://en.wikipedia.org/wiki/Class_diagram 1], [http://en.wikipedia.org/wiki/Class_diagram 2], [http://en.wikipedia.org/wiki/Class_diagram 3]
 
 
|-
 
|-
 
  
 
|| Testing
 
|| Testing
|| UAT test plan
+
[[https://wiki.smu.edu.sg/w/is480/index.php?title=IS480_Midterm_wiki:_2011T1_Discover_Linkage#Testing Details on  UAT test plan]]
|| [[IS480_Midterm_Wiki#Testing: | instructions]]
 
 
|}
 
|}
 
Not all parts of the deliverables are necessary but the evidence should be convincing of the progress. Try to include design deliverables that shows the quality of your project.
 
  
 
===Deployment===
 
===Deployment===
Line 204: Line 192:
 
[http://tedxconnect.tedxsingapore.sg/ Deployed xConnect System]
 
[http://tedxconnect.tedxsingapore.sg/ Deployed xConnect System]
  
===Testing===
+
===User Acceptance Testing===
  
Describe the testing done on your system. For example, the number of UAT, tester profile, test cases, survey results, issue tracker, bug reports, etc.
+
We deployed the system onto a server provided by the sponsor. We initially faced some delay in getting the server, which delayed our UAT session but when we finally got our server details, we started facing deployment issues with the server. After much effort on our part to understand the server's error messages, we managed to get our xConnect system hosted up on the server, so that our UAT can be done online (and remotely). We had the testers test our web portal on 3 different browsers; IE 9, Google Chrome, Mozilla Firefox and we received positive comments from them stating that there were no differences in the outcome.
 
 
We deployed the system onto a server provided by the sponsor. We initially faced some delay in getting the server, which delayed our UAT session but when we finally got our server details, we started facing deployment issues with the server. After much effort on our part to understand the server's error messages, we managed to get our xConnect system hosted up on the server, so that our UAT can be done online (and remotely).
 
  
 
It was held on '''Week 6 – Friday-Saturday, 23rd-24th September 2011''' and we tested the following functionalities:
 
It was held on '''Week 6 – Friday-Saturday, 23rd-24th September 2011''' and we tested the following functionalities:
Line 223: Line 209:
  
 
* Comment Management
 
* Comment Management
 +
  
 
A copy of the user manual provided for all testers can be downloaded from the following link:
 
A copy of the user manual provided for all testers can be downloaded from the following link:
Line 234: Line 221:
  
  
Out of all the 20 testers that we had, three were very important people whose feedback was highly valuable.  
+
We had a total of 20 testers and most of them were students from SMU, NUS and NTU. Some of the testers were from different fields as well; medicine students, professional testers, business students and etc. Out of these testers, 3 were very important people whose feedback was highly valuable as they came from different backgrounds and hence, their feedback was varying and gave us a broader view of our strengths and limitations.
  
1.
+
*1. Deloitte Business-IT Analyst (US)
  
2.
+
*2. Medical Student (UK)
  
3.
+
*3. NUS Professional Tester (Singapore)
  
 
Out of 51 test cases, we had 1 failed test case and that was for test case 3, when clicking reset button, the email field was not being reset when the user logs in with incorrect information. Furthermore, if the user changes the email field to something else and clicks reset, the email field will change back to a “correct” email address.
 
Out of 51 test cases, we had 1 failed test case and that was for test case 3, when clicking reset button, the email field was not being reset when the user logs in with incorrect information. Furthermore, if the user changes the email field to something else and clicks reset, the email field will change back to a “correct” email address.
 
===Project Status===
 
[[Image:StatusOfProjectMidTerm.jpg|frame|none]]
 
  
 
===Reflection===
 
===Reflection===
Line 330: Line 314:
 
----------------------------------------------------------------------------------------------------------------
 
----------------------------------------------------------------------------------------------------------------
 
----------------------------------------------------------------------------------------------------------------
 
----------------------------------------------------------------------------------------------------------------
 +
[https://wiki.smu.edu.sg/is480/IS480_Team_wiki:_2011T1_Discover_Linkage Back to Team Discover Linkage Main Wiki]<br/>
 +
[https://wiki.smu.edu.sg/w/is480/index.php?title=IS480_Final_Wiki:_2011T1_Discover_Linkage Team Discover Linkage Final Wiki]

Latest revision as of 13:17, 8 October 2011

xConnect Logo.
xConnect Logo

Project Progress Summary

Current Project Timeline.
Current Project Timeline

Project Highlights

  • During a discussion with our supervisor together with our client, after our acceptances presentation, all three parties agree that there was a need to scope down the project as we were taking too much functionality to code within 10 weeks. We decided to merge tribe management together with passion conversation management and passion conversation (forum) would be our unique factor.
  • During Iteration 1 (Construction Phase): The team uncovered the importance of JQuery (not proposed during acceptance) to our GUI and invested additional time resource on JQuery research.
  • During Iteration 1 (Construction Phase): Our client wasn’t able to provide the server details, thus the team had to source and deploy the project on a separate free limited web hosting server.
  • During Iteration 2 (Construction Phase): Client provided the server details. The team migrated the codes into the new server. But client server was configured differently and we were not able to access the phpMyAdmin to insert the sql statement. With a failure in database, the system encountered a single point of failure.
  • At the end of Iteration 2 (Construction Phase): More critical bugs were found and there was a need to stop the construction of new functions. Two new milestones were introduced after Iteration 2 and before Iteration 3. The two milestones were: (i) Feedback Integration and (ii) Bug Solving period.
  • During Bug Solving period, team found an interesting idea with YouTube video. Two team members were tasked to invest their time to research the feasibility

Use Case Diagram

Core Features

UserProfileManagement.jpg
Topic&CommentManagement.jpg
Topic&CommentManagement.jpg
SearchManagement.jpg
Registeration Management.jpg
PassionConversationManagement.jpg
ConnectionManagement.jpg

Additional Features

CreditManagement.jpg

Future Features

Future.jpg

Project Management

Project Status

StatusOfProjectMidTerm.jpg

Project Schedule (Plan Vs Actual)

In the initial planning stage, we admit to have over-estimated our capabilities and also not thinking enough whether the project was too high a scope for us to complete with 14 weeks. During the first few weeks of the term, we had to spend a lot of time on trying to cut down the scope to something more manageable for us and also acceptable for the sponsor.

As such, not everything went on as planned but soon after we locked down on the core features (e.g. Passion Conversation, Topic Management, Comment Management), we started on it while still also working on re-scoping the project. The scope of the project has definitely scaled down.

Please click on the link below to download the Excel spreadsheet of our schedule.

Media:DiscoverLinkage_xConnect_Schedule_Excel.xlsx


The images below show you the schedule for the upcoming weeks.


DiscoverLinkage Schedule1 ppt.jpg


DiscoverLinkage Schedule2 ppt.jpg


DiscoverLinkage Schedule3 ppt.jpg

Project Metrics

Please click on the link below for more details on how our metrics are collected.



Bug Metric Analysis

DiscoverLinkage BugMetric1.jpg


DiscoverLinkage BugMetric2.jpg





Stress Metric Analysis

DiscoverLinkage StressMetric1.jpg


DiscoverLinkage StressMetric2.jpg





Performance Metric Analysis

DiscoverLinkage PerfMetric1.jpg


DiscoverLinkage PerfMetric2.jpg





Schedule Metric Analysis

DiscoverLinkage SchMetric.jpg

Project Risks

Over the course of 7 weeks, we have faced many risks that we had already identified during our acceptance phase of our project. Some of the risks that we encountered are new risks that we have not taken into account. The following table will show you the risks identified during acceptance, those identified during the 7 weeks and those we identified for the upcoming 7 weeks.


Project Risks - Identified During Acceptance

DiscoverLinkage RisksAcceptance.jpg


Project Risks - Identified For Post Mid-Term

DiscoverLinkage RisksMidTerm.jpg

Technical Complexity

  • The idea of allocating every user passion to a combined forum is totally new to us. Designing the database with CakePHP convention was the first technical complexity we faced. CakePHP has its own set of convention and we had to follow the convention strictly together with the planning of the ER-diagram of the system.


  • The importance of JQuery was later identified by us. Thus, we had to learn a new front-end framework which was totally different from any back-end languages. As JQuery uses chained methods, it was a major challenge for us to understand its convention. Apart from JQuery, the integration of JQuery with CakePHP was another drawback for our team. CakePHP has its own set of JavaScript framework (prototype). However, it was very limited. There were many examples available for JQuery and not prototype. Thus, the team had to choose JQuery as prototype has lack of examples on the net. The team faced another challenge in making CakePHP back-end coding integrate with JQuery.


  • Initially, the team had to source out its own server as the client was still in the midst of getting a server for us. We were using a free shared server that had many limitations. When the client got us a server, the team identified that the server was configured differently and thus, faced another technical problem in integrating the codes in the new server.


  • Google location which was initially proposed by the team were every user of a particular passion will be plotted based on their locations. However, after tremendous research, the team discovered that the idea was moving towards data visualization and it is way too complex to develop the feature within the given timeframe. Thus, the team decided to use Google YouTube services instead where the users can post a YouTube link on the forum and have the video be embedded in the website itself. This means that the user would not need to be redirected to YouTube to watch the video; user can view the video on xConnect itself.

Quality of product

Intermediate Deliverables

Stage Specification Modules
Project Management Minutes [Meeting Minutes Repository]
Metrics [Metrics Repository]
Analysis Use case [Acceptance Use Case Diagram]

[Mid-Term Use Case Diagram]

Design ER Diagram

System Sequence Diagram

Sequence Diagram

Testing

[Details on UAT test plan]

Deployment

Please register for a new user account to access the system at the following link.

Deployed xConnect System

User Acceptance Testing

We deployed the system onto a server provided by the sponsor. We initially faced some delay in getting the server, which delayed our UAT session but when we finally got our server details, we started facing deployment issues with the server. After much effort on our part to understand the server's error messages, we managed to get our xConnect system hosted up on the server, so that our UAT can be done online (and remotely). We had the testers test our web portal on 3 different browsers; IE 9, Google Chrome, Mozilla Firefox and we received positive comments from them stating that there were no differences in the outcome.

It was held on Week 6 – Friday-Saturday, 23rd-24th September 2011 and we tested the following functionalities:

  • Registration
  • Login
  • Profile
  • Passion Conversation Management
  • Topic Management
  • Comment Management


A copy of the user manual provided for all testers can be downloaded from the following link:

Media:UAT User Manual.pdf

A copy of the test case can be downloaded from the following link:

Media:UAT Test Case - Mid Term.pdf


We had a total of 20 testers and most of them were students from SMU, NUS and NTU. Some of the testers were from different fields as well; medicine students, professional testers, business students and etc. Out of these testers, 3 were very important people whose feedback was highly valuable as they came from different backgrounds and hence, their feedback was varying and gave us a broader view of our strengths and limitations.

  • 1. Deloitte Business-IT Analyst (US)
  • 2. Medical Student (UK)
  • 3. NUS Professional Tester (Singapore)

Out of 51 test cases, we had 1 failed test case and that was for test case 3, when clicking reset button, the email field was not being reset when the user logs in with incorrect information. Furthermore, if the user changes the email field to something else and clicks reset, the email field will change back to a “correct” email address.

Reflection

Team Reflection

As a team, we believe that the Iterative Approach is hugely beneficial in terms of communication with clients, supervisor and within the team. However, drawbacks might include lesser time for actual coding and more time and effort spent on meetings. Many of our meetings are taken up by project management and though it is an important and in fact a crucial part of the project, we were not able to concentrate so much on the technical aspect of the project. As important as project management is, technical aspect and coding is also an important part of the entire project.

Seeing as how we are 5 man team, in the beginning it was difficult for us to stick to our roles because everyone had different strengths and beliefs on how to approach a certain issue. It was only much into the term that we came up with a proper system to handle both project management and technical aspects of the project.

We also had to deal with team conflicts on commitment issues and different working styles adaptation issues. This has certainly slowed us down, but in a way, it helped us deal with such real world situations, which will only be a good thing for us in our individual careers.

Learning to code in an entirely new language was a steep learning curve for us but the many resources we had at hand helped us. The only issue we had was the lack of time to do in-depth learning before having to jump into coding. We understand now the importance of having all the technologies sorted out way before term actually starts, which is why we now have taken steps to ensure we do not face any hiccups along the rest of our FYP journey.


Individual Reflection

Madhan:

As a PM, I hold higher responsibilities than my other team members. I have to think ahead and point mistakes to my members when necessary. Having to plan a common schedule with conflicting schedules and commitments was not easy. To mitigate the problem, I have realized how to work smart without having too many dependencies amongst members by allocating tasks that cause less dependencies.

The iterative approach has made us face technical problems early and now I have better mitigation plans. Having to reflect the team’s performance every iteration has made me realize my mistakes in terms of coding practices.

Sometimes when I face a bug which is not critical but just minor, I tend to persist in solving the bug. Thus, this becomes a bottleneck to coding and I tend to spend more hours in solving that bug. I have realized my mistake and have learned to keep minor bugs aside till a later date and proceed with the coding.

When an idea is new, it is very hard to communicate the idea with the team members. Sometimes they may not understand. Thus, it is always very important to communicate effectively. I have learned to draw things out to my team members so that they are able to visualize and understand the concept better.

Having to encounter various problems (personal & work), I have become a stronger person and have learned to manage time well. In addition, I have also learned to share problems and ring the stress bell to my team members when I am not able to handle issues.




Lionel:

As the Lead Software Developer, i have responsibilities towards the team with regards to coding. For me this is a new experience as i have never taken on a role as a core developer before. At first, i was quite skeptical about whether i could fulfill my responsibilities as the Lead Software Developer as my coding skills are quite mediocre but i decided to give it a shot. I struggle in the beginning when we decided on our project and framework as PHP was new to me.

I have learnt that team dynamics is very important. It is difficult for people with different backgrounds to come together and work closely with each other to achieve one same goal. Conflicts such as not able to work well with another team member do arise during the process and it becomes important to solve these conflicts before they become bigger and more serious, becoming detrimental to achieving the goal. Conflict management in the group becomes one of the important tasks. A 3rd party has to step into the parties that are having conflicts with each other and try to talk it out with the 2 parties. I have to take into account of the different personalities of each team member as different strategies and methods have to be adopted to deal with the different team members. Conflicts has to be managed well in order not to diminish the synergy between group members.

Another serious problem that I faced in this group is that sometimes communication do breakdown. Instructions are not passed down clearly and resulted in misunderstands. Hence, I encourage all group members to voice out any opinions as all of us are responsible for the success of this project. Clear and open communication will help to minimize misunderstandings and ensure all instructions are passed down correctly. Without clear and open communication, the process of achieving the goal will be extremely difficult and could even lead to the breakdown of the team. Thus, I felt that communication is one important factor that will help the team to achieve their goal.

I learnt alot since the beginning of the project and i feel that i will continue to grow in experience with regards to team management that i feel that it will be beneficial when i join the workforce.




Swetha:

As the Database Developer, I soon realised that it was not an easy job. I knew from the beginning that database may have to updated a few times but I did not realise it would to take so many database updates before our team could finally get things working. What I did not account for is the fact that requirements would be constantly changing because of new ideas that come up or due to the time frame of our project. My short career as a Database Developer has taught me a lot for which I am quite grateful. I will be using this knowledge for my career in the future.

I have also realised the importance of proper team bonding and how team dynamics can affect the team’s performance. It is crucial that in any project, we try to bond and form proper friendships before venturing into the project. I do understand that in the real world, this may not be possible, which is why my FYP has taught me on how to handle various expectations and to juggle time and other modules effectively. We should also respect other people’s working styles and not force one’s own working style on others. It is important to help one another out, even if it means going beyond your own role, so that the team can prosper overall. So far, it has been a tough but an excellent journey. For the upcoming few weeks, I can only hope that the going gets easier.




Kenny:

It is an exciting experience to be able to work closely with my teammates for TedXSingapore, to build a social network for the sharing and spreading of passion. My reflections would be in two portions, first on client side management and on various portions of the project which I have handled- namely php coding and database structuring, project presentation, and client relationship handling.

Clear communication with a non-IT background can be difficult and sometimes tedious because 1) the client has no idea what sort of IT capabilities we have and hence it is difficult for the client to communicate what sort of IT functions he wants and whether we are capable of delivering, and 2) we have difficulties estimating if what the client wants is visible within the given timeframe and manpower and makes it hard for us to realize what sort of functionalities is doable within the allocated time. We mitigate this issue by establishing clear and direct communication and frequent meeting with our client, and lucky for us, our client is willing to spend his precious time meet up with us to discuss about the project in detail. Also through iterative approach we are able to change our project scope accordingly to our client’s requirements. On reflection, what could have been done better is to establish some sort of visual aid, diagrams, and pictures of functionalities during our first five meetings so as to have a clearer form of communication with the client. This would save a lot of time and makes the meetings much more efficient and effective. It was challenging to work with php codes as this is the first time I had the opportunity to code in php, and in cakephp framework which is new to most of us as well. We all had problems initially when we work with cakephp but it was only we started to have fixed coding period in school where we learned each other’s mistake and point out mistakes within the database structure, where we started to progress at a really fast pace with our coding technicality. On hindsight it would have been better if we started off with group coding straight away.

Project presentation was really well done and I was impressed with everyone’s presentation skills. Likewise with client relationship handling, we would try our best to come for every meet up with our client but it was unrealistic to have everyone presented for every meeting. But we still manage to have at least 66% of our members present for every client meeting and it is certainly not easy to accomplish with our busy schedules.




Manesh:

This Final Year Project (FYP) was probably one of the largest projects I had undertaken and it taught me a lot about group dynamics and the importance of webpage design which is the main visual attraction of the project. Being the main interface designer, I realized during the process of the project that I needed to have a clear vision of what I wanted the final webpage design to be. Through this, it will allow each member of the group to work efficiently without having numerous stopping points along the way.

After going through our User Acceptance Test (UAT), seeing various people from diverse backgrounds using the webpage was a major eye opener for the group. Through this UAT, I have learnt different users have different webpage preferences. Not all their preferences can be taken into consideration but by understanding the demands of the users, it has made me understand which important areas of the webpage design I should focus and improve on.

Despite all the challenges and difficulties the group has faced up till now, I believe the group has individually grown both in their soft and technical skills. With the group’s determination and continuous positive attitude, it will allow the group to complete this project with happy memories.

Personally, the experience of this project thus far will definitely influence how I start related projects in the future, in that I plan to invest more time in analyzing and creating a design before starting work on implementation.

As for the remaining duration of this FYP, I intend to build up on my current strengths and overcome my weaknesses and hopefully become more efficient in the way I design webpages in future.




Back to Team Discover Linkage Main Wiki
Team Discover Linkage Final Wiki