HeaderSIS.jpg

IS480 Team wiki: 2015T1 4Sight Mid Term Wiki

From IS480
Jump to navigation Jump to search
4Sight team logo.png
4Sight Home.png HOME   4Sight Team.png ABOUT US   4Sight Project overview.png PROJECT OVERVIEW   4Sight Project management.png PROJECT MANAGEMENT   4Sight Documentation.png DOCUMENTATION  
Main Wiki Midterm Wiki Final Wiki

Project Progress Summary

Midterm Slides

Click [[Media: | here]] to download our midterm presentation slides!

Deployed Website Link

Deployed Link: https://clearvision.herokuapp.com/Clearvision/login/

Development Progress

Current Sprint: 10
Sprint Duration: 05 Oct 2015 - 16 Oct 2015
Major Milestone: Midterm Presentation
Features Involved:

  • Administrative Module
  • Mobile Calendar Module

Project Highlights

  • Deployed application to heroku on 28 September 2015
  • Completed 90% of our development work as of 07 Oct 2015
  • 3 features removed from scope since acceptance (see below)
  • Added 4 new features to our scope since acceptance (see below)
  • No delay in project schedule. Team is progressing as planned.
  • Completed 2 user testings with actual users before acceptance and midterm
  • Collected __ appointment records in our user tracking module

Milestone Status


4Sight Milestone Updates.png


Project Management

Project Status

  • The team is confident of completing the project and delivering the application on time.
4Sight Development Progress.png

Planned VS Actual Project Scope

Planned Actual

4Sight PlannedScope.png

4Sight ActualScope.png

Major Scope Changes

What has been added?

Date Module Category Feature Description Value to Client
12 Aug 2015 Appointment Primary Block Appointment time slots Allow users to block time slots that are unavailable for booking such as when the Doctor is away. Reduced the probability of wrongly booking an appointment time slot that is unavailable.
27 Aug 2015 Notification Secondary Notification Backlog Notify users of important updates such as possible swap and blocking of appointment time slots. Always keep users updated of important changes made.
28 Aug 2015 Queue Management Secondary Archive no show patient records Compile a list of no show patient records for admin clerks. Reduced the amount of time spent on collating a list of no show patient records.
16 Sep 2015 Analytics Primary Marketing Expenditure Form Allow marketing team to manage campaigns' expenses and do up their monthly report. Reduced the amount of time spent on data entry as information is currently recorded on multiple locations such as Google doc, CMS, papers and their appointment book.


What has been removed?

Date Module Category Feature Reason for Removal
12 Aug 2015 Notification Secondary Send SMS Appointment Cancellation Users require quick response from patients and hence prefer calling.
28 Aug 2015 Analytics Primary Survey Results Analysis High risk and development cost involved. Sponsor has decided to do the analysis separately using the analytics feature provided by Google.
16 Sep 2015 Analytics Primary Dashboard Summary and Trending Users do not require an overview across the different dashboards. Analysis at the individual dashboard level is sufficient for the marketing team to perform their tasks.

For more details, please view our Change Management Here!

Planned VS Actual Project Schedule


4Sight PlannedSchedule.png

4Sight ActualSchedule.png

Schedule Highlights

  • There are no major changes to project milestones.
  • Deployment was delayed by 2 days due to some technical difficulties faced. However, this did not affect the progress of the team.
  • Features are added (highlighted in yellow) or removed (strikethrough) to/from project schedule after careful deliberation by the team.

Schedule Metrics

View our Schedule Metrics Here!

4Sight ScheduleMetricScore.JPG

Schedule Metric Highlights

Sprint Planned Duration/days Actual Duration/days Schedule Metric Score Action Status
5 12 13 0.92 Estimates are generally accurate and team consumed 1 buffer day. Slight delay due to deployment as static files served by django server failed to be deployed onto heroku. Overall project schedule not affected. Completed
7 12 14 0.86 Estimates deviate from planned and team consumed 2 buffer days. Slight delay due to issues faced in the implementation of the 2 way SMS function. Overall project schedule not affected. Completed
8 12 13 0.92 Estimates are generally accurate and team consumed 1 buffer day. Slight delay due to web socket implementation. Overall project schedule not affected. Completed

Tasks Metrics

View our Tasks Metrics Here!

4Sight TaskMetricScore.JPG

Tasks Metric Highlights

Bug Metrics

View our Bug Metrics Here!

4Sight BugMetricScore.JPG

Bug Distribution based on Priority

4Sight BugsByPriority.JPG

Bug distribution based on Severity

4Sight BugsBySeverity.JPG
Sprint Bug Score Summary of bug Action Taken
5 60 Bugs found are mainly from ... Stop current development and resolve the bug immediately. Project Manager reschedules the project.
8 57 0.92

Project Risks

View our Risk Management Here!

Risk Type Risk Description Consequence Likelihood Impact Mitigation Strategy
Project Management Risk Insufficient users to conduct testing Potential problem of not being able to complete a full User Testing. Data collected might not be accurate due to small user pool High High Coordinate in advance with Clearvision stakeholders so that they have ample time to gather relevant users for our User Testing, such as involving nurses and optometrists from other Clearvision clinics.
Technical Risk 2 way SMS might not work for all phone models. Current provider, infobip might not work for iPhone. Team has to source for other providers that provide 2 way SMS service suitable for all phone models. This might cause a delay in project schedule Medium High Lead Developer to work closely with provider and check if 2 way SMS service is possible for iPhone. Meanwhile team has to look for alternative providers and ensure that it works well with all phone models.
Client Management Risk As the team is doing early deployment, there might be more change requests along the way since users will be using the application on a day-to-day basis. These changes might not be easily picked up in our demo done every sprints as well as the user testing we have conducted as it might not cover a complete spectrum of all possible scenarios. Incur higher development cost with increase change requests Medium High 1. Any proposed change request is to go through the change management process.

2. Inform Supervisor of any major change request.

Technical Complexities

Technical Complexity 1: Handling concurrent requests and slow clients

Issue

  • In prod, server of choice would be Gunicorn, adapted from unicorn from Ruby. Written in pure python, enabling quick deployment and ease of use with the Django framework.
  • However, Gunicorn as a Web Server Gateway Interface(WSGI) with a relatively small pool of workers (2x CPU Cores), can only handle a small number of concurrent requests.
  • If there is no buffering solution in front of Gunicorn serving static files, under large number of users, the Gunicorn WSGI will suffer from considerable lag, impacting usability.
  • Despite Heroku providing limited buffering functionality, large number of requests/responses will allow the Clearvision site to be susceptible to accidental/deliberate DDOS attacks.

Solution

  • A buffering reverse proxy needs to be used in front of Gunicorn to buffer requests and responses from the outside web to the Gunicorn WSGI.
  • Nginx is excellent at buffering slow clients
  • Nginx Architecture:
NginxArchitecture.png
  • Heroku does not support Nginx implementation out of the box. Therefore, we utilized a custom Nginx-Gunicorn buildpack for heroku deployment, instead of the regular python buildpack that Heroku uses for generic Python applications

Reasons

  • Gunicorn documentation strongly recommends Nginx in front of Gunicorn when in prod.
  • Fast serving of static content. Nginx forwards requests for dynamic content to Gunicorn WSGI when it is needed.

Outcome

  • Application is now more resistant to DDOS.
  • When only static content is needed, application is faster than before.
  • Slow clients over the network are buffered, resulting in a more responsive application with multiple users.


Technical Complexity 2: Appointment Heat Map

Issue

  • Patients appointments are not well spread
  • Clinic is at times very crowded or very empty

Solution

  • Build a heat map view

Implementation

  • Write a native python run file to create a list of future dated appointments
  • Tie the time buckets to the respective doctors

Reasons for implementation

  • Admin Clerks will have a visual representation of how packed the appointments are
  • Enable Admin Clerks to effectively schedule and spread out patient appointments


Technical Complexity 3: Websockets

Issue

  • Admin Clerks might be seeing an outdated view of the appointment calendar

Solution

  • Build a real time web application using web sockets

Implementation

  • Using pusher SaaS
  • Sets all machine instances to listen on socket channels
  • Partition the channels to push updates to the respective sockets
  • Any change in the database will trigger the backend server to push updates to all listeners

Reasons for implementation

  • Ensure accuracy in scheduling decisions
  • Mitigate duplication of actions when adding patients to the queue



Quality of Product

Intermediate Deliverable

Stage Specification Module
Project Management Minutes Meeting Minutes
Project Timeline Project Timeline
Project Scope Project Scope
Metrics Schedule Metric
Task Metric
Bug Metric
Risks & Mitigations Risk Management
Sponsor Change Requests Change Management
Requirements User Stories Link to all user stories
Analysis Diagrams Use-case Diagram
ER Diagram
As-is Process
To-be Process
Market Research Market Research
Design Mid-Fidelity Prototype Wireframe
Testing User Test Plan User Testing 1
User Testing 2

Deployment

Testing

Reflection

Team's Reflection

Member's Reflection