|Home||The Team||Project Overview||Project Management||Project Documentation||Project Resources|
- 1 Project Progress Summary
- 2 Project Management
- 3 User Test
- 4 Technical Complexities
- 5 Learning Outcome
- 6 X-FACTOR
Project Progress Summary
Download our mid-term presentation slides: midterm slides
Step 1: Go to deployed site: dynamicqueuemanagement-smusis.rhcloud.com/
Step 2: Login to the site with your given credential.
Step 3: Download sample data file from the site
To general users, please use the following credential:
- Project scope is extended with new functionalities.
- Login function was implemented - the reason for implementing the login feature was to allow each user to have their own copy of simulation settings. Previously, without this feature, users who uses the system will end up overriding each others settings.
- User management - Management of the user includes creating a new user, deleting a user and editing a user. This feature was added because we wish to empower our user to have control.
- Seeds configuration - Seeds played a big part in any simulation software as it affects the reproducibility and fairness of simulation results. With the seeds currently being hardcoded, providing this feature allows extra flexibility for our users who have the use case for changing seeds.
- Significant time spent in database changeover and in exploring visualisation libraries
- Database was changed from MySQL to MongoDB - the reason for this changeover was we realised the bulk of the data we are storing are non-relational in nature, and therefore, it does make more sense in using a document-oriented database over a relational database. In addition, as the amount of data that will be stored are large, there is also the significance performance saving in terms of each write and read operations.
- Due to the steep learning of D3 data visualization library, team explores other alternatives such as Highchart, Chart.js, nvd3, Google Chart before finally settling on C3.js for data visualization.
- Overhaul of Simulation interface
- Based on the user testing prior to acceptance, common feedbacks was the main interface showing the simulation animation was unable to display all information in a screen (without scrolling), therefore, effort was put in to re-structure the layout of the elements.
- Implementation of speed toggling for simulation with animation.
- Behind schedule for reporting module
- only 2 out of the 4 charts was implemented. The other 2 charts was pushed back.
Planned Vs. Actual project plan.
Project Iteration Overview.
Below is a screenshot of the detailed project schedule (our current iteration in progress). Click on the link to view our full project schedule .
RACI metric - we use this metric so that every member in the team is in-charge-of at least one major module or task throughout the entire project. This helped to organise the way we keep one another updated with our progress and be more efficient during meetings. How it helps us to be more efficient is when, we can work simultaneously in smaller groups on tasks categorised by the modules in the table.
Refer to the first responsibility in the table:
For example, Basith as the Project Manager is responsible for organising meetings with supervisor, sponsor and industry users for application testing. Clarice will assist him in checking the internal deadlines for the project. And he will have to consult Chun Yang, our lead developer, if our development progress is good before we present our work to the stakeholders. Syafi, who is the business analyst needs to make make sure our application on production side is running well (90% bugs free). Not forgetting to always involve everyone in the team, Nigel and Faris will be kept in the loop, while they can still focus on their coding tasks.
After User test,new functionalites and ideas were suggested to us by both student testers,professors and healthcare practitioners.The team used its change management process to validate each function and ranked them.We met our client (kar way) to validate our priority against hers and decided to include the following functions into our project scope.
We had difficulties evaluating the two pending functions and consulted our supervisor for advice.He acknowledged the complexity involved and advised us to make a decision after getting a good understanding and more details of them.We will spend some time discussing the feasibility with relevant stakeholders after midterms and make a decision.As of the now,the pending functions are not included in our project plan.
Risk Assessment & Mitigation
The team faced several challenges over the course from Acceptance to Midterms and was put to the test of managing both identified and unidentified risks.
Identified risk 1: Unable to acquire data for predictive modelling
As expected due to strict PDPA controls over sensitive data,our client was not able to provide us with the huge chunks of data for analysis purposes.Because we already forecast this possibility,it enabled us to quickly drop the predictive model and move onto prescriptive models which we had brainstormed to cover our scope in the event of no data.
Identified risk 2: First hand experience on building simulator
The team faced problems debugging errors the simulator was producing.Uncle google was not able to provide us with much help ,hence the team relatively took more than planned time to.
Identified risk 3: No prior knowledge on MongoDB
We allocated a team member to research on MondoDB before implementation period.While implementating this team member was able to share his expertise and mentored fellow team members.Despite this effort,this new unexplored database took us more than the planned time causing the iteration to delay.
Identified risk 4:New semantic UI
Initially the team was skeptical with Semantic due to its low maturity,but the library was powerful enough to support us with the functions we needed.
Unidentified risk 5:Tasks were not assigned based on competency and availability
Even though the team members were taking 4 modules in average,some members had other commitments such as Inter-University sports competition.This ate into their time and as a result hindered them from completing thier tasks on time.Also,team members were not able to cope with the complexity involved in their assigned task.To tackle this,a informal dialogue chat is held at the start of every meeting to update PM on their personnal schedule and preference.This helps the PM to allocate task more appropriately.
(More explanation on future risks)
Risk 1: We have been getting alot of suggestions from healthcare practitioners and the team wants to use this suggestions to improve the projects.The team is overwhelmed with ideas and has the tendency to attempt implementation of such ideas since its coming from the industry.However,the team has to discuss with the client and implement those within its capacity.
Risk 2: The team came out with ideas to implement subsets of a complex model due to time constraints.However,such a model might not meet user needs and the feature might not be worthwhile the effort.
Risk 3: The client needs a playback function that will enable to fast forward and backwards her simulation.Again this domain is unexplored and team might struggle with the complexity.
User 2 documents at [Main wiki]
Goals of User testing 2:
1) Functionality test to validate systems parameters
2) Usability test to get feedback on the flow of events and intuitiveness.
3) Feedback/comments on the practicability of the system
Some of our participants:
User test 2 was conducted mainly between 3 groups of users.This were the main results from the test.
|Group of Users||Profile||Type of testing||Main feedback|
|Students||Consists of smu students from SIS and business||Students were tasked to complete a simple task and were asked stress test the system.(in other words crash the system)||1. System error on input of special characters|
2. System not able to react to decimal inputs
3. Back button was not functioning
4. Error output not obvious
5. Empty rows are not validated
6. Unlimited length of input for fields
|Domain Experts||Consists of healthcare practitioners whom have prior knowledge.||Testers were asked if the system is capable of assisting them in decision making in the future.||1. The idea of editing data in text file is a minus|
2. Simulation is slow and there is a need for playback control.
3. KPI weighted score to reflect simulation performance
|Non-Domain Experts||Consists of professors whom have no prior knowledge.||Generic feedback on system's usability||1. visualization tools to drill down to the profile of patients.Ex.80% of patients whom did not meet target were more than 80 years old|
2. Can the system simulate my current resources and prescribe me a better solution?
3. Re-entrant emoticons are misleading.
Click here for detailed user results
Follow up actions
|Table view form||User will get to upload text file and will be able to get data table view to edit figures.This enables them the change the no of doctors allocated on a day to day basis.|
|Change in flow||To relocate the animation mode buttons for intuitive navigation.Users were unsure if the 'no animation' would really mean no animation.In actual fact,they can backtrack and view animation if they want to.|
|Change of Re-entrant icons||The current re-entrant emoticons are misleading and giving users a wrong impression..The changed emoticons will allow users to intuitively relate to it.|
|Display of real time simulation information||Several counters will be added onto the simulation screen to monitor the movements of patients.This counters will help users track the no. of exits and their statues.|
|New performance indicator||To include a KPIs weighted score for each simulation run to enable users to easily gauge the strategy's performance.While this may not be good indicator,users would like them to give a rough idea.|
One of the requirements for this project is to have a real-time animation visualization of the simulation run, similar to what most commercial simulation software is capable of providing. As the team has decided our project output is going to be a web-based simulator, we decided to leverage the capabilities of SVG for the development of the real-time animation visualization.
Synchronize patient’s current X and Y position between events’ tween
Animation of the patient follows the following steps:
When an event is triggered, get the tween to move the patient to a particular destination. For e.g. A StartConsult event will animate the patient to a particular doctor’s room.
- a.Get the patient current X and Y position.
- b.Calculate the dX and dY using destination’s coordinates and patient’s current X, Y.
- c.Construct the tween using the dX and dY calculated.
- d.Add the tween into the patient timeline for execution.
The issues arose when intervals between 2 events are too close; the reason for it is because the simulation clock is always running faster than the animation clock
|Simulation Time||Event Triggered||Function Call||what does it does?|
|20||StartConsult||Get tween method is called||Animation clock start, takes 3 seconds to complete. Gradually change patient X and Y to destination coordinates.|
|30||EndConsult||Get tween method is called||Get wrong current X and Y coordinates as previous tween is still altering the coordinates.|
The solution here is to construct a tween object with no dX and dY value, and making use of an undocumented attributes and callback in the GreenSock library, we calculate and update the current X and Y before the tween is executed.
Faris - I always believe there are always alternative solutions to a problem. As long as we do not stop exploring, we will find out there are vast resources and information that could help one in their problem. When we talk about data visualization, one of the most commonly tools that is associated to it will be D3.js. One of the problems that i faced with D3.js was the steep learning curve. It seems that i would require three times the time assigned to me just to pick this up. However, after spending some time researching and consulting, there are other data visualization tools that are much simplified. After trying out and testing some tools, we find something that fits our competency. That's how we ended up with C3.js.
Nigel - Uncertainties are the only constant in this project. Be it in the development or project management phase, we all have to deal with it. I believe that i am coping much better with uncertainties compared to day one of this project. i think we have managed to mitigate some of these uncertainties by being extremely critical and reviewing our project frequently from the perspectives of our clients and other stakeholders.
Clarice - I hope that with our application, our sponsor’s research thesis would be easier for hospitals to understand, and eventually it can be fully developed and used by practitioners
Syafi - I’m amazed at how a project can grow and develop in ways which we never really anticipated as a team. So many angles to consider in terms of the project’s business capabilities! I look forward to finding ways to improve our application better so that it will be of relevance to both our clients as well as future users .
Basith - It’s heartwarming to see how the how the project has progressed over the past 7 weeks.Our aim was actually to build a visualization tool but it’s now crossed over to abit of decision support tool. We hope to push on and exceed our client’s expectation.