Difference between revisions of "2011T2 Bazinga Final Wiki"
Joy.koh.2008 (talk | contribs) |
Joy.koh.2008 (talk | contribs) |
||
Line 624: | Line 624: | ||
We wanted to make sure we completed most of our development by Iteration 4 and hence, there is a steeper curve in terms of the lines of codes. As we got more familiar with Kinect development, the curve is not the steep from Iteration 5 onwards. | We wanted to make sure we completed most of our development by Iteration 4 and hence, there is a steeper curve in terms of the lines of codes. As we got more familiar with Kinect development, the curve is not the steep from Iteration 5 onwards. | ||
+ | |||
+ | <br /><br /> | ||
===<font color = "#0164a6">Project Risks</font>=== | ===<font color = "#0164a6">Project Risks</font>=== |
Revision as of 22:53, 20 April 2012
Main Wiki Page | Project Management | Project Metrics | Technical Complexity & Deployment | User Test 2 | Beta Test | BP Tech Fair | Team Reflections |
Contents
Project Progress Summary
Summary Overview
Since 23 February, we have gone through 7 iterations with the assigned functionality being completed timely every iteration. During these 1.5 months, our team accomplished the following:
- Designed and planned the blueprint for our Kinect Application
- Delivered a working Kinect application from 5 initially to 7 amazing functionalities
- Conducted User Testing 2 with a total of 35 testers that allowed us to gather very useful quality feedback.
Project Highlights
While the team has put in much effort in planning the execution of the project, there were some unexpected events which forced the team to take certain corrective measures as list below:
1 | Improving overall User Experience |
Through our survey results and after interacting with the testers from our first User Test, we realised that most of them do not have any prior experience in using the Kinect before. Thus, it was really difficult for the users to know how to navigate through our Kinect application easily. Thus, we placed a high priority in improving the overall user experience by having good tutorial videos and an improved user interface to guide them through the application. Over the past two months, our group has gone through several iterations to create better and improved tutorial videos for different features. We kept trying to look for the best practices of other Kinect applications, such as the Kinect Sports Season One. We tried to understand their tutorial videos. Two weeks before our User Test 2, we kept reviewing the video internally to ensure that we have made the tutorial as easy as possible to comprehend and to follow. Even during our second User Test, we tried to improve the videos after hearing feedback from our testers. | |
2 | Beta Testing |
Beta Testing was the first time that our team collaborated with a real client. It was truly a great experience for us to be able to collaborate with the cafe Glassroom, located at SMU School of Information Systems. We created an application that could allow their customers to browse through images and select the one they preferred for a free virtual photo shoot. Many customers came up with their friends and tried out the different photos available. We started by showing them the capabilities and features of our application. We then gathered feedback from them on what they were very interested in. They showed a strong interest in the Augmented Reality function. Thus, we decided to incorporate both the Augmented Reality and browsing of images for their application. Firstly, they gave us both their menu and marketing collaterals.
After our User Test 2, we immediately started on our Beta Testing. ver a period of 5 days, we completed the application. However, there were some unforeseen delays as we required more time than expected to finish the augmented reality application. We had to push back our application launch at Glassroom by 2 days. We informed them of the issue early and they had no issues with the delay.
| |
3 | User Testing 2 |
Despite our busy and hectic schedule, we managed to get the functions, video tutorials, test instructions, procedures and survey questions ready for our User Test 2. We had a total of 35 testers who spent at least 15 to 25 minutes each. Different from our first User Test, we did not offer any help to them and asked them a 'Quest', where they to complete a set of tasks based on the instructions that we have given to them. They did not receive any help from us at all. If they required any help, they would ask the Kinect for help by either the voice command or the help gesture. The application has a total of xx tutorials, all for the different functions.
|
Project Management
Project Schedule
Project Status
Task/function/features, etc | Status | Complexity Level (0-10) |
Comment |
---|---|---|---|
Login with Facial Recognition using Face.com | Function to be kept in view - fully developed but removed for the time being | 9 | Kiwie |
Kinect with SAP integration: Pick Items | Broadened scope instead of limiting to SAP - removed function for the time being | 6 | Kiwie |
Kinect: Apply WPF Skin/Theme | Complete with constant updates in each iteration, UAT1 done | 5 | Carmen & Joy |
Kinect: Listbox scrolling with Kinect | Fully deployed and tested 100%, UAT1 done | 7 | Kiwie |
Kinect Gestures: Recognize Left and Right Swipes | Fully deployed and tested 100%, UAT1 done | 9 | Kiwie |
Kinect: Implement ElementFlow | Fully deployed and tested 100%, UAT1 done | 8 | Kiwie |
Kinect Gestures: Single Hand Scroll for Element Flow | Fully deployed and tested 100%, UAT1 done | 7 | Kiwie |
Application Paging (get Root Page, page and MenuOptions) | Fully deployed and tested 100%, UAT1 done | Kinect: 3, Backend: 7 | Kiwie and Alex |
Kinect Gestures: Recognize Up Swipes | Fully deployed and tested 100%, UAT1 done | 5 | Kiwie |
Kinect: KinectListMenu (Template and Display Selected MenuOption Preview) | Fully deployed and tested 100%, UAT1 done | 5 | Kiwie |
Kinect: HalfCircleMenu (Template and Databind Menu Options to HalfCirclePanel) | Fully deployed and tested 100%, UAT1 done | 6 | Kiwie |
Kinect Gestures: Vertical Scrolling for HalfCirclePanel | Fully deployed and tested 100%, UAT1 done | 8 | Kiwie |
Kinect: ElementFlow Product Browsing | Fully deployed and tested 100%, UAT1 done | 8 | Kiwie |
Kinect Gestures: 3D Two-Handed Scroll for Element Flow | Fully deployed and tested 100%, UAT1 done | 9 | Kiwie |
Kinect: ElementFlowMenu (Template and Databind MenuOptions to ElementFlow) | Fully deployed and tested 100%, UAT1 done | 7 | Kiwie |
View and Display Elements (tabs, prices, colors and features) | Fully deployed and tested 100%, UAT1 done | Kinect: 3, Backend: 7 | Kiwie and Alex |
View and Display Retailer-Generated Content | Fully deployed and tested 100%, UAT1 done | Kinect: 3, Backend: 6 | Kiwie and Alex |
Web app: Manage catalog | Fully deployed and tested 100%, UAT1 done | 9 | Alex |
Kinect: Instructional Video | Fully deployed and tested 100%, UT2 done | 10 | Bevan |
Kinect: Capture and Display of User Analytics | Fully deployed and tested 100%, UT2 done | 4 | Alex and Kiwie |
Kinect: View Geographic Map | Fully deployed and tested 100%, UT2 done | 6 | Alex and Kiwie |
Kinect: Loading Screens Tutorials | Fully deployed and tested 100%, UT2 done | 6 | Kiwie |
Kinect: Review Kinect Navigation and View Element | Fully deployed and tested 100%, UT2 done | 3 | Kiwie |
Web app: Enter Geographic Data | Fully deployed and tested 100%, UT2 done | 2 | Alex |
Project Schedule (Plan vs Actual)
Comparing our project plan during the acceptance with the actual work done, our team feels that almost all the tasks/functions have been completed as plan. We had made some minor adjustments to our project schedule due to an additional functionality in order to justify the benefits of a Kinect app as opposed to a touchscreen app.
Planned | Actual | ||||||
---|---|---|---|---|---|---|---|
Iteration | Task | Start | End | Task | Start | End | comment |
1 | Create WPF App Project for Kinect Front-end | 23/12/11 | 24/12/11 | Create WPF App Project for Kinect Front-end | 23/12/11 | 24/12/11 | |
Login with Facial Recognition | 24/12/11 | 27/12/11 | Login with Facial Recognition | 24/12/11 | 27/12/11 | ||
Main Menu Navigation (Listbox) | 28/12/11 | 01/01/12 | Main Menu Navigation (Listbox) | 28/12/11 | 01/01/12 | ||
Pick Items (with SAP) | 01/01/12 | 05/01/12 | Pick Items (with SAP) | 01/01/12 | 04/01/12 | ||
Create ASP.NET Web App for back-end | 05/01/12 | 06/01/12 | Create ASP.NET Web App for back-end | 05/01/12 | 06/01/12 | ||
2 | Review Project Scope and Storyboards | 10/01/12 | 19/01/12 | Review Project Scope and Storyboards | 10/01/12 | 21/01/12 | Went through more revisions than expected |
Kinect Gestures: Recognize Left/Right Swipes | 12/01/12 | 13/01/12 | Kinect Gestures: Recognize Left/Right Swipes | 12/01/12 | 13/01/12 | ||
Kinect: ListBox Scrolling by Kinect | 13/01/12 | 14/01/12 | Kinect: ListBox Scrolling by Kinect | 13/01/12 | 14/01/12 | ||
Kinect: Implement ElementFlow | 14/01/12 | 16/01/12 | Kinect: Implement ElementFlow | 14/01/12 | 16/01/12 | ||
Kinect Gestures: Single Hand Scroll for ElementFlow | 16/01/12 | 17/01/12 | Kinect Gestures: Single Hand Scroll for ElementFlow | 16/01/12 | 17/01/12 | ||
3 | Application Paging | 19/01/12 | 24/01/12 | Application Paging | 21/01/12 | 28/01/12 | Member's laptop malfunctioned |
Kinect: View KinectListMenu | 19/01/12 | 20/01/12 | Kinect: View KinectListMenu | 19/01/12 | 20/01/12 | ||
Kinect Gestures: Recognize Up Swipes | 20/01/12 | 21/01/12 | Kinect Gestures: Recognize Up Swipes | 20/01/12 | 21/01/12 | ||
Kinect: Create HalfCircleMenu template | 20/01/12 | 21/01/12 | Kinect: Create HalfCircleMenu template | 20/01/12 | 21/01/12 | ||
Kinect Gestures: Vertical Scrolling for HalfCirclePanel | 20/01/12 | 21/01/12 | Kinect Gestures: Vertical Scrolling for HalfCirclePanel | 20/01/12 | 21/01/12 | ||
Kinect: Create ElementFlow Product Browsing template | 20/01/12 | 25/01/12 | Kinect: Create ElementFlow Product Browsing template | 21/01/12 | 25/01/12 | ||
4 | Kinect Gestures: 3D Two-Handed Scroll for Element Flow | 27/01/12 | 28/01/12 | Kinect Gestures: 3D Two-Handed Scroll for Element Flow | 25/01/12 | 26/01/12 | Kinect development going faster than planned |
Kinect: Create ElementFlowMenu layout | 28/01/12 | 30/01/12 | Kinect: Create ElementFlowMenu layout | 28/01/12 | 30/01/12 | ||
View and Display Elements | 27/01/12 | 03/02/12 | View and Display Elements | 27/01/12 | 03/02/12 | ||
View Retailer-Generated Content | 29/01/12 | 04/02/12 | View Retailer-Generated Content | 29/01/12 | 04/02/12 | ||
Web app: Manage Catalog | 01/02/12 | 04/02/12 | Web app: Manage Catalog | 01/02/12 | 06/02/12 | Still need to touch up on UI | |
Kinect: Augmented Reality | 06/02/12 | 07/02/12 | Added a special function to justify use of Kinect | ||||
5 | Kinect: Tutorial Videos | 23/02/12 | 27/02/12 | Kinect: Tutorial Videos | 23/02/12 | 09/03/12 | Kinect tutorial videos took more time than expected |
Web App: Capture Usage Analytics | 27/02/12 | 02/03/12 | Web App: Capture Usage Analytics | 27/02/12 | 02/03/12 | ||
Web App: Display Usage Analytics | 23/02/12 | 01/03/12 | Web App: Display Usage Analytics | 23/02/12 | 01/03/12 | ||
Kinect: View Geographic Map | 01/03/12 | 04/03/12 | Kinect: View Geographic Map | 01/03/12 | 04/03/12 | ||
6 | Kinect: Loading Screens Tutorials | 05/03/12 | 09/03/12 | Kinect: Loading Screens Tutorials | 05/03/12 | 10/03/12 | Kinect loading screens tutorial videos took more time than planned |
Kinect: Review Kinect Navigation | 05/03/12 | 07/03/12 | Kinect: Review Kinect Navigation | 05/03/12 | 07/03/12 | ||
Kinect: Review View Element | 07/03/12 | 09/03/12 | Kinect: Review View Element | 07/03/12 | 09/03/12 | ||
Web app: WS: Enter Geographic Data | 09/03/12 | 12/03/12 | Web app: WS: Enter Geographic Data | 09/03/12 | 12/03/12 | ||
7 | Kinect & web app: Revise Codes with UAT2 Feedback | 21/03/12 | 23/03/12 | Kinect & web app: Revise Codes with UAT2 Feedback | 21/03/12 | 23/03/12 | |
Kinect & web app: Integrate & Test | 23/03/12 | 25/03/12 | Kinect & web app: Integrate & Test | 23/03/12 | 25/03/12 |
Project Metrics
The following is a summary analysis of our project metrics for the first 4 iterations. For more details of each metric, please click here.
Project Management Metric
Schedule Metric
Apart from Iterations 2 and 3, the team managed to finish the planned tasks within the estimated period allocated for each iteration. Iteration 2 took 2 days longer as the team went through more revisions to the storyboards than planned. This allowed us to make sure our scope was agreeable to all our stakeholders. Iteration 3 took 4 extra days than estimated previously and the course of action taken by the team was to extend the iteration. However, only the back-end web app was affected whereas the Kinect front-end was on schedule.
So far, the schedule metric served our team well by allowing us to have a better grasp of the actual duration needed to develop a function, so that we can better improve our estimation of similar functions in future iterations. This helped our Project Manager when he had to revise the project schedule at the end/beginning of each iteration.
For example, during the first iteration, the team's estimation for the assigned tasks was rather not accurate for most tasks (because the Project Manager used his experience with Windows Phone 7 development to estimate the schedule initially). However, the schedule metric results collected during the first few iterations helped the team to revise the estimated duration for Iterations 4 to 7 in an attempt to better reflect the eventual duration required for the remaining iterations. As a result, the team managed to complete the tasks assigned ahead of schedule during Iteration 4.
In Iteration 5, the team experienced the most delay as we underestimated the amount of time required to create tutorial videos to include in the application. However, we used this experience to help us adjust the scheduling of the task "Create Loading Screens tutorials" in Iteration 6. As such, we were able to complete Iteration 6 on time.
For Iteration 7, we managed to complete ahead of schedule and took the time to go down to BP Tech Fair.
Code Metrics
Maintainability Index Metric
Maintability Index metric is the only metric that have Color coded ratings. It is used to quickly identify trouble spots in code and reveal code smell. It can be used together with cyclomatic complexity and lines of code metrics in order to reveal code smell which is any symptom in the source code of a particular program that may have the possible indication of a deeper problem.
Code Metrics Analysis
For example, using logJointStatus() has potential to be refactored. It has a relatively low maintainability index (even though >20 and a high complexity relative to other methods. Takes up almost half of total lines of codes in parent class
We wanted to make sure we completed most of our development by Iteration 4 and hence, there is a steeper curve in terms of the lines of codes. As we got more familiar with Kinect development, the curve is not the steep from Iteration 5 onwards.
Project Risks
Summary
Throughout the project, we have learnt that the impact and likelihood of certain risks presented during the project acceptance presentation did not turn out the way our team thought they would. For example, we used to be quite worried with integrating Bump API into the application but it turned out that the unstable Bump connection (due to the Bump's Android API being only in beta currently) was a bigger cause for concern. Next, the frequent disruptions to our server's uptime during Iteration 1 also did not occur at all in subsequent iterations so our team's reliance on our iLAB infrastructure was actually downgraded as a risk. Similarly, Bump service downtime which was observed in Dec 2010 also did not occur since then, therefore the likelihood of the Bump service being down due to maintenance was also downgraded.
Lastly, when the semester begun to kick into full swing, our team started to feel the heavy workload of juggling FYP with other SMU modules, such as assignment deadlines and midterms. Hence, we added this as a risk that was very likely with high impact.
No | Types of Risk | Reasons | Likelihood | Impact | Mitigation Strategy | Status |
---|---|---|---|---|---|---|
1 | Project Management Risk |
Project scope not optimal for Kinect app |
Medium |
High |
|
Mitigated |
Own project risk: we do not know what’s best for us |
High |
High |
See all our pre-survey results here: Pre-Survey Results |
Mitigated | ||
2 | Technology & Learning Risk |
Lack of documentation for Kinect SDK |
High |
High |
Follow latest Kinect samples uploaded by online community |
Mitigated |
No suitable gestures library that we can use |
High |
High |
Write our own gesture library |
Eliminated | ||
Self-written motion gestures may be inaccurate/ inconsistent / too difficult to perform |
High |
High |
|
Mitigated | ||
Low audio recognition accuracy |
High |
Medium |
Do AEC Reduce reliance on voice commands |
Mitigated |
Technical Complexity
Technical complexity of the task/function/features shown below.
Task/function/features, etc | Description | % of Codes from API | % of Self written code |
---|---|---|---|
Gestures
|
|
0.1% | 99.9% |
Augmented Reality
|
|
30% (Kinect Startup Tuts) | 70% |
Audio Beam Angle
|
Detect source audio angle & ignore background noise
|
? | ? |
ElementFlow
|
3D WPF graphics
|
50% | 50% |
Product Catalog Management
|
|
0% | 100% |
Kinect Page Management
|
|
0% | 100% |
Facial Recognition (removed)
|
|
50% | 50% |
Quality of Product
Quality of code | Description |
---|---|
Algorithm-based motion gesture detection |
|
3D Graphics in WPF for menus & product browsing |
|
Dynamic page order/creation | Hierarchy and appearing order of Pages, e.g. menus can be configured
|
Dynamic tabs & fields for products |
|
Tagging of products to multiple pages | User can determine which products appear on which page
|
Intermediate Deliverables
Stage | Specification | Modules |
---|---|---|
Project Management | Meeting Minutes | Team meetings: Minutes 1-12 |
Supervisor: Minutes 1-12 | ||
Requirements | Final Presentation | Final Presentation Slides |
Analysis | Use case | Use Case Diagram & Documentation |
Service Diagram | Service Diagram | |
Design | Architecture System Diagram | System Architecture |
ER Diagram | ER Diagram |
Deployment
1. Our Web services are running on application backend server.
2. SQL 2008 Server database - our application backend server with access granted to the web services
3. Secondary backup web services/DB - running on Azure as precautionary measure
4. Local machine to run Kinect App
with Kinect SDK installed, Kinect plugged in and output to 32” TV
Reflections
Team Reflections
These are the skills that we had learnt so far from each iteration:
Iteration 1 and 2 | |
Soft Skills | Technical Skills |
|
|
Iteration 3 and 4 | |
Soft Skills | Technical Skills |
|
|
Iteration 5 and 6 | |
Soft Skills | Technical Skills |
|
|
Iteration 7 | |
Soft Skills | Technical Skills |
|
|
Reflections as a team
Reaching a common agreement on our features
With the absence of a client, we had been refining our features and objectives over the past 15 weeks. It was truly an eye opener for us as we are like the pillars of this application – the owners who gets to decide what functions would be useful. The best feedbacks we could get were our testers and their feedback played an important role in enabling us to decide the functions and gestures we should keep. We spent countless number of hours discussing and reviewing our application features. It took sometime before all of us agreed on the same features.
Believing in our project and product
As pioneers of this application, we need absolute faith in the application as we are the ones who made created these features from scratch. If we do not believe in the application, then no one will. Although we do not know how successful this application may be in the future, we had this strong burning confidence inside of us over the past 15 weeks. Despite the long meeting hours three times a week, we have gone a long way since week 1. We are sure that this application will be succeed, it is just a matter of time.
Learnt the importance of technology fairs
Through BP’s tech fair, we realized that there are a lot of opportunities to collaborate with others who are interested our application. They may also provide other sources or contacts that can help us in our application. This is a great avenue for us to explore in the future.
Importance of Usability Testing
Testing has allowed us to know how to improve our application, and know what testers are looking out for. A clean UI, easy gestures and tutorial videos available will make it easier for them to use the application. We only made such improvements after we interacted with the testers and got their valuable feedback. The unguided UT has made it even more realistic- enabling us to know what are the issues people faced when they are alone and are using the application for the first time.
Individual Reflection
These are our group individual reflections: