IS480 Team wiki: 2016T2 Remix final wiki
- 1 Project Progress Summary
- 2 Project Management
- 3 Quality of product
- 4 Reflection
Project Progress Summary
- Final slides link: Slides
- Deployed site address:
- Pitch video: https://youtu.be/a7Ro0ozKYzU
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>
- 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
- 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 Schedule (Plan Vs Actual):
Project Scope (Plan Vs Actual):
- Schedule Metrics: Not applicable since we are using time boxing.
- Bug Metrics:
Update the proposal assumptions and risks. Describe what you learn from the risk update and mitigation steps taken.
|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
|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.|
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
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.
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.
Quality of product
|Project Management||Minutes||19Internal Meeting; 13Sponsor Meeting; 14Supervisor Meeting|
|Analysis||Use case||Use Cases|
|Business Process Diagram||Here|
|Handover||Manuals||Instruction on connecting to Bitbucket|
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.
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.
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.
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.
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.
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.
- Project Manager: http://126.96.36.199/
- Username: ttwang
- Password: password
- Developer: http://188.8.131.52/
- Username: luning
- Password: password
- External Users: http://184.108.40.206/customer_authentication
- Username: columbia
- Password: password
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
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
User Acceptance Test 1
Date: 3 February 2015 to 5 February 2015
User Acceptance Test 2
Date: 2 April 2015
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
- CodeIgniter (CI)
- Cloud Services
- Amazon Web Service
- Other Skills
- Presentation Skills
- Video Editing
- Graph Design
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.
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.
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.
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.)