SlideShare ist ein Scribd-Unternehmen logo
1 von 99
Downloaden Sie, um offline zu lesen
Team Augmented Reality
EOSP Presentation
1
Presenters – Kanishk Karanawat & Yashasvi Vedula
Zexi Chen, Tijing Wang
Contents
2
1. Project Context
2. Requirements Management
3. Process
4. Risk Management
5. Project Management - Planning & Tracking
6. Architecture
7. Quality Management
8. Configuration Management
9. Training
Project
Context
3
Client:
› NextGen:PGH: Non-profit
startup
› Executive Director: Alec
Rieger
Mentor:
› Bradley Schmerl
4
People Involved
4
Team:
Kanishk Karanawat
(Chief Architect,
Configuration
Manager)
Tijing Wang (Risk
Manager)
Yashasvi Vedula (QA
Manager)
Zexi Chen (Project
Manager)
People Involved
5
Client Background
Currently involved in actively organizing night markets and cultural festivals in
Pittsburgh.
Wishes to leverage AR technology to spread culture and build community.
6
7
PlacemakAR
APP
Project Context
Project Context
8
Short-term Goals
› Deploy Android app on
Play Store (End of
July)
› Must augment 2D
images on at least 3
places of interest on
the CMU campus
New goal:
Showcase Augmented Reality
capabilities through proof of
concept:
● Render AR Videos
● Interactable AR Content
● Geo-location based AR
Content
Project Goals
9
Requirements Management
● Create user stories at the start of every sprint
● Get user stories prioritized and approved by the client after the
sprint planning meeting
● Need client sign-off regarding prototypes, before development can
begin
10
● Product backlog for prioritization of user stories
○ AR tasks high priority
○ Other mobile tasks medium priority
○ Web Portal tasks low priority
● Initial release doc guides us in managing requirements
○ Final aim to achieve campus tours
○ Work on components/features leading to campus tour
Requirements Management
11
Process
12
Process
Showcas
e AR
Features
Deploy
to Play
Store
Project Scope
Changes
# Action Outcome
1. Change process from OUP
to SCRUM
Regular client demo/feedback, Higher flexibility to re-
prioritize tasks. Used old Release plan to make Product
Backlog
2. “Could Haves” priority
increased
Render video, Interact with AR
3. “Should Haves” priority
decreased
Social Media integration, Web Preview Mode, Mobile
Register/Login
13
• Artifacts: Product backlog, Scrum Backlog, Burndown charts, Team
velocity, Meeting minutes, Meeting presentation slides
• Process: SCRUM planning meeting (Tuesdays), Stand-up meeting
(everyday), Sprint retrospective meeting (Monday), Demo (Monday)
• Sprints: 2 week sprints
Process: Scrum+
14
• Tailored: Incorporated risk management, quality assurance and architecture
into the scrum process
• Evolving: in every retrospective meeting we discussed what changes are
required
• Example: In early sprints we realized that some members are not logging
work in time in JIRA, which will impact project tracking, so we decided to
log work before each standup meeting. Made this a routine in our
process.
Process: Scrum+
15
Entry:
Finish the last release
Tasks:
1. Discuss with product owner and add new user stories in product backlog, if
needed
2. Pull user stories from product backlog and add it to sprint backlog in JIRA
3. Break the stories into tasks and conduct code design for the functionalities
(class diagram)
4. Review if the detailed code design is consistent with our high level
architecture
5. Estimate the time for each task (Planning Poker)
. . . . . .
Planning process
16
Verification:
1. All tasks with estimates added in JIRA by SCRUM master
2. SCRUM master checks if planned time estimate higher than available
development time. If higher, then put the lower priority tasks back into
backlog. Inform product owner about the change
Exit:
1. Add tasks to sprint backlog
2. Assign sprint backlog tasks to individuals
3. Assign the related quality assurance tasks to individuals
Planning process
17
Development Process: Organization
3 Dev Teams:
• Web Server Team: Responsible for managing REST API services and
database (MySQL, S3 Bucket)
• Android App Team (Client): Responsible for the AR application
• Web Portal Team (Client): Responsible for artist and moderator functionalities
18
Development Process: Organization
Names Android App Web Portal Web Services
(API + Database +
Monitoring)
Kanishk X X
Yash X
Zexi X X
Tijing X X
19
Development Process
• Process
• At the start of the sprint, Web Server team will design APIs and expose
them via Swagger.
• Mobile & web portal team will edit/design prototype, via Proto.io, and get
client sign-off
• All 3 teams commence coding once design/prototype is confirmed
20
Swagger Portal
21
Development Process
• Scrum master checklist:
• Assign quality assurance tasks (static analysis, inspection, unit testing,
etc.)
• Task dependency analysis to determine order of certain tasks
• Coordinate workload between team members
22
Reflections
Switching to SCRUM gave us flexibility with requirements. Client was very
happy to see his continuous feedback taken into account
23
Risk Management
24
Risk Management Process in Scrum
● In every daily standup meeting, the team communicate and discuss about
the risk.
● In every week’s client meeting and team meeting, identify the risks based
on the decision making.
● In every sprint planning meeting, discuss and allocated tasks related to risk
mitigation and assign tasks
● In every sprint retrospective meeting, discuss the risk status and complete
the detailed risk document. Discuss the status of the assigned task
● Maintain a risk track document to monitor the status of the risks. If any risk
deadline is a week away, then notify team. 25
Risk Tracking
26
ID 8
Condition Target tracking is to be carried out mostly using markers.
Date Identified 28-Mar-2016
Impact 1
Probability 2
Consequence 1. Some locations may not allow the placing of markers directly on them.
2. The marker sizes required for tracking from a “satisfactory” distance may be impractical.
Mitigation 1. Experiment to identify relation between marker’s size and tracking distance
2. Communicate with university authorities to discuss possibility of placing markers around campus
3. Explore geolocation as a strategy for augmentation at POI
Deadline 5-May-2016 25-July-2016
Status Mitigated
Updates 6-Apr-2016: Experimentation on marker sizes concluded
13-Apr-2016: Client meets with ex-President of CMU to introduce app.
5-July-2016: We have explore the geolocation augmentation way, and demonstrated it satisfactorily to the client. We need to
ensure that all the final POIs on CMU campus can be tracked using an appropriate marker.
12-July-2016: Ensured and limited four POIs on CMU campus.
Risk Example
27
Planning & Tracking
28
• Strategic Plan: Track using milestone plan
• Tactical Plan: Track using burndown chart, velocity chart, and
time distribution chart
• JIRA used by Scrum Master to assign tasks and manage Product
and Sprint backlog
Tracking
29
• Every task’s progress is logged in JIRA for creating burndown
chart
• If we can’t finish all the task in one sprint, we push tasks into the
next sprint based on priority
• We use time percentage chart to view whether we are spending
too much time in meeting or too little time in quality assurance.
Tracking
30
31
Sprint 3 data
32
Velocity
33
sprint 1 0.961039
sprint 2 0.851613
sprint 3 0.898204
sprint 4 0.967532
Initial Time Distribution Plan
5h = meeting [2h (iteration plan)
+ 1h team + 1h client + 1h mentor]
7h = Common time coding
1h = Documentation
5h = Individual Role + QA
6h = Individual coding & Unit
Overall
55% : Work with team 45% : Work individually
34
Overall Time Distribution Chart
35
Reflections
We initially used to plot burndown chart upon
100% task completion
• Gave team wrong impression about effort & status
• Instead we started plotting on basis of progress. This
improved our tracking
36
Architecture
37
Quality Attributes - Extensibility
Scenarios & Measure
• Ability to add new AR content, new POIs,
new Tours
• No disruption/downtime of any of the
existing services or introducing defects in
system
Design Decision
• 3-Tier Architecture
• API-Driven Design
Tradeoffs
• System complexity increased
• Increased latency (to fetch meta-deta)
Outcome
• Changes reflected in system in real-time
(mobile app, web portal)
• Reusability promoted (APIs reused by clients)
• Allows us to scale in future (DB level) and use
any DB storage solution and strategy
• App re-deployment not required 38
Quality Attributes - Modifiability
Design Decision
• Decided to use Wikitude Javascript
SDK instead of Native SDK (Java)
• AR files stored in data tier (S3 bucket)
Tradeoffs
• Increased code complexity
(manage Android Java code as well
as HTML/CSS/JS code)
• Difficult to test using automation
tools
• JS SDK allows us to use HTML, JS, CSS
code for AR functionalities instead of Java
• No need to re-compile/build or deploy code
• Changes reflected in system in real-time
Scenarios & Measures
• AR component should be modifiable -
ability to add/edit AR screens and
functionality dynamically
• Should not require re-deployment
Outcome
39
Stateless Vert.x Process -
Scalability Promoted
Process Monitor - Availability
Promoted
Dynamic View -
Web
40
Quality Attribute Verification
AIM: Both the software solution and hardware are able to meet the QA
requirements. Evaluate T2.small instance (evaluating machine for PROD)
Scenario 1: Time taken from the initiation of an action to the response being
received must not exceed 5 seconds, when 100 concurrent users are
accessing the system. (Average Load)
Scenario 2: Despite having 100 concurrent requests, the time taken to
download a graphics file of the largest size (HD quality image) must be
kept under 5 seconds. (Peak Load)
41
Quality Attribute Verification
AIM: Both the software solution and hardware are able to meet the QA
requirements. Evaluate T2.small instance (evaluating machine for PROD)
Scenario 3: 100 users simultaneously reading/uploading data to server &
response time should be less than 5 seconds. (Mixed Load)
Scenario 4: 100 users simultaneously uploading 10MB content. System should
not crash and should handle these requests. (Stress test)
42
QA Scenario 3 - Mixed Load
43
# Users RPS Latency (sec)
1. 100 55 1.7
2. 200 59 3.2
3. 300 78 3.7
Scenario 3: Mixed Load - 100 users simultaneously reading/uploading data to server &
response time should be less than 5 seconds.
Action: POST: /pois/{poiId}/ar/{arId}/uploadContent/{contentType GET requests : POI, AR,
Campus 1 MB data upload size.
Results: CPU utilization: 9% Memory utilization: 17% (300 users)
Locust Report - Scenario 3 for 100 users
44
Scenario 4: Stress test - 100 users simultaneously uploading 10MB content. System
should not crash and should handle these requests.
Action: 10 MB data uploaded for 5 minutes
Results: CPU Utilization 44% and Memory Utilization 60% Helped found memory
related bug in code (Vert.x memory settings different from JVM XmX settings)
45
# Users RPS Latency (sec) Comments
1. 25 1.1 15.8 30% CPU 30% Memory
2. 50 1.2 32 40% CPU 32% Memory
3, 75 1 52 30% CPU 56% Memory
4. 100 1 36 44% CPU 60% Memory
QA Scenario 4 - Stress Test
Quality Management
46
Process
47
Static Analysis
• Integrated the CheckStyle plugin into the IDEs (IntelliJ for both
Android and Java)
• Modified the default ruleset to exclude some rules. For eg. lines
beyond 80 characters
• We had been using Stan4J to generate LCOM4 and cyclomatic
complexity metrics
• In end used SonarQube to verify out metrics. Mainly concerned with
Maintainability index.
48
Metrics – Android App
49
Integration Testing - Android
• Junit unit testing only runs on JVM and not on Android VM.
Therefore, difficult to test Android Activity Lifecycle.
• The close coupling of AR, UI, and location-aware functionality made
unit testing difficult on Android. Java and JS code also heavily
dependent
• Used instrumentation testing. Runs on Android phone on Android
VM. Hooks to control Android Activity Lifecycle
• We used Robotium on Android to write automated scripts to test the
application after each new module.
50
Integration Testing – Web Services
• For the web services part, we extend JUnit to call the actual web
services during integration testing (as opposed to mocking web
requests in unit testing)
51
Planned coverage:
Line - 100% Branch - 80%
Actual coverage:
Line - 83% Branch - 35%
Test Cases: 61
• We used all-pairs combinatorial testing to test our mobile application
in subsequent phases
• Used the classification tree approach to generate test cases
System Testing
52
System Testing
53
Consider various characteristics while designing the classification tree:
• Geofence
• Wifi/Net conditions
• Lighting condition
• AR Content type
• Phone Orientation
• User’s walking speed …..
Reflections
• As UI and functionality get more intertwined, it gets more difficult to
test separate units. In such cases, traditional methods and metrics
become hard to follow. We had difficult time differentiating
between unit tests & integration tests and had to define our own
terminologies.
• We initially wanted to automate all our tests, but later realized that
for location and AR use cases, manual testing may be a more
thorough alternative.
54
Configuration
Management
55
Bitbucket Repository: Code version control (2 repos: Android code, Web server & Web portal
Code)
Jenkins Continuous Integration: Build Changes & Deploy (Archive Successful Builds, Auto-
Polling every minute)
AWS Dev Env: Restart process for latest changes to reflect
Release branch: created for configuration management & deployments
Flow
Commit
Auto-Pull Build
Deploy
Process
Restarted
Branching
56
Branching Strategy
masterfeaturerelease
v0.1 v0.2 v0.3 v 1.0
Branch Pull &
Integrate
Merge
Branch Push Bug
Fixes
57
Training
58
Training
• Trainings for Android, Wikitude SDK (Android), Web Development
(Bootstrap, JQuery), Vert.x Web Server & Bitbucket
• ETVX process followed:
• Entry: Environment setup/Software installation on local machines
• Task: Training Tasks mapped with learning outcomes
• Validation: Demonstration of training tasks
• Exit: Check-in training source code
59
Training
60
• Training designed to include common functionalities used in
projects (Derived from list of requirements to be
implemented)
• Different set of trainings for developers with Beginner and
Intermediate experiences
• Different trainings for different developers (based on
assigned system)
• Structured process helped everyone to have common
understanding & establish terminology.
• Used common working hours for training. Helped beginners to
learn from more experienced developers. Saved us time in
configuration issues & training task issues
• Local system setup helped us start development immediately after
training
• Still need for individual custom trainings for personal learning
Reflection
61
THANK YOU
Q/A
62
Supplementary
Slides
63
Top 3 Risks
Risk 3 : A number of successful AR SDKs, such as Metaio and ARPA, have been
discontinued with no prior warning to developers. Thus, there is some concern
that the same may happen to the SDK picked by the team.
Risk 18: The marker tracking is dependant on the lighting conditions as well as the
distance.
Risk 16: Communication is delayed sometimes when some issue is experienced,
while working on a task
64
ID 17
Condition Client will be unavailable from last week of July onwards till end of project
Date Identified 28-Jun-2016
Impact 1
Probability 4
Consequence Since client is non-technical and will be out of town, it would be difficult to have the handover process
as well as receive final sign-off.
Mitigation 1. Initiate the handover process early
2. Start user acceptance testing early
3. Devise handover plan and give handover when client is available in town, and handover easier
part through phone/mail communication
Deadline 20-July-2016
Status Mitigated
Risk Example - 2
65
6. Make user stories for this release
7. Make prototype in proto.io for these stories
8. Have client approve the prototype
9. If not approved, change the prototype accordingly and get approved
10. Break the stories into tasks and conduct code design for the functions
(class diagram)
11. Review if the detailed code design is consistent with our high level
architecture
12. Estimate the time for each task
13. Put the tasks in the product backlog using JIRA
Backup - Planning process continued
66
API Dependency Issue - Backup
API Dependency issue:
• How to coordinate effectively between REST API team and Client team (mobile and web)?
• Communicate and have common understanding about data model
• Understanding regarding JSON data returned
• Common understanding between error handling
• Common understanding between HTTP methods available
• Initially ran into delays due to dependencies
67
API Dependency
68
• Solution: Use Swagger
Helps design, test, document APIs
Web UI to explore APIs. Provides documentation. Run APIs
Documentation can be used by future teams as well to understand existing APIs
http://placmakarapi.cf:8081/
69
Process Backup -
Swagger Portal 2
Process Backup - Scrum+ Example : Stand up meeting
15 minutes daily stand-up
Entry:
4 team members are attending the meeting.
Tasks:
Discuss daily progress, including
1. What each team member did yesterday and what he is working on today
2. What are the problems and difficulties
3. What are the concerns (risks).
4. Log work in JIRA
70
Process Backup - Scrum+ Example: Stand up meeting
Verification:
1. All the steps above are followed.
2. JIRA is updated
Exit:
1. Finish the meeting
2. Scrum master updates Burndown chart
71
Process Backup - Retrospective Process
Entry:
Finish the last sprint. Finish the sprint review (sprint demo) meeting.
Tasks:
A. Discuss last retrospective decisions: whether they have been met.
B. Discuss what the team should:
Start doing, Stop doing,Continue doing.
A. Vote on the matters:
Extra tasks:
Calculate velocity ;
Tracking: collecting individual feedback on quality assurance tasks as metrics.
Collecting feedback on the above discussion as metrics.
JIRA update
Verification:
All the steps above are followed.
Exit:
The list of decisions are documented. 72
Backup -Architectural Verification - Mobile App
73
Backup - WBS
74
Burndown Full Semester
75
Code Readability &
Maintainability increase
Code Re-usability
increases
Static View - Mobile Back
76
Instance Monitor -
Availability Promoted
Backup: Physical
View
77
Backup: Dynamic Mobile View
78
79
Sprint
Backlog
Product Backog
80
Total 26 user stories
Architecture Backup - Test Environment
Test Environment:
1. Machine for generating requests C4.2x large (8 cores 15GB RAM)
2. Locust used for load testing.
3. Tested T2.small instance (evaluating machine for PROD)
4. Delay between 2 consecutive requests : minimum : 5ms & max: 50ms
81
Architecture Backup - QA Scenario 1 - Average Load
CPU utilization: 7% Memory utilization: 7% (300 users)
GET requests : POI, AR, Campus
# Users RPS Latency (ms)
1. 100 223 426
2. 200 205 936
3. 300 215 1359
82
Architecture Backup - QA Scenario 2 - Peak Load
Scenario 2: Despite having 100 concurrent requests, the time taken to download a
graphics file of the largest size (HD quality image) must be kept under 5 seconds.
Action: Download from S3 10 MB payload
83
# Users RPS Latency (seconds)
1. 100 25 3.7
2. 200 20 7.8
3. 300 19.3 10.7
Scenario 2: Despite having 100 concurrent requests, the time taken to download a graphics
file of the largest size (HD quality image) must be kept under 5 seconds. Action: 3 MB
Payload
84
# Users RPS Latency (seconds)
1. 100 70 1.2
2. 200 82 2.3
3. 300 80 3.5
Total Cost Per Month = $28.04
Final Infrastructure Cost
85
# Component Type Quantity Cost Comments
1. AWS EC2
Instance
t2.small 1 $19.04 For hosting the web server,
application servers and
database server (and build
server for continuous
integration, if required)
2. Elastic Block
Storage
SSD Storage 1 $0.50 For permanent data storage
(software installations, source
code, database data)
3. S3 Bucket - 1 $1.50 For storage of multimedia
content
4. CloudWatch/
Auto Scaling
- 1 $6.5 For real-time monitoring,
alerting, availability
5. Route 53 - 1 $0.50 For DNS Mapping
Finalized T2.Small instance for deployment, based on QA Verification
Backup - CheckStyle
86
Backup - Coverage
87
Static Analysis – Stan4J
88
QA Backup - Defect Metrics
89
Date Module Defects KLOC Defects/KLOC Comments
23-Jun-2016 Android
App
5 3.7 1.35 Defects logged in
Jira
14-Jul-2016 Web
Services
6 1.9k 3.16 Unit testing defects
14-Jul-2016 Web
Services
2 1.9k 1.05 After removing unit
test defects
20-Jul-2016 Android
App
3 4.8 0.625 Defects logged in
Jira
24-Jul-2016 Android
App
0 5.1 0 Defects resolved
1-Aug-2016 Android
App
7 5.1 1.37 Combinatorial testing
started
Static Analysis – Web Services
90
Alll REST APIs documented using Swagger: http://placmakarapi.cf:8081/
Bug List Sample
91
Classification Tree
92
• Only for critical modules
• Inspection checklist provides inspectors with guidelines
• Inspection document to keep track of defects encountered during
inspection
Review/Inspect
93
Inspection Sample
94
# Module File Type Line Defect Solution
Web Server/
app_server
org.ngpgh.ar.webser
ver.model.PoiModel
Variable name 4 Variable name poidID is incorrect
based on API contract
Re-name to poiID
2 Web Server/
app_server
org.ngpgh.ar.webser
ver.controller.MainRo
uter
API
Implementation
260 GET /pois/{poiID}/ar
(Function getArListByPoiID)
Does not implement query
parameter “size”
3 Web Server/
app_server
org.ngpgh.ar.webser
ver.dao.ArDao
Coding Style 82 ArrayList is created and then
converted to Array which is
returned. Extra code written for this
operation.
Return ArrayList
instead and remove
array conversion
code.
4 Web Server/
app_server
org.ngpgh.ar.webser
ver.controller.MainRo
uter
Refactor 292 GET /pois/:poiId/ar/retrieveByField
implementation has duplicate code
from API - GET /pois/:poiId/ar/
Remove duplication to
improve readability
5 Web Server/
app_server
org.ngpgh.ar.webser
ver.model.UserModel
API
Implementation
6 Variable name userID is missing
from POJO, based on API contract
Add field userID in
POJO and also in
corresponding DAO
6 Web
Server/web_por
tal
login.html Missing field Field zip code is missing in
registration page as requested by
client
Add this field in html
page as well as in
database
User Acceptance Testing
• Carried out in every demo meeting with the client
• We ask the client to use a feature implemented for each user story
• His feedback is recorded and any recommended changes are
added as enhancement tasks for the next sprint
95
User Story With Acceptance Criteria Example
96
User Story 11: As a CMU admin, I want to render interactable AR content, so that the
students can gain more information about Campus locations/events
UAT-11a: User must be able to render at least one button over the CMU map on Forbes
and Morewood. The user must be able to click this button, which would then invoke a
side drawer. This side drawer would display information on the specific location
corresponding to the button clicked.
User Story 12: As a mobile app user, I want to see all the nearby POIs in a map view,
so that I can easily visualize all the nearby POIs.
UAT-12a : The user must be able to see a Google Map with exactly 5 markers
corresponding to the 5 POIs. On clicking the marker on the map, an info-window must
be displayed to the user with the title and description of the POI.
1.UAT-12b : The user must be able to click the info-window to be directed towards the
page where the details of the specific POI selected are displayed.
Training
Sample
Name Android Training 1 - Time Estimate 8 hours
Entry 1. Download Android Studio (https://developer.android.com/studio/index.html)
2. Read “DevPlanEstimationNextSem2.0” document to get better understanding of the
various systems and modules to be developed.
Tasks 1. (For beginners)Create a hello world Android App (2 hours) Outcome: Learn usage of
basic UI components, activity management, intent calls.
https://developer.android.com/training/basics/firstapp/index.html OR (For
intermediate users) Interactive Story app (3 hours) Outcome: Advanced app which
demonstrates usage of MVC pattern, and more control widgets, as well as activity
management. https://teamtreehouse.com/library/build-an-interactive-story-app
2. (Advanced) Weather App (4 hours) Outcome: Learn integration with 3rd party API,
JSON Parsing https://teamtreehouse.com/library/build-a-weather-app
3. GPS location updates (1 hour)
https://developer.android.com/training/location/receive-location-updates.html
4. Storage (2 hours) https://developer.android.com/training/basics/data-
storage/databases.html
5. Inter-app interaction (1 hour)
https://developer.android.com/training/basics/intents/sending.html
Validation 1. First 2 tasks are mandatory for all the developers. Validation will include
demonstration of the Android App deployed on the developer’s
smartphone/emulator.
2. Depending on which developer is responsible for which module, rest of the developers
will need to finish their respective trainings and demonstrate to rest of team to show
their understanding of the concepts.
Exit 1. All the developers finish their respective trainings.
2. At end of training developers will need to push their respective code to GIT repository. 97
Training Backup - Design Example
Android Training Objective:
Prioritized list of items, from most important concepts we are interested in learning to
least important:
1. UI Components and Event handling (List view, map view, tabs, controls widgets
[buttons, drop-down, spinner, etc.] derived from prototypes)
2. Activity Management - Activity, Services, Intent calls
3. Integrate with external APIs
4. Sensor Interaction (GPS)
5. Data Persistence (Local storage and MySQL storage)
6. Interact with other Apps (Invoke other mobile apps)
98
Training Backup - Experience & Area of Work
99

Más contenido relacionado

Was ist angesagt?

Case Study on agile scrum methodology on shopping cart
Case Study on agile scrum methodology on shopping cartCase Study on agile scrum methodology on shopping cart
Case Study on agile scrum methodology on shopping cartAbdullah Raza
 
Agile Lean Kanban in the Real World - A Case Study
Agile Lean Kanban in the Real World - A Case StudyAgile Lean Kanban in the Real World - A Case Study
Agile Lean Kanban in the Real World - A Case StudyRussell Pannone
 
Introduction to Project Management with Scrum
Introduction to Project Management with ScrumIntroduction to Project Management with Scrum
Introduction to Project Management with ScrumPierre E. NEIS
 
Agile Overview Session
Agile Overview SessionAgile Overview Session
Agile Overview SessionBahaa Farouk
 
Agile evm earned value management in scrum projects
Agile evm   earned value management in scrum projectsAgile evm   earned value management in scrum projects
Agile evm earned value management in scrum projectsJULIO GONZALEZ SANZ
 
Agile Software Development With SCRUM
Agile Software Development With SCRUMAgile Software Development With SCRUM
Agile Software Development With SCRUMAlexey Krivitsky
 
Agile Gurugram 2016 | Conference | Scaling Agile to Enterprises : Experience ...
Agile Gurugram 2016 | Conference | Scaling Agile to Enterprises : Experience ...Agile Gurugram 2016 | Conference | Scaling Agile to Enterprises : Experience ...
Agile Gurugram 2016 | Conference | Scaling Agile to Enterprises : Experience ...AgileNetwork
 
Agile2015 short paper presentation: Development of Complex Software with Agil...
Agile2015 short paper presentation: Development of Complex Software with Agil...Agile2015 short paper presentation: Development of Complex Software with Agil...
Agile2015 short paper presentation: Development of Complex Software with Agil...Alan Braz
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software DevelopmentTathagat Varma
 
Agile Scrum Training Process
Agile Scrum Training ProcessAgile Scrum Training Process
Agile Scrum Training ProcessClarion Marketing
 
Project Management With Scrum
Project Management With ScrumProject Management With Scrum
Project Management With ScrumTommy Norman
 
SAFe: An Introduction to the Scaled Agile Framework
SAFe: An Introduction to the Scaled Agile FrameworkSAFe: An Introduction to the Scaled Agile Framework
SAFe: An Introduction to the Scaled Agile Frameworkjaredrrichardson
 
Scrum methodology in practice
Scrum methodology in practiceScrum methodology in practice
Scrum methodology in practiceIllia Pinchuk
 
Waterfall vs agile approach scrum framework and best practices in software d...
Waterfall vs agile approach  scrum framework and best practices in software d...Waterfall vs agile approach  scrum framework and best practices in software d...
Waterfall vs agile approach scrum framework and best practices in software d...Tayfun Bilsel
 
Agile Scrum Overview
Agile  Scrum  OverviewAgile  Scrum  Overview
Agile Scrum OverviewJason Dean
 
Scrum methodology 
Scrum methodology Scrum methodology 
Scrum methodology SnehaRoy74
 
Introduction to Agile software testing
Introduction to Agile software testingIntroduction to Agile software testing
Introduction to Agile software testingKMS Technology
 
Agile - Scrum Presentation
Agile - Scrum PresentationAgile - Scrum Presentation
Agile - Scrum Presentationgihanlsw
 

Was ist angesagt? (20)

Case Study on agile scrum methodology on shopping cart
Case Study on agile scrum methodology on shopping cartCase Study on agile scrum methodology on shopping cart
Case Study on agile scrum methodology on shopping cart
 
Agile Lean Kanban in the Real World - A Case Study
Agile Lean Kanban in the Real World - A Case StudyAgile Lean Kanban in the Real World - A Case Study
Agile Lean Kanban in the Real World - A Case Study
 
Introduction to Project Management with Scrum
Introduction to Project Management with ScrumIntroduction to Project Management with Scrum
Introduction to Project Management with Scrum
 
Agile Overview Session
Agile Overview SessionAgile Overview Session
Agile Overview Session
 
Agile evm earned value management in scrum projects
Agile evm   earned value management in scrum projectsAgile evm   earned value management in scrum projects
Agile evm earned value management in scrum projects
 
Agile Software Development With SCRUM
Agile Software Development With SCRUMAgile Software Development With SCRUM
Agile Software Development With SCRUM
 
Agile Gurugram 2016 | Conference | Scaling Agile to Enterprises : Experience ...
Agile Gurugram 2016 | Conference | Scaling Agile to Enterprises : Experience ...Agile Gurugram 2016 | Conference | Scaling Agile to Enterprises : Experience ...
Agile Gurugram 2016 | Conference | Scaling Agile to Enterprises : Experience ...
 
Agile2015 short paper presentation: Development of Complex Software with Agil...
Agile2015 short paper presentation: Development of Complex Software with Agil...Agile2015 short paper presentation: Development of Complex Software with Agil...
Agile2015 short paper presentation: Development of Complex Software with Agil...
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software Development
 
Agile Scrum Training Process
Agile Scrum Training ProcessAgile Scrum Training Process
Agile Scrum Training Process
 
Project Management With Scrum
Project Management With ScrumProject Management With Scrum
Project Management With Scrum
 
SAFe: An Introduction to the Scaled Agile Framework
SAFe: An Introduction to the Scaled Agile FrameworkSAFe: An Introduction to the Scaled Agile Framework
SAFe: An Introduction to the Scaled Agile Framework
 
Introducing scrum
Introducing scrumIntroducing scrum
Introducing scrum
 
Scrum methodology in practice
Scrum methodology in practiceScrum methodology in practice
Scrum methodology in practice
 
Waterfall vs agile approach scrum framework and best practices in software d...
Waterfall vs agile approach  scrum framework and best practices in software d...Waterfall vs agile approach  scrum framework and best practices in software d...
Waterfall vs agile approach scrum framework and best practices in software d...
 
Agile Scrum Overview
Agile  Scrum  OverviewAgile  Scrum  Overview
Agile Scrum Overview
 
Scrum methodology 
Scrum methodology Scrum methodology 
Scrum methodology 
 
Introduction to Agile software testing
Introduction to Agile software testingIntroduction to Agile software testing
Introduction to Agile software testing
 
Agile - Scrum Presentation
Agile - Scrum PresentationAgile - Scrum Presentation
Agile - Scrum Presentation
 
Reducing Cost With Agile
Reducing Cost With AgileReducing Cost With Agile
Reducing Cost With Agile
 

Andere mochten auch

Nr512 full course latest
Nr512 full course latestNr512 full course latest
Nr512 full course latestcoursesexams1
 
Nr512 full course latest
Nr512 full course latestNr512 full course latest
Nr512 full course latestcoursesexams1
 
Perú. Market study. Bebe de Paris. Franchise opportunity
Perú. Market study. Bebe de Paris. Franchise opportunityPerú. Market study. Bebe de Paris. Franchise opportunity
Perú. Market study. Bebe de Paris. Franchise opportunityElena Gomez del Pozuelo
 
L0 preinforme VELOCIDAD INSTANTÁNEA Y VELOCIDAD MEDIA
L0 preinforme VELOCIDAD INSTANTÁNEA Y VELOCIDAD MEDIAL0 preinforme VELOCIDAD INSTANTÁNEA Y VELOCIDAD MEDIA
L0 preinforme VELOCIDAD INSTANTÁNEA Y VELOCIDAD MEDIAKaren Serrano
 
Nr512 full course latest
Nr512 full course latestNr512 full course latest
Nr512 full course latestcoursesexams1
 
2e. Sharing Interesting Facts - Illustrating a Fact
2e. Sharing Interesting Facts - Illustrating a Fact2e. Sharing Interesting Facts - Illustrating a Fact
2e. Sharing Interesting Facts - Illustrating a Factaslmountainheightsacademy
 
Digital disruption survival guide
Digital disruption survival guideDigital disruption survival guide
Digital disruption survival guideSigortam.net
 
3d. Explaining Rules - Cultural Rules and Customs
3d. Explaining Rules - Cultural Rules and Customs3d. Explaining Rules - Cultural Rules and Customs
3d. Explaining Rules - Cultural Rules and Customsaslmountainheightsacademy
 
Prehistoria en fotos para primaria
Prehistoria en fotos para primariaPrehistoria en fotos para primaria
Prehistoria en fotos para primariaTeacherLucila
 
Pancasila sebagai Sistem Nilai
Pancasila sebagai Sistem NilaiPancasila sebagai Sistem Nilai
Pancasila sebagai Sistem Nilaidionteguhpratomo
 

Andere mochten auch (11)

Nr512 full course latest
Nr512 full course latestNr512 full course latest
Nr512 full course latest
 
Nr512 full course latest
Nr512 full course latestNr512 full course latest
Nr512 full course latest
 
Perú. Market study. Bebe de Paris. Franchise opportunity
Perú. Market study. Bebe de Paris. Franchise opportunityPerú. Market study. Bebe de Paris. Franchise opportunity
Perú. Market study. Bebe de Paris. Franchise opportunity
 
ARNHEM
ARNHEMARNHEM
ARNHEM
 
L0 preinforme VELOCIDAD INSTANTÁNEA Y VELOCIDAD MEDIA
L0 preinforme VELOCIDAD INSTANTÁNEA Y VELOCIDAD MEDIAL0 preinforme VELOCIDAD INSTANTÁNEA Y VELOCIDAD MEDIA
L0 preinforme VELOCIDAD INSTANTÁNEA Y VELOCIDAD MEDIA
 
Nr512 full course latest
Nr512 full course latestNr512 full course latest
Nr512 full course latest
 
2e. Sharing Interesting Facts - Illustrating a Fact
2e. Sharing Interesting Facts - Illustrating a Fact2e. Sharing Interesting Facts - Illustrating a Fact
2e. Sharing Interesting Facts - Illustrating a Fact
 
Digital disruption survival guide
Digital disruption survival guideDigital disruption survival guide
Digital disruption survival guide
 
3d. Explaining Rules - Cultural Rules and Customs
3d. Explaining Rules - Cultural Rules and Customs3d. Explaining Rules - Cultural Rules and Customs
3d. Explaining Rules - Cultural Rules and Customs
 
Prehistoria en fotos para primaria
Prehistoria en fotos para primariaPrehistoria en fotos para primaria
Prehistoria en fotos para primaria
 
Pancasila sebagai Sistem Nilai
Pancasila sebagai Sistem NilaiPancasila sebagai Sistem Nilai
Pancasila sebagai Sistem Nilai
 

Ähnlich wie PlacemakAR Application - Software Engineering Discussion

Agile Projects in Waterfall Surroundings - Challenges and Lessons Learned
Agile Projects in Waterfall Surroundings - Challenges and Lessons LearnedAgile Projects in Waterfall Surroundings - Challenges and Lessons Learned
Agile Projects in Waterfall Surroundings - Challenges and Lessons LearnedQAware GmbH
 
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnzLecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnzAhmadSajjad34
 
Research paper presentation on agile scrum
Research paper presentation on agile scrumResearch paper presentation on agile scrum
Research paper presentation on agile scrumAbdullah Raza
 
Agility : a Velvet Glove in an Iron FIst
Agility : a Velvet Glove in an Iron FIstAgility : a Velvet Glove in an Iron FIst
Agility : a Velvet Glove in an Iron FIstHSBC Private Bank
 
Working Agile with Scrum and TFS 2013
Working Agile with Scrum and TFS 2013Working Agile with Scrum and TFS 2013
Working Agile with Scrum and TFS 2013Moataz Nabil
 
ASPgems company profile
ASPgems company profileASPgems company profile
ASPgems company profileAgustin Cuenca
 
Nearshore Best Practices Workshop
Nearshore Best Practices WorkshopNearshore Best Practices Workshop
Nearshore Best Practices WorkshopVelocity Partners
 
Running Agile on a non-Agile Environment, by Nuno Caneco
Running Agile on a non-Agile Environment, by Nuno CanecoRunning Agile on a non-Agile Environment, by Nuno Caneco
Running Agile on a non-Agile Environment, by Nuno CanecoAgile Connect®
 
Running Scrum on a non-Agile environment - Tales from a past experience" By N...
Running Scrum on a non-Agile environment - Tales from a past experience" By N...Running Scrum on a non-Agile environment - Tales from a past experience" By N...
Running Scrum on a non-Agile environment - Tales from a past experience" By N...Agile Connect Lisbon
 
Agile Truths and Misconceptions
Agile Truths and MisconceptionsAgile Truths and Misconceptions
Agile Truths and MisconceptionsRichard Cheng
 
Advanced Web Development in PHP - Understanding Project Development Methodolo...
Advanced Web Development in PHP - Understanding Project Development Methodolo...Advanced Web Development in PHP - Understanding Project Development Methodolo...
Advanced Web Development in PHP - Understanding Project Development Methodolo...Rasan Samarasinghe
 
Agile software development
Agile software developmentAgile software development
Agile software developmentSiddharth Sharma
 

Ähnlich wie PlacemakAR Application - Software Engineering Discussion (20)

Agile Projects in Waterfall Surroundings - Challenges and Lessons Learned
Agile Projects in Waterfall Surroundings - Challenges and Lessons LearnedAgile Projects in Waterfall Surroundings - Challenges and Lessons Learned
Agile Projects in Waterfall Surroundings - Challenges and Lessons Learned
 
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnzLecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
 
Research paper presentation on agile scrum
Research paper presentation on agile scrumResearch paper presentation on agile scrum
Research paper presentation on agile scrum
 
20130411 velvet gloveagile
20130411 velvet gloveagile20130411 velvet gloveagile
20130411 velvet gloveagile
 
Agility : a Velvet Glove in an Iron FIst
Agility : a Velvet Glove in an Iron FIstAgility : a Velvet Glove in an Iron FIst
Agility : a Velvet Glove in an Iron FIst
 
Working Agile with Scrum and TFS 2013
Working Agile with Scrum and TFS 2013Working Agile with Scrum and TFS 2013
Working Agile with Scrum and TFS 2013
 
Metodologia scrum actualizada qa
Metodologia scrum actualizada qaMetodologia scrum actualizada qa
Metodologia scrum actualizada qa
 
ASPgems company profile
ASPgems company profileASPgems company profile
ASPgems company profile
 
Effective Scrum
Effective ScrumEffective Scrum
Effective Scrum
 
Nearshore Best Practices Workshop
Nearshore Best Practices WorkshopNearshore Best Practices Workshop
Nearshore Best Practices Workshop
 
VirendraResume (1)
VirendraResume (1)VirendraResume (1)
VirendraResume (1)
 
Scrum training
Scrum trainingScrum training
Scrum training
 
Scrum Training
Scrum TrainingScrum Training
Scrum Training
 
Running Agile on a non-Agile Environment, by Nuno Caneco
Running Agile on a non-Agile Environment, by Nuno CanecoRunning Agile on a non-Agile Environment, by Nuno Caneco
Running Agile on a non-Agile Environment, by Nuno Caneco
 
Running Scrum on a non-Agile environment - Tales from a past experience" By N...
Running Scrum on a non-Agile environment - Tales from a past experience" By N...Running Scrum on a non-Agile environment - Tales from a past experience" By N...
Running Scrum on a non-Agile environment - Tales from a past experience" By N...
 
Agile Truths and Misconceptions
Agile Truths and MisconceptionsAgile Truths and Misconceptions
Agile Truths and Misconceptions
 
Agile methodology
Agile methodologyAgile methodology
Agile methodology
 
Advanced Web Development in PHP - Understanding Project Development Methodolo...
Advanced Web Development in PHP - Understanding Project Development Methodolo...Advanced Web Development in PHP - Understanding Project Development Methodolo...
Advanced Web Development in PHP - Understanding Project Development Methodolo...
 
Introduction to Scrum
Introduction to ScrumIntroduction to Scrum
Introduction to Scrum
 
Agile software development
Agile software developmentAgile software development
Agile software development
 

Último

Steps to Successfully Hire Ionic Developers
Steps to Successfully Hire Ionic DevelopersSteps to Successfully Hire Ionic Developers
Steps to Successfully Hire Ionic Developersmichealwillson701
 
BATbern52 Swisscom's Journey into Data Mesh
BATbern52 Swisscom's Journey into Data MeshBATbern52 Swisscom's Journey into Data Mesh
BATbern52 Swisscom's Journey into Data MeshBATbern
 
Enterprise Content Managements Solutions
Enterprise Content Managements SolutionsEnterprise Content Managements Solutions
Enterprise Content Managements SolutionsIQBG inc
 
BusinessGPT - SECURITY AND GOVERNANCE FOR GENERATIVE AI.pptx
BusinessGPT  - SECURITY AND GOVERNANCE  FOR GENERATIVE AI.pptxBusinessGPT  - SECURITY AND GOVERNANCE  FOR GENERATIVE AI.pptx
BusinessGPT - SECURITY AND GOVERNANCE FOR GENERATIVE AI.pptxAGATSoftware
 
renewable energy renewable energy renewable energy renewable energy
renewable energy renewable energy renewable energy  renewable energyrenewable energy renewable energy renewable energy  renewable energy
renewable energy renewable energy renewable energy renewable energyjeyasrig
 
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptx
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptxCYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptx
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptxBarakaMuyengi
 
openEuler Community Overview - a presentation showing the current scale
openEuler Community Overview - a presentation showing the current scaleopenEuler Community Overview - a presentation showing the current scale
openEuler Community Overview - a presentation showing the current scaleShane Coughlan
 
03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...
03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...
03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...jackiepotts6
 
Technical improvements. Reasons. Methods. Estimations. CJ
Technical improvements.  Reasons. Methods. Estimations. CJTechnical improvements.  Reasons. Methods. Estimations. CJ
Technical improvements. Reasons. Methods. Estimations. CJpolinaucc
 
Einstein Copilot Conversational AI for your CRM.pdf
Einstein Copilot Conversational AI for your CRM.pdfEinstein Copilot Conversational AI for your CRM.pdf
Einstein Copilot Conversational AI for your CRM.pdfCloudMetic
 
Flutter the Future of Mobile App Development - 5 Crucial Reasons.pdf
Flutter the Future of Mobile App Development - 5 Crucial Reasons.pdfFlutter the Future of Mobile App Development - 5 Crucial Reasons.pdf
Flutter the Future of Mobile App Development - 5 Crucial Reasons.pdfMind IT Systems
 
Boost Efficiency: Sabre API Integration Made Easy
Boost Efficiency: Sabre API Integration Made EasyBoost Efficiency: Sabre API Integration Made Easy
Boost Efficiency: Sabre API Integration Made Easymichealwillson701
 
Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...
Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...
Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...MyFAA
 
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...telebusocialmarketin
 
Practical Advice for FDA’s 510(k) Requirements.pdf
Practical Advice for FDA’s 510(k) Requirements.pdfPractical Advice for FDA’s 510(k) Requirements.pdf
Practical Advice for FDA’s 510(k) Requirements.pdfICS
 
Unlocking AI: Navigating Open Source vs. Commercial Frontiers
Unlocking AI:Navigating Open Source vs. Commercial FrontiersUnlocking AI:Navigating Open Source vs. Commercial Frontiers
Unlocking AI: Navigating Open Source vs. Commercial FrontiersRaphaël Semeteys
 
Mobile App Development company Houston
Mobile  App  Development  company HoustonMobile  App  Development  company Houston
Mobile App Development company Houstonjennysmithusa549
 
VuNet software organisation powerpoint deck
VuNet software organisation powerpoint deckVuNet software organisation powerpoint deck
VuNet software organisation powerpoint deckNaval Singh
 
Building Generative AI-infused apps: what's possible and how to start
Building Generative AI-infused apps: what's possible and how to startBuilding Generative AI-infused apps: what's possible and how to start
Building Generative AI-infused apps: what's possible and how to startMaxim Salnikov
 

Último (20)

Steps to Successfully Hire Ionic Developers
Steps to Successfully Hire Ionic DevelopersSteps to Successfully Hire Ionic Developers
Steps to Successfully Hire Ionic Developers
 
BATbern52 Swisscom's Journey into Data Mesh
BATbern52 Swisscom's Journey into Data MeshBATbern52 Swisscom's Journey into Data Mesh
BATbern52 Swisscom's Journey into Data Mesh
 
Enterprise Content Managements Solutions
Enterprise Content Managements SolutionsEnterprise Content Managements Solutions
Enterprise Content Managements Solutions
 
BusinessGPT - SECURITY AND GOVERNANCE FOR GENERATIVE AI.pptx
BusinessGPT  - SECURITY AND GOVERNANCE  FOR GENERATIVE AI.pptxBusinessGPT  - SECURITY AND GOVERNANCE  FOR GENERATIVE AI.pptx
BusinessGPT - SECURITY AND GOVERNANCE FOR GENERATIVE AI.pptx
 
renewable energy renewable energy renewable energy renewable energy
renewable energy renewable energy renewable energy  renewable energyrenewable energy renewable energy renewable energy  renewable energy
renewable energy renewable energy renewable energy renewable energy
 
20140812 - OBD2 Solution
20140812 - OBD2 Solution20140812 - OBD2 Solution
20140812 - OBD2 Solution
 
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptx
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptxCYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptx
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptx
 
openEuler Community Overview - a presentation showing the current scale
openEuler Community Overview - a presentation showing the current scaleopenEuler Community Overview - a presentation showing the current scale
openEuler Community Overview - a presentation showing the current scale
 
03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...
03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...
03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...
 
Technical improvements. Reasons. Methods. Estimations. CJ
Technical improvements.  Reasons. Methods. Estimations. CJTechnical improvements.  Reasons. Methods. Estimations. CJ
Technical improvements. Reasons. Methods. Estimations. CJ
 
Einstein Copilot Conversational AI for your CRM.pdf
Einstein Copilot Conversational AI for your CRM.pdfEinstein Copilot Conversational AI for your CRM.pdf
Einstein Copilot Conversational AI for your CRM.pdf
 
Flutter the Future of Mobile App Development - 5 Crucial Reasons.pdf
Flutter the Future of Mobile App Development - 5 Crucial Reasons.pdfFlutter the Future of Mobile App Development - 5 Crucial Reasons.pdf
Flutter the Future of Mobile App Development - 5 Crucial Reasons.pdf
 
Boost Efficiency: Sabre API Integration Made Easy
Boost Efficiency: Sabre API Integration Made EasyBoost Efficiency: Sabre API Integration Made Easy
Boost Efficiency: Sabre API Integration Made Easy
 
Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...
Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...
Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...
 
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...
 
Practical Advice for FDA’s 510(k) Requirements.pdf
Practical Advice for FDA’s 510(k) Requirements.pdfPractical Advice for FDA’s 510(k) Requirements.pdf
Practical Advice for FDA’s 510(k) Requirements.pdf
 
Unlocking AI: Navigating Open Source vs. Commercial Frontiers
Unlocking AI:Navigating Open Source vs. Commercial FrontiersUnlocking AI:Navigating Open Source vs. Commercial Frontiers
Unlocking AI: Navigating Open Source vs. Commercial Frontiers
 
Mobile App Development company Houston
Mobile  App  Development  company HoustonMobile  App  Development  company Houston
Mobile App Development company Houston
 
VuNet software organisation powerpoint deck
VuNet software organisation powerpoint deckVuNet software organisation powerpoint deck
VuNet software organisation powerpoint deck
 
Building Generative AI-infused apps: what's possible and how to start
Building Generative AI-infused apps: what's possible and how to startBuilding Generative AI-infused apps: what's possible and how to start
Building Generative AI-infused apps: what's possible and how to start
 

PlacemakAR Application - Software Engineering Discussion

  • 1. Team Augmented Reality EOSP Presentation 1 Presenters – Kanishk Karanawat & Yashasvi Vedula Zexi Chen, Tijing Wang
  • 2. Contents 2 1. Project Context 2. Requirements Management 3. Process 4. Risk Management 5. Project Management - Planning & Tracking 6. Architecture 7. Quality Management 8. Configuration Management 9. Training
  • 4. Client: › NextGen:PGH: Non-profit startup › Executive Director: Alec Rieger Mentor: › Bradley Schmerl 4 People Involved 4
  • 5. Team: Kanishk Karanawat (Chief Architect, Configuration Manager) Tijing Wang (Risk Manager) Yashasvi Vedula (QA Manager) Zexi Chen (Project Manager) People Involved 5
  • 6. Client Background Currently involved in actively organizing night markets and cultural festivals in Pittsburgh. Wishes to leverage AR technology to spread culture and build community. 6
  • 9. Short-term Goals › Deploy Android app on Play Store (End of July) › Must augment 2D images on at least 3 places of interest on the CMU campus New goal: Showcase Augmented Reality capabilities through proof of concept: ● Render AR Videos ● Interactable AR Content ● Geo-location based AR Content Project Goals 9
  • 10. Requirements Management ● Create user stories at the start of every sprint ● Get user stories prioritized and approved by the client after the sprint planning meeting ● Need client sign-off regarding prototypes, before development can begin 10
  • 11. ● Product backlog for prioritization of user stories ○ AR tasks high priority ○ Other mobile tasks medium priority ○ Web Portal tasks low priority ● Initial release doc guides us in managing requirements ○ Final aim to achieve campus tours ○ Work on components/features leading to campus tour Requirements Management 11
  • 13. Process Showcas e AR Features Deploy to Play Store Project Scope Changes # Action Outcome 1. Change process from OUP to SCRUM Regular client demo/feedback, Higher flexibility to re- prioritize tasks. Used old Release plan to make Product Backlog 2. “Could Haves” priority increased Render video, Interact with AR 3. “Should Haves” priority decreased Social Media integration, Web Preview Mode, Mobile Register/Login 13
  • 14. • Artifacts: Product backlog, Scrum Backlog, Burndown charts, Team velocity, Meeting minutes, Meeting presentation slides • Process: SCRUM planning meeting (Tuesdays), Stand-up meeting (everyday), Sprint retrospective meeting (Monday), Demo (Monday) • Sprints: 2 week sprints Process: Scrum+ 14
  • 15. • Tailored: Incorporated risk management, quality assurance and architecture into the scrum process • Evolving: in every retrospective meeting we discussed what changes are required • Example: In early sprints we realized that some members are not logging work in time in JIRA, which will impact project tracking, so we decided to log work before each standup meeting. Made this a routine in our process. Process: Scrum+ 15
  • 16. Entry: Finish the last release Tasks: 1. Discuss with product owner and add new user stories in product backlog, if needed 2. Pull user stories from product backlog and add it to sprint backlog in JIRA 3. Break the stories into tasks and conduct code design for the functionalities (class diagram) 4. Review if the detailed code design is consistent with our high level architecture 5. Estimate the time for each task (Planning Poker) . . . . . . Planning process 16
  • 17. Verification: 1. All tasks with estimates added in JIRA by SCRUM master 2. SCRUM master checks if planned time estimate higher than available development time. If higher, then put the lower priority tasks back into backlog. Inform product owner about the change Exit: 1. Add tasks to sprint backlog 2. Assign sprint backlog tasks to individuals 3. Assign the related quality assurance tasks to individuals Planning process 17
  • 18. Development Process: Organization 3 Dev Teams: • Web Server Team: Responsible for managing REST API services and database (MySQL, S3 Bucket) • Android App Team (Client): Responsible for the AR application • Web Portal Team (Client): Responsible for artist and moderator functionalities 18
  • 19. Development Process: Organization Names Android App Web Portal Web Services (API + Database + Monitoring) Kanishk X X Yash X Zexi X X Tijing X X 19
  • 20. Development Process • Process • At the start of the sprint, Web Server team will design APIs and expose them via Swagger. • Mobile & web portal team will edit/design prototype, via Proto.io, and get client sign-off • All 3 teams commence coding once design/prototype is confirmed 20
  • 22. Development Process • Scrum master checklist: • Assign quality assurance tasks (static analysis, inspection, unit testing, etc.) • Task dependency analysis to determine order of certain tasks • Coordinate workload between team members 22
  • 23. Reflections Switching to SCRUM gave us flexibility with requirements. Client was very happy to see his continuous feedback taken into account 23
  • 25. Risk Management Process in Scrum ● In every daily standup meeting, the team communicate and discuss about the risk. ● In every week’s client meeting and team meeting, identify the risks based on the decision making. ● In every sprint planning meeting, discuss and allocated tasks related to risk mitigation and assign tasks ● In every sprint retrospective meeting, discuss the risk status and complete the detailed risk document. Discuss the status of the assigned task ● Maintain a risk track document to monitor the status of the risks. If any risk deadline is a week away, then notify team. 25
  • 27. ID 8 Condition Target tracking is to be carried out mostly using markers. Date Identified 28-Mar-2016 Impact 1 Probability 2 Consequence 1. Some locations may not allow the placing of markers directly on them. 2. The marker sizes required for tracking from a “satisfactory” distance may be impractical. Mitigation 1. Experiment to identify relation between marker’s size and tracking distance 2. Communicate with university authorities to discuss possibility of placing markers around campus 3. Explore geolocation as a strategy for augmentation at POI Deadline 5-May-2016 25-July-2016 Status Mitigated Updates 6-Apr-2016: Experimentation on marker sizes concluded 13-Apr-2016: Client meets with ex-President of CMU to introduce app. 5-July-2016: We have explore the geolocation augmentation way, and demonstrated it satisfactorily to the client. We need to ensure that all the final POIs on CMU campus can be tracked using an appropriate marker. 12-July-2016: Ensured and limited four POIs on CMU campus. Risk Example 27
  • 29. • Strategic Plan: Track using milestone plan • Tactical Plan: Track using burndown chart, velocity chart, and time distribution chart • JIRA used by Scrum Master to assign tasks and manage Product and Sprint backlog Tracking 29
  • 30. • Every task’s progress is logged in JIRA for creating burndown chart • If we can’t finish all the task in one sprint, we push tasks into the next sprint based on priority • We use time percentage chart to view whether we are spending too much time in meeting or too little time in quality assurance. Tracking 30
  • 31. 31
  • 33. Velocity 33 sprint 1 0.961039 sprint 2 0.851613 sprint 3 0.898204 sprint 4 0.967532
  • 34. Initial Time Distribution Plan 5h = meeting [2h (iteration plan) + 1h team + 1h client + 1h mentor] 7h = Common time coding 1h = Documentation 5h = Individual Role + QA 6h = Individual coding & Unit Overall 55% : Work with team 45% : Work individually 34
  • 36. Reflections We initially used to plot burndown chart upon 100% task completion • Gave team wrong impression about effort & status • Instead we started plotting on basis of progress. This improved our tracking 36
  • 38. Quality Attributes - Extensibility Scenarios & Measure • Ability to add new AR content, new POIs, new Tours • No disruption/downtime of any of the existing services or introducing defects in system Design Decision • 3-Tier Architecture • API-Driven Design Tradeoffs • System complexity increased • Increased latency (to fetch meta-deta) Outcome • Changes reflected in system in real-time (mobile app, web portal) • Reusability promoted (APIs reused by clients) • Allows us to scale in future (DB level) and use any DB storage solution and strategy • App re-deployment not required 38
  • 39. Quality Attributes - Modifiability Design Decision • Decided to use Wikitude Javascript SDK instead of Native SDK (Java) • AR files stored in data tier (S3 bucket) Tradeoffs • Increased code complexity (manage Android Java code as well as HTML/CSS/JS code) • Difficult to test using automation tools • JS SDK allows us to use HTML, JS, CSS code for AR functionalities instead of Java • No need to re-compile/build or deploy code • Changes reflected in system in real-time Scenarios & Measures • AR component should be modifiable - ability to add/edit AR screens and functionality dynamically • Should not require re-deployment Outcome 39
  • 40. Stateless Vert.x Process - Scalability Promoted Process Monitor - Availability Promoted Dynamic View - Web 40
  • 41. Quality Attribute Verification AIM: Both the software solution and hardware are able to meet the QA requirements. Evaluate T2.small instance (evaluating machine for PROD) Scenario 1: Time taken from the initiation of an action to the response being received must not exceed 5 seconds, when 100 concurrent users are accessing the system. (Average Load) Scenario 2: Despite having 100 concurrent requests, the time taken to download a graphics file of the largest size (HD quality image) must be kept under 5 seconds. (Peak Load) 41
  • 42. Quality Attribute Verification AIM: Both the software solution and hardware are able to meet the QA requirements. Evaluate T2.small instance (evaluating machine for PROD) Scenario 3: 100 users simultaneously reading/uploading data to server & response time should be less than 5 seconds. (Mixed Load) Scenario 4: 100 users simultaneously uploading 10MB content. System should not crash and should handle these requests. (Stress test) 42
  • 43. QA Scenario 3 - Mixed Load 43 # Users RPS Latency (sec) 1. 100 55 1.7 2. 200 59 3.2 3. 300 78 3.7 Scenario 3: Mixed Load - 100 users simultaneously reading/uploading data to server & response time should be less than 5 seconds. Action: POST: /pois/{poiId}/ar/{arId}/uploadContent/{contentType GET requests : POI, AR, Campus 1 MB data upload size. Results: CPU utilization: 9% Memory utilization: 17% (300 users)
  • 44. Locust Report - Scenario 3 for 100 users 44
  • 45. Scenario 4: Stress test - 100 users simultaneously uploading 10MB content. System should not crash and should handle these requests. Action: 10 MB data uploaded for 5 minutes Results: CPU Utilization 44% and Memory Utilization 60% Helped found memory related bug in code (Vert.x memory settings different from JVM XmX settings) 45 # Users RPS Latency (sec) Comments 1. 25 1.1 15.8 30% CPU 30% Memory 2. 50 1.2 32 40% CPU 32% Memory 3, 75 1 52 30% CPU 56% Memory 4. 100 1 36 44% CPU 60% Memory QA Scenario 4 - Stress Test
  • 48. Static Analysis • Integrated the CheckStyle plugin into the IDEs (IntelliJ for both Android and Java) • Modified the default ruleset to exclude some rules. For eg. lines beyond 80 characters • We had been using Stan4J to generate LCOM4 and cyclomatic complexity metrics • In end used SonarQube to verify out metrics. Mainly concerned with Maintainability index. 48
  • 50. Integration Testing - Android • Junit unit testing only runs on JVM and not on Android VM. Therefore, difficult to test Android Activity Lifecycle. • The close coupling of AR, UI, and location-aware functionality made unit testing difficult on Android. Java and JS code also heavily dependent • Used instrumentation testing. Runs on Android phone on Android VM. Hooks to control Android Activity Lifecycle • We used Robotium on Android to write automated scripts to test the application after each new module. 50
  • 51. Integration Testing – Web Services • For the web services part, we extend JUnit to call the actual web services during integration testing (as opposed to mocking web requests in unit testing) 51 Planned coverage: Line - 100% Branch - 80% Actual coverage: Line - 83% Branch - 35% Test Cases: 61
  • 52. • We used all-pairs combinatorial testing to test our mobile application in subsequent phases • Used the classification tree approach to generate test cases System Testing 52
  • 53. System Testing 53 Consider various characteristics while designing the classification tree: • Geofence • Wifi/Net conditions • Lighting condition • AR Content type • Phone Orientation • User’s walking speed …..
  • 54. Reflections • As UI and functionality get more intertwined, it gets more difficult to test separate units. In such cases, traditional methods and metrics become hard to follow. We had difficult time differentiating between unit tests & integration tests and had to define our own terminologies. • We initially wanted to automate all our tests, but later realized that for location and AR use cases, manual testing may be a more thorough alternative. 54
  • 56. Bitbucket Repository: Code version control (2 repos: Android code, Web server & Web portal Code) Jenkins Continuous Integration: Build Changes & Deploy (Archive Successful Builds, Auto- Polling every minute) AWS Dev Env: Restart process for latest changes to reflect Release branch: created for configuration management & deployments Flow Commit Auto-Pull Build Deploy Process Restarted Branching 56
  • 57. Branching Strategy masterfeaturerelease v0.1 v0.2 v0.3 v 1.0 Branch Pull & Integrate Merge Branch Push Bug Fixes 57
  • 59. Training • Trainings for Android, Wikitude SDK (Android), Web Development (Bootstrap, JQuery), Vert.x Web Server & Bitbucket • ETVX process followed: • Entry: Environment setup/Software installation on local machines • Task: Training Tasks mapped with learning outcomes • Validation: Demonstration of training tasks • Exit: Check-in training source code 59
  • 60. Training 60 • Training designed to include common functionalities used in projects (Derived from list of requirements to be implemented) • Different set of trainings for developers with Beginner and Intermediate experiences • Different trainings for different developers (based on assigned system)
  • 61. • Structured process helped everyone to have common understanding & establish terminology. • Used common working hours for training. Helped beginners to learn from more experienced developers. Saved us time in configuration issues & training task issues • Local system setup helped us start development immediately after training • Still need for individual custom trainings for personal learning Reflection 61
  • 64. Top 3 Risks Risk 3 : A number of successful AR SDKs, such as Metaio and ARPA, have been discontinued with no prior warning to developers. Thus, there is some concern that the same may happen to the SDK picked by the team. Risk 18: The marker tracking is dependant on the lighting conditions as well as the distance. Risk 16: Communication is delayed sometimes when some issue is experienced, while working on a task 64
  • 65. ID 17 Condition Client will be unavailable from last week of July onwards till end of project Date Identified 28-Jun-2016 Impact 1 Probability 4 Consequence Since client is non-technical and will be out of town, it would be difficult to have the handover process as well as receive final sign-off. Mitigation 1. Initiate the handover process early 2. Start user acceptance testing early 3. Devise handover plan and give handover when client is available in town, and handover easier part through phone/mail communication Deadline 20-July-2016 Status Mitigated Risk Example - 2 65
  • 66. 6. Make user stories for this release 7. Make prototype in proto.io for these stories 8. Have client approve the prototype 9. If not approved, change the prototype accordingly and get approved 10. Break the stories into tasks and conduct code design for the functions (class diagram) 11. Review if the detailed code design is consistent with our high level architecture 12. Estimate the time for each task 13. Put the tasks in the product backlog using JIRA Backup - Planning process continued 66
  • 67. API Dependency Issue - Backup API Dependency issue: • How to coordinate effectively between REST API team and Client team (mobile and web)? • Communicate and have common understanding about data model • Understanding regarding JSON data returned • Common understanding between error handling • Common understanding between HTTP methods available • Initially ran into delays due to dependencies 67
  • 68. API Dependency 68 • Solution: Use Swagger Helps design, test, document APIs Web UI to explore APIs. Provides documentation. Run APIs Documentation can be used by future teams as well to understand existing APIs http://placmakarapi.cf:8081/
  • 70. Process Backup - Scrum+ Example : Stand up meeting 15 minutes daily stand-up Entry: 4 team members are attending the meeting. Tasks: Discuss daily progress, including 1. What each team member did yesterday and what he is working on today 2. What are the problems and difficulties 3. What are the concerns (risks). 4. Log work in JIRA 70
  • 71. Process Backup - Scrum+ Example: Stand up meeting Verification: 1. All the steps above are followed. 2. JIRA is updated Exit: 1. Finish the meeting 2. Scrum master updates Burndown chart 71
  • 72. Process Backup - Retrospective Process Entry: Finish the last sprint. Finish the sprint review (sprint demo) meeting. Tasks: A. Discuss last retrospective decisions: whether they have been met. B. Discuss what the team should: Start doing, Stop doing,Continue doing. A. Vote on the matters: Extra tasks: Calculate velocity ; Tracking: collecting individual feedback on quality assurance tasks as metrics. Collecting feedback on the above discussion as metrics. JIRA update Verification: All the steps above are followed. Exit: The list of decisions are documented. 72
  • 76. Code Readability & Maintainability increase Code Re-usability increases Static View - Mobile Back 76
  • 77. Instance Monitor - Availability Promoted Backup: Physical View 77
  • 81. Architecture Backup - Test Environment Test Environment: 1. Machine for generating requests C4.2x large (8 cores 15GB RAM) 2. Locust used for load testing. 3. Tested T2.small instance (evaluating machine for PROD) 4. Delay between 2 consecutive requests : minimum : 5ms & max: 50ms 81
  • 82. Architecture Backup - QA Scenario 1 - Average Load CPU utilization: 7% Memory utilization: 7% (300 users) GET requests : POI, AR, Campus # Users RPS Latency (ms) 1. 100 223 426 2. 200 205 936 3. 300 215 1359 82
  • 83. Architecture Backup - QA Scenario 2 - Peak Load Scenario 2: Despite having 100 concurrent requests, the time taken to download a graphics file of the largest size (HD quality image) must be kept under 5 seconds. Action: Download from S3 10 MB payload 83 # Users RPS Latency (seconds) 1. 100 25 3.7 2. 200 20 7.8 3. 300 19.3 10.7
  • 84. Scenario 2: Despite having 100 concurrent requests, the time taken to download a graphics file of the largest size (HD quality image) must be kept under 5 seconds. Action: 3 MB Payload 84 # Users RPS Latency (seconds) 1. 100 70 1.2 2. 200 82 2.3 3. 300 80 3.5
  • 85. Total Cost Per Month = $28.04 Final Infrastructure Cost 85 # Component Type Quantity Cost Comments 1. AWS EC2 Instance t2.small 1 $19.04 For hosting the web server, application servers and database server (and build server for continuous integration, if required) 2. Elastic Block Storage SSD Storage 1 $0.50 For permanent data storage (software installations, source code, database data) 3. S3 Bucket - 1 $1.50 For storage of multimedia content 4. CloudWatch/ Auto Scaling - 1 $6.5 For real-time monitoring, alerting, availability 5. Route 53 - 1 $0.50 For DNS Mapping Finalized T2.Small instance for deployment, based on QA Verification
  • 88. Static Analysis – Stan4J 88
  • 89. QA Backup - Defect Metrics 89 Date Module Defects KLOC Defects/KLOC Comments 23-Jun-2016 Android App 5 3.7 1.35 Defects logged in Jira 14-Jul-2016 Web Services 6 1.9k 3.16 Unit testing defects 14-Jul-2016 Web Services 2 1.9k 1.05 After removing unit test defects 20-Jul-2016 Android App 3 4.8 0.625 Defects logged in Jira 24-Jul-2016 Android App 0 5.1 0 Defects resolved 1-Aug-2016 Android App 7 5.1 1.37 Combinatorial testing started
  • 90. Static Analysis – Web Services 90 Alll REST APIs documented using Swagger: http://placmakarapi.cf:8081/
  • 93. • Only for critical modules • Inspection checklist provides inspectors with guidelines • Inspection document to keep track of defects encountered during inspection Review/Inspect 93
  • 94. Inspection Sample 94 # Module File Type Line Defect Solution Web Server/ app_server org.ngpgh.ar.webser ver.model.PoiModel Variable name 4 Variable name poidID is incorrect based on API contract Re-name to poiID 2 Web Server/ app_server org.ngpgh.ar.webser ver.controller.MainRo uter API Implementation 260 GET /pois/{poiID}/ar (Function getArListByPoiID) Does not implement query parameter “size” 3 Web Server/ app_server org.ngpgh.ar.webser ver.dao.ArDao Coding Style 82 ArrayList is created and then converted to Array which is returned. Extra code written for this operation. Return ArrayList instead and remove array conversion code. 4 Web Server/ app_server org.ngpgh.ar.webser ver.controller.MainRo uter Refactor 292 GET /pois/:poiId/ar/retrieveByField implementation has duplicate code from API - GET /pois/:poiId/ar/ Remove duplication to improve readability 5 Web Server/ app_server org.ngpgh.ar.webser ver.model.UserModel API Implementation 6 Variable name userID is missing from POJO, based on API contract Add field userID in POJO and also in corresponding DAO 6 Web Server/web_por tal login.html Missing field Field zip code is missing in registration page as requested by client Add this field in html page as well as in database
  • 95. User Acceptance Testing • Carried out in every demo meeting with the client • We ask the client to use a feature implemented for each user story • His feedback is recorded and any recommended changes are added as enhancement tasks for the next sprint 95
  • 96. User Story With Acceptance Criteria Example 96 User Story 11: As a CMU admin, I want to render interactable AR content, so that the students can gain more information about Campus locations/events UAT-11a: User must be able to render at least one button over the CMU map on Forbes and Morewood. The user must be able to click this button, which would then invoke a side drawer. This side drawer would display information on the specific location corresponding to the button clicked. User Story 12: As a mobile app user, I want to see all the nearby POIs in a map view, so that I can easily visualize all the nearby POIs. UAT-12a : The user must be able to see a Google Map with exactly 5 markers corresponding to the 5 POIs. On clicking the marker on the map, an info-window must be displayed to the user with the title and description of the POI. 1.UAT-12b : The user must be able to click the info-window to be directed towards the page where the details of the specific POI selected are displayed.
  • 97. Training Sample Name Android Training 1 - Time Estimate 8 hours Entry 1. Download Android Studio (https://developer.android.com/studio/index.html) 2. Read “DevPlanEstimationNextSem2.0” document to get better understanding of the various systems and modules to be developed. Tasks 1. (For beginners)Create a hello world Android App (2 hours) Outcome: Learn usage of basic UI components, activity management, intent calls. https://developer.android.com/training/basics/firstapp/index.html OR (For intermediate users) Interactive Story app (3 hours) Outcome: Advanced app which demonstrates usage of MVC pattern, and more control widgets, as well as activity management. https://teamtreehouse.com/library/build-an-interactive-story-app 2. (Advanced) Weather App (4 hours) Outcome: Learn integration with 3rd party API, JSON Parsing https://teamtreehouse.com/library/build-a-weather-app 3. GPS location updates (1 hour) https://developer.android.com/training/location/receive-location-updates.html 4. Storage (2 hours) https://developer.android.com/training/basics/data- storage/databases.html 5. Inter-app interaction (1 hour) https://developer.android.com/training/basics/intents/sending.html Validation 1. First 2 tasks are mandatory for all the developers. Validation will include demonstration of the Android App deployed on the developer’s smartphone/emulator. 2. Depending on which developer is responsible for which module, rest of the developers will need to finish their respective trainings and demonstrate to rest of team to show their understanding of the concepts. Exit 1. All the developers finish their respective trainings. 2. At end of training developers will need to push their respective code to GIT repository. 97
  • 98. Training Backup - Design Example Android Training Objective: Prioritized list of items, from most important concepts we are interested in learning to least important: 1. UI Components and Event handling (List view, map view, tabs, controls widgets [buttons, drop-down, spinner, etc.] derived from prototypes) 2. Activity Management - Activity, Services, Intent calls 3. Integrate with external APIs 4. Sensor Interaction (GPS) 5. Data Persistence (Local storage and MySQL storage) 6. Interact with other Apps (Invoke other mobile apps) 98
  • 99. Training Backup - Experience & Area of Work 99

Hinweis der Redaktion

  1. We still used our old Release plan to make sure we stick to main agenda (campus tours) but based on user feedback allow re-priortization of tasks
  2. Scalability also covered as we dnt want any disruption when lot of new content is added
  3. Mostly concnerned with maintainbility index and make sure Javadoc comments, hard-coding magic numbers is avoided Managed 3 diff source codes – Android, 2 Web component In java did manual testing instead of automated testing We defined unit test as testing one feature/characteristic and & integration as testing multiple together QA manager periodically generated reports using Stan4j tool User acceptance testing, where we demonstrated our product at end of sprint and went through the aceptance criteria of the user stories. Released code in a separate branch
  4. Rating A, Tech Debt Ratio 4%, 5k LOC 1200 Comments Line
  5. After researching we found out that junit will only test Java & JVM code, App location aware and Ar component.
  6. Jenkins archive helped us in of our demos as once one of the developers didn’t follow the QA process and pushed changes for demo. When the new deployment broke, we could quickly roll back to previous version to proceed with demo.
  7. Add technical risk- AR tracker detection from particular distance/angle
  8. Handover plan included: User manuals: Android App, Web Portal, AWS Portal, Technical Repo (containing architecture docs, source code), Web API Documentation