WatchTower
Sprint 2
This document locks the two-team prototype plan for Sprint 2 so both prototype teams stay aligned to one shared WatchTower product direction.
The goal of Sprint 2 is to build two different versions of the same WatchTower website/dashboard, compare both versions using shared criteria, and decide whether the final product should use Prototype 1, Prototype 2, or a hybrid of both.
Sprint 2 focuses on parallel prototype development, stronger engineering process, and prototype evaluation.
By the end of Sprint 2, the team should have:
Both teams are building versions of the same product:
WatchTower is a lightweight observability web application that captures and displays user events, JavaScript errors, browser performance metrics, user feedback, and related monitoring signals through a dashboard.
The prototypes should not become two separate products. They should explore two possible implementations of the same WatchTower vision.
Sprint 2 will use a two-track prototype model.
| Prototype | Purpose |
|---|---|
| Prototype 1 | Build one version of the WatchTower dashboard and event monitoring flow |
| Prototype 2 | Build a second version of the WatchTower dashboard and event monitoring flow |
At the end of the prototype phase, the team will evaluate both versions and choose one of the following paths:
The prototype comparison should be collaborative, not competitive in a negative way. The goal is to explore two possible directions, learn from both, and make the strongest final product decision.
| Role | Member | Responsibilities |
|---|---|---|
| Scrum Master | Aditya | Sprint coordination, blockers, GitHub Issues, PR flow, team alignment |
| Backend Lead | Aditya | Backend direction, event schema consistency, SDK/API alignment, testing/CI support |
| Architecture Mediator | Aditya | Ensure both prototypes stay aligned to the same WatchTower product |
| Frontend Lead | James | Frontend consistency, UI standards, dashboard layout guidance, frontend review |
Aditya will float between both prototype teams, with a primary focus on backend, architecture, CI/testing, security, and process consistency.
James will help guide frontend direction across both teams so the two prototypes remain comparable.
Prototype 1 will build one version of the WatchTower website/dashboard using the shared MVP requirements, event categories, and process standards.
| Member | Role | Responsibilities |
|---|---|---|
| James | Frontend Lead / UI Implementation | Lead frontend structure, dashboard layout, UI implementation, frontend review |
| Hieu | UI/UX + Prompt Engineer / Researcher | Wireframes, user flow, design reasoning, usability research, prompt support |
| Hemendra | Frontend Components / Styling Developer | Reusable components, styling consistency, layout cleanup, CSS organization |
| Member | Role | Responsibilities |
|---|---|---|
| Daniel | Backend / Instrumentation Developer | Backend logic, instrumentation flow, server/API support, testable backend behavior |
| Waleed | Event Schema / Data Flow / API Logic Developer | Event schema, data normalization, API response structure, stats/data flow |
Prototype 2 will build a second version of the same WatchTower website/dashboard. This version should explore a different implementation or design direction while still following the shared MVP expectations.
| Member | Role | Responsibilities |
|---|---|---|
| Alex | Frontend Developer | Frontend implementation, dashboard sections, UI behavior, prototype buildout |
| Fahad | Product/Design + Prompt Engineer / Researcher | Product alignment, design thinking, research, prompt support, MVP fit |
| Josh | Frontend Documentation / User Flow Support | User flow documentation, frontend decision notes, research notes, documentation clarity |
| Member | Role | Responsibilities |
|---|---|---|
| Jason | SDK / Client-Side Instrumentation Developer | SDK behavior, JavaScript event capture, monitored-site event sending |
| Woosik | Backend Testing / Research / AI Tools Support | Testing support, backend research, QA checklist, AI tools support |
| Member | Floating Responsibilities |
|---|---|
| Aditya | Review backend consistency, review event schema decisions, support CI/testing, resolve blockers, mediate architecture decisions, keep both teams aligned |
Aditya should not become a bottleneck for every small decision. Each prototype team can make local implementation decisions as long as they do not conflict with shared product direction, event schema, CI/testing requirements, or architecture expectations.
Both prototype teams must follow the same shared foundation.
Both prototypes should represent WatchTower as a lightweight observability dashboard.
Each prototype should aim to include:
Both prototypes should use the same general event categories:
| Event Category | Meaning |
|---|---|
| Error Events | JavaScript errors, unhandled promise rejections, runtime issues |
| Performance Events | Page load timing, latency, route timing, browser performance signals |
| User Feedback Events | User-submitted feedback, ratings, comments, or issue reports |
| User Interaction Events | Button clicks, navigation actions, session activity, key user actions |
Both teams must use:
As part of Sprint 2 setup, the team also completed important infrastructure, CI, testing, documentation, and security integration work. This work was led and completed by Aditya to support a stronger software engineering process before deeper prototype implementation.
| Area | Completed Work |
|---|---|
| CI Pipeline | Expanded GitHub Actions workflow for repository checks, HTML validation, CSS validation, JavaScript linting, unit tests, end-to-end tests, JSDoc generation, and dependency audit |
| Testing Setup | Added structure for unit tests and end-to-end tests using Jest and Playwright |
| JSDoc Setup | Added JSDoc generation support to document important JavaScript functions |
| Dependency Management | Added minimal required dev dependencies for testing and documentation: Jest, Playwright, and JSDoc |
| Security Policy | Added SECURITY.md to define the project’s vulnerability reporting and security process |
| Dependabot | Added Dependabot configuration for dependency and GitHub Actions updates |
| Dependency Alerts | Enabled Dependabot alerts and dependency graph support |
| Security Scanning | Set up CodeQL/code scanning for JavaScript and GitHub Actions |
| CI Runtime | Updated CI to use Node.js 24 to avoid Node.js 20 deprecation issues |
| Workflow Optimization | Updated CI workflow to reduce unnecessary runs by limiting triggers to relevant project files |
This infrastructure work supports the Sprint 2 prototype phase by making sure both prototype teams work under the same quality and security process.
The goal is not to overbuild the product, but to make sure the project demonstrates:
These updates give both prototype teams a stable foundation before implementation continues.
The team discussed that WatchTower should eventually monitor an external website, not only a demo inside the same repository.
The long-term direction is:
This keeps the current development process practical while still aligning with the real purpose of WatchTower.
Sprint 2 will use a combination of solo work, pairing, and small-group collaboration.
Use solo work for:
Use pairing for:
Use small-group collaboration for:
By the end of Sprint 2, the team should have:
| Deliverable | Owner(s) | Notes |
|---|---|---|
| Prototype 1 frontend direction | Prototype 1 Frontend Team | Dashboard UI, layout, user flow |
| Prototype 1 backend/event direction | Prototype 1 Backend Team | Event schema, backend/API logic, instrumentation flow |
| Prototype 2 frontend direction | Prototype 2 Frontend Team | Alternate dashboard UI and user flow |
| Prototype 2 backend/event direction | Prototype 2 Backend Team | SDK/event flow and backend/testing support |
| Shared prototype comparison rubric | Aditya + Fahad + James | Used to compare both prototypes fairly |
| Prototype decision notes | Aditya + Team Leads | Pick Prototype 1, Prototype 2, or hybrid |
| CI and security integration | Aditya | Completed as part of Sprint 2 infrastructure setup: CI pipeline, Jest/Playwright/JSDoc setup, Dependabot, CodeQL, dependency audit, and security policy |
| Updated documentation | All task owners | Each owner updates docs related to their work |
| Testing evidence | Backend teams + Aditya | Unit/e2e tests where appropriate |
| JSDoc evidence | Developers | Important functions documented |
Each major task should have a GitHub Issue.
Each issue should include:
Each PR should link to the related issue.
A Sprint 2 task is considered done when:
At the end of the prototype phase, both teams will present their version of WatchTower.
Each team should explain:
The final decision should follow this process:
The team can choose one of three outcomes:
| Outcome | Meaning |
|---|---|
| Pick Prototype 1 | Prototype 1 becomes the base for the final WatchTower product |
| Pick Prototype 2 | Prototype 2 becomes the base for the final WatchTower product |
| Hybrid | The team combines the strongest frontend/backend ideas from both prototypes |
The hybrid option should only be chosen if it is realistic and does not create unnecessary complexity.
| Risk | Impact | Mitigation | Owner |
|---|---|---|---|
| Prototypes become two separate products | High | Use shared MVP, shared event categories, and shared rubric | Aditya |
| Teams duplicate work without learning from each other | Medium | Hold midpoint syncs and share decisions | Aditya + James |
| Backend/event schema becomes inconsistent | High | Backend lead reviews shared event assumptions | Aditya |
| Frontend designs become too different to compare | Medium | Frontend lead keeps dashboard expectations aligned | James |
| One team overbuilds while another stays minimal | Medium | Use the same MVP checklist and rubric | Fahad |
| Dependencies increase unnecessarily | Medium | New dependencies require team discussion | Aditya |
| Testing is delayed | High | Add tests as features are built, not at the end | Daniel + Woosik |
| Documentation falls behind | Medium | Task owners update docs as part of Definition of Done | Josh + Fahad |
Teams should communicate progress clearly.
Use Slack for:
Use GitHub for:
If a major decision is made in Slack, it should be documented in GitHub or in the appropriate Markdown file.
Both prototype teams should confirm that they understand:
| Team | Confirmed? |
|---|---|
| Prototype 1 Team | [X] |
| Prototype 2 Team | [X] |
| Frontend Lead | [X] |
| Backend Lead / Scrum Master | [X] |