2010T2 B.I. JOE : Final Presentation
- 1 Project Progress Summary
- 2 Project Management
- 3 Quality of Project
- 4 Reflection
Project Progress Summary
After Mid Term Presentation, reviews from various stakeholders were collated and reviewed within the team. Improvements and changes were made to different segments of the system. Towards the end of the development, a series of User Acceptance Tests were conducted. The purpose is to ensure the system is fully functional ready for deployment and handing over to the client. At the same time, we would make use of this opportunity to further enhance the user interface design of the application. The project is well managed and completed on time. The stakeholders are satisfied and pleased with the deliverables.
- Additional requirements in Iteration 7
- Control Chart
- Apply config file to deployment architecture
The team carried out an assessment upon receiving the additional requirements. After careful consideration, the two additional requirements were accepted. The reasons that brought us to the decision are:
- On the technical complexity scale, the team classified both the requirements in the moderate zone. Though with a different programming language, Isaac has experience in developing config file methodology in deployment architecture
- The team has 3 buffer days allocated to this iteration
- The two features would bring tremendous business value to our client
Project Scheduled (Actual vs Planned)
Results: A total of 66 man-hours issued on 28 bugs. With no outstanding bugs to date.
Results: All buffer time are utilised. We have eaten into some weekends as well due to UAT.
Algorithm used in:
1) Dynamic Charting
- Dynamic positioning of canvas - Tested capacity: 10 by 10 = 100 charting areas - Vertical level algorithm; number of columns needed to display required canvas count - Horizontal level algorithm; number of rows needed to display required canvas count - Positioning of individual canvas
2) Elastic Search
- 2 stage checking algorithm - Sequence check; checking of selection path - Variable check; checking of previously selected option - Multiple ways of accessing selection - Required to capture all possible selection path
Quality of Project
|Project Management||Minutes||Weekly Sponsor meetings | Weekly Supervisor meetings|
|Metrics||Bug metrics | Schedule metrics|
|Requirements||Story cards||Storyboard scene|
|Technical specifications||Technical specifications|
|Sequence Diagram (Core)||Linked View (View Data), Image Coverflow|
|Business Workflow Diagram||1,2,3,4,5|
|Screen Shots||Overview | Treemap | MapPanel | MapPanel2 | Highlighting | ViewData | InteractiveCharting | ElasticSearch | ControlChart | LegendFilter | ProximitySearch|
|Class Diagram||Overview | Detail|
|Testing||Test plan||Test scripts for Iteration 2, 3, 4, 5, 6 and 7|
|User Acceptance Testing||UAT Script | Test Results | Sample UAT Log|
|Usability Assessment||Script | Results|
|Handover||Manuals||User tutorial, Setup manual|
The first diagram under deployment section shows the current deployment methods. Basically everything is being host on one server which contains Apache 2.2 commanded from XAMPP and Postgis 9.0 extended from Postgres. However, as we have a configuration text file, it makes this deployment design highly scalable. Not only is this application scalable in hardware wise, it is also scalable in software. Even though we are using Postgis as our database, client can also choose to use MySQL database to replace Postgis. The reason for choosing Postgis over MySQL in current case is because Postgis allows extension of calculating distance in geographical manner which allows functional scalability if the client would wish to extend this application. The second diagram under deployment section illustrates the recommended deployment design to be used in the client's environment. The application server is being distributed even workload from the several load balance to prevent single point of failure. From there, the application server will be connected to a cluster of database to prevent any over utilization on the database as well.
To access the application online, please visit this deployment link
Refer to Quality section for scalability and quality of this deployment.
For every function developed in each iteration, there are test scripts created to check and verify that the component has fulfilled its functional requirements. In addition, we conducted a total of two UAT for this project. The first UAT occurred before the mid term presentation, the final UAT was conducted in iteration 7.
Details of UAT (Final):
- Number of testers: 27
- Tester profile: 15 Technical, 12 Non-technical
- Test cases: 56
- Survey results:
- Issue Tracker: tracker tool
- Bug reports: Highlighting bug, bullet chart line missing after performing proximity search, duplicated controls in proximity control panel
To assist our understanding of user behavior, we implemented a tracker for the UAT. A sample result from the tracker tool: Sample UAT Log
- Primary Objectives
To facilitate tracing of bugs reported during UAT
- Secondary Objectives (prove of concept)
To analyse user behaviours based on unguided usage of our application. Highlight potential improvements to make our application more intuitive with analysed findings.
In conjunction with our final UAT, we also rolled out the Usability assessment to gather feedback on the application's interface and interactivity.
- Number of tester: 27
- Tester profile: 15 Technical, 12 Non-technical
- Test cases: 20
- Survey results: Shown below
Generally, the user interface design of the application is well received by the testers. There are some suggestions made to further improve certain aspects of the UI. However, these feedbacks will be discussed with the project supervisor and sponsor, to evaluate on their impacts on the system itself. Below is a summary of the results of the useability assessment.
- Great learning experience
- Embrace the challenges in future
- Enhance our chances to survive in the working jungle
Sim Sing Hong
- Role: Project Manager
- Responsibility: Oversee the project progress, managing the team and stakeholders. I acted as a technical consultant at the same time
- What have I learnt: Students from Information Systems are capable of creating functions offered in the commercial world. For instance, so far in our research, there are only two companies selling APIs for Elastic search feature. Without access to their API, we created our own Elastic search which is comparable to theirs in terms of performance and standard
- What I can do better: Best fit in terms of work delegation to their area of interest. Given the same team to do another project, I would base it on the experience acquired this time to maximize their performance and productivity
- What will I redo if I were to be involved in another project again: Every project is different, in terms of team dynamics, scope of work and stakeholders’ requirements. If I were to involve in another project, I apply what I have learnt thus far, apply on future projects and modify accordingly
After going through this FYP, which in my opinion is the most challenging and difficult module ever, there are a few points I would like to share. Initially, when I started off with Flex Builder, I thought this is a very difficult programming language which is very unusual thing that happens to me as I am quite competent in adapting new languages. In addition, Flex gave a weird logic way of coding as everything is able to go concurrently instead of the usual coding style where step A has to be done before step B. That really makes me feel uncomfortable. However, in the end, I would say that I have mastered it perfectly and finds it very user-friendly instead.
Secondly, as I progress my FYP, I advanced myself to a Dad as well. Up till the point before becoming a father, I always believe in balancing work-life. However, I feel that balancing work-life is impossible. Work-life integration seems to be the more feasible way. For example, I would do some calls home to my wife to settle some housing matters which in other words I am "controlling" my life from school or from work.
Last but not least, I would like to say that family is important! I can perfectly understand the meaning behind the movie 'Click' featuring Adam Sandler acting as a workaholic and neglecting family which in the end he regretted. Therefore, I have appreciate my family more than ever.
Ng Wei Quan
There are a few learning outcome from our Final Year Project module. Firstly, I learned a great deal of programming with flex. I managed to apply what I learned in other modules to satisfy the FYP requirement. For example, the technique use of elastic search was from IS 414: Search Engine Technologies.
My second takeaway is having to deal with complex problems faced as an individual or as the team during the entire FYP. I believe the problem solving skills learned will benefit me in future when I graduate.
The most challenging technical part of the FYP is to create a core function from scrape. I did my research from various visualization sources online and examine examples taught during the Visual Analytic classes. Using the variable concept, I customized the logic and algorithm to match out project requirement. The two core components created were challenging but gave me a strong sense of satisfaction upon completion.
Tan Ying Da
Our team once suggested to do up a simulation model to forecast the demand for goods in IDS’s distribution channels as we see it would provide more business value as well as serving as a platform for us to showcase what we learnt in academia. However, when we had a discussion with the client with our idea, we were immediately shot down. We had failed to see that we are not in a good position to do recommendations to our client when we are not the ones doing the groundwork; most of the observations were done and reported by IDS representatives at field. We had to balance academic achievements with client's demands - achieving more and yet not stepping over the line.
This FYP was a good motivation for me to pick up a new skill that I've been procrastinating. With this new-found skill set, I feel more confident to create flash web applications from scratch. The power to create new things is what that always satisfy me.
With a "Best-fit" model, it is much more effective and efficient to get things done. But due to time constraints, some team members may not get the full opportunity to learn new things from other members. Fortunately, a bulk of our individual functions will overlap in the end. We made good use of the code compilation phases to update and educate what each of us is doing to the rest of the team to share our knowledge and expertise; this certainly value-add to my learning experience.
Being involved in a full blown IS module that require one to make use of the knowledge accumulate over the years, is an experience that I would never forget. Throughout this journey, besides the technical knowledge acquired, what's more enriching and rewarding is the friendships forged and strengthen within a span of 5 months.
"If you guys would like to continue in this field, we would like to offer you permanent positions with us" - Nicholas Tan, IT Director