Agile Notes
Agile Notes
Agile Mindset P2
1. Use co-location
2. F2f communication with white board and markers are the best communication
3. Provide agile team with lots wall space so that they can write/use sticky notes
Agile Mindset P3
1. Information need to be radiated through use of large charts/graphs [burnup or burned down
chart]
2. Any problem in project should be resolved by project team, Let project team choose solution
while coach and support their solution
3. Provide safe environment for disagreement
4. Do no punish for opinion difference
5. Conflict is positive step and opportunity to learn
Agile Mindset P4
Agile Mindset P5
1. Make sure people understand what failure and success look like on project
2. Be central figure to team, not dictator
3. Good ethical values
Agile Mindset P6
1. Highest priority to satisfy customer through early and continuous delivery of valuable software
2. Welcoming changing requirements even in late development. Agile harness change for
customer’s competitive advantage
3. Deliver working software frequently from couple of weeks to couple of months with preference
shorter timescale
4. Business people & developers must work together daily throughout project
5. Build project around motivated individuals, give them environment and support they need and
trust them to get job done
6. F2F is most efficient to convey information
7. Working software is primary measure of progress
8. Agile promote sustainable development
9. Continuous attention to technical excellence, good design enhances agility
10. Simplicity: art of maximizing amount of work not done is essential
11. Best architecture, requirements, designs emerge from self-organizing teams
12. At regular intervals, team reflects on how to become more effect and will do adjustment
Agile Terms
Scrum
Scrum activities
XP Roles
1. Coach
Acts as mentor, guide process and help team stay on track, facilitator to help team
become effective
Customer
Business representative who provide requirement, priorities and drives business
direction for project
Programmer
Developer who build product
Tester
Help customer define and write acceptance tests for user stories
XP Practices
1. Release planning
a. Push new functionality to production user
b. Customer outlines functionality required
2. Iteration planning
a. Short development cycles within a release (sprint)
b. At start is conducted
c. Customer explain functionality needed
d. Developers break functionality into tasks, estimate work
e. Based on estimate, amount of work accomplished in previous release
3. Small release
a. Frequent, small release to test environment
b. Demo progress, increase visibility
4. Customer test
a. Customer describes one/more test to show software is working
b. Builds automated test to prove software is working
5. Collective code ownership
a. Any pair of developers can improve, amend any code
b. Multiple people work on all code which results in increased visibility and knowledge of
code base
c. Leads to higher quality
d. Less risk if programmer leave, since knowledge is shared
6. Code standards
a. Follow consistent coding standard
b. Code looks as if it has been written by a single, knowledgeable programmer
7. Sustainable pace
a. Practice of maintaining of sustainable pace of development optimizes the delivery of
long-term value
8. Metaphor
b. Use metaphor and similes to explain design, create shared technical vision
c. These descriptions establish comparison that all stakeholder can understand on how
system work
9. Continuous integration
a. Integration involves bringing code together and make sure it all compiles and work
together
b. Critical because it brings problems to surface before more code is built on top of
faulty/incompatible designs
10. Test driven development [TDD]
a. Team writes tests prior to develop new code
b. If tests are working correctly, initial code that is entered will fail the test
c. The code will pass the once it is written correctly
11. Pair programming
a. Production code written by 2 developers working as a pair to write and provide real time
reviews of software as it emerges
b. Helps spread knowledge about system through the team
12. Simple design
a. Code is always testable, browsable, understandable
13. Refactoring
a. Remove redundancy, eliminate unused functionality
b. Saves times, increase quality