GithubHelp home page GithubHelp logo

allan1 / upstream-downstream Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 7 KB

Um template para processos Upstream e Downstream no desenvolvimento de software

software-engineering product-management product-engineering agile agile-development lean lean-software-management

upstream-downstream's Introduction

Template para processos Upstream e Downstream

Upstream

Estágio de concepção e definição da feature que precisa ser entregue

Etapas

Discovery

Etapa de investigação e entendimento do problema ou oportunidade de produto a ser endereçado. Guiado principalmente pelo time de Produto, envolvendo os times de Design e Engenharia de acordo com o necessário. Tem como resultado a definição do problema ou oportunidade.

Design

Etapa de definição da solução, delimitando claramente o escopo a ser implementado. Envolve ativamente os times de Design e Engenharia, podendo conter processos de definição de UX, prototipação de telas, validação de viabilidade e custo técnicos, documentação de fluxo de negócio, definição de MVP (Minimum Viable Product) e POCs (Proofs of concept).

Split

Etapa de quebra da solução a ser implementada em pacotes menores de valor, como histórias de usuário. Histórias devem atender as definições DoR (Definition of Ready) e DoD (Definition of Done) acordadas pelo time. Recomendado o uso da matrix INVEST (Independent, Negotiable, Valuable, Estimable, Small, Testable) como referência para a definição das histórias.

Downstream

Estágio de refinamento técnico, organização e execução do trabalho para entrega da feature

Etapas

Refining

Sessão de definição da arquitetura macro a ser implementada ou ajustada, podendo derivar em documentação técnica, enriquecimento técnico das histórias e quebra em tarefas menores, quando apropriado. Recomendado que as tarefas tenham tamanho uniforme (esforço + complexidade) para permitir maior previsibilidade de entrega. Dentre os possíveis artefatos técnicos dessa sessão, podemos citar o uso do documento RFC (Request For Comments), para designs que o time julgar pertinente.

Planning

Definição do escopo de tarefas a ser implementadas no intervalo de tempo definido (sprint).

Developing

Etapas Designing, Implementing, Documenting podem ocorrer comitantemente.

Designing

Design a nível de API e componentes do que vai ser implementado. Exemplos: definição de endpoints, design de banco de dados, componentes frontend, etc.

Implementing

Codificação da feature ou correção do bug.

Testing

Implementação de testes de unidade, integração e e2e, quando aplicáveis.

Documenting

Documentação de APIs (swagger), eventos (AsyncAPI), arquitetura de sistemas, quando aplicáveis.

Instrumenting

Configuração de ferramentas de monitoramento e observabilidade, quando aplicáveis.

Code Reviewing

Revisão de código realizada por um ou mais pares do time de desenvolvimento.

Staging

Validação a nível de negócio e técnico em ambiente pré-produtivo. Pode requerer validação de stakeholders (ex: Product Manager, Designer) antes de seguir para Releasing.

Releasing

Escrita de:

Release Notes: lista em alto nível da entrega (ex: épicos, histórias, bug fixes), tem como audiência os stakeholders do produto e pode ser direcionado ao usuários finais do produto.

Changelog: lista em baixo nível da entrega (ex: tarefas), contendo detalhes técnicos das mudanças realizadas (ex: adição, remoção, refatoramento de módulos/componentes do código; detalhes sobre breaking changes)

Geração do pacote a ser feito deploy, deve seguir o versionamento semântico.

Deploying

Aplicação da estratégia de deploy (ex: blue/green, gradual rollout, canary) para o ambiente produtivo.

Maintaining/Monitoring

Monitoramento e manutenção em produção após o deploy. Acompanhamento de alertas sobre a saúde das aplicações e atuação para mitigar possíveis problemas.

upstream-downstream's People

Contributors

allan1 avatar

Stargazers

 avatar  avatar

Watchers

 avatar

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.