GithubHelp home page GithubHelp logo

defender's Introduction

defender

https://defender.ionep.io

Introduction

The Defender prototype was developed to inform the general public about drug, device, and food product recalls. Its vision is to combine product recall information from FDA, news outlets, and social media to provide users with a global view of current recalls.

Approach

Our approach leveraged our extensive experience using Scrum to define, design, develop, and implement sites and applications. We decided to time-box one as-yet-to-be-defined release into 7 sprints including a Sprint 0 and a Release Sprint (we know, hear us out).

Statistic Process
Release Type Time-boxed
# of Sprints 7
Sprints 4.5h
Sprint Planning 30m
Sprint Review 15m
Sprint Retro 15m
Completed Points 49.5
Velocity 7.1

The Product Owner developed a vision of the product and the Dev Team helped refine it during the [planning session] (https://github.com/INTEGRITY-One/defender/blob/master/AgileArtifacts/Release Planning.mp4). Our ScrumMaster led the team in developing an initial set of 16 user stories and we then used Planning Poker to estimate story points for each. Two stories were Epics and that required some serious research/prototyping to determine if the release goal was even viable. We conducted a Sprint 0 to address these and cancelled four stories. The Release was baselined at 12 stories (35 points) and a Release sprint was added to address automated testing concerns.

The Product Owner prioritized the user stories and the Dev Team weighed in on technical priorities. From there, the ScrumMaster iteratively led the team to craft a Sprint 1 plan based on a mixture of priority and estimated velocity from Sprint 0. Trello is great but we decided to use Taiga for our Agile project management tool to gain additional tracking and we loved it! All of our user stories, tasks, issues, and bugs were [captured in Taiga] (https://tree.taiga.io/project/bschwetz-1-18f-challenge-accepted/backlog/); a summary of these is available in [an SRS] (https://github.com/INTEGRITY-One/defender/blob/master/requirements-design/Defender High-Level SRS.docx).

For Sprint 1 planning, the team worked collaboratively towards protosketching Defender after reviewing a low fidelity Balsamiq prototype from Release Planning and the US Digital Services Playbook. In parallel, we planned tasks for OpenFDA API integration, AWS configuration, continuous integration using Travis-CI, and test execution. Our ScrumMaster continuously observed progress, [updated burndown charts] (https://tree.taiga.io/project/bschwetz-1-18f-challenge-accepted/backlog), and adjusted the direction of the team as issues arose. We conducted brief stand-ups every 1.5 hours to check on progress and remove impediments. At the end of the sprint, we brought in external stakeholders in addition to the PO to review and solicited feedback. After Review, we conducted a retrospective where we documented what went well, what didn’t go well, lessons learned, and determined how to implement lessons in the next sprint.

Our subsequent sprints were re-prioritized by the Product Owner prior to the planning session and were comprised of:

Along the way we used github for configuration management, and created a [design document] (https://github.com/INTEGRITY-One/defender/blob/master/requirements-design/Defender Design Doc.docx) and a bare metal [installation document] (https://github.com/INTEGRITY-One/defender/blob/master/INSTALL.md).

Team Composition

[The team] (https://github.com/INTEGRITY-One/defender/blob/master/AgileArtifacts/about_us.png) was comprised of personnel with distinct and defined roles across multiple disciplines:

  • Product Owner –In addition to the standard responsibilities of a PO, to facilitate rapid feedback for our short sprints, we integrated the PO into testing and validation with mentoring by the Scrum Master to ensure changes weren’t being made on the fly.
  • Delivery Manager/Agile Coach – Our ScrumMaster coordinated decomposition and sizing of backlog with team and PO, and coached the PO in agile requirements definition
  • Frontend Developer – Designed, developed and unit tested user-facing capabilities using open source technologies such as Express, AngularJS, node.JS, Bootstrap, Grunt and Karma
  • Backend Developer – Designed, developed and unit tested back-end functionality integrating RESTful APIs using open source technologies including Express, AngularJS, node.JS, Mapbox, Grunt and Mocha
  • DevOps Engineer – Configured our AWS environment, Travis CI for continuous integration, automated AWS deployments from Travis, integrated Morgan for logging, and wrote scripts to capture, aggregate and synthesize application alerts into AWS Cloudwatch
  • Interaction Designer – Provided graphic support and guidance on responsive design
  • Test Engineer – Performed quality assurance by conducting functional testing through manual and automated tests

Oh and one more thing…we loved every minute of it!

defender's People

Contributors

swinkler149 avatar ferrx avatar tonypetruccelli avatar bschwetz avatar iopjim avatar smiop avatar eahollin avatar

Stargazers

 avatar

Watchers

James Cloos avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

ferrx

defender's Issues

Retro what went well

  •    Use of time went well
    
    · Tech Spikes and Research Spikes severed their purpose, our backlog looks much better
    · Have a functioning site
    · Strong facilitation/ScrumMaster
  •    Able to adjust backlog on feedback from whole team thanks to results from spikes and PO feedback
    
  • Re-estimated the Epics and adjusted user stories with PO based on results of research and tech spikes
  • No new features just cleaned up existing based on comments received

Stats:

  • Planned for 9 points, finished 9 points - Velocity is now 9...yay!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.