IS480 Team wiki: 2011T1 TheTalkies Final
- 1 Project Progress Summary
- 2 Project Management
- 3 Quality of product
- 4 Reflection
Project Progress Summary
Changes in Application
- Synchronous to Asynchronous
This is a major change occurred in system architecture after midterm stage. When the application was first designed, the components and functions of the application had been set to work synchronously with each other due to the interdependence of the outcomes between them. This system design caused a lot of issues on the performance and usability of the application. So we decided to change it to work asynchronously without waiting for the results of other components. A lot of logical changes have been done and when the components are able to work asynchronously, there is a massive boost in performance as we expected.
Changes in Scope
- Dropped Friend Stream Function
We dropped the function "Friend Stream" which we assigned as optional feature in our proposal. The reason is mainly due to the existence of serious performance issue in the application. The application's failure to run seamlessly during midterm period caused a setback in team progress. So we decided to drop the non-compulsory function "Friend Stream" to focus more on the quality attributes such as performance, reliability, etc.
- Dropped Mobile Version Feature
We decided not to implement mobile version of our application which is assigned as optional feature in our proposal. One of the main reason is GermaniumWeb doesn't support mobile operation systems yet. Since our application's essence lies in integration of Twitter with 3D models of SMU, we decided not to continue on this feature to focus on improving quality of existing features.
- Familiarizing with Germanium API and 3D Modelling
We don't have any experience regarding to 3D Modelling. We started the project early to have enough time to learn 3D Modelling ourselves. Moreover, we divided the team into 3 groups in the way that one group will learn 3D Modelling, one group learn GermaniumAPI and the other for Twitter. After every meeting, we learn from each other. This definitely help the team to have stronger bonding and accelerate with specialization. Moreover, we had a few times of consultation and hand-on learning from GermaniumWeb Office for both Germanium API and 3D Modelling.
- Learning Twitter API and filtering results
Connection with Twitter using OAuth is not easy initially because it involves a lot of steps going back and forth from Twitter Server and client side and involving session keys. Once we can connect to Twitter server, it is easy to use RESTful API because of its comprehensive tutorials and documentations. However, it may return the false dataset for geo-location . So, we have to implement another layer of filtering for geo-location result set.
- Experimental scheduling style other than which was taught in class
When we were scheduling our project, we tried to plan it in such a way that the coding of functional requirements could be finished as early as prior to midterm presentation. We pushed all the bug-fix and performance-tuning tasks of each function to the iterations in post-midterm period. This approach clearly helps us in preventing our team from using "Waterfall Process" involuntarily in which we might never re-visit or revise it again when we finished a feature. The agile methodology we used not only forces us to go over to the features we previously developed for bug-fixing and backward compatibility checking but also gives the stakeholders (sponsor and users) an overview idea of how each of the features works and interrelations between them.
Project Schedule (Plan Vs Actual):
After consideration of feedback from mid-term presentations and UAT 1, we decided to focus on usability and quality of the application. So, we decided to drop Friend Stream feature which is default and redundant feature of Official Twitter application and mobile version of the application which has a few technical and time limitation to implement. Our previous sponsor left the company and we have to contact with new sponsor. However, new sponsor is happy with our application and progress. So, we don't really need to change the scope. After Iteraion 8, the status of our development is completed successfully.
Some members went for trips. But we work on bugs and feedback as much as possible.
Dropped Friend stream feature.
Dropped mobile interface.
Completed as planned.
Project Metrics: (TBE)
Goal: To ensure that all the assigned tasks are finished on time. (Productivity Index >= 0)
Calculation for Productivity: (Planned Duration – Actual Duration) / 14
- To keep track of unsolved bugs
- To ensure quality of the Web Application
- To let the team knows which function has more bugs
Calculation for Severity Level: (Difficulty * Bug Type) /16
Link to details page here.
Link to details page here.
Technical Complexity: (TBE)
Describe and list the technical complexity of your project in order of highest complexity first. For example, deploying on iPhone using Objective-C, customizing Drupal with own database, quick search for shortest flight path, database structure, etc.
Quality of product
|Project Management||Meeting Minutes|
|Design||Mock Up||Download Zip|
|Development||System Architecture||System Architecture Diagram|
|3D Modelling Flow||Modelling Flow Diagram|
|Testing||Test plan||Test Plan Instructions|
|Handover||Manuals||Developer's code organization manual|
|Code||Hosted on Client's PHPFog server|
Performance and Scalability
Some of the configurable parameters of the application are defined in an XML formatted config file.
A code organization guide is documented for easier maintainability of the source codes in the future.
We do testing with the test plan after every iteration. Found bugs are put into Bug Tracker. Assigned developers are required to solve those bugs before the provided deadline. If a bug doesn't affect other parts of application, we don't set the deadline for the bug. In that case, developer can focus on the assigned tasks for the current iteration.
We did first UAT before the mid-term presentation and second UAT before the final presentation. Second UAT is done before the at the beginning of the Iteration 8. We took feedback and solved the found bugs from UAT 2 in Iteration 8. Details of the test plan, UAT questions and results can be downloaded from above Deliverables section.
- We improved the following skills.
- IT architecture, design and development skills
- Project management skills
- Learning to learn skills
- Collaboration (or team) skills
- Communication skills
- We learned the following tools:
- We believe teamwork is the most important aspect of the project. So, next time, we would like to focus more on Teamwork and collaboration skills.
- Aung Myint Thein
- Let everyone involves in making the decisions and everyone will have sense of ownership and responsibility, for example LostAndFound Feature. Sharing of texture resources in 3D modelling needs a lot of coordination as they use the same map ID. No matter how popular the external API is, we need to plan for the cases external API downtime and failure to desired respond.
- Kyaw Moe Hein
- Soe Thet Aung
- Phyo Wint Wint Tun
- Thandar Tun
- Khaing Pwint Wah
Sometimes, the client writes a report to feedback on the system; this sponsor report can be included or linked from here.