Skip to content

Project Scope Document

Jason Gillikin edited this page Dec 30, 2020 · 1 revision

Scope of Work for the Winnie_Bot Rewrite Project

Author: Jason Gillikin
Approver: Dawn E. Collett, Katie Macke
Effective Date: v1, 12-Dec-2020

This document identifies the scope of work, core deliverables, core stakeholders, and management methodology for the project to rewrite Winnie.

Background

Winnie (stylized as Winnie_Bot) is a bot for Discord servers intended to help writers and writing groups gamify writing challenges, manage goals, and benefit from several helpful writing tools. Winnie was originally developed in 2017 by Dawn E. Collett.

In 2019 and 2020, Winnie's popularity grew, and both the bot and the developer became crucial to the success of several regions during the virtual-only 2020 National Novel Writing Month. However, because Winnie was originally conceived for just three servers in Australia, the bot's broadening use highlighted several opportunities for shoring-up and for feature enhancement.

In mid 2020, Dawn engaged with a developer to begin revision work. In December 2020, they engaged with a formal project-management methodology to optimize the planned work.

Scope Statement

This project is focused on a complete rewrite of the codebase for Winnie_Bot as it existed on October 15, 2020. Given changes to the database and infrastructure, plus a major revision to Discord.js, the current codebase cannot be revised. The goal of the first phase of the work is to obtain feature parity between the original and the rewritten versions of the bot for public deployment by mid-October 2021, as well as to improve the under-the-hood infrastructure to support a broader use of the bot worldwide.

Scope Inclusions

The following major tasks are in scope for this project:

  • Obtaining at least full feature parity between the original and rewritten bot, and inclusion of whatever enhancements on the Issues List make sense given the long-term roadmap for the project.
  • Upgraded technical and end-user documentation.
  • Translation to support the bot in English, French, Swedish, Hungarian, and Dutch.
  • Migration from Amazon to DigitalOcean IaC.
  • Migration of CI/CD to GitHub Actions.
  • Database enhancement and replacement of MongoDB with PostreSQL.

Scope Exclusions

The following major tasks are not in scope for this project:

  1. Change to programming language family. Winnie_Bot's rewrite relies on TypeScript.
  2. Integration with the National Novel Writing Month API. Given the project owner's concerns about the security model with the current iteration of the NaNoWriMo API, it's adjudged too much of a risk to personal privacy to incorporate API data into the bot's database.
  3. A detailed market analysis. Although a software rewrite is normally an ideal time to engage customer feedback about enhancements, the product owner's engagement with many Discord servers and NaNoWriMo leaders suggests that the items on the Issue List as of early December 2020 reflect the likely output of focus groups. As such, a formal focus-grouping or surveying initiative will not be undertaken to augment the Issue List.
  4. Integration with software other than Discord. Some users have voiced a desire to interface Winnie_Bot with other writing tools, particularly Scrivener. However, given the difficulties of a bot mediated by Discord interfacing with desktop software mediated by a proprietary binary file, it's not clear that this very heavy lift makes sense -- and certainly not for a code-rewrite project focused initially on cross-version feature parity.

Expected Cost and Duration

Given the open-source nature of the work and the subsidy by Dawn for the underlying infrastructure, there are no significant costs to constrain or budget to manage. Winnie_Bot should be a low-cost, highly reliable service, but it's not expected that the scope of work will outpace the project owner's subsidy.

This project will proceed in several phases as outlined below. The major work envisioned by this scope document is intended to finish by October 15, 2021. It's likely that additional enhancement work may be chartered by the project owner, progressing into 2022. That work will be appropriately but separately scoped in late 2021 or early 2022.

Deliverables

Project deliverables will be managed in four milestones consisting of one or more thematic sprints, as follows:

  • Milestone 1a: Infrastructure
    • Sprint 0: Amazon to Digital Ocean; CI/CD to GitHub Actions; MongoDB to PostgreSQL; QA/testing strategy; PM strategy; Queuing
  • Milestone 1b: Development
    • Sprint 1: Configuration (users/servers - human config)
    • Sprint 2: Goals and time zones
    • Sprint 3: Tools
    • Sprint 4: Challenges
    • Sprint 5: Statistics
    • Sprint 6: Release to Test; documentation review detail planning
  • Milestone 2: Alpha Testing
    • Sprint 7: Initial QA
    • Sprint 8: Revisions in light of QA findings
    • Sprint 9: Translation detail planning
  • Milestone 3: Beta Testing
    • Sprint 10: Beta testing
    • Sprint 11: Revisions in light of beta-tester findings
    • Sprint 12: Final review of translations and documentation
  • Milestone 4: Production
    • Sprint 13: Change-management communication
    • Sprint 14: Push to Prod
    • Sprint 15: Bug-quashing; final project debrief; clarify roadmap for next-phase development

Of note, Sprint 0 will be scheduled independently of Sprints 1-5, and may overlap them. Sprint 0 must be complete before progressing to Sprint 6. Also, it's likely that early translation and documentation work will begin in earlier than Sprints 6 and 9.

Expected Outcomes

This project will be considered "done" when a working copy of Winnie_Bot deploys to production status by October 15, 2021, with feature parity with the bot as of October 15, 2020.

Project Stakeholders

This project involves the following stakeholder roles, which shall be represented in relevant RACI matrices:

  • Product Owner (PO): Dawn E. Collett
  • Project Manager (PM): Jason E. Gillikin
  • Technical Lead - Development (TLD): Katie Macke
  • Technical Lead - Infrastructure (TLI)): Dawn E. Collett
  • Tech Writer (TW): Three writers, to be assigned
  • Testing and Quality Assurance (TQA): Strategy forthcoming
  • Translator (TR): Roughly 10 for five or six languages, to be assigned
  • Developer (DEV): Four or five associate devs to assist the TLD
  • Voice of the Consumer (VOC): Several NaNoWriMo MLs and writer-group leads, who will serve as beta testers

Of note, the PO/TLI, PM, and TLD are considered the core team, with overall accountability for steering and leading the project and its contributors.

Project Governance

This project will be administered according to best-practice software-development procedures. All code will remain in the relevant GitHub repository; all project documentation will reside in a Notion team account. The project manager will oversee project documentation and sprint/milestone progress on behalf of the product owner.

Routine project work, including contributor discussion, occurs in context of the Winnie_Bot Community Server on Discord.

Revisions

The following modifications to this scope document were effected on the following dates, for the noted reasons:

  • V1 (12 Dec 2020) - Initial release.