HeaderSIS.jpg

Difference between revisions of "IS480 Team wiki: 2016T2 Remix final wiki"

From IS480
Jump to navigation Jump to search
 
(35 intermediate revisions by the same user not shown)
Line 43: Line 43:
 
==Project Progress Summary==
 
==Project Progress Summary==
 
===Final Product:===
 
===Final Product:===
* Final slides link: <to be updated>
+
* Final slides link: [https://www.dropbox.com/s/1lmzhflmb8tan2g/Remix_Final_Presentation_Slides.pptx?dl=0 Slides]
 
* Deployed site address:  
 
* Deployed site address:  
** Internal Users: [http://52.76.235.20/%20%20%20 http://52.76.235.20/  ]    <domain name to be updated>
+
** Internal Users: [http://52.76.235.20/%20%20%20 http://52.76.235.20/  ]     
 
*** Username: ttwang
 
*** Username: ttwang
 
***Password: password
 
***Password: password
** External Users: http://52.76.235.20/customer_authentication   <domain name to be updated>
+
** External Users: http://52.76.235.20/customer_authentication  
  
 
* Pitch video: https://youtu.be/a7Ro0ozKYzU
 
* Pitch video: https://youtu.be/a7Ro0ozKYzU
 +
 
===Project Highlight:===
 
===Project Highlight:===
 
What unexpected events occurred?
 
What unexpected events occurred?
Line 74: Line 75:
  
 
===Project Schedule (Plan Vs Actual):===
 
===Project Schedule (Plan Vs Actual):===
 +
[[Image: Timelinechange.png|900px]]
 +
<br/>
 +
 +
<br/>
 
[[Image: Plan.png|900px]]
 
[[Image: Plan.png|900px]]
 
<br/><br/>
 
<br/><br/>
Line 79: Line 84:
  
 
[[Image: Total hours per iteration.png|600px]]
 
[[Image: Total hours per iteration.png|600px]]
 +
 +
===Project Scope (Plan Vs Actual):===
 +
[[Image: RemixScope Diagram change.png|800px]]
  
 
===Project Metrics:===
 
===Project Metrics:===
  
 
* Schedule Metrics: Not applicable since we are using time boxing.
 
* Schedule Metrics: Not applicable since we are using time boxing.
 +
* Bug Metrics: <br/>
 
[[Image: Remix Bug metrics.png|600px]]
 
[[Image: Remix Bug metrics.png|600px]]
  
==Technical Complexity:==
+
===Project Risks:===
 +
Update the proposal assumptions and risks. Describe what you learn from the risk update and mitigation steps taken.
 +
{| class="wikitable" style="margin: auto;width:90%"
 +
! style="font-weight: bold;background: #16a085;color:#ecf0f1; width:200px" | Description
 +
! style="font-weight: bold;background: #16a085;color:#ecf0f1; width:70px" | Likelihood
 +
! style="font-weight: bold;background: #16a085;color:#ecf0f1; width:70px" | Impact
 +
! style="font-weight: bold;background: #16a085;color:#ecf0f1; width:400px" | Mitigation
 +
|-
 +
 
 +
| The sponsors have only a vague idea of the application that they want built. This could lead to situations where there is mismatch between the built product and their expectations.
 +
|| High
 +
|| High
 +
|| -  Using agile development process to keep continuous testing and regular communication with sponsors.
 +
|-
 +
| The team needs to utilize libraries that have only been released recently such as ReactJS. Support for the library and the information that can be found online regarding the library is little. Hence, learning the libraries will be even more challenging than usual.
 +
|| Medium-High
 +
|| High
 +
|| -  Regular communication and interaction with mentors/sponsors to slowly ramp up familiarity with the library.
 +
-  Self-study and experimentation with the library to better understand and utilize it
 +
|-
 +
| Analytics requires strong understanding of business model and data structure while the team is not sure about the accessibility of such data, and fine-tuning the analytics models may take long time.
 +
|| Medium
 +
|| Medium
 +
|| - Interviews and observation studies with sponsor to determine the data that they need for project management analysis
 +
- Familiarize ourselves with the latest research on analytics for project management<br/>
 +
-      Release beta version of the system earlier to collect data
 +
|-
 +
| As our application is in the beta stage (deployed for use by real clients), we have to consider security risks that emerge from external users.
 +
|| Low
 +
|| High
 +
|| - Explicitly setting the character encoding and sanitizing client-side form fields for malicious content
 +
|-
 +
| Third-party service such as Bitbucket API maybe unstable
 +
|| Low
 +
|| High
 +
|| - Constantly check the system, and moderate our system.
 +
 
 +
|}
 +
 
 +
===Technical Complexity:===
  
 
====Message notification and updates====
 
====Message notification and updates====
Line 114: Line 162:
  
 
==Quality of product==
 
==Quality of product==
 
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.
+
{| class="wikitable"
 +
! style="font-weight: bold;background: #16a085;color:#ecf0f1; width:80px" | Stage
 +
! style="font-weight: bold;background: #16a085;color:#ecf0f1; width:80px" | Specification
 +
! style="font-weight: bold;background: #16a085;color:#ecf0f1; width:100px" | Modules
 +
|-
  
{| border="1"
 
|- style="background:blue; color:white"
 
|align="center"| Stage
 
|align="center"| Specification
 
|align="center"| Modules
 
|-
 
  
 
|rowspan="2"| Project Management
 
|rowspan="2"| Project Management
 
|| Minutes
 
|| Minutes
|| Sponsor weeks -10 -5 3 7 Supervisor weeks -2 3 5 7
+
|| [https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2016T2_Remix_Minutes 19Internal Meeting; 13Sponsor Meeting; 14Supervisor Meeting]
 
|-
 
|-
  
 
|| Metrics
 
|| Metrics
|| Bug metrics
+
|| [https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2016T2_Remix_Metrics#Bug_Metric Bug metrics]
 
|-
 
|-
  
|| Requirements
+
|rowspan="2"| Analysis
|| Story cards
 
|| [http://www.agilemodeling.com/artifacts/userStory.htm CRUD Customer], [http://www.agilemodeling.com/artifacts/userStory.htm Trend Analytic]
 
|-
 
 
 
|rowspan="4"| Analysis
 
 
|| Use case
 
|| Use case
|| [http://en.wikipedia.org/wiki/Use_case_diagram overall]
+
|| [https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2016T2_Remix_Documentation Use Cases]
 
|-
 
|-
  
|| System Sequence Diagram
 
|| [http://en.wikipedia.org/wiki/System_Sequence_Diagram client], [http://en.wikipedia.org/wiki/System_Sequence_Diagram server]
 
|-
 
  
|| [http://en.wikipedia.org/wiki/Business_Process_Modeling_Notation Business Process Diagram]
+
|| Business Process Diagram
||
+
|| [https://www.dropbox.com/s/tvb0smf37s2lg85/BusinessProcess.png?dl=0 Here]
 
|-
 
|-
  
|| Screen Shots
+
|rowspan="2"| Design
|| CRUD Customer, Trend Analysis
+
|| ER Diagram
 +
|| [https://www.dropbox.com/s/aqhc0rwf64z6v76/ER%20Diagram.pdf?dl=0 Here]
 
|-
 
|-
  
|rowspan="2"| Design
+
|| Class Diagram
|| [http://en.wikipedia.org/wiki/Entity-relationship_model ER Diagram]
+
|| [https://www.dropbox.com/s/gs8s40abgwrsgy8/ClassDiagram.pdf?dl=0 Here]
|| 1, 2, 3
 
 
|-
 
|-
  
|| [http://en.wikipedia.org/wiki/Class_diagram Class Diagram]
 
|| [http://en.wikipedia.org/wiki/Class_diagram 1], [http://en.wikipedia.org/wiki/Class_diagram 2], [http://en.wikipedia.org/wiki/Class_diagram 3]
 
|-
 
  
  
|| Testing
+
|rowspan="4"| Testing
|| Test plan
+
|| Testing plan
|| [[IS480_Midterm_Wiki#Testing: | instructions]]
+
|| [https://www.dropbox.com/s/r5b8mj9gip96ub2/Remix_Test_Plan.docx?dl=0 Here]
 +
|-
 +
|| Regression Testing
 +
|| [https://www.dropbox.com/s/trxonrs262ozrac/Remix_RegressionTest1.xlsx?dl=0 RT1]
 +
[https://www.dropbox.com/s/tifezx8ybzez88c/Remix_RegressionTest2.xlsx?dl=0 RT2]
 +
[https://www.dropbox.com/s/y7qoiyearsikrpm/Remix_RegressionTest3.xlsx?dl=0 RT3]
 +
[https://www.dropbox.com/s/y6c4kwewh5r3pxc/Remix_RegressionTest4.xlsx?dl=0 RT4]
 +
[https://www.dropbox.com/s/vdvvozzeo0ylge3/Remix_RegressionTest5.xlsx?dl=0 RT5]
 +
|-
 +
|| User testing
 +
|| [https://www.dropbox.com/s/qeo7hfdzkf5vxmg/User%20Test%201.docx?dl=0 UT1]
 +
[https://www.dropbox.com/s/5ooxpxhp2ii0upx/User%20Test%202.docx?dl=0 UT2]
 +
[https://www.dropbox.com/s/94h1nk4zja4zx2w/User%20Test%203.docx?dl=0 UT3]
 +
[https://www.dropbox.com/s/4mb3bwlnxnkfuyw/User%20Test%204.docx?dl=0 UT4]
 +
|-
 +
|| UAT
 +
|| [https://www.dropbox.com/s/lqqr5clsutfwr95/UAT%201.docx?dl=0 UAT1]
 +
[https://www.dropbox.com/s/wr0lwjhnqagk4p2/UAT%202.docx?dl=0 UAT2]
 
|-
 
|-
  
|rowspan="3"| Handover
+
|rowspan="1"| Handover
 
|| Manuals
 
|| Manuals
|| User tutorial, Developer manual, Setup manual
+
|| [https://www.dropbox.com/s/0t7wnk4p9m9wswu/TSPMS%20User%20Menu%20-%20Steps%20to%20Integrate%20with%20Bitbucket.docx?dl=0 Instruction on connecting to Bitbucket]
 
|-
 
|-
 +
|}
  
|| Code
+
=== Quality:===
|| client server
+
====Security====
|-
+
we took security into account when we designed, programed and tested the system. With role-based access control (RBAC), TSPMS deliver the functions to the designated users, blocking all unauthorized requests to the system. With security features of our backend framework, the system is able to defend cross origin request attack and SQL injection. We also protected the system from cross-site scripting (XSS) attack.
 +
====Maintainability====
 +
thanks to CodeIgniter, the system is written in a pretty modular way. With detailed comments, it is easy to maintain. We deliberately built it with php to cater to the expertise of our sponsor, who will maintain the system and adapt it as they like.
 +
====Usability====
 +
user experience is a main consideration for our project. We believe good UX would keep users around it, so we spent much time on designing and improving the user interface and general experience. We came down to the finest details. Succinct yet meaningful URI are used in hope that users could easily access each functions with URL.
 +
====Flexibility====
 +
Most components of our system responsive to various sizes. We based our frontend on bootstrap framework, and adapted the UI to make it more responsive and aesthetic.
 +
====Performance====
 +
We dedicated heavy effort to make the system faster, especially char function and Bitbucket integration. Many additional code were written to reduce response time. We also optimized the algorithm to reduce computational complexity. The loading time of chat function reduced from 5 seconds to instantaneous.
 +
====Scalability====
 +
Although it will only be used by a relatively small number of users, the system is designed to cater to many more potential users. It was written in a way that load does not increase exponentially to the number of concurrent access. The system relies on an infrastructure which is managed by Elasticbeanstalk. It would automatically adjust the provisioning of computational and storage resources according to the real time demand.
  
|| [http://en.wikipedia.org/wiki/Deployment_diagram Deployment Diagram]
+
===Deployment:===
|| [[IS480_Midterm_Wiki#Deployment: | instructions]]
 
|}
 
  
Not all parts of the deliverables are necessary but the evidence should be convincing of the scope.
+
* Project Manager: [http://52.76.235.20/%20%20%20 http://52.76.235.20/  ]
 +
** Username: ttwang
 +
**Password: password
  
===Deployment:===
+
* Developer: [http://52.76.235.20/%20%20%20 http://52.76.235.20/  ]
 +
** Username: luning
 +
**Password: password
  
In an iterative approach, ready to use system should be available (deployed) for client and instructions to access the system described here (user name). If necessary, provide a [[IS480_Final_Wiki#Project_Deliverables: | deployment diagram link]].
+
* External Users: http://52.76.235.20/customer_authentication
 +
** Username: columbia
 +
**Password: password
  
 
===Testing:===
 
===Testing:===
  
Describe the testing done on your system. For example, the number of user testing, tester profile, test cases, survey results, issue tracker, bug reports, etc.
+
====User Testing:====
 +
Each week, we will hold a meeting with our sponsors where we run through our application to garner feedback from the end-users of the application on both the usability and functionality of the currently developed application. This allows us to continuously align our application with the business needs of our sponsors.
 +
 
 +
On top of this, we have held 4 user testing sessions and 2 user acceptance test session thus far.
 +
 
 +
The main purpose of user testing sessions was to obtain pointers on how to improve the look and feel of our application. Further, the sessions allow us to test our newly developed functions over the past few interactions. To that end, we recruited SMU SIS students to take on the role of project managers and cast a critical look over our application.
 +
 
 +
<strong>User Test 1</strong><br/>
 +
Date: 23 October 2015
 +
 
 +
<strong>User Test 2</strong><br/>
 +
Date: 18 December 2015
 +
 
 +
<strong>User Test 3</strong><br/>
 +
Date: 8 January 2015
 +
 
 +
<strong>User Test 4</strong><br/>
 +
Date: 1 March 2015
 +
 
 +
====UAT:====
 +
We also conducted a user acceptance test to test our application in its totality. The focus of our UAT was to determine whether our application is able to satisfy the needs of our users - both the project managers as well as the clients. As such, the UAT has a larger scope as compared to our user testing sessions. In our UAT, we've recruited SMU SIS students to assume the role of project managers while we recruited the real clients of The Shipyard to gain feedback on the client-side ap
 +
plication.
 +
<strong>User Acceptance Test 1</strong><br/>
 +
Date: 3 February 2015 to 5 February 2015
 +
 
 +
<strong>User Acceptance Test 2</strong><br/>
 +
Date: 2 April 2015
  
 
==Reflection==
 
==Reflection==
 
Compile common lessons and reflection for the team and for each team member. Be brief.
 
  
 
===Team Reflection:===
 
===Team Reflection:===
 +
We've underwent a lot of challenges throughout the project - changes to our scope, learning of new tools and technologies and manpower management.
 +
Through each, we've learned how to be flexible in our approach and open in our mindset.
 +
We also grabbed a lot more new technical knowledge including but not limited to:
 +
* Project Management
 +
** Agile development
 +
** Managing stakeholders
 +
** Change management
 +
** Unified Modeling Language (UML) and Rational Unified Process (RUP) methodologies in software design and development
 +
* Technical Skills
 +
** PHP
 +
*** CodeIgniter (CI)
 +
** Javascript
 +
*** React.JS
 +
** Cloud Services
 +
***Amazon Web Service
 +
*** Mandril
 +
** AJAX
 +
* Other Skills
 +
** Presentation Skills
 +
** Video Editing
 +
** Graph Design
  
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 [[Knowledge_base | knowledge base]] and linked here.
+
===Individual Reflection:===
  
===Individual Reflection:===
+
====YANG Chengzhen====
 +
Doing a real business project makes me realize there is no best solution but the most suitable one. The more I learn about project management for start up company ,the deeper I realize it is not simply applying any existing methodology. The journey as a business analyst teaches me how to implement user study and market analysis. Moreover, maintaining good relationship with sponsor and having frequent communication are the key to success.
 +
====YEONG Foong Wai====
 +
I've learned how to better interpret and analyze results from user tests, using them as feedback to improve the quality of the application.
 +
====WANG Tiantong====
 +
What I learnt the most is how to make changes to our work in order to meet the needs of various stakeholders, of course including ourselves. We should not only evaluate the tasks themselves, but also our man power, time schedule, the possible conflicts or impacts on the other parts and if the changes under limited resources and really meet the expectation. Through the whole experience with IS480 and my team, I believe I can be more prepared and planned towards my other upcoming "projects", in work or life.
 +
====YUAN Yuxuan====
 +
As project manager of a team, I obtained much better understanding of software development life cycle, and agile development process. Interacting with our sponsor let me know how a startup company is operating in the real life.  To design and implement analytical modules push me to learn more analytics knowledge and Unified Modeling Language (UML) and Rational Unified Process (RUP) methodologies. This is a unique and great learning experience in my univeristy life.
 +
====LU Ning====
 +
There are so many things to learn. Like many other SIS projects, IS 480 exposed me to many brilliant technologies that are new to me. I picked up many new languages and techniques along the way, but more importantly I have discovered so many more areas which I am interested to explore more. For example, I improved my skills in manipulating DOM elements with JavaScript in this project, and besides that, I realized JavaScript, coupled with CSS, can do more remarkable stuffs. The discovery fascinates me and inspires me to learn more.
  
Describe in a paragraph, the key areas of learning or improvement. These should be personal areas of growth or learning. Each individual should list his/her effort, responsibility, actual contributions and personal reflection. Do not repeat team project contributions or member roles. Link if necessary.
+
====LIM Anyu====
 +
Technically, I learnt a lot about frameworks and the technical challenges they solved and how they solved it (e.g. react, codeigniter). However, I think that the most important thing I learnt from this project is how to cope with ambiguity when designing a real software application. Extracting from the software development lifecycle, I learnt the importance of understanding our sponsors needs, prototyping and finding out potential pain points quickly. If given this project to do again, I would spend at least 35% of my time examining the software's design.
  
 
===Sponsor Comment:===
 
===Sponsor Comment:===
Sometimes, the client writes a report to feedback on the system; this sponsor report can be included or linked from here.
+
The team exceeded my expectations by anticipating my business needs - they took extra effort to research and developed a working solution that I could use almost immediately (Use case analysis and overload recommendation that their system provides.)

Latest revision as of 10:49, 15 April 2016

Remix png .png

Home

About Us

Project Overview

Project Management

Documentation

Home Midterm Final

Project Progress Summary

Final Product:

Project Highlight:

What unexpected events occurred?

  • We did not consider the client's impact (delay, new change request etc.) on the project process. Overload alert function was delayed.
  • Extremely high bug metrics happened in Iteration 4 <before midterm>
  • List of requirement changes - As shown above in "Process based on Functions --> Change in Scope" <before midterm>

Project Challenges:

  • Integration with Bitbucket API:
    • Speed limitation on issue retrieving
    • Unexpected changes happened in API provider: delete function was removed in Feburary
  • Learning curve in React Js
  • Lack of understanding of business process and basic analytical knowledge

Project Achievements:

  • Successfully integrated with Bitbucket, a third party issue tracking tool
  • Beta version released in January. Used data collected to improve the urgency calculation formula.
  • Successfully built real time chat function using React js, together with user search and offline email alert functions.
  • Successfully designed and implemented several analytical functions that helps our sponsor improve the efficiency

Project Management

Project Schedule (Plan Vs Actual):

Timelinechange.png


Plan.png

Following is the planned VS actual hour per iteration.

Total hours per iteration.png

Project Scope (Plan Vs Actual):

RemixScope Diagram change.png

Project Metrics:

  • Schedule Metrics: Not applicable since we are using time boxing.
  • Bug Metrics:

Remix Bug metrics.png

Project Risks:

Update the proposal assumptions and risks. Describe what you learn from the risk update and mitigation steps taken.

Description Likelihood Impact Mitigation
The sponsors have only a vague idea of the application that they want built. This could lead to situations where there is mismatch between the built product and their expectations. High High - Using agile development process to keep continuous testing and regular communication with sponsors.
The team needs to utilize libraries that have only been released recently such as ReactJS. Support for the library and the information that can be found online regarding the library is little. Hence, learning the libraries will be even more challenging than usual. Medium-High High - Regular communication and interaction with mentors/sponsors to slowly ramp up familiarity with the library.

- Self-study and experimentation with the library to better understand and utilize it

Analytics requires strong understanding of business model and data structure while the team is not sure about the accessibility of such data, and fine-tuning the analytics models may take long time. Medium Medium - Interviews and observation studies with sponsor to determine the data that they need for project management analysis

- Familiarize ourselves with the latest research on analytics for project management
- Release beta version of the system earlier to collect data

As our application is in the beta stage (deployed for use by real clients), we have to consider security risks that emerge from external users. Low High - Explicitly setting the character encoding and sanitizing client-side form fields for malicious content
Third-party service such as Bitbucket API maybe unstable Low High - Constantly check the system, and moderate our system.

Technical Complexity:

Message notification and updates

To handle complicated components that are:

  • Ajax enabled
  • have multiple states
  • have multiple data sources
  • responsible for computing data and rendering its own UI independently
  • responsible for distributing data to other components that require it

Hhahha.png
The nodes on the graph above represent components from our messaging services. There is a total of 10 different data flows. Additionally, depending on the data received or computed, nodes can have multiple states. (e.g. File upload component with file attached or no files attached)

This was a big problem as it caused our UI to be unresponsibe and our code to be unmaintainable.

Bitbucket Oauth 2.0 authentication

We integrated Bitbucket into application. For this, we have to help developers and project managers log in to Bitbucket from our application.

This is difficult as we not only have to manage an extra level of authentication but also also synchronize both sessions (TSPMS and Bitbucket). Synchronization of the sessions was crucial for the user interface to be rendered correctly.

We felt that an additional complexity of managing and storing the API keys was that the keys have short lifespans; they expire after 30 minutes to an hour.

Scheduled events

We collect data from multiple sources for our custom Remix Analytics module. This process is tedious as we need to be precise for the calculation of accurate metrics. Additionally, the process is computationally intensive as well.

RemixTech3.png

Quality of product

Project Deliverables:

Stage Specification Modules
Project Management Minutes 19Internal Meeting; 13Sponsor Meeting; 14Supervisor Meeting
Metrics Bug metrics
Analysis Use case Use Cases
Business Process Diagram Here
Design ER Diagram Here
Class Diagram Here
Testing Testing plan Here
Regression Testing RT1

RT2 RT3 RT4 RT5

User testing UT1

UT2 UT3 UT4

UAT UAT1

UAT2

Handover Manuals Instruction on connecting to Bitbucket

Quality:

Security

we took security into account when we designed, programed and tested the system. With role-based access control (RBAC), TSPMS deliver the functions to the designated users, blocking all unauthorized requests to the system. With security features of our backend framework, the system is able to defend cross origin request attack and SQL injection. We also protected the system from cross-site scripting (XSS) attack.

Maintainability

thanks to CodeIgniter, the system is written in a pretty modular way. With detailed comments, it is easy to maintain. We deliberately built it with php to cater to the expertise of our sponsor, who will maintain the system and adapt it as they like.

Usability

user experience is a main consideration for our project. We believe good UX would keep users around it, so we spent much time on designing and improving the user interface and general experience. We came down to the finest details. Succinct yet meaningful URI are used in hope that users could easily access each functions with URL.

Flexibility

Most components of our system responsive to various sizes. We based our frontend on bootstrap framework, and adapted the UI to make it more responsive and aesthetic.

Performance

We dedicated heavy effort to make the system faster, especially char function and Bitbucket integration. Many additional code were written to reduce response time. We also optimized the algorithm to reduce computational complexity. The loading time of chat function reduced from 5 seconds to instantaneous.

Scalability

Although it will only be used by a relatively small number of users, the system is designed to cater to many more potential users. It was written in a way that load does not increase exponentially to the number of concurrent access. The system relies on an infrastructure which is managed by Elasticbeanstalk. It would automatically adjust the provisioning of computational and storage resources according to the real time demand.

Deployment:

Testing:

User Testing:

Each week, we will hold a meeting with our sponsors where we run through our application to garner feedback from the end-users of the application on both the usability and functionality of the currently developed application. This allows us to continuously align our application with the business needs of our sponsors.

On top of this, we have held 4 user testing sessions and 2 user acceptance test session thus far.

The main purpose of user testing sessions was to obtain pointers on how to improve the look and feel of our application. Further, the sessions allow us to test our newly developed functions over the past few interactions. To that end, we recruited SMU SIS students to take on the role of project managers and cast a critical look over our application.

User Test 1
Date: 23 October 2015

User Test 2
Date: 18 December 2015

User Test 3
Date: 8 January 2015

User Test 4
Date: 1 March 2015

UAT:

We also conducted a user acceptance test to test our application in its totality. The focus of our UAT was to determine whether our application is able to satisfy the needs of our users - both the project managers as well as the clients. As such, the UAT has a larger scope as compared to our user testing sessions. In our UAT, we've recruited SMU SIS students to assume the role of project managers while we recruited the real clients of The Shipyard to gain feedback on the client-side ap plication. User Acceptance Test 1
Date: 3 February 2015 to 5 February 2015

User Acceptance Test 2
Date: 2 April 2015

Reflection

Team Reflection:

We've underwent a lot of challenges throughout the project - changes to our scope, learning of new tools and technologies and manpower management. Through each, we've learned how to be flexible in our approach and open in our mindset. We also grabbed a lot more new technical knowledge including but not limited to:

  • Project Management
    • Agile development
    • Managing stakeholders
    • Change management
    • Unified Modeling Language (UML) and Rational Unified Process (RUP) methodologies in software design and development
  • Technical Skills
    • PHP
      • CodeIgniter (CI)
    • Javascript
      • React.JS
    • Cloud Services
      • Amazon Web Service
      • Mandril
    • AJAX
  • Other Skills
    • Presentation Skills
    • Video Editing
    • Graph Design

Individual Reflection:

YANG Chengzhen

Doing a real business project makes me realize there is no best solution but the most suitable one. The more I learn about project management for start up company ,the deeper I realize it is not simply applying any existing methodology. The journey as a business analyst teaches me how to implement user study and market analysis. Moreover, maintaining good relationship with sponsor and having frequent communication are the key to success.

YEONG Foong Wai

I've learned how to better interpret and analyze results from user tests, using them as feedback to improve the quality of the application.

WANG Tiantong

What I learnt the most is how to make changes to our work in order to meet the needs of various stakeholders, of course including ourselves. We should not only evaluate the tasks themselves, but also our man power, time schedule, the possible conflicts or impacts on the other parts and if the changes under limited resources and really meet the expectation. Through the whole experience with IS480 and my team, I believe I can be more prepared and planned towards my other upcoming "projects", in work or life.

YUAN Yuxuan

As project manager of a team, I obtained much better understanding of software development life cycle, and agile development process. Interacting with our sponsor let me know how a startup company is operating in the real life. To design and implement analytical modules push me to learn more analytics knowledge and Unified Modeling Language (UML) and Rational Unified Process (RUP) methodologies. This is a unique and great learning experience in my univeristy life.

LU Ning

There are so many things to learn. Like many other SIS projects, IS 480 exposed me to many brilliant technologies that are new to me. I picked up many new languages and techniques along the way, but more importantly I have discovered so many more areas which I am interested to explore more. For example, I improved my skills in manipulating DOM elements with JavaScript in this project, and besides that, I realized JavaScript, coupled with CSS, can do more remarkable stuffs. The discovery fascinates me and inspires me to learn more.

LIM Anyu

Technically, I learnt a lot about frameworks and the technical challenges they solved and how they solved it (e.g. react, codeigniter). However, I think that the most important thing I learnt from this project is how to cope with ambiguity when designing a real software application. Extracting from the software development lifecycle, I learnt the importance of understanding our sponsors needs, prototyping and finding out potential pain points quickly. If given this project to do again, I would spend at least 35% of my time examining the software's design.

The team exceeded my expectations by anticipating my business needs - they took extra effort to research and developed a working solution that I could use almost immediately (Use case analysis and overload recommendation that their system provides.)