Mobile Proctoring Simple Estimate

Mobile Proctoring Simple Estimate

What we are doing. Candidates take proctored assessments on desktop today. A mobile app (built by another team) will open the assessment in a mobile webview and proctor the candidate. Our part is to give candidates a link that opens the app, support the app team when they need us, make it safe and reliable, and test it.

Mobile App Proctoring: Simple Estimate
Deep linking, adhoc support, NFR and testing | 2 Developers + 1 QA | 6 sprints of 2 weeks (one quarter) | Effort in days
1. Summary
The answer in one line: about 91 days of work (52.5 Dev + 38.5 QA). Adding a safety margin gives 103 days (60.5 Dev + 42.5 QA). This fits comfortably inside 6 sprints (one quarter).
AreaDev daysQA daysTotal days
1. Planning and Setup43.57.5
2. Deep Linking18927
3. Adhoc Support for the App Team81.59.5
4. Non-Functional Requirements (NFR)131124
5. Testing and Release9.513.523
Work total52.538.591
Safety margin (Dev 15%, QA 10%)8412
Grand total60.542.5103
2. How to Read the Estimate
  • Every task has a size: S = up to 1.5 days, M = 2 to 3 days, L = 4 days or more.
  • Each task shows Dev days (building) and QA days (testing that task). Both are in working days for one person.
  • A safety margin is added at the end for surprises: 15% for Dev, 10% for QA.
  • Sprint shows when the task is done. S1 means Sprint 1.
3. Estimates by Area
1. Planning and Setup

Get everyone aligned before building.

IDTaskSizeDev daysQA daysTotal daysSprint
P1Agree with the app team how the link looks and what the app does when it opensM30.53.5S1
P2Set up test environments, a domain for links, test data and test devicesS112S1
P3Write the test plan and test cases–022S1
Total43.57.5
2. Deep Linking

Links that open the app on Android and iPhone.

IDTaskSizeDev daysQA daysTotal daysSprint
D1Create the link: a safe, expiring link for each candidate and assessmentL426S1
D2Detect Android, iPhone or computer and send the candidate to the right placeM314S2
D3iPhone setup (Universal Links): host the file that lets iOS open the appS10.51.5S2
D4Android setup (App Links): host the file that lets Android open the appS10.51.5S2
D5If the app is not installed, send the candidate to the Play Store or App StoreM213S3
D6Check the link when the app opens: expired, already used, wrong candidateM314S2
D7Put the link into invitation emails, SMS and the candidate portalM314S3
D8Handle links opened inside WhatsApp, Gmail and similar appsS123S3
Total18927
3. Adhoc Support for the App Team

Time kept aside to help the app team whenever they need it.

IDTaskSizeDev daysQA daysTotal daysSprint
S1Answer questions, join debugging calls, check logs, fix environment problems (about 1 day every 2 weeks per developer)L617S1-S6
S2Write the integration guide and API documentationM20.52.5S6
Total81.59.5
4. Non-Functional Requirements (NFR)

Making the links safe, fast and reliable.

IDTaskSizeDev daysQA daysTotal daysSprint
N1Security: links cannot be guessed, reused or shared; limit repeated attemptsM325S2
N2Speed and load: fast link opening, many candidates opening links at the same timeM336S4
N3Reliability: retries and clear messages when the network is poorM213S4
N4Compatibility: different Android and iOS versions, phones and mail appsS134S4
N5Logging and monitoring: record link events and failures, set up alertsM213S3
N6Privacy: no personal data in links or logsS10.51.5S3
N7Safe release: on/off switch (feature flag) and a way to roll backS10.51.5S4
Total131124
5. Testing and Release

Testing across everything, with the app team, and getting released.

IDTaskSizeDev daysQA daysTotal daysSprint
T1Automated tests for the link APIsS0.533.5S3
T2End to end test with the app team on real Android and iPhone devicesM246S5
T3Regression testing, two rounds, to make sure nothing existing broke–02.52.5S5-S6
T4Fix defects found during testing (about 10% of build effort)L527S3-S6
T5Support user acceptance testing (UAT)S1.51.53S6
T6Release readiness: final checks and go or no-goS0.50.51S6
Total9.513.523
4. Sprint Plan (6 sprints x 2 weeks)
SprintWeeksWhat happensTasksDev daysQA days
Sprint 11-2Planning and first link. Agree link design with the app team, set up environments, test plan, link creationP1, P2, P3, D195.7
Sprint 23-4Core deep linking. Routing, iPhone and Android setup, link checks, securityD2, D3, D4, D6, N1125.2
Sprint 35-6Fallbacks and invitations. Store fallback, links in emails and SMS, WhatsApp and Gmail handling, logging, API testsD5, D7, D8, N5, N6, T1, T4118.9
Sprint 47-8Speed, reliability and compatibility. Load testing, poor network handling, device and OS testing, safe release switchN2, N3, N4, N7, T49.58.3
Sprint 59-10Test with the app team. End to end on real devices with the app team build, first regression roundT2, T3, T456.2
Sprint 611-12UAT and release. Second regression round, UAT, documentation, go or no-goS2, T3, T4, T5, T664.3
Total52.538.5

Adhoc support (S1) is spread evenly across all 6 sprints and is included in the Dev and QA days above.

5. Do We Have Enough People?
RoleAvailable in 6 sprintsNeeded (with safety margin)UsedMeaning
2 Developers120 days60.5 days50%Plenty of room. Spare time absorbs extra adhoc requests, leave and holidays.
1 QA60 days42.5 days71%Comfortable. Busiest in Sprints 3 to 5.

The work itself is about 4 sprints of effort. Six sprints leaves space for waiting on the app team, adhoc support and fixes. If the app team’s build arrives late, the end to end testing in Sprint 5 is what moves.

6. Not Included in This Estimate
Not included
Mobile webview work (done by another team)
Mobile app development and its proctoring logic (done by another team)
Any changes inside our assessment application to make it run in the webview (for example launch token, mobile page fixes, resume after interruption, handshake with the app)
App side deep link handling, and publishing the app to the stores
Support after go-live (hypercare)
Please confirm. If our assessment application also needs changes so that it runs properly inside the webview, that is extra work and is not counted here. My earlier detailed estimate put it at roughly 36 dev days and 15 QA days. It should be agreed with the app team before this plan is final.
7. NFR Issues to Watch
IssueWhat can go wrongTaskSeverity
Link opens in the browser instead of the appLinks typed in the address bar or with a wrong setup open the website, not the appD2, D3, D4High
Links opened inside WhatsApp, Gmail or social appsThese apps open links in their own browser and the app never startsD8Medium
Link shared with someone elseAnother person could start the candidate’s assessmentD1, D6, N1High
Everyone opens the link at the same timeExam start causes a rush and slows the serviceN2High
Poor mobile networkThe link or page fails to load, or the candidate sees an unclear errorN3Medium
Different phones and Android/iOS versionsBehaviour differs between devices and mail appsN4Medium
App not installed or out of dateThe candidate reaches the web with no way to be proctoredD5, D6Medium
Hard to find problems between the app and our systemWithout shared logs, issues take a long time to traceN5, S1Medium
8. Main Risks and Questions
Risk or questionWhat we do
App team build or deep link setup (certificates, app ID) arrives lateAgree dates in Sprint 1; test our hosted files on their own first
Link design changes lateFreeze the design with the app team by the end of Sprint 1
Only one QADevelopers write unit tests and smoke tests; keep QA busy on automation early
Is webview support in our assessment app really out of scope?Confirm with the app team and product (see section 6)
Which Android and iOS versions must work, and how many candidates open links at once?Agree numbers in Sprint 1; they decide the test matrix and load tests

How to use in Confluence: open this file in a browser, select all, copy, and paste into a Confluence page in edit mode.