2012T1 Team Verendus Final Wiki
|Home||Our Team||Project Overview||Project Management||Project Documentation||LOMS & Reflections|
|Use Case||Use Case Description||Giving Process||Storyboard||Diagrams||Minutes Repository||Presentations||UAT|
- 1 Project Progress Summary
- 2 Progress Overview
- 3 Project Highlights
- 4 Project Challenges
- 5 Project Achievements
- 6 Project Management
- 7 Project Metrics
- 8 Bug Metrics
- 9 Technical Complexity, Framework and Architecture
- 10 Technical Complexity
- 11 Framework
- 12 Architecture
- 13 Deployment
- 14 User Testing
- 15 Risk and Mitigation
- 16 Reflection
- 17 Team Reflection
- 18 Individual Reflection
- 19 Sponsor Comments
Project Progress Summary
We have reached the final iteration, iteration 9 with the assigned tasks and additional functionalities implemented promptly in place. The application currently fully deployed and has gone through 3 user testing after midterms. From the feedbacks that we have received, the following are the completed tasks and changes after midterms:
Here are the highlights after midterm presentation:
- Changes to Additional functionality
- Changes to UI
- User Testing from Selected Live B1G1 Users and B1G1 Team
While the IS480 journey may be an enjoyable experience, our team have faced numerous challenges along the way. As the saying goes, "No pain, no gain!"
Adaptability to new programming language & skills
- PHP, jQuery and AJAX were new programming skills to us and we spent quite some time to understand and to adapt these languages into our development environment. Fortunately, knowledge sharing was able to take place within the team and thus we found it easier to understand as a team.
Difficulty with understanding of B1G1 Database
- The B1G1 database was a complexed one. Hence, in the initial phase of our project, we faced difficulties in the integration between B1G1’s existing database system and our team’s web application. However, we made the effort to assess and understand the database scheme as a team. If there was any point we could not resolve an issue, we consulted the sponsor for further clarification. It was fortunate that we had a supportive sponsor who is constantly ready to answer our enquiries. In whole, not only we able to integrate fully, we also managed to forge a good relationship with our client.
The need to achieve client’s expectations
- It was not easy to manage client's expectation and to complete assigned tasks on time for deployment due to our other commitments.
Difficulty in understanding the whole giving process as a team
As our team was not familiar with how to contribute to social causes via technology, one of the major challenges we faced was all of us were not on the same page or did not have a common understanding on the rationale behind B1G1's giving process. Therefore, we faced difficulties in understanding the entire giving process as a team - as all of us have a different idea/perception towards the giving process (which the picture depicted what we faced); this has restricted us to develop the web application smoothly during the initial stages.
However, through numerous discussions, we have clarified our uncertainties with each other and ensured that every team member is on the same page. We also make sure that all of us have a common understanding on B1G1 Giving Process.
IS480 project has allowed our team to undergo a real business-IT situation and given us an opportunity to apply IT solutions to the problems faced. From the project, we have achieved the following:
- Applied project management and time management skills
- We have achieved the necessary project management skills - to be able to plan, organize, manage, utilize resources to achieve project objectives. We have also achieved in excellent time management skills - to be able to plan and manage our time properly with other work commitments that we might have, but at the same time achieve project milestones/deadlines with enhanced quality in our work.
- Enhanced our technical skills on PHP language, jQuery and AJAX skills
- Through the initial practical programming sections, self-research and aiding each other with programming difficulties that we faced throughout FYP, we have definitely increased our knowledge in PHP, jQuery and AJAX.
- Better communication skills with the team and stakeholders (i.e. Supervisor & Client)
- Being in a self-managed team, we have improved on our interpersonal communication skills. Through the liaison needed between the team and our stakeholders, we understand how to communicate effectively with each other so that all of us are on the same page so that the project can proceed smoothly.
- Quality team dynamics
- We managed to collaborate well with each other and communicate with each other effectively.
|Iteration||Task||Planned Start||Planned End||Task||Actual Start||Actual End||Comment(s)|
|1||Gathering of Project Requirements||08/05/2012||10/06/2012||Gathering of Project Requirements||08/05/2012||17/06/2012||Client was away on overseas trip, took longer time to gather client requirement.|
|Brainstorming of Ideas||08/05/2012||08/06/2012||Brainstorming of Ideas||08/05/2012||14/06/2012|
|Discussion and Preparation of Proposal||11/06/2012||18/06/2012||Discussion and Preparation of Proposal||11/06/2012||19/06/2012|
|2||Design Phase (Use Cases, Process Flow Diagram, Class Diagram, Sequence Diagram)||27/06/2012||07/10/2012||Design Phase (Use Cases, Process Flow Diagram, Class Diagram, Sequence Diagram)||27/06/2012||07/10/2012|
|3||Learning of PHP5||12/07/2012||16/07/2012||Learning of PHP5||12/07/2012||16/07/2012||Self-Learning + Group Learning|
|User Account Management||15/07/2012||20/07/2012||User Account Management||15/07/2012||20/07/2012|
|Login/Logout Function||12/07/2012||13/07/2012||Login/Logout Function||12/07/2012||12/07/2012|
|Location Check-in||15/07/2012||20/07/2012||Started task one iteration earlier as newsfeed finished earlier than expectation|
|QR Code Generation||15/07/2012||19/07/2012||QR Code Generation||15/07/2012||15/07/2012|
|Business Profile Page||15/07/2012||15/07/2012||Business Profile Page||15/07/2012||15/07/2012|
|Sharing and Liking of Feeds||17/07/2012||20/07/2012||Sharing and Liking of Feeds||17/07/2012||20/07/2012|
|Impact Page||15/07/2012||16/07/2012||Impact Page||15/07/2012||16/07/2012|
|4||Selection of Project for Business Member||24/07/2012||01/08/2012||Selection of Project for Business Member||24/07/2012||01/08/2012|
|Support Project Function||24/07/2012||01/08/2012||Support Project Function||24/07/2012||01/08/2012|
|Display and Calculation of Giving||24/07/2012||01/08/2012||Display and Calculation of Giving||24/07/2012||01/08/2012|
|Changes to UI||24/07/2012||08/10/2012||Client gave designs to make the UI look more friendly|
|5||Understanding of B1G1 Database||15/08/2012||20/08/2012||Understanding of B1G1 Database||15/08/2012||20/08/2012||Days set aside to understand client database before integration due to the complex database structure|
|Integration with B1G1 database||24/08/2012||27/08/2012||Integration with B1G1 database||24/08/2012||27/08/2012|
|6||Integration with Drupal for giving||03/09/10||12/09/2012||Integration with Drupal for giving||03/09/2012||18/09/2012||Client changed requirements - Instead of integration with Paypal, they prefer integration with Drupal. Task took longer than expected for completion due to time spent to learn drupal and unexpected technical difficulties faced|
|Instruction Function||07/09/2012||09/09/2012||Client Request to have instruction function to be implemented before Quick Tour|
|Quick Tour for Business and Individual||15/09/2012||16/09/2012||Task pushed to iteration 7 as client prefer to have quick tour after completion of core functionalities and would like to have instruction page first|
|Giving Summary||15/09/2012||16/09/2012||Task pushed to iteration 7 due to delay in completion of integration with drupal|
|Project Expiration Date||15/09/2012||19/09/2012||Task pushed forward from iteration 7 to iteration 6 since two tasks are being pushed back|
|7||Giving Summary||24/09/2012||25/09/2012||Giving Summary||26/09/2012||28/09/2012|
|Notification to User for Project Expiration||24/09/2012||28/09/2012||Notification to User for Project Expiration||22/09/2012||26/09/2012|
|Improvements to UI||22/09/2012||28/09/2012|
|8||Quick Tour||18/10/2012||18/09/2012||Quick Tour||22/10/2012||22/10/2012||Delay in implementation of Quick Tour due to delay in getting client's approval for quick tour's UI|
|Improvements to UI||15/10/2012||28/10/2012||Improvements to UI||15/10/2012||28/10/2012||Changes to UI due to feedback from client and UT #2|
|Implementation of Projects Function for individuals||18/10/2012||23/10/2012||Added due to user's suggestion from UT#2|
|Changes to Location Function (Full screen view, search for businesses)||18/10/2012||28/10/2012||Added due to user's suggestion from UT#2|
|9||Leverage Function||06/11/2012||12/11/2012||Leverage Function||15/11/2012||19/11/2012||Delay in implementation of leverage function as the IT representation is on holidays, thus unable to retrieve information from the IT representation to start working on the function|
|Individual Giving||05/11/2012||12/11/2012||Recommend Business||12/11/2012||19/11/2012||Client request to remove individual giving as they prefer individuals to use the current function which they have called "Giving Life" for individual giving instead. Thus, the new additional functionality, "Recommend business" which allows users to recommend businesses whom they want to see as B1G1 business member has been confirmed on the meeting on 08/11/2012|
|Email Notification to Individuals on support information||05/11/2012||10/11/2012||Profile Image Cropping for individual users that logins via B1G1 account||05/11/2012||11/10/2012||Email notification is removed as users are able to view their support details from impact page. Hence, client suggested adding cropping profile picture as an additional functionality to allow users to upload and crop the profile image which they prefer|
|Search Project Function||15 Nov 2012||20 Nov 2012||Additional function requested by client after UT#3|
The schedule metric ratio for iteration 1-6 has been explained in the https://wiki.smu.edu.sg/is480/Mid_Term_Wiki.
From iteration 7-9, our schedule ratio remains fairly constant as our project progress has been on schedule. However, there was a hike in schedule metric ratio in iteration 8, this is because after UT#2, there has been several constructive feedbacks from both the client and the users. Thus, our group spent some time to discuss the changes with our client and has spent a longer than expected time to make the changes as we need to ensure that our application is able to satisfy the requirements before we do our deployment to the live server.
The bug metric analysis for the iterations 3-7 has been covered in https://wiki.smu.edu.sg/is480/Mid_Term_Wiki.
On iteration 8 and iteration 9, the bug score increases during this two iterations due to the extensive testing which was conducted from the team and the user testings conducted. In iteration 8, the bugs were caused mainly from the shift from test server to live server, where functions such as sharing via facebook did not work after deployment during our user testing. On iteration 9, the bugs was mainly caused by the implementation of the additional functionalities where the team faced slight problems with implementing functions such as project search.
Technical Complexity, Framework and Architecture
|Design a user interface which is suitable for most computers and devices|
Ever since we started on this project, we have been facing difficulties catering to the different resolutions of mobile devices and computers. As we implement new features and pages, we have been spending a reasonable amount of time on improving the user interface so as to make it suitable for the different mobile devices and computers.
In some cases, the alignment issues are more difficult to solve. For example, adjusting the alignment of a divider may fit the resolution of computers but when viewed on mobile devices, there are unwanted gaps. Therefore, the solution we adopted is to find the “best-fit” alignment for both mobile devices and computers. Using the example earlier, we have to adjust the divider so that it does not look too out of position on both mobile devices and computers.
|Complexity encountered when implementing additional functionalities|
The framework which we used for our web application is the Model-View-Controller (MVC). By adopting this framework, the files are mainly organized as Model, Data Access Object (DAO), Controller, View.
- Model: used to store information.
- Data Access Object (DAO): used to retrieve and store information inside the database.
- Controller: used to retrieve and store information using the DAO and contains all the logic needed to process the information.
- View: used to display the information; the user interface of our web application.
The image on the left shows how these files are organized for our web application. The View files are stored in the 'root' folder.
The image on the left is an example of the relationship between the Model, Controller, View files and Data Access Objects. It shows two View files (location.php, business_profile.php), one Controller (BusinessController.php), one Data Access Object (BusinessDAO.php) and one model (Business.php). If we want to change the set of data retrieved from database, we can simply change the SQL statement in the BusinessDAO.php. The View files will be able to retrieve the data through the BusinessController.php and display the results accordingly. Changing the logic of a method in BusinessController.php will also affect results being displayed in the View files.
How MVC has helped us:
- MVC decouples the Model, View and Controller files to increase flexibility and reuse.
Migrating from Local Host to Client’s Test Server.
- We change only the SQL statements in the Data Access Objects (DAO).
We have deployed our web application to the client's live server on 30th October 2012. After deployment, we conducted a User Testing (UT#3) from 1st - 2nd November 2012. Other than testing the usability of the application, we conducted UT#3 to test if there is any bugs found when using our web application on the live server.
We have conducted a total of 4 User Testings, summing up to a total of 102 Participants throughout the 4 sessions.
User Testing #1
User Testing 1 was a close group system testing with the B1G1 Team, focusing on the functionality aspect of the system. More details for the UT1 can be found here.
User Testing #2
User Testing 2 was conducted on 61 participants , who responded our request via Facebook, focusing on the functionality aspect of the system. More details for the UT2 can be found here.
User Testing #3
User Testing 3 was a conducted on 33 parictipants , who responded our request via Facebook, and 4 B1G1 Team members focusing on the usability aspect of the system. More details for the UT3 can be found here.
User Testing #4
User Testing 4 was conducted with 3 employees from the B1G1 team and 5 selected real B1G1 business members. The test focuses on usability of the application and receiving of feedback from real B1G1 business member to have a better understanding of the things which could be done to improve B1G1 Connect.
This is the usability score which has been calculated:
From the feedbacks, we analyzed that 80% of the B1G1 users think that B1G1 Connect is able to help them to simplify their process of giving and 100% of the users agreed that supporting a project is their favourite function in the application. We have also noted the potential areas of improvements for the application and we will go through these useful feedbacks with the client.
Risk and Mitigation
|Unable to deploy on time
||Monitor schedule closely and communicate with client actively
|Other work commitments
||Keep PM and team updated of each other’s schedule
|Lack of participants
||Be more pro-active in seeking for assistance
What we want to learn from IS480?
What we learnt from IS480?