Final Wiki LinkAge
Home | Project Overview | Project Management | Technical Documentation | Key Takeaways | Midterm Wiki | Final Wiki |
Project Progress Summary | Project Management | Quality of Product | Reflection |
Project Progress Summary
Final Slides :
Deployed Site Link : PwC LinkAge
Team LinkAge has finally reached the end of all of our iterations. We are at Iteration 22,ready for FYP Final Presentation and Poster Day. We have also completed 10 milestones to mark the end of IS480 FYP.After the FYP Midterm Evaluation in Iteration 13, we have progressed gradually to the end. Notably, in iteration 15 for milestone number 5, promised us a deployment opportunity with our sponsors. We have developed all the agreed functionalities with our sponsors.
There were 2 UAT conducted with sponsors before Iteration 22. We have collected valuable feedback and responses from them to constantly excel and strive in the direction of sponsor's requirements of our application. PwCLinkAge promised for 100% live deployed project management application. Based on our performance and progress the team has confidently completed the application which sponsors could enjoy working through with the profile page, project management, report management, schedule page , team member's statistics , issue data analytic , data trending , notification board and messaging service.
Project Highlights
- Postponed deployment on sponsor’s server
- The team plan to deploy Linkage application progressively on sponsor’s server. However, due to postponed deployment, the team decided to host Linkage application on Google App Engine, and focus on front-end development.
- Google App Engine vs. MySQL
- Initially, the team plan to implement MySQL database. However, with the change of server to GAE, it does not freely support MySQL database. The team decided to implement GAE Python database firstly, and ensure all front-end development first.
- Short span of time for converting back-end from Python to MySQL
- Although with fully functioned front-end and Python database, and successfully deployed this version on sponsor’s server, the team is required to convert existing database to MySQL version within a short period of time.
Project Management
Project Status
Project Schedule(Plan Vs Actual)
Team LinkAge's approach is by iteration. Each iteration will cover Document Review, Development Codes, Development Designs, Metrics Review, Case Testing and Debugging. We have been keeping track of both Schedule and Bug metrics. Till date, Iteration 1 to Iteration 14 are all 'On Schedule' as recorded in the Schedule Metrics. However, going by task level, there are a breakdown in total of ? 'Ahead Schedule' , ? 'On Schedule' and ? 'Behind Schedule'.
Noticeable scope change will be when the deployment is not on schedule. Team LinkAge had to restrategise and focus on the front end development as much at that moment and slowed down on the backend development till sponsors got back to us about the deployment date. The connection problem / configuration with the mysql severs made us realised and discovered AngularJS.
Detailed iteration schedule planning is found in : Schedule LinkAge
Iteration | Planned | Actual | Comments |
Iteration 1 |
FYP Acceptance Proposal | ||
Iteration 2 |
FYP Acceptance Demo Prototypes | ||
Iteration 3 |
FYP Acceptance Demo Prototypes Phase 2 | ||
Iteration 4 |
Project Management Phase 1 | ||
Iteration 5 |
Acceptance Clean-up | Dropped IT Audit function Dropped voice chatting function Droped auto members to tasks | |
Iteration 6 |
Project Management Phase 2 | ||
Iteration 7 |
Project Management Phase 3 | ||
Iteration 8 |
Project Management + Report Management Phase 1 |
||
Iteration 9 |
Project Management + Report Management Phase 2 |
||
Iteration 10 | Project Management + Report Management Phase 3 |
Project Management UI Front End |
Deployment was being put to a hold till sponsors’ server had to finish maintenance |
Iteration 11 | UAT Preparation Wrap up on : Profile Page & Project Management |
UAT was shifted to Iteration 12 as sponsors’ schedule did not allowed for it | |
Iteration 12 | Report Management + Schedule Management Phase 1 |
Heuristic & UAT | Heuristic & UAT Feedback collection Changes done to UI from UAT feedback |
Iteration 13 | FYP Midterm Preparation | Report Management & Schedule Management Phase 1 is shifted to Iteration 14 | |
Iteration 14 | Schedule Management Phase 2 | Report Management & Schedule Management Phase 2 | Deployment is to be scheduled in recess week |
Iteration 15 | Analytics Phase 1 | Adjustment to sponsor’s UI outlook Analytics Phase 1 shifted to Iteration 16 |
Deployment is successful |
Iteration 16 | Analytics Phase 1 & 2 | ||
Iteration 17 | UAT 2 Preparation | Touch Screen Enabled with Responsive Website Phase 1 | UAT 2 is shifted to Iteration 18 |
Iteration 18 | Touch Screen Enabled with Responsive Website Phase 1 | Touch Screen Enabled with Responsive Website Phase 2 | UAT 2 is shifted to Iteration 19 |
Iteration 19 | Touch Screen Enabled with Responsive Website Phase 2 | UAT 2 | UAT 2 Results Collection & Feedback |
Iteration 20 | UAT 3 | UAT 2 Adjustment FYP Final Presentation Phase 1 |
Sponsor Tight Schedule (Changed to internal UAT3) |
Iteration 21 | FYP Final Presentation | Deployment & UAT 3 | |
Iteration 22 | FYP Poster Day | FYP Poster Day |
Project Metrics
Team LinkAge keeps track of two different types of metrics. They are for schedule and bugs. Both metrics have scoring index tagged to identify the actions required. The metrics index indicator are recorded by formulas. The description could be found at Metrics. The recording of bug and schedule metrics could be found at LinkAge Metrics.
Bug Metric Summary:
Schedule Metric Summary :
Project Risks
Risk | Probability | Impact | Mitigation |
Development risk | High | Medium | The team plan to deploy Linkage application progressively on sponsor’s server. However, due to postponed deployment, the team decided to host Linkage application on Google App Engine first. By taking this development risk, the team focuses on front-end development and implements Restful dataservice as support. |
Converting back-end from Python - GAE datastore change to PHP - MySQL database | Medium | High | Although with fully functioned front-end and Python database, and successfully deployed this version on sponsor’s server, the team is required to convert existing database to MySQL version. The team is taking high risk of converting the entire backend support within a short period of time.
|
? | Medium | High | ? |
Technical Complexity
Rank | Issue | Issue-Description | Technical Solution |
1 | Restful data-service | Implementing Restful data-service, we can keep developing the front-end design. Even there is a change of back-end to another database, we just need to change the queries and all front-end design remains. | Discussed below |
2 | Report generation | Users can edit report through Linage application, with “Generate Report” function, users can download a well formatted report into word document. | Discussed below |
3 | Chatting function | To enhance communication among team members though Linkage application, the team design a chatting function. And the team builds Channel function to accomplish this real time chatting function. | Discussed below |
1.Technical Solution for Restful Data Service
2. Technical Solution for Report Generation
3. Technical Solution for Chatting Function
Quality of Product
We designed a responsive, web-based application for managing project, personal and generation of reports.
Using angular js and java script to create controllers, we create an application function primarily on the client side. Hence lessening the reliance on the back end for processing power. A client-side based approach also allow us to integrate the system with minimum configuration on the client side, simplifying deployment process
This made sense as our client's employees each has their own laptop at work, and multiple concurrent users are expected to be on the system at the same time.
Intermediate Deliverable
Stage | Specification | Modules |
Project Management | Iteration & Milestone | Schedule Management |
Metrics | Metrics Description | |
Minutes | Minutes | |
Content | Storyboard | Story Board |
Design | Use Case | Use Case Diagram |
Entity Relationship Diagram | Entity Relationship Diagram | |
Logical Diagram | Logical Diagram | |
User Interface Mockup | User Interface | |
Testing UAT1 | UAT Test Plan | Test Plan |
UAT Survey Form | Survey | |
UAT Feedback | Heuristic Feedback | |
Testing UAT2 | Detailed UAT Test Plan | UAT Test Plan |
Simplified UAT Test Plan | UAT2 Test Plan | |
UAT Survey Form | Survey Form | |
UAT Feedback | Survey Result |
Deployment
Team LinkAge kept all the codes, mainly on Google App Engine and GitHub to collaborate with the internal stakeholders. Codes could be deployed to any machine on the condition of having Google App Engine installed in the hardware. The server at PwC,operating on Linux could work with Google App Engine launcher and installing all build dependancies for Python with the build-dep option in apt-get "sudo apt-get build-dep python" : apt.get.build.dep.python.The first deployment was done in Iteration 15,on the 7th March 2013 at 3pm.
Testing
Description | Details |
Date | 4th April 2013, 4.30pm |
Objectives |
|
Scope completed |
|
Testers |
7 Users, (3 Males & 4 Females) |
Test Plan Flow |
1. Users will create a new account if she/he is a new user of Pwclinkage.
5. Users will click on "Edit Info" on the Profile Page,
8.Users (Manager) will click on "Create Project" to create a project.
14.Users will edit the report content in the report generator.
17.Users will apply leaves in the "My Schedule".
20. Users will click on a team member's name and see their individual schedule for different project.
22. Users will click on "Data Analytics" to display the percentage by a search for the industry ranking.
24.Users will click on "Notification" to be reminded for submission.
25. Users will click on Member's name and message them.
26. Users will click on sign out icon to sign out of application. |
Results |
User Test Plan:UAT Test Plan |
Reflection
Team Reflection
After the completion of FYP IS480, Team LinkAge has gained valuable lessons in life in dealing with internal stakeholders and sponsors.This is an all rounded experience from us,stretching our capabilities and applying concepts learnt in the previous modules to good use. Collaborating with PwC has been an eye opener for us all,in understanding their business concepts,the requirement of what the industry needed and aligning sponsor's requirements with Information Technology.
Team LinkAge has enjoyed very much providing a service that value adds for our sponsors. We are proud of our customised application, PwCLinkAge. This journey has not been easy for anyone of us but we learnt to give and take,leverage on each team member's strength, be an effective communicator and a believer of faith and determination.
Team LinkAge has the benefit of doubt about deployment.Deployment was new to all of us but we have managed to work alongside with our sponsor well enough to successfully get our application for deployment. It was a privileged learning experience to be deploying in the server room of actual settings.
Individual Reflection
Name | Individual Reflection |
---|---|
Liang Yahui | From the project, I learnt how to learn, how to solve problem, how to manage time as well as how to cooperate with teammates and clients. First, regarding of the technique aspect, since I am a front-end coder, I need to learn a lot of bootstrap, javascript, jQuery, Angularjs, etc. I learnt a lot from online tutorial, peers, supervisor and other forums. There are so many latest front-end technologies out there that I could not learn them all in a short time. I found that the best process of learning is making mistakes, posting the problems and solving the problems. Through the continuous replay of this process, I learnt a lot of new knowledge about css and javascript in a shorter time. Secondly, due to the client and our own underestimation, we have very limited time to finish the project. Therefore, our teammates, everyone take a part and work concurrently to ensure the completion of the project. The most important thing is to be effective which link back to my first point. However, due to the time constraint, we need to reduce the scope of our project and drop the least value added functions. Thirdly, there are a lot of misunderstanding and disagreement during programming, especially when facing certain bugs or bottlenecks. I found that sometimes argument is inevitable but it is not a bad thing; argument sometimes may inspire brilliant ideas and deeper concerns. The last but not least, I learnt how to cooperate with client. There are lots of aspects on their side that are totally uncontrollable by us. Therefore, we should always have a plan B in hand. |
Liu Huan | Among all SIS projects, FYP endows the highest degree of freedom of developing an IT project. This is the most challenge and fulfilling part about it.
On project management, I have learnt the importance of communication. With miscommunication, the team may spend double time and efforts to complete a task. Next time, if a member does not understand something, it is always the best to ask clarifications immediately; do not guess. In addition, effective project management must have an audit and tracking system. This is to make sure everyone is in progress and will deliver components on time. With tracking system, even if someone encounter problems, it is easier to allocate extra resources to resolve the problems. On technical side, I have learnt a lot from my teammates. Through pair programming sessions, they help me to building a sense of programming. The most significant method is how to debug program step by step. Last but not least, seeking help via posting questions online is a good learning experience, too. |
Li Lu | FYP is a good learning experience for me. Learn to learn, and learn from teammates, supervisor and clients.
To learn new programming languages such as Python, to learn front end coding, to adjust deployment plan based on real world situation. My role is technical analyst and coder. As a technical analyst, I improve in drawing technical diagrams based on real world situation. As a back end coder in the starting stage of the project, I reviewed the sql and java programming language and learn new language – Python. As a front end coder in the second half part of the project, I improve html, and learn AngularJS, jquery, and boostrap. My multiple roles is caused by the change of deployment plan. To avoid wasting time, we change our back end plan in the half way. I also learn that back-up plan is very important. In real world, there are a lot of things that we cannot control. It is always good to take as many factors as possible into consideration, and do the best of the part that you can control. |
Jerome Ching | The experience has been challenging and rewarding at the same time. Apart from juggling our other modules, we also had to keep up with the pace of our other team members. Also, we had to manage our sponsor in terms of fulfilling their requirements and needs while keeping them aligned with that of our project requirements. It is challenging to come to a common vision on our end product versus what the client has in mind and there is a constant process of probing and evaluation in order to keep these two goals aligned as close as possible. Since areas in our project require new skills which we may not have had much practice in our other IS modules, there was alot of emphasis on self-learning, though without the help of structured learning tools. Overall, the satisfaction of having a product that can add value to an organization is rewarding. |
Zhong Zhenyu | The FYP experience so far has been challenging and fulfilling. The team had to manage their time well rolling out product while juggling other subjects at the same time. I found that practices encouraged in my previous IS core courses are extremely useful in preventing code conflicts (such as keeping a common repository) and improving communication. The learning curve is certainly steep, starting with only knowlege in java and visual basic, i can now code in angular js, html and javascript (not to mention other languages tested along the way). Learningm new languages maybe hard, but it also bring a sense of great fulfillment whenever I resolved a bug and find myself more proficient in the language.
through this project i learnt that my biggest advantage as a SMU SIS student is my versatility and the ability to learn from other. Technology is changing in an increasing pace, technologies are being replaced by something better every few month, hence it is important for us to leverage the vast information on the internet and the online community to produce quality product in a limited time. |
Low Ying Lin | Being a Project Manager for Team LinkAge has always been pleasurable. I have learnt tangible and intangible skill sets which allow me to be versatile. I have the responsibility to make sure that the team progress on steadily without any hiccups.Even with obstacles,I could resolve and mitigate issues calmly.I am an effective communicator to know about the capabilities of my team members and assign accordingly to their skills and workload.I understand that strength is unity in my team and have been an awesome journey for me, working with our sponsor, our supervisor and my team together. This has taught me valuable experience and make an impact to see that our application is able to be deployed , make use of by sponsors and their department. |