Development Roadmap
How to approach the dev process, start to finish
Get the Team Onboard: Go through general plan with PM, Designers, and rest of Team. What do they already have in mind?
Data Architecture: Go through proposed data architecture with the BE Team. We will probably write out the API contract in Swagger to make sure it roughly lines up with the feature plan
MVP Design Review: work with Design team on the wireframes/design for the components we will be building out for the MVP. Have stakeholders check off on that. At least have a rough sketch to get started approved by PM/Design
Dev Conventions/Boilerplate: Go through general conventions like error codes, authentication, query Param formats, common models, rough DB table diagram
Conversion/Tracking Strategy: Go through tracking and conversion strategy with PMs/marketing (Mixpanel, etc)
Propose Stack: Ask around - what is the proposed stack in the rest of the org, use that. Otherwise below is my standard stack
If there is a migration strategy from an older stack in progress, ask how to fit into that
Does the company have some sort of UI Kit/Style Guide/Common Components library
Start building individual components using Storybook
Discuss style guide with design teams - how do general components look like and interact, build that out first (examples below)
Each component is self contained and built for modularity, doesn't require API, uses handlers for async requests passed down from page level, accepts mock data, all possible states listed including errors and empty
Integration testing with Cypress/Pickle - write out the tests as scenarios before building, and then make component fit those scenarios
Unit test (TDD) with Jest
Tech Stack:
Discuss performance vs features tradeoff of each library we use and individual performance aspects
Consider libs that have tree shaking
Fallbacks to old technologies
React (Hooks)
Next.js - SSR
TypeScript - for generating types, avoiding errors, auto-documentation
GraphQL or REST (axios), Socket.io for streaming data
GraphQL handles complex relationships efficiently but has tradeoffs
POST requests don't cache (GraphQL uses)
Adds complexity, makes bundle slightly bigger, sometimes increases dev time
GraphQL has typing built in, but if you use OpenAPI also has types generation
Auth - Passport.js
Styled Components or MUI
Next.js or React Router
React Forms - validations etc
Moment - dates
HighCharts - charts
Uses SVG so not as fast, but very complete and has lots of docs
Redux - complex state management
Usually Context is enough
ESLint - linting
CI/CD
GH Actions or CodeFresh (great for K8S)
K8S or Netlify for hosting
Commitizen - commit messages
Release tagging
GH Merge process (how many reviews, standards)
Static code checking - Sonar
Discuss Sockets strategy - message format etc
Project Management
Sprints - 2w?
Write out user stories before starting
Tracking velocity
Assigning tasks
Pair programming to get engineers started
Pair programming philosophy
Architecture sprint - refactoring (1x a month)
Last updated