HeaderSIS.jpg

IS480 Team wiki: 2014T1 Team Epsilon Final

From IS480
Jump to navigation Jump to search

Team Epsilon Logo.png.png

Home   Project Overview   Project Management   Documentation   Team


[ Mid-Term ] [ Final ]

Final Project Progress Summary

Final Presentation Slides: To be updated - Click Here

iOS App: Click Here

Deployed Site: Click Here

For the rest of our submission deliverables, Click Here

Project Highlights

  1. Project Business Value
    1. Crowdsourcing feedback platform
    2. Island-wide implementation
    3. Caters to current user's needs
  2. List of requirement changes
    1. Added Feedback Search under non-core functionality in iteration 9
    2. Added Feedback Sorting under non-core functionality in iteration 9
    3. Added User Ranking under non-core functionality in iteration 9
  3. Schedule Updates since Mid-Term
    1. iOS App successfully deployed on the App Store
    2. Added 3 non-core functionalities as per users & supervisor's recommendation
    3. Non-core functions which are dropped
      1. Proximity Sorting
      2. Admin Log
      3. Export Report

Project Management

Project Status

There are a total of 9 iterations for our project. This marks the end of our project journey.

After our mid-terms presentation, we contacted various news publications and agencies (both government like MSO, NEA, LTA, and non-government) to try out our application. Eventually, we managed to meet up with Ramky, one of the sub-contractors working under NEA in-charge of cleaning parts of Singapore. While they found our app useful (especially for their own private use), the fact that MSO already has plans to release a similar app soon, and that they are under the government’s contract, means our app will not be their priority, but only an alternative means of reporting just like phone call and email. Additionally, MSO also reverted back to us, requesting the data that we already collected.

Though we were unable to garner any commitment from agencies, we realized that there are users interested in voicing out their concerns about infrastructure/ cleanliness issues. As such, we decided to focus on the needs of these users and modified our application accordingly. This change in focus has been approved by both our sponsor, Mr. Low Chin Chau and supervisor, Mr. Chris Boesch. Note that while our target audience has changed, we would still be delivering the functions that we promised our sponsor.

The iOS application has since been approved, and several small updates along with our marked 2 major key updates have been submitted.

This last iteration 9 will be the time period where we attempt to gather real public user and feedback data from users who download our app from the App Store.

Task/ Function/ Features, etc Status Confident Level (0-1) Comment
Account Management Fully deployed and tested 100% 1 Benjamin, Lavinia, JongHyeok
Submit Feedback Fully deployed and tested 100% 1 Benjamin
Feedback Displays Fully deployed and tested 100% 1 Benjamin, Lavinia, JongHyeok: Display My Feedback remaining.
Closing of Feedback
Backend Management
Fully deployed and tested 100% 1 Lavinia, JongHyeok
Vote & Comment Fully deployed and tested 100% 1 Benjamin, Lavinia, JongHyeok
Agency Update Fully deployed and tested 100% 1 Lavinia, JongHyeok
Report Abuse Fully deployed and tested 100% 1 Benjamin, Lavinia, JongHyeok
Notification Fully deployed and tested 100% 1 Benjamin, Lavinia, JongHyeok
Feedback Search Fully deployed and tested 100% 1 Lavinia, JongHyeok
Feedback Sorting Fully deployed and tested 100% 1 Lavinia, JongHyeok
User Ranking Fully deployed and tested 100% 1 Lavinia, JongHyeok


Project Schedule (Plan Vs Actual)

Since Mid-Term, the scope has increased to include [Feedback Search], [Feedback Sorting] and [User Ranking].

Dropped functionalities (due to change in business direction) includes [Proximity Sorting], [Admin Log] and [Export Report].

Iteration Planned Actual Comments
1 Requirement Gathering 01 Jun 2014 01 Jun 2014 Team.
Create Technical Diagrams 8 Jun 2014 8 Jun 2014 Team.
Explore Technology 14 Jun 2014 14 Jun 2014 Team.
2 Define Scope 08 Jun 2014 10 Jun 2014 Team. New technology & steep learning curve resulted in more time needed to learn language
Set up Database 15 Jun 2014 15 Jun 2014 JongHyeok & Joel.
Set up SMS Verification 15 Jun 2014 14 Jun 2014 Lavinia.
User-Flow Prototype 25 Jun 2014 25 Jun 2014 Joel.
Web: Registration 19 Jun 2014 19 Jun 2014 Jong Hyeok & Lavinia.
Web: Login 23 Jun 2014 23 Jun 2014 Jong Hyeok & Lavinia.
Web: Facebook Integration 28 Jun 2014 28 Jun 2014 Jong Hyeok & Lavinia.
iOS: Registration 16 Jun 2014 16 Jun 2014 Benjamin.
iOS: Login 21 Jun 2014 21 Jun 2014 Benjamin.
iOS: Facebook Integration 26 Jun 2014 26 Jun 2014 Benjamin.
Proposal Submission 18 Jun 2014 18 Jun 2014 Team.
3 Initial Requirement Document 17 Jul 2014 17 Jul 2014 Joel.
iOS High-Fidelity Prototype 27 Jul 2014 27 Jul 2014 Joel.
Web: Display All Feedback 23 Jul 2014 23 Jul 2014 Jong Hyeok & Lavinia.
iOS: Display All Feedback 23 Jul 2014 23 Jul 2014 Benjamin.
4 Finalized Requirement Document 6 Aug 2014 6 Aug 2014 Joel.
Web: Display Detailed Feedback 13 Aug 2014 13 Aug 2014 Jong Hyeok & Lavinia.
iOS: Submit Basic Feedback 13 Aug 2014 13 Aug 2014 Benjamin.
Acceptance Presentation 14 Aug 2014 14 Aug 2014 Team.
5 Web: Display Agency Feedback 21 Aug 2014 21 Aug 2014 Jong Hyeok & Lavinia.
Web: Mark Feedback as Resolved 23 Aug 2014 23 Aug 2014 Jong Hyeok & Lavinia.
Admin: Login 24 Aug 2014 24 Aug 2014 Jong Hyeok & Lavinia. Shifted from Iteration 4.
Admin: Display All Feedback 25 Aug 2014 25 Aug 2014 Jong Hyeok & Lavinia. Shifted from Iteration 4.
Admin: Display Detailed Feedback 26 Aug 2014 26 Aug 2014 Jong Hyeok & Lavinia.
Admin: Tag Agency to Feedback 27 Aug 2014 27 Aug 2014 Jong Hyeok & Lavinia.
iOS: Submit Full Feedback 27 Aug 2014 28 Aug 2014 Benjamin. Annotation proved to be more complex than initially thought and took a little more time for development.
Usability Testing 1 29 Aug 2014 1 Sep 2014 Team. Testing took place over several days to accommodate users’ schedule.
6 Web: Close Feedback 10 Sep 2014 11 Sep 2014 Jong Hyeok & Lavinia. Technical complexity in checking of feedback owner. Shifted from Iteration 5.
Web: Agency Update 13 Sep 2014 17 Sep 2014 Jong Hyeok & Lavinia. Customization of entry and image upload was more challenging than the team initially thought. Shifted from Iteration 5.
Web: Report Abuse 15 Sep 2014 20 Sep 2014 Jong Hyeok & Lavinia. Slight delay due to backend complexity of Report Abuse with status change.
Web: Comment on Feedback 18 Sep 2014 25 Sep 2014 Jong Hyeok & Lavinia. Complexity of comment is higher than expected due to integration with Agency Update.
Web: Vote on Feedback 20 Sep 2014 27 Sep 2014 Jong Hyeok & Lavinia. Delayed due to above functions snow-balling.
Admin: Close Feedback 23 Sep 2014 29 Sep 2014 Jong Hyeok & Lavinia. Used buffer period after this iteration to offset delay.
iOS: Display Detailed Feedback 15 Sep 2014 20 Sep 2014 Benjamin. Detailed Feedback has a lot more components that caused some UI instability.
iOS: Comment on Feedback 19 Sep 2014 25 Sep 2014 Benjamin. Took longer than planned due to making sure app is sufficiently stable for App Store submission.
iOS: Vote on Feedback 23 Sep 2014 30 Sep 2014 Benjamin. Took longer than planned due to making sure app is sufficiently stable for App Store submission. Used buffer period after this iteration to offset delay.
App Store Submission 1 5 Oct 2014 4 Oct 2014 Benjamin. Shifted from Iteration 5. Used buffer period after this iteration to offset delay.
7 Web: Display My Feedback 11 Oct 2014 11 Oct 2014 Jong Hyeok & Lavinia.
Web: Change Password 16 Oct 2014 16 Oct 2014 Jong Hyeok & Lavinia.
Web: Notification 19 Oct 2014 19 Oct 2014 Jong Hyeok & Lavinia.
Web: Display Annotation 23 Oct 2014 23 Oct 2014 Jong Hyeok & Lavinia.
Admin: Suspend User 16 Oct 2014 16 Oct 2014 Jong Hyeok & Lavinia.
Admin: Add Agency 16 Oct 2014 16 Oct 2014 Jong Hyeok & Lavinia.
Admin: Edit Agency 16 Oct 2014 16 Oct 2014 Jong Hyeok & Lavinia.
Admin: Delete User 17 Oct 2014 17 Oct 2014 Jong Hyeok & Lavinia.
Admin: Notification 19 Oct 2014 19 Oct 2014 Jong Hyeok & Lavinia.
iOS: Close Feedback 9 Oct 2014 9 Oct 2014 Benjamin.
iOS: Report Abuse 10 Oct 2014 10 Oct 2014 Benjamin.
iOS: Display My Feedback 13 Oct 2014 13 Oct 2014 Benjamin.
iOS: Change Password 15 Oct 2014 15 Oct 2014 Benjamin.
iOS: Notification 20 Oct 2014 20 Oct 2014 Benjamin.
iOS: Display Annotation 23 Oct 2014 23 Oct 2014 Benjamin.
8 Web: System & UI Refinements 30 Oct 2014 30 Oct 2014 Jong Hyeok & Lavinia.
iOS: System & UI Refinements 30 Oct 2014 30 Oct 2014 Benjamin.
App Store Submission 2 1 Nov 2014 1 Nov 2014 Benjamin.
Usability Testing 2 4 Nov 2014 4 Nov 2014 Team.
Usability Testing 3 10 Nov 2014 10 Nov 2014 Team.
9 Web: Feedback Search 11 Nov 2014 11 Nov 2014 Jong Hyeok & Lavinia.
Web: Feedback Sorting 12 Nov 2014 12 Nov 2014 Jong Hyeok & Lavinia.
Web: User Ranking 13 Nov 2014 13 Nov 2014 Jong Hyeok & Lavinia.
Final Presentation 24 Nov 2014 24 Nov 2014 Team.
Poster Day 3 Dec 2014 3 Dec 2014 Team.


Project Metrics

Absolute Days Delayed

Epsilon Final Absolute Days Delayed.png

This is a snapshot of the final absolute days delayed.

For the mid-term snapshot, please refer to the mid-term wiki.

Schedule Index

Schedule Index Chart Epsilon Final.png

All iterations are on time, except for iteration 6.

However, we have a buffer period scheduled right after iteration 6 to catch up on unfinished functions.

After factoring the buffer period into the equation, iteration 6 is on-time too.

This is a snapshot of the final schedule index.

For the mid-term snapshot, please refer to the mid-term wiki.

For how the schedule index is calculated, Click Here


Effort Metric

Epsilon Effort Metric Final.png

This is a snapshot of the final effort metric.

For the mid-term snapshot, please refer to the mid-term wiki.


Bug Metric

Epsilon Final Bug Metric.png

This is a snapshot of the final bug metric.

For the mid-term snapshot, please refer to the mid-term wiki.


Project Risks

Risk Consequences Likelihood Impact Level (Derived) Mitigation Strategy Status
Unable to get usage & support from end-users Users may potentially resist adopting the system, which means our application will not have an actual end-user Medium High A Research on how our system can benefit end-users.

Meet up with end-users and pitch to them why they should use our application.
Pivot and change the business direction of the project, so that the system has actual end-users and can benefit from it.

Mitigated
Updates to iOS Project schedule may be delayed to support the new iOS version release High High A Research into iOS update roadmap to better gauge when new versions will be released (Apple often seeds beta versions to developers early) as well as what changes will come with it.

Evaluate if there is a need to allocate time to support the new update. If there is, adjust the schedule accordingly, taking into account the overall development progress using the critical path.

Mitigated
Change or increase in requirements Project schedule may be delayed to accommodate the changes to the project.

Increase in project requirements may lead to scope creep.

Medium High A Work with the sponsor to create a requirement document that both parties agree on. Come to an understanding that any change requests would be subject to the other party’s approval based on his/their judgement of the necessity of the change.

Create a change management metrics to help with the change management decision. Keep track of all change requests.

Mitigated
Team member pulls out of project Team might be overwhelmed with project scope due to the sudden reduction in manpower Low High B Reshuffle roles and responsibilities to fill up the gap created by the team member’s exit.

Source for another suitable team member if possible and bring him/her up to speed.
Consider scoping down to make the project more manageable for the smaller team.

Mitigated

This is a snapshot of the top 4 most interesting final risk management list.

For the mid-term snapshot, please refer to the mid-term wiki.

For the most updated and full list of risks, Click Here

Quality of product

Technical Complexity

1. Image Handling

Both our iOS and web platforms require the upload and storage of images and we want to standardize how this is done across all platforms. This has the additional benefit of just a one time pain to configure for image handling. To do so, the devise would have to send the image over the rest service using our API. However, the API was unable to receive the image directly so we had to encode it into a base64 string before sending. We initially wanted to decode the image and store it in Amazon Web Services S3 via the library “Paperclip". However, the decoding process sometimes resulted in corruption of the images. As such, we switched to storing the encoded base64 image string into the database and rendering it directly.

Image Handling.png

We created a pop-up to display an enlarged version of the image. However, this disabled the next button in our image slider and our navigation tabs. This occurred because the z-index of the hidden pop-up image is greater than the image slider and navigation bar, causing the hidden pop-up image to be in front of those button/ tabs. To fix this, we had to overwrite the z-index of pop-up image provided by "Twitter Bootstrap” so that it would be smaller than the image slider and navigation bar prior to popping up and greater after popping up. We also rewrote the pop-up javascript provided by "Twitter Bootstrap” so that the pop-up will now pop-up from the image slider and not from the top of the page.

Z-index.png


2. Image Annotation

The layering process is done under a fix frame of image view and gesture recogniser. Upon a tap of the problem on the image, another callout view will be layer upon the image view using the x and y axis provided from the tap gesture recogniser.

Layering Epsilon.png

When a user tap on the gesture recogniser, a callout view will be layer upon base on what the user tap. The call out view uses a text counter to calculate the length of the text for the dimension of the callout view box. Upon user enter the text that they wanted to annotate, the first callout view will be dismiss and another callout view with the user’s text will be displayed.

Final Deliverables

Stage Specification Modules
Project Management Minutes Meeting Minutes
Metrics

Schedule Metric, Bug Metric, Effort Metric, Change Log, Product Backlog

Risk

Risk Management

Requirements Storyboard Comic Storyboard
Design Priority Diagram Priority Circle, Priority Table
Analysis Use Case Use Case Diagram, Use Case Description
Prototype User Flow

iOS User Flow, Admin User Flow, Agency User Flow

Design ER Diagram E-R Diagram
Architecture System Architecture,

MVC Application Layer Architecture

Testing Usability Testing UT 1 Details, UT 2 Details, UT 3 Details

Deployment

iOS App: Click Here

Deployed Site: Click Here

Testing

User Testing 1: Click Here

User Testing 2: Click Here

User Testing 3: Click Here

Reflection

Team Reflection & Learning Outcome

Our team learnt that communication between team members and the sponsor is vital in a developing a software project. Managing changing requirements is something that we should be expecting to encounter in every project we do, but the key is in evaluating the change requirement proposed, and see how it can be fit into the current planned schedule. If the change requirement is important to the business process, and is of high business value, then some other parts of the scope has to give way. Besides prioritizing the functions and scope, we should also have mitigation plan in place to handle change and risk management.