Monday, February 10, 2020

12 principles of Agile Manifesto

1. Customer satisfaction
2. Welcome changes at any time
3. Frequent deliveries of working software
4. Developers and business people work together
5. Involve motivated individuals, trust them with proper working environment.
6. Face-to-face discussion with-in development team
7. Working software is primary measure of progress
8. Sustainable development with minimizing bugs, reusable components, high quality codes to make evolvable software, low maintenance cost
9. Continuous attention on technical excellency and good designs
10. Simplicity to reduce amount of effort
11. Self organized team
12. Regular intervals to become more effective and adoption for better software

Based on https://agilemanifesto.org/principles.html

Branch merge and re-integration cycles

Bellow steps explains how to deal with same source by two team without having any source code conflicts.


Assume 2 teams are working on same source code.
Team B create branch from Trunc ( Master branch )
Team C create branch from Trunc ( Master branch )



Day 1 : Changes to branch B by team B
Day 1 : Changes to branch C by team C
Day 2 : Team B merge branch B from trunc for any changes
Day 2 : Team C merge branch C from trunc for any changes
Day 2 : Changes to branch C by team C
Day 2 : Team C merge branch C from trunc for any changes
Day 2 : Team C release branch C for testing
Day 2 : Team B merge branch B from trunc for any changes
Day 2 : Testing team test the branch C and do the production deployment
Day 3 : Testing team observation on any production issues
Day 3 : If no issues observed , team C re-integrate branch C to trunc
        If there are issues observed in recent release, then team C merge branch C for any changes and release fixes for issues observed.
        Testing team test the branch C and do the production deployment
Day 4 : Team B merge branch B from trunc for any changes
Day 5 : Team C merge branch C from trunc for any changes
Day 5 : Team C re-integrate branch C to trunc
Day 6 : Testing team test trunc for recent changes and smoke test on overall functionalities
Day 7 : Team B merge branch B from trunc for any changes
Day 7 : Team B release branch B for testing
Day 7 : Testing team test the branch B and do the production deployment
Day 7 : Testing team observation on any production issues
Day 8 : If no issues observed , team B re-integrate branch B to trunc
        If there are issues observed in recent release, then team B merge branch B for any changes and release fixes for issues observed.
        Testing team test the branch B and do the production deployment