Agile Software Development
- Agile Methods
- Plan-driven and agile development
- Extreme Programming (XP)
- Refactoring
- Test First development
- Pair programming
- Scrum
- Scale agile methods
Agile
Agile philosphy
- break the problem into many little problems and deal with them seperatly
Rapid Development
- now the most important requirement for software systems
Agile methods
- Distatisfaction with overheads involved in software design in 80s and 90s
- focus on code rather design
Agile manifesto (IMPORTANT)
That is while there is a vlaue in items on the rightm we value the items on the left more:
- Indivuals and interations over processess and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
Question, which of the following is NOT apart of the manifestio (will take one of the 4 and flip them
Princple of agile methods
- customer involvment: Customers should be closly involved throught development)
- Incremental delivery (sprints)
- People not process
- Embrance change
- maintain simplicity
Story (like a requirement)
Plan driven and agile development
Agile development == Light weight Approach
Waterfall Development == heavy weight approach
3 Agile Methodologies
- XP
- Scrum
- Kamban
Extreme programming (XP)
- Takes extreme approach to iterative dev.
- New versions may be built several times per day
- increments are delivered to customers every 2 weeks
- All tests Must run for every build and build is only accepted if tests run successfully
XP practices
- Incremental Planning
- small releases
- simple design
- Test-first development (write tests then CODE)
- Refactoring: (fixing up the code to be better at the end, continuous optimization)
- Pair programming (checking each others work and providing the support to always do a good job)
- Collective ownership
- Continuous Integration: A-> AB-> ABC
- Sustainable Pace: Large amount of overtime is not considered acceptable, as net effect is often to reduce code quality and medium term productivity
- On-site customer: Customer should be available full time to use (not the best scrum does this differently)
Scrum
Exactly like XP, but 2 issues solved
- No onsight customer
- 2-4 week delieverables to customer
3 phrases in Scrum
- Outline planning: Initial phase is an outline planning where you establish the general objctives for project and design
- Sprint Series: This is folowed by a series of sprint cycles
- Closure: The project closure phase wraps up the project
(can be shown as a diagram seen in the slides)
Sprint Cycle
- Sprints are fixed length, normally 2-4 weeks. They correspond to the development.
- 2 weeks for normal, 4 weeks for larger parts
Teamwork in scrum
Scrum Master:
- is a facilitator who arranges daily meetings, tracks teh backlog of work to be done, records decisions, measures progress against backlog and communicates with customers and managmement outside of the team.
- Ideal team size 7 +- 2
- The whole team attends short daily meetings where all team members share info, describe progress since the last meetings, problems that have arisen (Called a DSM daily srum meetings)
Daily Standup(scrum but standup is better) Meeting DSM
- have to standup and have a 10-15 meetings quick
Scaling Agile MEthods
- Agile methods have proved to be successful for small and medium sized projects
- It is sometimes argued that the success of these methods comes because of improved communications
- Can this be scaled up?
Sclaing out and Scaling Up (IMPORTANTTT)
- Scaling up: Concerned with using agile methods for dev. large software systems that cannot be dev. by a small team.
- Scaling out: concerned with how agile methods can be introduced across a large organization with many years of software devlopment experience.
- When scaling agile methods it is essential to maintain agile fundamentals
- Flexible palnning, frequent system releases, continuous integrationm test driven dev. and good team comm.
Scaling out: convincing people to use it in large companies