Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Effective GIT Branching Strategy for Rapid UI D...

Azizi Yazit
November 10, 2024

Effective GIT Branching Strategy for Rapid UI Development

Effective GIT Branching Strategy for Rapid UI Development

Azizi Yazit

November 10, 2024
Tweet

More Decks by Azizi Yazit

Other Decks in Education

Transcript

  1. “Rapid” generally means “happening very quickly” “Rapid UI Development” Reusable

    components <Typography /> <Textfield type /> <Button /> <Divider /> <MenuIcon /> <Card />
  2. GitHub-Flow Trunk-based No-branch Right Left Git-Flow hot-fix develop tag v3

    tag v1 tag v2 Branching Strategies master release feature
  3. Trunk-based No-branch Git-Flow develop feature tag v1 GitHub-Flow tag v2

    Timebox hot-fix Adhoc 1-2 weeks 1-2 hours tag v3 Pull Request Right Left Branching Strategies
  4. Trunk-based No-branch Git-Flow tag v1 GitHub-Flow tag v2 Timebox hot-fix

    Adhoc 1-2 weeks 1-2 hours tag v3 Pull Request Right Left Branching Strategies feature develop
  5. No-branch Git-Flow develop short-lived branch tag v1 GitHub-Flow 1 day

    Trunk-based tag v2 tag v3 tag v3 1 day 1 day Daily commit Release on demand Right Left Branching Strategies
  6. No-branch Git-Flow tag v1 GitHub-Flow 1 day Trunk-based tag v2

    tag v3 tag v3 1 day 1 day Daily commit Release on demand Right Left Branching Strategies develop short-lived branch
  7. Trunk-based Git-Flow develop 0 tag v1 4 GitHub-Flow Pairing Developer

    Right Left Branching Strategies No-branch Pairing Developer Writing tests & ensure it’s failed Fixed the tests Writing all tests & ensure all is failed Fixed the tests 8 refactor into Prod-ready code Role: Driver Role: Navigator Pairing Pairing Role: Driver Role: Navigator tag v2 tag v3 remote develop remote develop 2 5 7 1 3 6 refactor into Prod-ready code
  8. Trunk-based Git-Flow 0 tag v1 GitHub-Flow Pairing Developer Right Left

    Branching Strategies No-branch Pairing Developer Writing tests & ensure it’s failed Fixed the tests Writing all tests & ensure all is failed Fixed the tests 8 refactor into Prod-ready code Role: Driver Role: Navigator Pairing Pairing Role: Driver Role: Navigator tag v2 tag v3 5 7 6 refactor into Prod-ready code develop 4 2 1 3 remote develop remote develop
  9. Right Left Branching Strategies Git-Flow GitHub-Flow Trunk-based No-branch Continuous Integration

    - CI CI is a software development practice where code changes are automatically built, tested, and integrated into the main project on a regular basis, typically multiple times a day.
  10. Right Left Branching Strategies Git-Flow GitHub-Flow Trunk-based No-branch Continuous Integration

    - CI CI is a software development practice where code changes are automatically built, tested, and integrated into the main project on a regular basis, typically multiple times a day.
  11. Right Left Branching Strategies Git-Flow GitHub-Flow Trunk-based No-branch Continuous Integration

    - CI CI is a software development practice where code changes are automatically built, tested, and integrated into the main project on a regular basis, typically multiple times a day.
  12. Trunk-based Development Integrated into the main project on a regular

    basis, typically multiple times a day. commits
  13. Trunk-based Development Release toggles Flag on Flag off Used to

    enable trunk-based development for teams practicing Continuous Delivery. They allow in-progress features to be checked into a shared integration branch (e.g. master or trunk) while still allowing that branch to be deployed to production at any time.
  14. Trunk-based Development Branch by Abstraction Abstraction involves separating complex systems

    or features into smaller, manageable, and reusable components. A A A A Abstractions UI building blocks
  15. Trunk-based Development Branch by Abstraction Abstraction involves separating complex systems

    or features into smaller, manageable, and reusable components. Abstractions UI building blocks
  16. Trunk-based Development Integrated into the main project on a regular

    basis, typically multiple times a day. Short-lived branches Short-lived branches are commonly used in Agile and Continuous Integration (CI) workflows, where rapid, incremental changes are essential to maintaining a smooth development process.
  17. Trunk-based Development Integrated into the main project on a regular

    basis, typically multiple times a day. Short-lived branches Short-lived branches
  18. Trunk-based Development Integrated into the main project on a regular

    basis, typically multiple times a day. Branch by Abstraction Release Toggles
  19. Conclusion Branching Strategies for Rapid UI Development Trunk-Based Development: The

    ideal approach for rapid UI development, as it emphasises continuous integration and allows for quicker releases. Using techniques like release toggles and branch by abstraction, teams can deploy frequently without the overhead of long-lived feature branches.