HeaderSIS.jpg

Difference between revisions of "2011T2 Bazinga Final Wiki"

From IS480
Jump to navigation Jump to search
 
(47 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
<!--Navigation-->
 
<!--Navigation-->
 
{| style="background-color:#FFFFFF; color:#000000 padding: 5px 0 0 0;" width="100%" cellspacing="0" cellpadding="0" valign="top" border="0" font face="HelveticaNeue LT 55 Roman" |
 
{| style="background-color:#FFFFFF; color:#000000 padding: 5px 0 0 0;" width="100%" cellspacing="0" cellpadding="0" valign="top" border="0" font face="HelveticaNeue LT 55 Roman" |
 +
| style="padding:0 .6em;  font-size:90%; border-bottom:6px solid #2f2a79; border-top:6px solid #2f2a79; text-align:center; background-color:#ffffff; " width="10%" | [[IS480_Team_wiki:_2011T2_Bazinga |<font color="#000000">Main Wiki Page</font>]]
 
| style="border-bottom:6px solid #2f2a79; border-top:6px solid #2f2a79; background:none;" width="2%" | &nbsp;
 
| style="border-bottom:6px solid #2f2a79; border-top:6px solid #2f2a79; background:none;" width="2%" | &nbsp;
 
| style="padding:0.6em; font-size:90%; background-color:#ffffff;  border-bottom:6px solid #2f2a79; border-top:6px solid #2f2a79; text-align:center; color:#000000" width="12%" | [[2011T2_Bazinga_Final_Wiki#Project_Management|<font color="#000000">Project Management</font>]]
 
| style="padding:0.6em; font-size:90%; background-color:#ffffff;  border-bottom:6px solid #2f2a79; border-top:6px solid #2f2a79; text-align:center; color:#000000" width="12%" | [[2011T2_Bazinga_Final_Wiki#Project_Management|<font color="#000000">Project Management</font>]]
Line 12: Line 13:
 
| style="padding:0.6em; font-size:90%; background-color:#ffffff;  border-bottom:6px solid #2f2a79; border-top:6px solid #2f2a79; text-align:center; color:#000000" width="12%" | [[2011T2_Bazinga_Beta_Test |<font color="#000000">Beta Test </font>]]
 
| style="padding:0.6em; font-size:90%; background-color:#ffffff;  border-bottom:6px solid #2f2a79; border-top:6px solid #2f2a79; text-align:center; color:#000000" width="12%" | [[2011T2_Bazinga_Beta_Test |<font color="#000000">Beta Test </font>]]
 
| style="border-bottom:6px solid #2f2a79; border-top:6px solid #2f2a79; background:none;" width="2%" | &nbsp;
 
| style="border-bottom:6px solid #2f2a79; border-top:6px solid #2f2a79; background:none;" width="2%" | &nbsp;
| style="padding:0.6em; font-size:90%; background-color:#ffffff;  border-bottom:6px solid #2f2a79; border-top:6px solid #2f2a79; text-align:center; color:#000000" width="12%" | [[2011T2_Bazinga_Midterm_Wiki_UserTest1 |<font color="#000000">BP Tech Fair</font>]]
+
| style="padding:0.6em; font-size:90%; background-color:#ffffff;  border-bottom:6px solid #2f2a79; border-top:6px solid #2f2a79; text-align:center; color:#000000" width="12%" | [[2011T2_Bazinga_BPTechFair |<font color="#000000">BP Tech Fair</font>]]
 
| style="border-bottom:6px solid #2f2a79; border-top:6px solid #2f2a79; background:none;" width="2%" | &nbsp;
 
| style="border-bottom:6px solid #2f2a79; border-top:6px solid #2f2a79; background:none;" width="2%" | &nbsp;
 
| style="padding:0.6em; font-size:90%; background-color:#ffffff;  border-bottom:6px solid #2f2a79; border-top:6px solid #2f2a79; text-align:center; color:#000000" width="12%" | [[2011T2_Bazinga_Final_Wiki#Reflections|<font color="#000000"> Team Reflections</font>]]
 
| style="padding:0.6em; font-size:90%; background-color:#ffffff;  border-bottom:6px solid #2f2a79; border-top:6px solid #2f2a79; text-align:center; color:#000000" width="12%" | [[2011T2_Bazinga_Final_Wiki#Reflections|<font color="#000000"> Team Reflections</font>]]
Line 98: Line 99:
  
 
|width="300"| Kinect: Apply WPF Skin/Theme
 
|width="300"| Kinect: Apply WPF Skin/Theme
|width="240"| Complete with constant updates in each iteration, UAT1 done
+
|width="240"| Complete with constant updates in each iteration, UT1 done
 
|width="140" align="center"| 5
 
|width="140" align="center"| 5
 
|width="200" align="center"| Carmen & Joy
 
|width="200" align="center"| Carmen & Joy
Line 104: Line 105:
  
 
|width="300"| Kinect: Listbox scrolling with Kinect
 
|width="300"| Kinect: Listbox scrolling with Kinect
|width="240"| Fully deployed and tested 100%, UAT1 done
+
|width="240"| Fully deployed and tested 100%, UT1 done
 
|width="140" align="center"| 7
 
|width="140" align="center"| 7
 
|width="200" align="center"| Kiwie
 
|width="200" align="center"| Kiwie
Line 110: Line 111:
  
 
|width="300"| Kinect Gestures: Recognize Left and Right Swipes  
 
|width="300"| Kinect Gestures: Recognize Left and Right Swipes  
|width="245"| Fully deployed and tested 100%, UAT1 done
+
|width="245"| Fully deployed and tested 100%, UT1 done
 
|width="140" align="center"| 9
 
|width="140" align="center"| 9
 
|width="200" align="center"| Kiwie
 
|width="200" align="center"| Kiwie
Line 116: Line 117:
  
 
|width="300"| Kinect: Implement ElementFlow
 
|width="300"| Kinect: Implement ElementFlow
|width="245"| Fully deployed and tested 100%, UAT1 done
+
|width="245"| Fully deployed and tested 100%, UT1 done
 
|width="140" align="center"| 8
 
|width="140" align="center"| 8
 
|width="200" align="center"| Kiwie
 
|width="200" align="center"| Kiwie
Line 122: Line 123:
  
 
|width="300"| Kinect Gestures: Single Hand Scroll for Element Flow
 
|width="300"| Kinect Gestures: Single Hand Scroll for Element Flow
|width="245"| Fully deployed and tested 100%, UAT1 done
+
|width="245"| Fully deployed and tested 100%, UT1 done
 
|width="140" align="center"| 7
 
|width="140" align="center"| 7
 
|width="200" align="center"| Kiwie
 
|width="200" align="center"| Kiwie
Line 128: Line 129:
  
 
|width="300"| Application Paging (get Root Page, page and MenuOptions)
 
|width="300"| Application Paging (get Root Page, page and MenuOptions)
|width="245"| Fully deployed and tested 100%, UAT1 done
+
|width="245"| Fully deployed and tested 100%, UT1 done
 
|width="140" align="center"| Kinect: 3, Backend: 7
 
|width="140" align="center"| Kinect: 3, Backend: 7
 
|width="200" align="center"| Kiwie and Alex
 
|width="200" align="center"| Kiwie and Alex
Line 134: Line 135:
  
 
|width="300"| Kinect Gestures: Recognize Up Swipes
 
|width="300"| Kinect Gestures: Recognize Up Swipes
|width="245"| Fully deployed and tested 100%, UAT1 done
+
|width="245"| Fully deployed and tested 100%, UT1 done
 
|width="140" align="center"| 5
 
|width="140" align="center"| 5
 
|width="200" align="center"| Kiwie
 
|width="200" align="center"| Kiwie
Line 140: Line 141:
  
 
|width="300"| Kinect: KinectListMenu (Template and Display Selected MenuOption Preview)
 
|width="300"| Kinect: KinectListMenu (Template and Display Selected MenuOption Preview)
|width="245"| Fully deployed and tested 100%, UAT1 done
+
|width="245"| Fully deployed and tested 100%, UT1 done
 
|width="140" align="center"| 5
 
|width="140" align="center"| 5
 
|width="300" align="center"| Kiwie
 
|width="300" align="center"| Kiwie
Line 146: Line 147:
  
 
|width="300"| Kinect: HalfCircleMenu (Template and Databind Menu Options to HalfCirclePanel)
 
|width="300"| Kinect: HalfCircleMenu (Template and Databind Menu Options to HalfCirclePanel)
|width="245"| Fully deployed and tested 100%, UAT1 done
+
|width="245"| Fully deployed and tested 100%, UT1 done
 
|width="140" align="center"| 6
 
|width="140" align="center"| 6
 
|width="200" align="center"| Kiwie
 
|width="200" align="center"| Kiwie
Line 152: Line 153:
  
 
|width="300"| Kinect Gestures: Vertical Scrolling for HalfCirclePanel
 
|width="300"| Kinect Gestures: Vertical Scrolling for HalfCirclePanel
|width="245"| Fully deployed and tested 100%, UAT1 done
+
|width="245"| Fully deployed and tested 100%, UT1 done
 
|width="140" align="center"| 8
 
|width="140" align="center"| 8
 
|width="200" align="center"| Kiwie
 
|width="200" align="center"| Kiwie
Line 158: Line 159:
  
 
|width="300"| Kinect: ElementFlow Product Browsing
 
|width="300"| Kinect: ElementFlow Product Browsing
|width="245"| Fully deployed and tested 100%, UAT1 done
+
|width="245"| Fully deployed and tested 100%, UT1 done
 
|width="140" align="center"| 8
 
|width="140" align="center"| 8
 
|width="200" align="center"| Kiwie
 
|width="200" align="center"| Kiwie
Line 164: Line 165:
  
 
|width="300"| Kinect Gestures: 3D Two-Handed Scroll for Element Flow
 
|width="300"| Kinect Gestures: 3D Two-Handed Scroll for Element Flow
|width="245"| Fully deployed and tested 100%, UAT1 done
+
|width="245"| Fully deployed and tested 100%, UT1 done
 
|width="140" align="center"| 9
 
|width="140" align="center"| 9
 
|width="200" align="center"| Kiwie
 
|width="200" align="center"| Kiwie
Line 170: Line 171:
  
 
|width="300"| Kinect: ElementFlowMenu (Template and Databind MenuOptions to ElementFlow)
 
|width="300"| Kinect: ElementFlowMenu (Template and Databind MenuOptions to ElementFlow)
|width="245"| Fully deployed and tested 100%, UAT1 done
+
|width="245"| Fully deployed and tested 100%, UT1 done
 
|width="140" align="center"| 7
 
|width="140" align="center"| 7
 
|width="200" align="center"| Kiwie
 
|width="200" align="center"| Kiwie
Line 176: Line 177:
  
 
|width="300"| View and Display Elements (tabs, prices, colors and features)
 
|width="300"| View and Display Elements (tabs, prices, colors and features)
|width="245"| Fully deployed and tested 100%, UAT1 done
+
|width="245"| Fully deployed and tested 100%, UT1 done
 
|width="140" align="center"| Kinect: 3, Backend: 7
 
|width="140" align="center"| Kinect: 3, Backend: 7
 
|width="200" align="center"| Kiwie and Alex
 
|width="200" align="center"| Kiwie and Alex
Line 182: Line 183:
  
 
|width="300"| View and Display Retailer-Generated Content
 
|width="300"| View and Display Retailer-Generated Content
|width="245"| Fully deployed and tested 100%, UAT1 done
+
|width="245"| Fully deployed and tested 100%, UT1 done
 
|width="140" align="center"| Kinect: 3, Backend: 6
 
|width="140" align="center"| Kinect: 3, Backend: 6
 
|width="200" align="center"| Kiwie and Alex
 
|width="200" align="center"| Kiwie and Alex
Line 188: Line 189:
  
 
|width="300"| Web app: Manage catalog
 
|width="300"| Web app: Manage catalog
|width="245"| 70% completed
+
|width="245"| Fully deployed and tested 100%, UT1 done
 
|width="140" align="center"| 9
 
|width="140" align="center"| 9
 
|width="200" align="center"| Alex
 
|width="200" align="center"| Alex
Line 194: Line 195:
  
 
|width="300"| Kinect: Instructional Video
 
|width="300"| Kinect: Instructional Video
|width="245"| 90% completed
+
|width="245"| Fully deployed and tested 100%, UT2 done
|width="140" align="center"| 8
+
|width="140" align="center"| 10
 
|width="200" align="center"| Bevan
 
|width="200" align="center"| Bevan
 
|-
 
|-
 +
 +
|width="300"| Kinect: Capture and Display of User Analytics
 +
|width="245"| Fully deployed and tested 100%, UT2 done
 +
|width="140" align="center"| 4
 +
|width="200" align="center"| Alex and Kiwie
 +
|-
 +
 +
|width="300"| Kinect: View Geographic Map
 +
|width="245"| Fully deployed and tested 100%, UT2 done
 +
|width="140" align="center"| 6
 +
|width="200" align="center"| Alex and Kiwie
 +
|-
 +
 +
|width="300"| Kinect: Loading Screens Tutorials
 +
|width="245"| Fully deployed and tested 100%, UT2 done
 +
|width="140" align="center"| 6
 +
|width="200" align="center"| Kiwie
 +
|-
 +
 +
|width="300"| Kinect: Review Kinect Navigation and View Element
 +
|width="245"| Fully deployed and tested 100%, UT2 done
 +
|width="140" align="center"| 3
 +
|width="200" align="center"| Kiwie
 +
|-
 +
 +
|width="300"| Web app: Enter Geographic Data
 +
|width="245"| Fully deployed and tested 100%, UT2 done
 +
|width="140" align="center"| 2
 +
|width="200" align="center"| Alex
 
|}
 
|}
 
<br>
 
<br>
Line 405: Line 435:
 
|width="200"|View Retailer-Generated Content
 
|width="200"|View Retailer-Generated Content
 
|width="75" align="center"|29/01/12
 
|width="75" align="center"|29/01/12
|width="75" |04/02/12
+
|width="75" align="center"|04/02/12
 
|width="150"|
 
|width="150"|
 
|-
 
|-
Line 414: Line 444:
 
|width="200"|Web app: Manage Catalog
 
|width="200"|Web app: Manage Catalog
 
|width="75" align="center"|01/02/12
 
|width="75" align="center"|01/02/12
|width="75" |06/02/12
+
|width="75" align="center"|06/02/12
 
|width="150"|Still need to touch up on UI
 
|width="150"|Still need to touch up on UI
 
|-
 
|-
Line 421: Line 451:
 
|width="75"|
 
|width="75"|
 
|width="75"|
 
|width="75"|
|width="200"|Kinect: Special Function
+
|width="200"|Kinect: Augmented Reality
 
|width="75" align="center"|06/02/12
 
|width="75" align="center"|06/02/12
 
|width="75" align="center"|07/02/12
 
|width="75" align="center"|07/02/12
 
|width="150"|Added a special function to justify use of Kinect
 
|width="150"|Added a special function to justify use of Kinect
 +
|-
 +
 +
|rowspan="4"  width="50" align="center"|5
 +
|width="200"|Kinect: Tutorial Videos
 +
|width="75" align="center"|23/02/12
 +
|width="75" align="center"|27/02/12
 +
|width="200"|Kinect: Tutorial Videos
 +
|width="75" align="center"|23/02/12
 +
|width="75" align="center"|09/03/12
 +
|width="150"|Kinect tutorial videos took more time than expected
 +
|-
 +
 +
|width="200"|Web App: Capture Usage Analytics
 +
|width="75" align="center"|27/02/12
 +
|width="75" align="center"|02/03/12
 +
|width="200"|Web App: Capture Usage Analytics
 +
|width="75" align="center"|27/02/12
 +
|width="75" align="center"|02/03/12
 +
|width="150"|
 +
|-
 +
 +
|width="200"|Web App: Display Usage Analytics
 +
|width="75" align="center"|23/02/12
 +
|width="75" align="center"|01/03/12
 +
|width="200"|Web App: Display Usage Analytics
 +
|width="75" align="center"|23/02/12
 +
|width="75" align="center"|01/03/12
 +
|width="150"|
 +
|-
 +
 +
|width="200"|Kinect: View Geographic Map
 +
|width="75" align="center"|01/03/12
 +
|width="75" align="center"|04/03/12
 +
|width="200"|Kinect: View Geographic Map
 +
|width="75" align="center"|01/03/12
 +
|width="75" align="center"|04/03/12
 +
|width="150"|
 +
|-
 +
 +
|rowspan="4"  width="50" align="center"|6
 +
|width="200"|Kinect: Loading Screens Tutorials
 +
|width="75" align="center"|05/03/12
 +
|width="75" align="center"|09/03/12
 +
|width="200"|Kinect: Loading Screens Tutorials
 +
|width="75" align="center"|05/03/12
 +
|width="75" align="center"|10/03/12
 +
|width="150"|Kinect loading screens tutorial videos took more time than planned
 +
|-
 +
 +
|width="200"|Kinect: Review Kinect Navigation
 +
|width="75" align="center"|05/03/12
 +
|width="75" align="center"|07/03/12
 +
|width="200"|Kinect: Review Kinect Navigation
 +
|width="75" align="center"|05/03/12
 +
|width="75" align="center"|07/03/12
 +
|width="150"|
 +
|-
 +
 +
|width="200"|Kinect: Review View Element
 +
|width="75" align="center"|07/03/12
 +
|width="75" align="center"|09/03/12
 +
|width="200"|Kinect: Review View Element
 +
|width="75" align="center"|07/03/12
 +
|width="75" align="center"|09/03/12
 +
|width="150"|
 +
|-
 +
 +
|width="200"|Web app: WS: Enter Geographic Data
 +
|width="75" align="center"|09/03/12
 +
|width="75" align="center"|12/03/12
 +
|width="200"|Web app: WS: Enter Geographic Data
 +
|width="75" align="center"|09/03/12
 +
|width="75" align="center"|12/03/12
 +
|width="150"|
 +
|-
 +
 +
|rowspan="2"  width="50" align="center"|7
 +
|width="200"|Kinect & web app: Revise Codes with UAT2 Feedback
 +
|width="75" align="center"|21/03/12
 +
|width="75" align="center"|23/03/12
 +
|width="200"|Kinect & web app: Revise Codes with UAT2 Feedback
 +
|width="75" align="center"|21/03/12
 +
|width="75" align="center"|23/03/12
 +
|width="150"|
 +
|-
 +
 +
|width="200"|Kinect & web app: Integrate & Test
 +
|width="75" align="center"|23/03/12
 +
|width="75" align="center"|25/03/12
 +
|width="200"|Kinect & web app: Integrate & Test
 +
|width="75" align="center"|23/03/12
 +
|width="75" align="center"|25/03/12
 +
|width="150"|
 
|}
 
|}
  
Line 438: Line 561:
 
====Schedule Metric====
 
====Schedule Metric====
  
<br>
 
  
[[Image:bazinga_schedule_metric_graph.png|500px]] <br />
+
[[Image:bazinga_schedule_metric_graph.png|600px]] <br />
  
 
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.
 
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.
Line 446: Line 568:
 
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.
 
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.
+
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.
  
 
<br>
 
<br>
Line 481: Line 607:
  
  
[[Image:bazinga_maintainability_metric_graph.png|600px]] <br /><br /><br />
+
[[Image:bazinga_maintainability_metric_graph.png|750px]] <br /><br />
  
 
[[Image:bazinga_maintability_metric.png|500px]] <br /><br />
 
[[Image:bazinga_maintability_metric.png|500px]] <br /><br />
Line 495: Line 621:
  
 
<br /><br />
 
<br /><br />
[[Image:bazinga_metrics_Data.png |800px]]
+
[[Image:bazinga_metrics_Data.png |800px]] <br />
 +
 
 +
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>===
 
<div style="width: 96%" align="justify">
 
<div style="width: 96%" align="justify">
 
====Summary====
 
====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.
+
Throughout the project, we have learnt that the impact and likelihood of certain risks as presented during the project acceptance presentation and did try to mitigate these risks. The greatest risk for us would probably be managing our project without a client and we tried to mitigate this risk by conducting rigorous testing to the best of our abilities, as seen from our 2 User Tests as well as our beta test at Glassroom Cafe.
  
 
<br>
 
<br>
Line 601: Line 731:
 
|
 
|
 
Mitigated
 
Mitigated
 +
|-
 +
|}
 +
 +
<br />
 +
 +
===<font color = "#0164a6">Risk Evaluation</font>===
 +
 +
{| border="1" cellpadding="1"
 +
|- style="filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#007fb1', endColorstr='#02507c'); background: -webkit-gradient(linear, left top, left bottom, from(#007fb1), to(#02507c)); background: -moz-linear-gradient(top,  #007fb1,  #02507c); color:White"
 +
|width="1000pt" colspan="2" |'''Developing Motion Gestures'''
 +
|-
 +
 +
|- style="filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#F4FA58', endColorstr='#FFFF00'); background: -webkit-gradient(linear, left top, left bottom, from(#F4FA58), to(#FFFF00)); background: -moz-linear-gradient(top,  #F4FA58,  #FFFF00); color:black"
 +
|width="500pt"|References
 +
|width="500pt"|Considerations
 +
|-
 +
 +
|width="500pt" valign="top"|
 +
* Popular successful Kinect games, e.g. Dance Central
 +
* Trends in other Kinect apps
 +
* User study in UT1 & UT2: Focus more on the “helpless” users
 +
 +
|width="500pt"|
 +
* Tradeoff  between Accuracy, Efficiency and Intuitiveness
 +
* Unintentional triggering of other gestures
 +
* Wanted to avoid using “Hover-over Cursor” as it introduces lag time
 +
|-
 +
|}
 +
 +
<br />
 +
 +
====Case Example: Horizontal Scrolling====
 +
<br>
 +
[[Image:Element Browser.png|500px]] <br />
 +
Qns: What gesture should be used to allow the user to scroll left/right?
 +
 +
<br />
 +
 +
{| class="wikitable"
 +
|-
 +
! width="200"|'''Idea No.'''
 +
!width="300" align="center"|'''Description'''
 +
!width="150" align="center"|'''Pros'''
 +
!width="150" align="center"|'''Cons'''
 +
|-
 +
 +
|width="200" valign = top|<div style ="margin:6px" align="justify"> 1st Idea: Single Swipe Scroll (Two hands)</div>
 +
|width="300"|<div style ="margin:6px" align="justify">
 +
* Scroll left/right:
 +
** Swipe left/right hand once to scroll left/right by one item
 +
 +
* Speed Control: None
 +
 +
*Outcome: '''Rejected'''
 +
 +
</div>
 +
|width="150" align="left"|
 +
* Intuitive
 +
* Accurate
 +
 +
|width="150" align="left"|
 +
* Inefficient
 +
* Swipe of left hand reserved for going back
 +
* Interferes with AR
 +
 +
|-
 +
 +
|width="200" valign = top|<div style ="margin:6px" align="justify"> 2nd Idea: Extend Arm Continuous Scroll (Two Hands)</div>
 +
|width="300"|<div style ="margin:6px" align="justify">
 +
* Scroll left/right
 +
** Extend either arm to left/right for continuous scrolling
 +
 +
* Speed Control: Distance of arm away from body
 +
 +
* Outcome: '''Rejected'''
 +
 +
</div>
 +
|width="150" align="left"|
 +
* Intuitive
 +
* Efficient
 +
|width="150" align="left"|
 +
* Low accuracy
 +
* Hard to select item
 +
* Interferes with AR
 +
 +
|-
 +
|width="200" valign = top| <div style ="margin:6px" align="justify">3rd Idea: 3D Continuous Scroll (Two Hands) = Used in UT1</div>
 +
|width="300"|<div style ="margin:6px" align="justify">
 +
* Scroll left/right
 +
** Put both hands in front and move 1 nearer to Kinect to move in one direction
 +
 +
* Speed Control: Distance of hands from each other
 +
 +
* Outcome: '''Rejected'''
 +
</div>
 +
|width="150" align="left"|
 +
* Efficient
 +
* No overlap with other gestures
 +
|width="150" align="left"|
 +
* Low accuracy
 +
* Not intuitive
 +
|-
 +
 +
|-
 +
|width="200" valign = top| <div style ="margin:6px" align="justify">Final Idea: Modified 3D Continuous Scroll (Two Hands)</div>
 +
|width="300"|<div style ="margin:6px" align="justify">
 +
* Scroll left/right
 +
** Put both hands in front and move 1 nearer to Kinect to move in one direction
 +
 +
* Speed Control: One-by-one slow scroll or Continuous fast scroll by extending hand to side
 +
 +
* Outcome: '''Accepted'''
 +
</div>
 +
|width="150" align="left"|
 +
* Efficient
 +
* No overlap with other gestures
 +
|width="150" align="left"|
 +
* Not intuitive
 
|-
 
|-
  
 
|}
 
|}
 +
 +
<br />
 +
 +
[[Image:Demo_DoubleHandScroll.png|500px]]
 +
<br>
 +
This is the final form of scrolling the team decided on based on the following factors:-
 +
<br>
 +
* Continuous vs Non-continuous scrolling:
 +
** Efficiency vs Accuracy
 +
 +
<br>
 +
* Extending arms to sides:
 +
** More intuitive
 +
** Unintentional scrolling in AR
 +
 +
<br>
 +
* Objectives:
 +
** Isolate gestures for slow & fast scroll
 +
** Avoid unintentional gesture triggering
 +
 +
<br />
  
 
===<font color = "#0164a6">Technical Complexity</font>===
 
===<font color = "#0164a6">Technical Complexity</font>===
Line 786: Line 1,055:
 
<div style="width: 96%" align="justify">
 
<div style="width: 96%" align="justify">
  
1. Our Web services are running on application backend server.  
+
KinectifyWeb is a web-based ASP.NET application running on IIS 7. It is currently deployed on Windows Server 2008 machine within the Undergraduate Project Labs. KinectifyWeb is responsible for administrating the data which is used to display the content on our Kinectify front-end interface. It serves the content over SOAP based XML web services which is then consumed by our Kinectify client application. Our data is currently residing at two locations, Microsoft SQL Server 2008 within the same UPL machine and Windows Azure SQL acts as a back-up copy used for collaboration purposes.
<br />
+
 
2. SQL 2008 Server database - our application backend server with access granted to the web services
 
<br />
 
3. Secondary backup web services/DB - running on Azure as precautionary measure
 
 
<br />
 
<br />
4. Local machine to run Kinect App
 
with Kinect SDK installed, Kinect plugged in and output to 32” TV
 
 
=<div style="width: 95%; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#37ab4d', endColorstr='#00922b'); background: -webkit-gradient(linear, left top, left bottom, from(#37ab4d), to(#00922b)); background: -moz-linear-gradient(top,  #37ab4d,  #00922b); padding:7px; margin-top: 35px; line-height: 1.4em; color:white">  User Testing 2</div>=
 
<div style="width: 96%" align="justify">
 
  
Our User Test 2 took place on 21/3/12 and ended on 27/3/12. A total of 35 testers participated. In order to ensure that our test results are not affected by any biasness, our testers included students from different faculties and include a mixture of both non-Kinect and Kinect users so that we can anticipate the general public's receptiveness to our application once it is launched. The following documents were what we prepared for our User Testing 2.
+
Here’s a list of features our back-end application supports: <br />
 +
* Bootstrap system from zip file containing CSV data
 +
* Switching between UPL and Azure databases
 +
* Creating Kinectiplates
 +
* Establish links between Kinectiplates
 +
* Creating material categories, tabs and fields
 +
* Administrate material details
 +
* Managing augmented reality anchor points
 +
* Managing store locations for the Kinect Map
  
Feel free to view the schedule and User Testing execution process that has been prepared, as shown in the first external link. The second link is the feedback form that all testers will fill in after trying out the testing.
 
 
<br />
 
<br />
  
{| class="wikitable"
+
[[Image:Bazinga backend.png|600px]]
|-
 
!'''Prepared Documents'''
 
!'''Link '''
 
|-
 
 
 
|User Test 2 Schedule, Execution Process
 
||[http://bit.ly/IM4e6i| UT 2 Schedule and Execution process]
 
|-
 
 
 
|rowspan=2 | User Test 2 Feedback Questions
 
||[http://smusg.asia.qualtrics.com/SE/?SID=SV_8qYr6bJF7NBTdgE| SMU Quadtrics Feedback Questions]
 
|-
 
 
 
 
 
||[[Media:UT 2 Feedback.pdf| Download UT 2 Feedback]]
 
|-
 
 
 
|User Test 2 Plan
 
||[[Media:UT Plan 2 - Bazinga.pdf| Download UT 2 Plan]]
 
|-
 
 
 
| User Test 2 Video Tutorial Transformation Process
 
|[[IS480_Team_wiki:_2011T2_Bazinga_Video Tutorial Improvements and Timeline| Our Video Tutorial Improvements and Timeline]]
 
|-
 
 
 
|User Test 2 Instructions for Testers
 
||[[Media:UT2 Instructions.pdf | Download instructions]]
 
|-
 
|}
 
 
 
 
 
<b>UT2 Goals</b><br />
 
Collect useful usability and gesture feedback from our testers to better understand their needs and improve our existing application.
 
<br /><br/>
 
 
 
<b>UT2 Objectives</b>
 
*Unguided Test for all testers
 
*Verify if the user finds it intuitive and easy to pick up hand gestures
 
*Verify the usability and easy navigation of the application
 
*Gather user opinion on Kinect Application feasibility in a retail setting <br /><br/>
 
 
 
</div>
 
 
 
====Testers Demographics====
 
 
 
 
 
[[Image:UT2_breakdown.png||500px]]
 
 
 
 
 
{| class="wikitable"
 
|-
 
!width="200pt"|'''Type'''
 
!width="150pt"|'''Number'''
 
!width="150pt"|'''Percentage'''
 
|-
 
 
 
|width="200pt"|SIS Students
 
|width="150pt"|25
 
|width="150pt"|71%
 
|-
 
 
 
|width="200pt"|Non-IS Students
 
|width="150pt"|9
 
|width="150pt"|26%
 
|-
 
 
 
|width="200pt"|Professors and Instructors
 
|width="150pt"|1
 
|width="150pt"|3%
 
|-
 
|}
 
 
 
<div style="width: 96%" align="justify">
 
Comments: Non-SIS students represent the user population from other faulties in SMU and their comments tend to be much less technical, reflecting most of the actual target public users. In addition, they also require much more guidance than SIS students, who are more experienced in application development and new technologies. Non SIS students provided us with an interesting dimension to the feedback collected, such as more of the business feasibility of the Kinect application, as compared to the SIS Students who will be more inclined towards the technology, and will tell more of which functions are more useful.
 
 
 
The instructor, on the other hand, is also very technical and provided us the best advice and opinions for a user to pick up gestures naturally, and how the application will be suitable for the public, based onher vast experiences with lots of applications. </div>
 
 
<br>
 
<br>
 
+
This is how our backend home page looks like.
 
 
In addition, we had a good mix of males and females, giving us a good mix of reviews, not bias only to one gender.
 
 
 
 
 
[[Image:UT2Testers.png||400px]]
 
{| class="wikitable"
 
|-
 
!width="200pt"|'''Type'''
 
!width="150pt"|'''Number'''
 
!width="150pt"|'''Percentage'''
 
|-
 
 
 
|width="200pt"|Male
 
|width="150pt"|19
 
|width="150pt"|54%
 
|-
 
 
 
|width="200pt"|Female
 
|width="150pt"|16
 
|width="150pt"|46%
 
|-
 
|}
 
 
 
  
 
<br />
 
<br />
  
====Black Box Testing====
+
[[Image:Bootstrap.png|600px]]
 
 
To ensure that our 2T1 meets our objectives in allowing the tester to use the application without our help, we made it a non guided User Test. We wanted to verify if the users could pick up the gestures naturally and provide us opinion on how our group can further improve our application. Thus, we will place instructions at the side of the tester (both left and right) and the user will follow the steps required to allow us to know which features require more help from the user, without the need of someone to provide immediate help. </div>
 
 
 
 
<br>
 
<br>
 +
This is how our bootstrap looks like.
  
====User Testing 2 Outcome====
+
<br />
<div style="width: 96%" align="justify">
+
Deployment link to our backend system: [http://10.0.106.15/ Kinectify Web]
Apart from quantitative results, our team has received very positive feedbacks and suggestions on how we can improve our application. Most of the testers feel that the Kinect application is cool, interactive, and still room to improve in the Augmented Reality function and the gestures used in the application. They see a potential in this application but a minority of 3 testers feel that they do not want to use the application again. All other testers will want to use our application again.
 
 
 
<br>
 
Our team has prioritized the following list of issues that our team will embark on before UAT2.
 
 
 
 
 
{| class="wikitable"
 
|-
 
!width="200pt"|'''Things to Improve'''
 
!width="200pt"|'''How we are doing it'''
 
!width="150pt"|'''When?'''
 
|-
 
 
 
|width="200pt"|More instructions on the hand movement
 
|width="200pt"|Filming tutorial videos, isolate tutorial from the feature itself
 
|width="150pt"|Iteration 5
 
|-
 
 
 
|width="200pt"|Voice recognition is not very accurate
 
|width="200pt"|Ignore sound from other directions using Acoustic Echo Cancellation (AEC)
 
|width="150pt"|Iteration 5
 
|-
 
 
 
|width="200pt"|
 
*Improve gestures accuracy (and make it less complicated)
 
*Too sensitive when scrolling the items (move too fast)
 
|width="200pt"|Review gestures
 
|width="150pt"|Iteration 6 (pre-planned)
 
|-
 
 
 
|width="200pt"|Expand AR feature
 
|width="200pt"|Prioritize AR over Take Survey and allocate
 
|width="150pt"|Iterations 5 & 6
 
|-
 
|}
 
 
 
 
 
</div>
 
 
 
====User Testing 2 Documents====
 
For more information on our UAT 1, you can download our documents below:
 
 
 
{| class="wikitable"
 
|-
 
!width="200pt"|'''Documents'''
 
|width="300pt"|'''Link '''
 
|-
 
 
 
 
 
|width="200pt"|UAT Results/Analysis
 
||[[Media:Bazinga - UT 2 Feedback Results.pdf | UT 2 Results]]
 
|-
 
 
 
 
 
|User Test 2 Schedule and Final Results
 
||[http://bit.ly/IM4e6i| UT 2 Observation Results]
 
|-
 
|}
 
 
 
=<div style="width:1000px; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#37ab4d', endColorstr='#00922b'); background: -webkit-gradient(linear, left top, left bottom, from(#37ab4d), to(#00922b)); background: -moz-linear-gradient(top,  #37ab4d,  #00922b); padding:7px; margin-top: 35px; line-height: 1.4em; color:white">  Beta Testing</div>=
 
<div style="width: 96%" align="justify">
 
 
 
=<div style="width:1000px;  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#37ab4d', endColorstr='#00922b'); background: -webkit-gradient(linear, left top, left bottom, from(#37ab4d), to(#00922b)); background: -moz-linear-gradient(top,  #37ab4d,  #00922b); padding:7px; margin-top: 35px; line-height: 1.4em; color:white">  BP Tech Fair</div>=
 
<div style="width: 96%" align="justify">
 
  
 
=<div style="width:1000px;  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#37ab4d', endColorstr='#00922b'); background: -webkit-gradient(linear, left top, left bottom, from(#37ab4d), to(#00922b)); background: -moz-linear-gradient(top,  #37ab4d,  #00922b); padding:7px; margin-top: 35px; line-height: 1.4em; color:white"> Reflections </div>=
 
=<div style="width:1000px;  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#37ab4d', endColorstr='#00922b'); background: -webkit-gradient(linear, left top, left bottom, from(#37ab4d), to(#00922b)); background: -moz-linear-gradient(top,  #37ab4d,  #00922b); padding:7px; margin-top: 35px; line-height: 1.4em; color:white"> Reflections </div>=
Line 1,052: Line 1,155:
 
*Back-end Web Application
 
*Back-end Web Application
 
**Creating a web app to allow the management to customise their content
 
**Creating a web app to allow the management to customise their content
 +
|-
 +
 +
|- style="filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#007fb1', endColorstr='#02507c'); background: -webkit-gradient(linear, left top, left bottom, from(#007fb1), to(#02507c)); background: -moz-linear-gradient(top,  #007fb1,  #02507c); color:White"
 +
|width="1000pt" colspan="2" |'''Iteration 5 and 6 '''
 +
|-
 +
 +
|- style="filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#F4FA58', endColorstr='#FFFF00'); background: -webkit-gradient(linear, left top, left bottom, from(#F4FA58), to(#FFFF00)); background: -moz-linear-gradient(top,  #F4FA58,  #FFFF00); color:black"
 +
|width="500pt"|Soft Skills
 +
|width="500pt"|Technical Skills
 +
|-
 +
 +
|width="500pt" valign="top"|
 +
*Project Management:
 +
**Managing the inclusion of a Beta Test
 +
**Prioritization of Tasks
 +
**Planning & Executing of User Test 2
 +
|width="500pt" valign="top"|
 +
*Kinect Development:
 +
**Kinect Tutorial Videos
 +
*Back-end Web Application
 +
**Creating a web app to display of geographic data
 +
|-
 +
 +
|- style="filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#007fb1', endColorstr='#02507c'); background: -webkit-gradient(linear, left top, left bottom, from(#007fb1), to(#02507c)); background: -moz-linear-gradient(top,  #007fb1,  #02507c); color:White"
 +
|width="1000pt" colspan="2" |'''Iteration 7 '''
 +
|-
 +
 +
|- style="filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#F4FA58', endColorstr='#FFFF00'); background: -webkit-gradient(linear, left top, left bottom, from(#F4FA58), to(#FFFF00)); background: -moz-linear-gradient(top,  #F4FA58,  #FFFF00); color:black"
 +
|width="500pt"|Soft Skills
 +
|width="500pt"|Technical Skills
 +
|-
 +
 +
|width="500pt" valign="top"|
 +
*Project Management:
 +
**Managing the execution of a Beta Test
 +
|width="500pt" valign="top"|
 +
*Kinect Development:
 +
**Modifying the code slightly to accommodate for the beta testing
 +
*Back-end Web Application
 +
**Creating a database for Glassroom
 +
**Linking the uploading of photos to Facebook
 
|-
 
|-
 
|}
 
|}
 +
 +
<br>
 +
 +
===<font color = "#0164a6">Reflections as a team</font>===
 +
'''Reaching a common agreement on our features''' <br>
 +
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''' <br>
 +
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''' <br>
 +
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''' <br>
 +
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.
  
 
<br>
 
<br>
Line 1,070: Line 1,229:
 
|width="100pt"|[[Image: Bazinga - Kiwie.png|120px]]
 
|width="100pt"|[[Image: Bazinga - Kiwie.png|120px]]
 
|width="300pt"|   
 
|width="300pt"|   
*Learnt how to use Kinect SDK through research and coding it efficiently
+
*Know what I don’t know, need to know and whom I can find out from
*Ability to communicate with team members and ensuring that the whole team is moving on the same pace
+
*Thank you SIS for IS481 – Gained so many skills outside lectures – Make it compulsory ;)
*Learnt to start early on the learning phase for the development because it allow us to have more buffer time during actual development
+
*Cut down on talking, be succinct
 +
 
 
|width="100pt"|[[Image: Bazinga - Alex.png|120px]]
 
|width="100pt"|[[Image: Bazinga - Alex.png|120px]]
 
|width="300pt"|   
 
|width="300pt"|   
  
*Learnt how to manage and not underestimate all tasks that have been allocated with a certain time frame.
+
*Let the product do most of the talking
*Ability to handle multiple tasks and workloads from different modules concurrently
+
*It’s all about creating the user experience, less about creating the product
*Learnt that a small change on the front-end product will result to a ripple-effect to the back-end configurations such as to the server and database
+
*Venturing into the unknown may be challenging, but that’s where all the potential is.
 +
 
 
   
 
   
 
|-
 
|-
Line 1,092: Line 1,253:
 
|width="100pt"|[[Image:Bazinga - Bevan.png|120px]]
 
|width="100pt"|[[Image:Bazinga - Bevan.png|120px]]
 
|width="300pt"|   
 
|width="300pt"|   
*Learnt how to design UI that makes full use of the screen space and how to create effective videos
+
*Creating kinect-based tutorials is a whole new challenge but the journey was edifying
*Getting useful feedback from the testers on how to improve the videos and other aesthetic features of the application
+
*Ensuring usability for kinect application is something that requires a lot of observations and understanding how users move
*Improved on organizational skills and ability to manage document planning efficiently
+
*Challenges faced and overcome to create a commercial-ready aapplication was thought-provoking and interesting
 +
 
  
 
|width="100pt"|[[Image:Bazinga - Joy.png|120px]]
 
|width="100pt"|[[Image:Bazinga - Joy.png|120px]]
 
|width="300pt"|   
 
|width="300pt"|   
*Understanding each team members' strengths and using it to manage the project better
+
*Dealing with uncertainties like scope changes and inclusion of beta testing
*Manage all tasks that have been allocated with a certain time frame
+
*Learning how to estimate and allocate tasks to teammates based on their strengths
*Ability to handle change of project and task requirements, especially when we had a change of scope after our acceptance presentation
+
*Learnt how to analyse and observe people’s behavior in detail so to pick up trends
 +
 
  
 
|- style="filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#007fb1', endColorstr='#02507c'); background: -webkit-gradient(linear, left top, left bottom, from(#007fb1), to(#02507c)); background: -moz-linear-gradient(top,  #007fb1,  #02507c); color:White"
 
|- style="filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#007fb1', endColorstr='#02507c'); background: -webkit-gradient(linear, left top, left bottom, from(#007fb1), to(#02507c)); background: -moz-linear-gradient(top,  #007fb1,  #02507c); color:White"
Line 1,110: Line 1,273:
 
|width="100pt"|[[Image:Bazinga - Carmen.png|120px]]
 
|width="100pt"|[[Image:Bazinga - Carmen.png|120px]]
 
|width="300pt"|   
 
|width="300pt"|   
*Ability to conduct and plan a large scale UAT without hindering the development progress
+
*Time Management – learnt the importance of good time coordination for this project
*Importance of interacting with testers and analyzing their feedback to understand their perspectives and further improve our application
+
*User Testing process – experienced and created a user test from scratch
*Ability to handle concurrent project tasks and requirements effectively
+
*Teamwork – good communication and collaboration is important in a team. I am glad that I have experienced working in a great and cohesive team
 
|-
 
|-
 
|}
 
|}

Latest revision as of 01:41, 21 April 2012

Main Wiki Page   Project Management   Project Metrics   Technical Complexity & Deployment   User Test 2   Beta Test   BP Tech Fair   Team Reflections


Bazinga final wiki.png

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

Graphic 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, UT1 done 5 Carmen & Joy
Kinect: Listbox scrolling with Kinect Fully deployed and tested 100%, UT1 done 7 Kiwie
Kinect Gestures: Recognize Left and Right Swipes Fully deployed and tested 100%, UT1 done 9 Kiwie
Kinect: Implement ElementFlow Fully deployed and tested 100%, UT1 done 8 Kiwie
Kinect Gestures: Single Hand Scroll for Element Flow Fully deployed and tested 100%, UT1 done 7 Kiwie
Application Paging (get Root Page, page and MenuOptions) Fully deployed and tested 100%, UT1 done Kinect: 3, Backend: 7 Kiwie and Alex
Kinect Gestures: Recognize Up Swipes Fully deployed and tested 100%, UT1 done 5 Kiwie
Kinect: KinectListMenu (Template and Display Selected MenuOption Preview) Fully deployed and tested 100%, UT1 done 5 Kiwie
Kinect: HalfCircleMenu (Template and Databind Menu Options to HalfCirclePanel) Fully deployed and tested 100%, UT1 done 6 Kiwie
Kinect Gestures: Vertical Scrolling for HalfCirclePanel Fully deployed and tested 100%, UT1 done 8 Kiwie
Kinect: ElementFlow Product Browsing Fully deployed and tested 100%, UT1 done 8 Kiwie
Kinect Gestures: 3D Two-Handed Scroll for Element Flow Fully deployed and tested 100%, UT1 done 9 Kiwie
Kinect: ElementFlowMenu (Template and Databind MenuOptions to ElementFlow) Fully deployed and tested 100%, UT1 done 7 Kiwie
View and Display Elements (tabs, prices, colors and features) Fully deployed and tested 100%, UT1 done Kinect: 3, Backend: 7 Kiwie and Alex
View and Display Retailer-Generated Content Fully deployed and tested 100%, UT1 done Kinect: 3, Backend: 6 Kiwie and Alex
Web app: Manage catalog Fully deployed and tested 100%, UT1 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

Bazinga schedule metric graph.png

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

Code Metrics Goal and Questions
Bazinga code metrics.png

The main goal for our group is to 'Improve Code Quality' .
The code must be relatively easy to understand, test and maintain

The three main questions when evaluating the results of the code metrics is:

  • Is any method/function trying to do too much? (harder to test or maintain)
  • Any code area that is likely to produce errors?
  • Can we reveal any code smell to discover any deeper structural problem in our code?



Maintainability Index Metric

Bazinga maintainability metric graph.png

Bazinga maintability metric.png

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


Bazinga code metrics2.png

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



Bazinga metrics Data.png

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 as presented during the project acceptance presentation and did try to mitigate these risks. The greatest risk for us would probably be managing our project without a client and we tried to mitigate this risk by conducting rigorous testing to the best of our abilities, as seen from our 2 User Tests as well as our beta test at Glassroom Cafe.


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

  • Held emergency meeting after Acceptance PPT
  • Consulted Prof Ben & Prof Shim
  • Changed scope in Iteration 2

Mitigated

Own project risk: we do not know what’s best for us

High

High

  • Do many and shorter, quick iterations (we have 7)
  • Conduct UAT1 ASAP (Week 5)
  • Also conducted a pre-survey to understand the market

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

  • Assess written gestures in UAT1 ASAP
  • Watch videos of Kinect games/ other Kinect apps for inspiration

Mitigated

Low audio recognition accuracy

High

Medium

Do AEC Reduce reliance on voice commands

Mitigated


Risk Evaluation

Developing Motion Gestures
References Considerations
  • Popular successful Kinect games, e.g. Dance Central
  • Trends in other Kinect apps
  • User study in UT1 & UT2: Focus more on the “helpless” users
  • Tradeoff between Accuracy, Efficiency and Intuitiveness
  • Unintentional triggering of other gestures
  • Wanted to avoid using “Hover-over Cursor” as it introduces lag time


Case Example: Horizontal Scrolling


Element Browser.png
Qns: What gesture should be used to allow the user to scroll left/right?


Idea No. Description Pros Cons
1st Idea: Single Swipe Scroll (Two hands)
  • Scroll left/right:
    • Swipe left/right hand once to scroll left/right by one item
  • Speed Control: None
  • Outcome: Rejected
  • Intuitive
  • Accurate
  • Inefficient
  • Swipe of left hand reserved for going back
  • Interferes with AR
2nd Idea: Extend Arm Continuous Scroll (Two Hands)
  • Scroll left/right
    • Extend either arm to left/right for continuous scrolling
  • Speed Control: Distance of arm away from body
  • Outcome: Rejected
  • Intuitive
  • Efficient
  • Low accuracy
  • Hard to select item
  • Interferes with AR
3rd Idea: 3D Continuous Scroll (Two Hands) = Used in UT1
  • Scroll left/right
    • Put both hands in front and move 1 nearer to Kinect to move in one direction
  • Speed Control: Distance of hands from each other
  • Outcome: Rejected
  • Efficient
  • No overlap with other gestures
  • Low accuracy
  • Not intuitive
Final Idea: Modified 3D Continuous Scroll (Two Hands)
  • Scroll left/right
    • Put both hands in front and move 1 nearer to Kinect to move in one direction
  • Speed Control: One-by-one slow scroll or Continuous fast scroll by extending hand to side
  • Outcome: Accepted
  • Efficient
  • No overlap with other gestures
  • Not intuitive


Demo DoubleHandScroll.png
This is the final form of scrolling the team decided on based on the following factors:-

  • Continuous vs Non-continuous scrolling:
    • Efficiency vs Accuracy


  • Extending arms to sides:
    • More intuitive
    • Unintentional scrolling in AR


  • Objectives:
    • Isolate gestures for slow & fast scroll
    • Avoid unintentional gesture triggering


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
  • Ensure that all gestures work for all physical human figures and at a range of distance away from Kinect
  • Ensure that all chosen gestures are easy and intuitive enough to use
  • Ensure that all chosen gestures do not interfere with each other
0.1% 99.9%
Augmented Reality
  • Sync skeleton tracking with RGB video frames
  • Bind images to user’s skeleton joints and scale position of joints according to screen coordinates/dimensions
30% (Kinect Startup Tuts) 70%
Audio Beam Angle
Detect source audio angle & ignore background noise
? ?
ElementFlow
3D WPF graphics
50% 50%
Product Catalog Management
  • Create product categories as container of product items
  • Each category has one or more tabs
  • Each tab has one more fields
  • Each field can be single value or multi-value collection
  • Allow population & display of products
0% 100%
Kinect Page Management
  • Allow creation of different types of pages
  • Allow pages to be sub pages of other pages
  • Allow products to be tagged to pages
0% 100%
Facial Recognition (removed)
  • Detect and recognize face with Kinect RGB video stream
  • Save and train user’ face library
50% 50%


Quality of Product

Quality of code Description
Algorithm-based motion gesture detection
  • Instead of recording a primary user’s motion, use own algorithm to listen for gestures
  • Eliminate any data to host pre-recorded gestures
  • Eliminate need to compare current gesture with library of pre-recorded gestures in real-time
  • Work for all human physical shapes
  • Work at further distance away
3D Graphics in WPF for menus & product browsing
  • Allow different layouts: Slidedeck, coverflow, carousel, time machine and V-form
  • Sorting
  • Tie together with motion gestures
Dynamic page order/creation
Hierarchy and appearing order of Pages, e.g. menus can be configured
Dynamic tabs & fields for products
  • Allow different layouts: Slidedeck, coverflow, carousel, time machine and V-form
  • Sorting
  • Tie together with motion gestures
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

KinectifyWeb is a web-based ASP.NET application running on IIS 7. It is currently deployed on Windows Server 2008 machine within the Undergraduate Project Labs. KinectifyWeb is responsible for administrating the data which is used to display the content on our Kinectify front-end interface. It serves the content over SOAP based XML web services which is then consumed by our Kinectify client application. Our data is currently residing at two locations, Microsoft SQL Server 2008 within the same UPL machine and Windows Azure SQL acts as a back-up copy used for collaboration purposes.


Here’s a list of features our back-end application supports:

  • Bootstrap system from zip file containing CSV data
  • Switching between UPL and Azure databases
  • Creating Kinectiplates
  • Establish links between Kinectiplates
  • Creating material categories, tabs and fields
  • Administrate material details
  • Managing augmented reality anchor points
  • Managing store locations for the Kinect Map


Bazinga backend.png
This is how our backend home page looks like.


Bootstrap.png
This is how our bootstrap looks like.


Deployment link to our backend system: Kinectify Web

Reflections

Team Reflections

These are the skills that we had learnt so far from each iteration:

Iteration 1 and 2
Soft Skills Technical Skills
  • Project Management
    • How to communicate with teammates globally (initial stage)
    • Project Scheduling for Kinect Application Development
    • Allocation of Resources & Responsibilities
    • Tracking of Project Progress
    • Progress Reporting



  • Integration of Business & Technology
    • Costs & Benefit Analysis of Project
    • Understanding the whole SAP Process Flow
    • How to plan a system architecture solution
    • Photoshop Design
    • WPF App Development
  • Kinect Development
    • Facial Detection and Recognition
    • Writing Motion Gestures
    • Dealing with RGV Camera
    • Invoking online REST API
    • Use JSON, C# Development
    • How to build Kinect on a totally new platform
    • WPF App Development



  • System Analysis Design
    • Gathering Requirements
    • Architecture Design for Kinect Application

  • Project/Environment Setup
    • Setup Kinect SDK on Microsoft Visual Studio 2010 development environment
    • Setting up .NET Web Service on IIS7 with SQL Server 2008
    • Installing & Configuring IIS7 on Server 2008
    • Using Plugins in Microsoft Visual Studio 2010 development environment for Code Metrics
    • Using BugNet as Issue Tracker
Iteration 3 and 4
Soft Skills Technical Skills
  • Project Management:
    • Managing Project Risks
    • Prioritization of Tasks
    • Documenting & Managing Requirements We Set For Ourselves
    • Planning & Executing User Acceptance Tests
  • Kinect Development:
    • Kinect Gestures Algorithms
  • Back-end Web Application
    • Creating a web app to allow the management to customise their content
Iteration 5 and 6
Soft Skills Technical Skills
  • Project Management:
    • Managing the inclusion of a Beta Test
    • Prioritization of Tasks
    • Planning & Executing of User Test 2
  • Kinect Development:
    • Kinect Tutorial Videos
  • Back-end Web Application
    • Creating a web app to display of geographic data
Iteration 7
Soft Skills Technical Skills
  • Project Management:
    • Managing the execution of a Beta Test
  • Kinect Development:
    • Modifying the code slightly to accommodate for the beta testing
  • Back-end Web Application
    • Creating a database for Glassroom
    • Linking the uploading of photos to Facebook


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:

Kiwie Reflection Alex Reflection
Bazinga - Kiwie.png
  • Know what I don’t know, need to know and whom I can find out from
  • Thank you SIS for IS481 – Gained so many skills outside lectures – Make it compulsory ;)
  • Cut down on talking, be succinct
Bazinga - Alex.png
  • Let the product do most of the talking
  • It’s all about creating the user experience, less about creating the product
  • Venturing into the unknown may be challenging, but that’s where all the potential is.


Bevan Reflection Joy Reflection
Bazinga - Bevan.png
  • Creating kinect-based tutorials is a whole new challenge but the journey was edifying
  • Ensuring usability for kinect application is something that requires a lot of observations and understanding how users move
  • Challenges faced and overcome to create a commercial-ready aapplication was thought-provoking and interesting


Bazinga - Joy.png
  • Dealing with uncertainties like scope changes and inclusion of beta testing
  • Learning how to estimate and allocate tasks to teammates based on their strengths
  • Learnt how to analyse and observe people’s behavior in detail so to pick up trends


Carmen Reflection
Bazinga - Carmen.png
  • Time Management – learnt the importance of good time coordination for this project
  • User Testing process – experienced and created a user test from scratch
  • Teamwork – good communication and collaboration is important in a team. I am glad that I have experienced working in a great and cohesive team