Flavours of agile software engineering

25
BY: TAMUR SULTAN ZEESHAN SATTI SADAF BATOOL MARINA KHAN Flavors of Agile Software Engineering

Transcript of Flavours of agile software engineering

Page 1: Flavours of agile software engineering

BY:TAMUR SULTANZEESHAN SATTISADAF BATOOLMARINA KHAN

Flavors of Agile Software Engineering

Page 2: Flavours of agile software engineering

What is Agile??

Ability to move quickly and easily

Page 3: Flavours of agile software engineering

Agile Software Development

Agile development model is also a type of Incremental model. Software is developed in incremental, rapid cycles. This results in small incremental releases with each release building on previous functionality.

Page 4: Flavours of agile software engineering

Why Agile?

The use of the word agile in this context derives from the agile manifesto.  A small group of people got together in 2001 to discuss their feelings that the traditional approach to managing software development projects was failing far too often, and there had to be a better way.

Page 5: Flavours of agile software engineering

Why Agile?......

They came up with the agile manifesto, which describes 4 important values that are as relevant today as they were then.  It says, “we value:

1. Individuals and interactions over processes and tools

2. Working software over comprehensive documentation

3. Customer collaboration over contract negotiation

4. Responding to change over following a plan

Page 6: Flavours of agile software engineering

Principles of Agile

1. Active user involvement is imperative 2. The team must be empowered to make

decisions3. Requirements evolve but the timescale

is fixed 4. Capture requirements at a high level;

lightweight & visual5. Develop small, incremental releases and

iterate

Page 7: Flavours of agile software engineering

Principles of Agile…….

6. Focus on frequent delivery of products 7. Complete each feature before moving on to

the next 8. Apply the 80/20 rule9. Testing is integrated throughout the project

lifecycle – test early and often 10. A collaborative & cooperative approach

between

Page 8: Flavours of agile software engineering

Types of Agile Methods

ScrumXPTDDLean

Page 9: Flavours of agile software engineering

SCRUM

Scrum is most popular agile framework in the world, Scrum uses iterative and incremental development model. Scrum concentrates particularly on how to manage tasks within a team-based development environment. Scrum provides the simple framework of basic tenets to solve problems and deliver good results - more valuable software faster

Page 10: Flavours of agile software engineering

Scrum Role

Page 11: Flavours of agile software engineering

Scrum Roles

Product Owner:The Product Owner should be a person with

vision, authority, and availability. The Product Owner is responsible for continuously communicating the vision and priorities to the development team.

Page 12: Flavours of agile software engineering

Scrum Roles

Scrum Master:The Scrum Master is responsible for ensuring Scrum is

understood and enacted.The Scrum Master is a servant-leader for the Scrum Team. The Scrum Master helps those outside the Scrum team

understand which of their interactions with the Scrum team are helpful and which aren’t.

The Scrum Master helps everyone change these interactions to maximize the value created by the Scrum Team.

Page 13: Flavours of agile software engineering

Scrum Roles

Team:According to Scrum’s founder, “the team is

utterly self managing.” The development team is responsible for self organizing to complete work. A Scrum development team contains about seven fully dedicated members (officially 3-9), ideally in one team room protected from outside distractions.

Page 14: Flavours of agile software engineering

Scrum Process

Page 15: Flavours of agile software engineering
Page 16: Flavours of agile software engineering

Extreme Programming

Extreme Programming is a type of agile software development, it advocates frequent "releases" in short development cycles, which is intended to improve productivity and introduce checkpoints where new customer requirements can be adopted. The methodology takes its name from the idea that the beneficial elements of traditional software engineering practices are taken to "extreme" levels.

Page 17: Flavours of agile software engineering

Rules of XP

Planning

1. User stories are written.2. Release planning creates the 

release schedule.3. Make frequent small releases.4. The project is divided into iterations.5. Iteration planning starts each iteration.

Page 18: Flavours of agile software engineering

Rules of XP

Managing

1. Give the team a dedicated open work space.2. Set a sustainable pace.3. A stand up meeting starts each day.4. The Project Velocity is measured.5. Move people around.6. Fix XP when it breaks.

Page 19: Flavours of agile software engineering

Rules of XP

Designing

1. Simplicity.2. Choose a system metaphor.3. Use CRC cards for design sessions.4. Create spike solutions to reduce risk.5. No functionality is added early.6. Refactor whenever and wherever possible.

Page 20: Flavours of agile software engineering

Rules of XP

Coding1. The customer is always available.2. Code must be written to agreed standards.3. Code the unit test first.4. All production code is pair programmed.5. Only one pair integrates code at a time.6. Integrate often.7. Set up a dedicated integration computer.8. Use collective ownership

Page 21: Flavours of agile software engineering

Rules of XP

Testing

1. All code must have unit tests.2. All code must pass all unit tests before it

 canbe released.

3. When a bug is found tests are created.4. Acceptance tests are run often and the

scoreis published.

Page 22: Flavours of agile software engineering

TDD

Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle: first the developer writes an (initially failing) automated test case that defines a desired improvement or new function, then produces the least amount of code to pass that test, and finally refractors the new code to acceptable standards.

Page 23: Flavours of agile software engineering

Lean

Lean is a production practice that considers the expenditure of resources for any goal other than the creation of value for the end customer to be wasteful, and thus a target for elimination. Working from the perspective of the customer who consumes a product or service, "value" is defined as any action or process that a customer would be willing to pay for. Lean is centered on preserving value with less work.

Page 24: Flavours of agile software engineering

Conclusion

Agile Framework helps teams to benefit like

Faster Time to Market.Reduce Uncertainty & Risk.Increase ROI by focusing on Customer Value.

Page 25: Flavours of agile software engineering

Thank you!