HeaderSIS.jpg

Difference between revisions of "IS480 Team wiki: 2010T1 OOLaLa Final"

From IS480
Jump to navigation Jump to search
 
(36 intermediate revisions by 3 users not shown)
Line 27: Line 27:
 
===Project Achievements:===
 
===Project Achievements:===
  
*'''SMS Application used at an event organized by Client/ Sponsor'''
+
*'''SMS Application used at an Event Organized by Sponsor'''
<p>To provide our client/ sponsor with a real-life experience on the responsiveness of the SMS Application, we did a test on an event that our client/ sponsor had organized.</p>
+
<p>To provide our sponsor with a real-life experience on the responsiveness of the SMS Application, we did a test on an event that our sponsor had organized.</p>
  
*'''Bringing commonly used technologies to a new experience'''
+
*'''Bringing Commonly used Technologies to a New Experience'''
 
<p>Who knew SMS could be used to create an event and consolidate attendance for it? Leveraging on commonly used technologies that had been available since Short Messaging Service (SMS) existed; we have brought the capability of SMS towards a newer user experience, with enhanced usability.</p>
 
<p>Who knew SMS could be used to create an event and consolidate attendance for it? Leveraging on commonly used technologies that had been available since Short Messaging Service (SMS) existed; we have brought the capability of SMS towards a newer user experience, with enhanced usability.</p>
  
Line 37: Line 37:
  
 
==<font face="Impact" size="+2">Project Management</font>==
 
==<font face="Impact" size="+2">Project Management</font>==
 
Provide more details about the status, schedule and the scope of the project. Describe the complexity of the project.
 
  
 
===Project Schedule (Plan Vs Actual):===
 
===Project Schedule (Plan Vs Actual):===
Line 48: Line 46:
 
During each iteration,
 
During each iteration,
 
the following is carried out:<br>
 
the following is carried out:<br>
- Sketch and brainstorm the design and requirements of the functions that is to be implemented before coding it.<br>
+
* Sketch and brainstorm the design and requirements of the functions that is to be implemented before coding it.<br>
- After integration of new functions, review and test the whole application(including functions previously implemented).<br>
+
* After integration of new functions, review and test the whole application(including functions previously implemented).<br>
- Record progress details and update PM documents.<br>
+
* Record progress details and update PM documents.<br>
  
 
===Project Metrics:===
 
===Project Metrics:===
Line 67: Line 65:
  
  
==== How we measure it: ====
+
==== [https://wiki.smu.edu.sg/is480/IS480_Team_wiki:_2010T1_OOLaLa#How_we_measure_it: How we measure it:] ====
Formula : Estimated Duration / Actual Duration<br>
+
Data Collected:  
Action Plan: Reference Table below<br>
 
<div align="center">
 
[[Image:Schedule_reference_table.png|550x550px]]
 
</div>
 
Data Collected: Measurement Data below<br>
 
 
[https://wiki.smu.edu.sg/is480/Image:ScheduleMetric_Final.pdf Schedule Metric Measurement Data]
 
[https://wiki.smu.edu.sg/is480/Image:ScheduleMetric_Final.pdf Schedule Metric Measurement Data]
  
Line 82: Line 75:
 
[[Image:Happiness_graph.png|600x600px]]
 
[[Image:Happiness_graph.png|600x600px]]
 
</div>
 
</div>
 
+
==== [https://wiki.smu.edu.sg/is480/IS480_Team_wiki:_2010T1_OOLaLa#How_we_measure_it How we measure it:] ====
==== How we measure it: ====
 
Questions:
 
<div align="center">
 
[[Image:Happiness_qn_chart.png|600x600px]]
 
</div>
 
Action Plan: Reference Table below<br>
 
<div align="center">
 
[[Image:Happiness_reference_table.png|500x500px]]
 
</div>
 
  
 
===Project/ Technical Complexity:===
 
===Project/ Technical Complexity:===
Line 100: Line 84:
 
<p>To enhance user experience, we implemented our SMS Application in a simple, user-friendly and efficient manner. Numerous discussions and brainstorming sessions took place to ensure that we deliver a smart and interactive SMS Application that could easily understand different user’s entries and data. </p>
 
<p>To enhance user experience, we implemented our SMS Application in a simple, user-friendly and efficient manner. Numerous discussions and brainstorming sessions took place to ensure that we deliver a smart and interactive SMS Application that could easily understand different user’s entries and data. </p>
  
<p>Since the Proposal Acceptance Presentation and during the Mid-Term Presentation, technical issues surrounding the processing time of our SMS Application arouse. Because upon a desktop application user logs onto our SMS Application, he/ she had to wait for approximately 10-15 seconds before he is logged on. Such long waiting times does not provide any benefits for the desktop application user as he/ she stares at the frozen screen for 10-15 seconds, which is simply a waste of time. Thus, since then, we had explored on various multi-threading methods that allows speedy log in. And a resolution found to this technical issue was by incorporating a background thread or, otherwise, a time-out functionality, which was incorporated in the Send SMS functionality.</p>
+
<p>Since the Proposal Acceptance Presentation and during the Mid-Term Presentation, technical issues surrounding the processing time of our SMS Application arouse. Because upon a desktop application user logs onto our SMS Application, he/ she had to wait for approximately 10-15 seconds before he is logged on. Such long waiting times does not provide any benefits for the desktop application user as he/ she stares at the frozen screen for 10-15 seconds, which is simply a waste of time. Thus, since then, we had explored on various multi-threading methods that allows speedy log in. And a resolution found to this technical issue was by incorporating a background thread or, otherwise, a time-out functionality, which was incorporated in the Send SMS functionality too.</p>
  
 
*'''Managing Multiple Interactions'''[[Image:Complexities2.png|thumb|260x260px|Managing Multiple Interactions]]
 
*'''Managing Multiple Interactions'''[[Image:Complexities2.png|thumb|260x260px|Managing Multiple Interactions]]
Line 111: Line 95:
  
 
==<font face="Impact" size="+2">Quality of product</font>==
 
==<font face="Impact" size="+2">Quality of product</font>==
 
Provide more details about the quality of your work. For example, you designed a flexible configurable system using XML.config files, uses Strategy Design Pattern to allow plugging in different strategy, implement a regular expression parser to map a flexible formula editor, etc.
 
  
 
===Project Deliverables:===
 
===Project Deliverables:===
  
List the artifacts produced for this project. The entire deliverable can be submitted in a separate thumb drive, web repository or place in the IS480 team wiki.
+
{| style="width: 75%;" border="0" cellspacing="0"
 
 
{| style="width: 75%;" border="0"
 
 
|- style="background:#045FB4; color:white"  
 
|- style="background:#045FB4; color:white"  
|align="center"| Stage  
+
|align="center"| '''Stage'''
|align="center"| Specification
+
|align="center"| '''Specification'''
 
|-
 
|-
  
|rowspan="2"| Project Management
+
|rowspan="2" valign="top"| Project Management
|| [https://wiki.smu.edu.sg/is480/IS480_Team_wiki:_2010T1_OOLaLa#Meeting_Frequency Minutes]
+
|| [https://wiki.smu.edu.sg/is480/IS480_Team_wiki:_2010T1_OOLaLa#Meeting_Frequency Our Meeting Minutes]
 
|-
 
|-
  
Line 131: Line 111:
 
|-
 
|-
  
|rowspan="2"| Requirements
+
|rowspan="2" valign="top" style="background:#E0F8F7;"| Requirements
|| [[#Project Highlights: | Software Alignment to Business Needs]]
+
| style="background:#E0F8F7;"| [[#Project Highlights: | Software Alignment to Business Needs]]
 
|-
 
|-
  
|| [[#Project Highlights: | Usability Issue]]
+
| style="background:#E0F8F7;"| [[#Project Highlights: | Usability Issue]]
 
|-
 
|-
  
|rowspan="4"| Analysis
+
|rowspan="4" valign="top"| Analysis
 
|| '''Use Case Diagram'''  
 
|| '''Use Case Diagram'''  
 
|-
 
|-
Line 151: Line 131:
 
|-
 
|-
  
|rowspan="3"| Design
+
|rowspan="3" valign="top" style="background:#E0F8F7;"| Design
 
|-
 
|-
  
|| '''Class Diagram'''
+
| style="background:#E0F8F7;"| '''Class Diagram'''
 
|-
 
|-
  
|| [[Image:OoLaLa Class Diagram.png |400x700px |Example of Class Diagram]]
+
| style="background:#E0F8F7;"| [[Image:OoLaLa Class Diagram.png |400x700px |Example of Class Diagram]]
 
|-
 
|-
  
  
 
|| Testing
 
|| Testing
|| [https://wiki.smu.edu.sg/w/is480/images/a/a8/UAT_Test_Results.xlsx Test plan]
+
|| [https://wiki.smu.edu.sg/w/is480/images/5/5c/UAT_TestResults%28FINAL%29.xlsx View Our Final Test plan(Excel File)]
 
|-
 
|-
  
|| Tracking
+
| style="background:#E0F8F7;" valign="top"| Tracking
|| [http://fypoolala.co.cc/login_page.php Mantis Bug Tracking]
+
| style="background:#E0F8F7;"|[[Image:MantisBugTracker.jpg |400x700px |MantisBugTrackerFeatures]][[Image:MantisBugTracker Advantages.jpg|200x200px|Advantages]]<br> [http://fypoolala.co.cc/login_page.php Mantis Bug Tracking]
 
|-
 
|-
  
|rowspan="2"| Handover
+
|valign="top"| Handover
 
 
|| Code
 
|-
 
  
 
|| [[#Deployment:| Deployment]]
 
|| [[#Deployment:| Deployment]]
 
|}
 
|}
 
Not all parts of the deliverables are necessary but the evidence should be convincing of the scope.
 
  
 
=== Quality:===
 
=== Quality:===
Line 183: Line 158:
 
*'''User Interface'''
 
*'''User Interface'''
 
<table><tr><td width =250px>
 
<table><tr><td width =250px>
We started with working on paper prototype in our initial discussions with our project client. This paper prototype also enabled us to make changes and to reflect them on the paper easily. This enabled us to have a clearer understanding of what our project client really wants.</td><td>
+
We started with working on paper prototype in our initial discussions with our project sponsor. This paper prototype also enabled us to make changes and to reflect them on the paper easily. This enabled us to have a clearer understanding of what our project sponsor really wants.</td><td>
 
[[Image:Paper Prototype Draft.jpg |200x400px |Paper Prototype for Draft UI]]
 
[[Image:Paper Prototype Draft.jpg |200x400px |Paper Prototype for Draft UI]]
 
[[Image:Paper Prototype Template.jpg |200x400px |Paper Prototype for Template UI]]
 
[[Image:Paper Prototype Template.jpg |200x400px |Paper Prototype for Template UI]]
Line 192: Line 167:
 
[[Image:Initial SMS UI.gif |200x400px |Initial UI Design]]</td></tr><tr><td>
 
[[Image:Initial SMS UI.gif |200x400px |Initial UI Design]]</td></tr><tr><td>
  
After vigorous rounds of UAT and Heuristic Test by different users, we have discussed and finalized the UI with our project client. </td><td>
+
After vigorous rounds of UAT and Heuristic Test by different users, we have discussed and finalized the UI with our project sponsor. </td><td>
 
[[Image:Final SMS UI.png|200x400px |Finalized UI Design]]</td></tr></table>
 
[[Image:Final SMS UI.png|200x400px |Finalized UI Design]]</td></tr></table>
  
Line 215: Line 190:
 
<tr><td>[[Image:OOLaLa smsc.png]]</td></tr>
 
<tr><td>[[Image:OOLaLa smsc.png]]</td></tr>
 
<tr><td bgcolor="#E0F8F7">6. The SMS Application is now ready to use</td></tr>
 
<tr><td bgcolor="#E0F8F7">6. The SMS Application is now ready to use</td></tr>
 +
</table>
  
 
===Testing:===
 
===Testing:===
 
*'''The 1st round of testing will be done internally'''
 
*'''The 1st round of testing will be done internally'''
There will be 2 pair of programmers doing the application, while the other member will be assign to be the observer. The role of the observer is to get update with the functionalities' status of that particular week and when a functionality is completed, the observer will proceed to test the functions and at the same time come up with the test plan and report any bugs found. The reporting of bugs can be done through Mantis Bug Tracker and the observer is also able to assign a programmer to solve the bug.
+
There will be 2 pair of programmers doing the application, while the other member will be assign to be the observer. The role of the observer is to get update with the functionalities' status of that particular week and when a functionality is completed, the observer will proceed to test the functions and at the same time come up with the test plan and report any bugs found. The reporting of bugs can be done through [http://fypoolala.co.cc/login_page.php Mantis Bug Tracker] and the observer is also able to assign a programmer to solve the bug.
  
 
*'''The 2nd round of testing will be done by the sponsor'''
 
*'''The 2nd round of testing will be done by the sponsor'''
Line 227: Line 203:
  
 
*'''User Acceptance Testing in week 10'''
 
*'''User Acceptance Testing in week 10'''
Sample size: 11
+
Sample size: 15
 
<br>Total bugs discovered: 10
 
<br>Total bugs discovered: 10
 
<br>8 were user interface bugs
 
<br>8 were user interface bugs
Line 238: Line 214:
 
===Team Reflection:===
 
===Team Reflection:===
  
Key lessons learned – indicating where the team improved, or would do things differently next time. You may refer to the learning outcome summary in your proposal. A very short checklist style will suffice. It would be very convincing if the knowledge is share at the wiki [[https://wiki.smu.edu.sg/is480/IS480_Team_wiki:_2010T1_OOLaLa#OoLaLa.27s__Learning_Outcome Learning Outcomes]] and linked here.
+
<!--Key lessons learned – indicating where the team improved, or would do things differently next time. You may refer to the learning outcome summary in your proposal. A very short checklist style will suffice. It would be very convincing if the knowledge is share at the wiki [[https://wiki.smu.edu.sg/is480/IS480_Team_wiki:_2010T1_OOLaLa#OoLaLa.27s__Learning_Outcome Learning Outcomes]] and linked here.
  
Any training and lesson learnt? What are the take-away so far? You may include individual reflection if that make sense at this point. Be brief.
+
Any training and lesson learnt? What are the take-away so far? You may include individual reflection if that make sense at this point. Be brief.-->
  
 
*'''Key Lessons Learnt'''
 
*'''Key Lessons Learnt'''
Learning unfamiliar programming languages from scratch, understanding our project sponsor’s requirements and conveying our action plans to our project supervisor were quite challenging at times. Not only did we learn and become better project managers and programmers, we have acquired other soft skills through this fabulous project experience. </tr>
+
Learning unfamiliar programming languages from scratch, understanding our project sponsor’s requirements and conveying our action plans to our project supervisor were quite challenging at times. Not only did we learn and become better project managers and programmers, we have acquired other soft skills through this fabulous project experience.  
<br>
+
<br><br>
 
The following are the key lessons learnt:<br>
 
The following are the key lessons learnt:<br>
 
<table><tr><td bgcolor="#E0F8F7">
 
<table><tr><td bgcolor="#E0F8F7">
'''Understanding user's behavior and patterns'''</td></tr><tr><td>
+
'''Understanding User's Behavior and Patterns'''</td></tr><tr><td>
Developing a real world application requires us to constantly collect data and inputs from the end users. Observing the way they use our application and the collection of their experience has exposes us to the mentality and understanding of the differing interactions performed by end users.
+
Developing a real world application requires us to constantly collect data and inputs from the end users. Observing the way they use our application and the collection of their experience have exposed us to the mentality and understanding of the different interactions performed by end users.
These interactions and observations has allowed us to think and understand the different user behavior and patterns. Thereby, catering to these differences to achieve usability and simplicity. </td></tr><tr><td bgcolor="#E0F8F7">
+
These interactions and observations have allowed us to think and understand the different user behaviors and patterns. Thereby, catering to these differences to achieve usability and simplicity. </td></tr><tr><td bgcolor="#E0F8F7">
'''Learning to integrate existing technologies'''<br></td></tr><tr><td>
+
'''Learning to Integrate Existing Technologies'''<br></td></tr><tr><td>
With usage of existing technologies and libraries provided on the web, we have learn to integrate it by modifying the configurations. For efficient usage of each library's methods, we have learnt to identify the required parameters and sequence of activities that has to be done for successful execution of a desired method even when the documentation of the library is poorly done. <br></td></tr><tr><td bgcolor="#E0F8F7">
+
With usage of existing technologies and libraries provided on the web, we have learnt to integrate it by modifying the configurations. For efficient usage of each library's methods, we have learnt to identify the required parameters and sequence of activities that has to be done for successful execution of a desired method even when the documentation of the library is poorly done. <br></td></tr><tr><td bgcolor="#E0F8F7">
'''Managing client's expectations'''<br></td></tr><tr><td>
+
'''Managing Sponsor's Expectations'''<br></td></tr><tr><td>
Additonal business requirement are always initiated by our client. Though so, we learn to priortize each task based on its importance, value to the client. In efforts of aligning the software specifically to the client's needs, we learn the importance of using a user sign off specifying all functionality that scheduled to be delivered at the iteration phase. <br></td></tr><tr><td bgcolor="#E0F8F7">
+
Additonal business requirements are always initiated by our sponsor. Though so, we learn to prioritize each task based on its importance and value to the sponsor. In efforts of aligning the software specifically to the sponsor's needs, we learn the importance of using a user sign off specifying all functionality that scheduled to be delivered at the iteration phase. <br></td></tr><tr><td bgcolor="#E0F8F7">
'''Effective handover of functions'''<br></td></tr><tr><td>
+
'''Effective Handover of Functions'''<br></td></tr><tr><td>
With pair programming arrangemnet and constant handover of functions to another pair of programmers each iteration, we learnt to keep each other updated regarding the current status of each functionality and the improvements that are required to be made in each team meeeting that we have. <br></td></tr><tr><td bgcolor="#E0F8F7">
+
With pair programming arrangements and constant handover of functions to another pair of programmers at each iteration, we learnt to keep each other updated regarding the current status of each functionality and the improvements that are required to be made at each team meeeting that we have. <br></td></tr><tr><td bgcolor="#E0F8F7">
 
'''Interpersonal Skills'''<br></td></tr><tr><td>
 
'''Interpersonal Skills'''<br></td></tr><tr><td>
Initially, our meeting are usually too interactive where everyone is fighting to get their inputs heard from the team. This situation worsen across the initiation phases which ended up many confusion and unheard thoughts. In resolution of this persisting problem, we learnt to respect one another and never interrupt each other when somebody is speaking . </td></tr></table>
+
Initially, our meeting were usually too interactive where everyone is ''fighting'' to get their inputs heard from everyone else. This situation worsened across the initiation phases which created many confusions and unheard thoughts. In resolution of this persisting problem, we learnt to respect one another and never interrupt each other when somebody is speaking. </td></tr></table>
 
<table><tr border="1"><td bgcolor="#58ACFA">
 
<table><tr border="1"><td bgcolor="#58ACFA">
 
View Video:</td><td bgcolor="#CEF6F5"> [https://wiki.smu.edu.sg/w/is480/images/b/ba/Learning.wmv Team Member's Key LOMS]<br></td></tr><tr><td bgcolor="#58ACFA">
 
View Video:</td><td bgcolor="#CEF6F5"> [https://wiki.smu.edu.sg/w/is480/images/b/ba/Learning.wmv Team Member's Key LOMS]<br></td></tr><tr><td bgcolor="#58ACFA">
Go to:</td><td bgcolor="#CEF6F5">[https://wiki.smu.edu.sg/is480/IS480_Team_wiki:_2010T1_OOLaLa#OoLaLa.27s__Learning_Outcome Detailed explaination of our learning outcomes]</td></tr></table>
+
Go to:</td><td bgcolor="#CEF6F5">[https://wiki.smu.edu.sg/is480/IS480_Team_wiki:_2010T1_OOLaLa#OoLaLa.27s__Learning_Outcome Detailed Explanation of our Learning Outcomes]</td></tr></table>
  
 
===Individual Reflection:===
 
===Individual Reflection:===
Line 266: Line 242:
 
====Brendon Png Lee Hong Reflection:====
 
====Brendon Png Lee Hong Reflection:====
 
[[Image:OOLaLa Brendon.jpg|right]]
 
[[Image:OOLaLa Brendon.jpg|right]]
This has been a rewarding experience and is indeed a highlight of my learning journey in SIS. We started out initially not knowing what we do not know. We have not idea what are the skill sets we need to equip ourselves with and everything about the project isn't that clear. From there, we progressed to realizing what we do not know and started to learn the ropes. We did our own research, studied the best practices and available solutions and constantly seek advice from our project supervisor.  
+
This has been a rewarding experience and is indeed a highlight of my learning journey in SIS. We started out initially not knowing what we do not know. We have no idea what are the skill sets we need to equip ourselves with and everything about the project isn't that clear. From there, we progressed to realizing what we do not know and started to learn the ropes. We did our own research, studied the best practices and available solutions and constantly seek advice from our project supervisor.  
  
In this project, my involvement was the role of the Project Manager (PM). This role does sound quite powerful. However, with great power comes great responsibility. Basically, the PM has to be responsible for the team dynamics, project requirements, making sure we're on schedule and especially in making decision for many things such as OT, adjusting our project scope and even deciding on a location to meet. Additionally, whenever there is a challenge faced in programming, the PM would have to gather the team's opinions and make an informed decision in overcoming the situation.
+
In this project, my involvement was the role of the Project Manager (PM). This role does sound quite powerful. However, with great power comes great responsibility. Basically, the PM has to be responsible for the team dynamics, project requirements, making sure we're on schedule and especially in making decision for many things such as overtime (OT), adjusting our project scope and even deciding on a location to meet. Additionally, whenever there is a challenge faced in programming, the PM would have to gather the team's opinions and make an informed decision in overcoming the situation.
  
 
Overall, I've learnt that every project has learning opportunities and it takes a team effort to produce a project with good project management. Every role has a part to play within the project team.
 
Overall, I've learnt that every project has learning opportunities and it takes a team effort to produce a project with good project management. Every role has a part to play within the project team.
 +
<br><br>
  
 
====Woo Kai Ling Reflection:====
 
====Woo Kai Ling Reflection:====
 
[[Image:OOLaLa Kailing.jpg|right]]
 
[[Image:OOLaLa Kailing.jpg|right]]
Developing a real world application has brought me to another level of understanding and appreciation of current business processes and workflow. Given the role and responsibility of a design analyst and programmer within the team, I am constantly challenged to learn and implement something new and interesting that will bring business value to my sponsor and potential end users. I have learnt new business logics, skills in utilizing tools and techniques available in various IDE, external libraries available on the web. It is only during this project that I really appreciate the usage of external libraries and the guidance provided on forums such as StackOverFlow, SMSLib, and CodeProject communities. Reusability of external implementation and resolution provided on these external libraries and communities has facilitated easier maintenance of codes and implementation of new features. As these libraries focus on providing the fundamental principles and features, I acknowledge the various constraints and utilized additional codes and logics to overcome each shortcoming. Though I wasn’t the project manager, this project has allowed me to practice adequate project management practices and time management skills. Though it might seem dry and all theoretical, it helped provided our team with better manageability, adaptability and definitely, earn us recognition for best IS480 project management. In summary, I treasure this experience tremendously and gratefully thank you my supportive team mates and supervisor for this awesome project experience!
+
Developing a real world application has brought me to another level of understanding and appreciation for current available tools available on Visual Studio, business processes and workflows. Given the role and responsibility of a design analyst and programmer within the team, I am constantly challenged to learn and implement new and interesting features that will bring business value to our sponsor and potential end users. In the process of structuring an efficient business logic flow, I have improved my reasoning and cognitive skills. In addition, I learnt new business logics, skills in utilizing tools and techniques available in various IDEs and external libraries available on the web. It is only during this project that I really appreciates the usage of external libraries and the guidance provided on forums such as StackOverFlow, SMSLib, and CodeProject communities. Reusability of external implementation and resolution provided on these external libraries and communities have facilitated easier maintenance of codes and implementation of new features. As these libraries focus on providing the fundamental principles and features, I acknowledge the various constraints and utilized additional codes and logics to overcome each shortcoming. Though I wasn’t the project manager, this project has allowed me to practice adequate project management skills and time management skills. Though it might seem dry and all theoretical, it helped to provide our team with better manageability, adaptability and definitely, earn us recognition for best IS480 Project Management. In summary, I treasure this experience tremendously and gratefully thank you, my supportive team mates and supervisor, for this awesome project experience!
 
<br><br>
 
<br><br>
  
Line 284: Line 261:
 
====Alan Tan Beng Heng Reflection:====
 
====Alan Tan Beng Heng Reflection:====
 
[[Image:OOLaLa Alan.jpg|right]]
 
[[Image:OOLaLa Alan.jpg|right]]
IS480 is truly an exciting journey for me, besides burning the midnight oil to get work done I have learn that it is often hard to stick with the initial requirement that we had from our client as he will always request more functions to be added. To resolve this there is a need to constantly communicate and justify what can and cannot be done within this short period. Sometimes there is some miscommunication between us and the client such as how the function should work because we are used to view from a programmer's perspective and not from a user's perspective therefore it's always good to have something clear and understandable draft out such as a user sign off form. One of the main challengers I faced was solving the bugs in the application. Initially we often had to ask one another on how to reproduce the bug and sometimes we even forgot where is the bug however with Mantis Bug Tracker, bugs were more easily to capture and tracked. As a whole, I'm glad that we overcome the challengers and had an enjoyable time together!
+
IS480 is truly an exciting journey for me, besides burning the midnight oil to get work done I have learn that it is often hard to stick with the initial requirement that we had from our sponsor as he will always request more functions to be added. To resolve this there is a need to constantly communicate and justify what can and cannot be done within this short period. Sometimes there is some miscommunication between us and the sponsor such as how the function should work because we are used to view from a programmer's perspective and not from a user's perspective therefore it's always good to have something clear and understandable draft out such as a user sign off form. One of the main challengers I faced was solving the bugs in the application. Initially we often had to ask one another on how to reproduce the bug and sometimes we even forgot where is the bug however with Mantis Bug Tracker, bugs were more easily and efficiently tracked. As a whole, I'm glad that we overcome the challengers and had an enjoyable time together!
 +
<br><br>
  
 
====Goh Shu Qing Maybelline Reflection:====
 
====Goh Shu Qing Maybelline Reflection:====

Latest revision as of 23:05, 28 November 2010

We are OOLaLa

Project Progress Summary

Rigorous work took place to enhance and further improve the entire SMS Application since the Mid-Term Presentation. A series of User Acceptance Test was conducted on various groups of people (Student & Working Adults), which will further elaborated at the Quality of Product section. In addition, with the results obtained and analyzed, further work and improvements were implemented to ensure that we deliver a robust system by the end of our project, which we have officially completed.

Project Highlights:

  • Software Alignment to Business Needs
Software Alignment to Business Needs

Event Management tools and IT solutions are in abundance in our current society. Gaps and misalignment between current business and these solutions are tremendous. In this project, we address limitations of the current methodology of Event Management.




  • Usability Issue
Usability Problem and Resolution

The implementations of a user-friendly, easy-to-use system that can be efficiently utilized by any people from differing backgrounds deem to be easier said than done. Numerous heuristic tests to gather perspective on the established interface were tedious and time-consuming. Usage of tooltip, other visual studio tools and backend processing tools such as timer and threading enhanced the user interface. Intuitive Message allows end users to use the application without the usage of any user manuals.

Project Challenges:

  • Usability Issues

After gathering feedbacks and results from our Heuristic tests, we recognized the need of improving our existing user interface based on the feedback given by our testers and sponsors. Usage of many usability features and tools coupled with usage of intutitive terminology and message enhances the usability and simplicity of our application.

  • Ensuring a Fully Functional Working System

Data inconsistency present with the usage of XML document and inconsistent file paths deters the end user from using the developed application appropriately. We are challenged to find the root source of the problem and standardize the variables that are compatible with all end user’s computers.

  • Resolving Shortcomings of Various External Libraries’ Tools

The external library used for the generation of any event attendance list as a PDF document which posed major problems for the team. The library’s method was not able to print the pie chart properly due to its shortcoming. As a result, conversion of the pie chart as a bitmap is necessary.

  • Compatibility with Various Operating System

Different operating system configures the serial ports for GSM modem connection differently. Initial programming codes used to open the specific port connected to the GSM modem did not work on older Windows Operating System. Thus, vigorous research and testings were done to identify the exact problem to seek for an alternative solution, which requires timeout codes to be implemented in order to resolve the compatibility issue with older Windows Operating System.

  • Compatibility with Various GSM Modems

With only two GSM modem models given by the sponsor for the development of this application, we faced issues, such as, making the application compatible with other GSM modem models. However, due to budget constraints and having only one of the two modem available in the market, we are challenged to find alternative solutions to reduce the risk of compatibility problems with other GSM modem models not made available to us. With the subscription of wireless plans with M1, we were able to gather commonly a used GSM model, HuaWei Modem, for testing. Therefore, this helps to reduce the probability of compatibility issues occurring in commonly used GSM modems.

Project Achievements:

  • SMS Application used at an Event Organized by Sponsor

To provide our sponsor with a real-life experience on the responsiveness of the SMS Application, we did a test on an event that our sponsor had organized.

  • Bringing Commonly used Technologies to a New Experience

Who knew SMS could be used to create an event and consolidate attendance for it? Leveraging on commonly used technologies that had been available since Short Messaging Service (SMS) existed; we have brought the capability of SMS towards a newer user experience, with enhanced usability.

  • Creation of Events can be done Intuitively On-The-GO

We managed to change the workflow for creation of events On-The-GO from a long set of syntax to a workflow that can be done intuitively now! This new workflow makes creation of events so much easier and interactive than before.

Project Management

Project Schedule (Plan Vs Actual):

OOlalaschedule.png

During each iteration, the following is carried out:

  • Sketch and brainstorm the design and requirements of the functions that is to be implemented before coding it.
  • After integration of new functions, review and test the whole application(including functions previously implemented).
  • Record progress details and update PM documents.

Project Metrics:

Schedule Metrics

The graph below illustrates an overview of our iteration progress. During the 1st milestone, which is from iteration 1-4, our group deviated from the estimated schedule as we have allocated too much time for functions that were easily done up. Meanwhile, functions that we presumed could be easily implemented took us longer than expected and that delayed our schedule as can be seen in iteration 4.

From the mistake learnt in milestone 1, we adjusted our project schedule and subsequent iterations (5-9) in milestone 2 and 3 became more consistent.

However, we were severely delayed in milestone 4 due to other project commitments and deadlines. We chose to do away with some additional functions that were least important to the sponsor and also increased our working hours to finish the functions on time.

Schedule graph.png


How we measure it:

Data Collected: Schedule Metric Measurement Data

Happiness Metrics

The graph shows the emotional state of every member based on a set of questionnaire answered weekly. As can be seen, the metric ratings of some members fluctuates greatly while some are more consistent. In iterations 7 and 8, ratings of member were generally low, some even fall below the average of 4. This is due to several midterm projects and tight deadlines that we need to abide to. We adjusted our project schedule and kept meetings as short and productive as possible.

Happiness graph.png

How we measure it:

Project/ Technical Complexity:

We basically did not encounter much technical complexity when programming our entire application. So, we changed our focus of complexity to ensure better usability in our SMS Application, such as its heuristics.

  • User Experience

To enhance user experience, we implemented our SMS Application in a simple, user-friendly and efficient manner. Numerous discussions and brainstorming sessions took place to ensure that we deliver a smart and interactive SMS Application that could easily understand different user’s entries and data.

Since the Proposal Acceptance Presentation and during the Mid-Term Presentation, technical issues surrounding the processing time of our SMS Application arouse. Because upon a desktop application user logs onto our SMS Application, he/ she had to wait for approximately 10-15 seconds before he is logged on. Such long waiting times does not provide any benefits for the desktop application user as he/ she stares at the frozen screen for 10-15 seconds, which is simply a waste of time. Thus, since then, we had explored on various multi-threading methods that allows speedy log in. And a resolution found to this technical issue was by incorporating a background thread or, otherwise, a time-out functionality, which was incorporated in the Send SMS functionality too.

  • Managing Multiple Interactions
    Managing Multiple Interactions

To allow multiple users to create events On-The-GO, we had to enhance our SMS Application to be robust enough to allow multiple users to interact at the same time. Furthermore to ensure every user who creates events On-The-GO is recognized, our SMS Application had to be smart enough to know the last session of the user and prompt of any unfinished session.

  • Logic

An important part in ensuring good usability throughout our SMS Application is to ensure good drawn-out logic of the application, and functionality. This is important to predict human behavior and all other alternative inputs (or SMS sent) by the mobile users. An example of such prediction includes the different date format specified by every mobile user: Such as 24 Nov 2010, 24 November 2010, 24/11/2010, 24-11-2010 and 24.11.2010.

Because various other library files and functionalities were created and done concurrently with all other basic and additional functionalities, we had to ensure that integrating with different solutions was done successfully. Furthermore, our logic had to be robust enough to ensure stability of our SMS Application.

Quality of product

Project Deliverables:

Stage Specification
Project Management Our Meeting Minutes
Metrics
Requirements Software Alignment to Business Needs
Usability Issue
Analysis Use Case Diagram
Use Case
System Sequence Diagram
System Sequence Diagram
Design
Class Diagram
Example of Class Diagram
Testing View Our Final Test plan(Excel File)
Tracking MantisBugTrackerFeaturesAdvantages
Mantis Bug Tracking
Handover Deployment

Quality:

  • User Interface
We started with working on paper prototype in our initial discussions with our project sponsor. This paper prototype also enabled us to make changes and to reflect them on the paper easily. This enabled us to have a clearer understanding of what our project sponsor really wants.

Paper Prototype for Draft UI Paper Prototype for Template UI Paper Prototype for Events UI

Progressing from paper prototype, we started to build our initial application UI. Initial UI Design
After vigorous rounds of UAT and Heuristic Test by different users, we have discussed and finalized the UI with our project sponsor. Finalized UI Design


  • Adopting Model View Controller (MVC) concept in our programming codes

At the early stage of our programming stage, we realized the importance of maintaining a healthy structure and adhering to a certain standard. We have decided to adopt MVC concept and the enabled us to reuse codes and also ease in making changes.

Deployment:

Our SMS Application is coded using Microsoft Visual Studio 2010 which makes deployment a breeze.

  • To install the SMS Application just click on the executable (.exe) file which will extract the required files into a folder.
  • To run the SMS Application simply click on the SMS Application shortcut found on the Desktop after installation.
1. Click on either setup.exe or SMSApp.msi to install
OOLaLa setup.png
2. Navigate to the Desktop and click on the SMS Application shortcut to run
OOLaLa app.png
3. Login with the username admin and the password 123
OOLaLa login.png
4. Click on the Profile button
OOLaLa profile.png
5. Click on the Set SMSC Number radio button then select the relevant operator and click on Set to save
OOLaLa smsc.png
6. The SMS Application is now ready to use

Testing:

  • The 1st round of testing will be done internally

There will be 2 pair of programmers doing the application, while the other member will be assign to be the observer. The role of the observer is to get update with the functionalities' status of that particular week and when a functionality is completed, the observer will proceed to test the functions and at the same time come up with the test plan and report any bugs found. The reporting of bugs can be done through Mantis Bug Tracker and the observer is also able to assign a programmer to solve the bug.

  • The 2nd round of testing will be done by the sponsor

Every couple of weeks, we will deliver a working application to the sponsor. He will do the testing and inform us of any bugs found. Besides that he will also give us comments about the user interface for us to improve on.

  • The 3rd round of testing will be done externally

We contacted our friends to test our application for bugs and usability which consist of a mixture of SIS and Non-SIS students.

  • User Acceptance Testing in week 10

Sample size: 15
Total bugs discovered: 10
8 were user interface bugs
2 were functionalities bugs

We approached different users such as parents, students and working adults to test our application based on the test plan created by the observer. While conducting the test plan, we will be with the user to guide them and also to record any bugs found in the process.

Reflection

Team Reflection:

  • Key Lessons Learnt

Learning unfamiliar programming languages from scratch, understanding our project sponsor’s requirements and conveying our action plans to our project supervisor were quite challenging at times. Not only did we learn and become better project managers and programmers, we have acquired other soft skills through this fabulous project experience.

The following are the key lessons learnt:

Understanding User's Behavior and Patterns

Developing a real world application requires us to constantly collect data and inputs from the end users. Observing the way they use our application and the collection of their experience have exposed us to the mentality and understanding of the different interactions performed by end users.

These interactions and observations have allowed us to think and understand the different user behaviors and patterns. Thereby, catering to these differences to achieve usability and simplicity.
Learning to Integrate Existing Technologies
With usage of existing technologies and libraries provided on the web, we have learnt to integrate it by modifying the configurations. For efficient usage of each library's methods, we have learnt to identify the required parameters and sequence of activities that has to be done for successful execution of a desired method even when the documentation of the library is poorly done.
Managing Sponsor's Expectations
Additonal business requirements are always initiated by our sponsor. Though so, we learn to prioritize each task based on its importance and value to the sponsor. In efforts of aligning the software specifically to the sponsor's needs, we learn the importance of using a user sign off specifying all functionality that scheduled to be delivered at the iteration phase.
Effective Handover of Functions
With pair programming arrangements and constant handover of functions to another pair of programmers at each iteration, we learnt to keep each other updated regarding the current status of each functionality and the improvements that are required to be made at each team meeeting that we have.
Interpersonal Skills
Initially, our meeting were usually too interactive where everyone is fighting to get their inputs heard from everyone else. This situation worsened across the initiation phases which created many confusions and unheard thoughts. In resolution of this persisting problem, we learnt to respect one another and never interrupt each other when somebody is speaking.
View Video: Team Member's Key LOMS
Go to:Detailed Explanation of our Learning Outcomes

Individual Reflection:

Brendon Png Lee Hong Reflection:

OOLaLa Brendon.jpg

This has been a rewarding experience and is indeed a highlight of my learning journey in SIS. We started out initially not knowing what we do not know. We have no idea what are the skill sets we need to equip ourselves with and everything about the project isn't that clear. From there, we progressed to realizing what we do not know and started to learn the ropes. We did our own research, studied the best practices and available solutions and constantly seek advice from our project supervisor.

In this project, my involvement was the role of the Project Manager (PM). This role does sound quite powerful. However, with great power comes great responsibility. Basically, the PM has to be responsible for the team dynamics, project requirements, making sure we're on schedule and especially in making decision for many things such as overtime (OT), adjusting our project scope and even deciding on a location to meet. Additionally, whenever there is a challenge faced in programming, the PM would have to gather the team's opinions and make an informed decision in overcoming the situation.

Overall, I've learnt that every project has learning opportunities and it takes a team effort to produce a project with good project management. Every role has a part to play within the project team.

Woo Kai Ling Reflection:

OOLaLa Kailing.jpg

Developing a real world application has brought me to another level of understanding and appreciation for current available tools available on Visual Studio, business processes and workflows. Given the role and responsibility of a design analyst and programmer within the team, I am constantly challenged to learn and implement new and interesting features that will bring business value to our sponsor and potential end users. In the process of structuring an efficient business logic flow, I have improved my reasoning and cognitive skills. In addition, I learnt new business logics, skills in utilizing tools and techniques available in various IDEs and external libraries available on the web. It is only during this project that I really appreciates the usage of external libraries and the guidance provided on forums such as StackOverFlow, SMSLib, and CodeProject communities. Reusability of external implementation and resolution provided on these external libraries and communities have facilitated easier maintenance of codes and implementation of new features. As these libraries focus on providing the fundamental principles and features, I acknowledge the various constraints and utilized additional codes and logics to overcome each shortcoming. Though I wasn’t the project manager, this project has allowed me to practice adequate project management skills and time management skills. Though it might seem dry and all theoretical, it helped to provide our team with better manageability, adaptability and definitely, earn us recognition for best IS480 Project Management. In summary, I treasure this experience tremendously and gratefully thank you, my supportive team mates and supervisor, for this awesome project experience!

Lur May Yee Reflection:

OOLaLa Mayyee.jpg

Through this project, I’ve benefited and learned a lot from my group mates that were technically competent and were selfless in sharing and imparting their knowledge. I’ve become proficient in using the Visual Studio (VS) 2010 IDE especially in solving conflicted files. The properties settings bar in VS also enabled me to create a holistic user interface with just simple navigation tools. I’m tasked with handling and conducting testing of the functions such as UAT and gathered feedbacks that could better enhance our existing system. Any bugs found were also logged into Mantis, our bug tracker, to facilitate the assigning and debugging of bugs. Lastly, I learned that in order for a team to function efficiently, understanding each other’s differences and covering each other’s back is very important. There might be overlapping roles that required help from other members and I’m proud to say that each and every one of my teammates was ready to lend their helping hand. Indeed, I’ve gained so much from this course, but I believe my best take-away is the one of having fun. Fun should be one of the several achievements that a team strives for. For if all else fails, you know that the fun memories are there to stay. And with these fun memories come new friendships that I believe is here to last for a long time.

Alan Tan Beng Heng Reflection:

OOLaLa Alan.jpg

IS480 is truly an exciting journey for me, besides burning the midnight oil to get work done I have learn that it is often hard to stick with the initial requirement that we had from our sponsor as he will always request more functions to be added. To resolve this there is a need to constantly communicate and justify what can and cannot be done within this short period. Sometimes there is some miscommunication between us and the sponsor such as how the function should work because we are used to view from a programmer's perspective and not from a user's perspective therefore it's always good to have something clear and understandable draft out such as a user sign off form. One of the main challengers I faced was solving the bugs in the application. Initially we often had to ask one another on how to reproduce the bug and sometimes we even forgot where is the bug however with Mantis Bug Tracker, bugs were more easily and efficiently tracked. As a whole, I'm glad that we overcome the challengers and had an enjoyable time together!

Goh Shu Qing Maybelline Reflection:

OOLaLa Mayb.jpg

As a programmer, my greatest takeaways were not on how complex our SMS Application was programmed, it was in the area of decreasing miscommunication. Messages brought across from a team member to another member may, or many a times, be interpreted incorrectly conceptually in certain contexts. In such a case, drawings and diagrams, elaborations and in-depth explanations of what was supposed to be brought across took mostly 60% of the meeting time. It was evidently seen as time-consuming, and we had chose to keep such conversations out of the team’s meeting, but only to be discussed within the parties who did not understand what was misunderstood. Well, this was only experienced at the beginning of our entire project. Over time, this issue gradually became a minute problem as we got to get along better with one another. The 3/4 of the year 2010 we spent together for this project had been an overwhelming experience filled with fun and joy, amidst the stress and pressure. I will continue to keep these memorable experience throughout all other projects in my future.


OOLaLa's Sponsor Feedbacks

Click To View Our Sponsor's Evaluation