IS480 Team wiki: 2014T1 Team Epsilon Final
Home | Project Overview | Project Management | Documentation | Team |
[ Mid-Term ] | [ Final ] |
Final Project Progress Summary
Final Presentation Slides: To be updated - Click Here
Deployed Site: Click Here
iOS App: Click Here
For the rest of our submission deliverables, Click Here
Project Highlights
- Project Business Value
- Crowdsourcing feedback platform
- Island-wide implementation
- Caters to current user's needs
- List of requirement changes
- Added Feedback Search under non-core functionality in iteration 9
- Added Feedback Sorting under non-core functionality in iteration 9
- Added User Ranking under non-core functionality in iteration 9
- Schedule Updates since Mid-Term
- iOS App successfully deployed on the App Store
- Added 3 non-core functionalities as per users & supervisor's recommendation
- Non-core functions which are dropped
- Proximity Sorting
- Admin Log
- 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 | 80% | 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 | 11 Oct 2014 | 11 Oct 2014 | Jong Hyeok & Lavinia. |
iOS: System & UI Refinements | 11 Oct 2014 | 11 Oct 2014 | Benjamin. | |
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. |
Project Metrics
Absolute Days Delayed
This is a snapshot of the final absolute days delayed.
For the mid-term snapshot, please refer to the mid-term wiki.
Schedule Index
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
This is a snapshot of the final effort metric.
For the mid-term snapshot, please refer to the mid-term wiki.
Bug Metric
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 |
---|---|---|---|---|---|---|
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. |
Mitigated |
This is a snapshot of the top 3 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.
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.
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.
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.
Intermediate Deliverables
Stage | Specification | Modules |
---|---|---|
Project Management | Minutes | Meeting Minutes |
Metrics |
Schedule Metric, Bug Metric, Effort Metric, Change Log, Product Backlog | |
Risk | ||
Requirements | Storyboard | Comic Storyboard |
Design | Priority Diagram | Priority Circle, Priority Table |
Analysis | Use Case | Use Case Diagram, Use Case Description |
Prototype | User Flow | |
Design | ER Diagram | E-R Diagram |
Architecture | System Architecture, | |
Testing | Usability Testing 1 | UT 1 Details, UT 2 Details, UT 3 Details |
Deployment
iOS App: https://appsto.re/sg/1mKl3.i
Website: http://smu-epsilon.herokuapp.com/
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.