24
Software Development By: Walaa Mohamed Atef

Agile Simplified

Embed Size (px)

DESCRIPTION

An introduction to Agile Software Development.

Citation preview

Page 1: Agile Simplified

Software Development

By: Walaa Mohamed Atef

Page 2: Agile Simplified

Understand modern techniques of Software development

Learn the best practices implementing those techniques

Know how to manage software projects to deliver on time with best quality.

Page 3: Agile Simplified

Flexible / Agile….

Page 4: Agile Simplified

Operation & Maintenance

Planning

Analysis

Requirements Definition

Design

Development

Integration & Test

Page 5: Agile Simplified

Whole project planned up-front Doesn’t handle change very well Requirements specifications are an abstraction and can be interpreted

differently Business engagement is high at the start of the project but then tapers

off Insufficient testing during development Late integration QA is trailer-hitched, so quality isn’t baked in and testing gets crunched

at the end Progress measured by task % complete Often don’t know until it’s too late

Page 6: Agile Simplified

An alternative way of managing software projects

With different values and principles to traditional development

Incremental, iterative and collaborative, rather than distinct stages

Page 7: Agile Simplified

Agile software development refers to a group of software developmentmethodologies that are based on similar principles. Agile methodologies generally promote:

A project management process that encourages frequent inspection and adaptation.

A leadership philosophy that encourages team work, self-organization and accountability.

A set of engineering best practices that allow for rapid delivery of high quality software.

A business approach that aligns development with customer needs and company goals.

Page 8: Agile Simplified

We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.

Page 9: Agile Simplified

Working software is delivered frequently (weeks rather than months) Customer satisfaction by rapid, continuous delivery of useful software Working software is the principal measure of progress Simplicity Self-organizing / Cross-functional small teams Regular adaptation to changing circumstances Co-location (Face-to-face conversation is the best form of

communication) Close, daily cooperation between business people and developers Projects are built around motivated individuals, who should be trusted Continuous attention to technical excellence and good design

Page 10: Agile Simplified
Page 11: Agile Simplified

Vary Scope to deliver on time and on Budget.Never Compromise on Quality

Page 12: Agile Simplified

Whole project planned up-front Doesn’t handle change very well Requirements specifications are an abstraction and can be interpreted

differently Business engagement is high at the start of the project but then tapers

off Insufficient testing during development Late integration QA is trailer-hitched, so quality isn’t baked in and testing gets crunched

at the end Progress measured by task % complete Often don’t know until it’s too late

Page 13: Agile Simplified

Incremental approach breaks complex projects down into simpler mini-projects

Accommodates change easily Improves ROI through frequent and regular delivery of value to the

business Increased business involvement and satisfaction Increased visibility (progress, obstacles, risks, etc) Lower development risk, higher quality, less defects Shorter cycles produce working software and incremental product

quickly Progress measured by running tested software Early and regular process improvement driven by frequent inspection

Page 14: Agile Simplified

Extreme Programming (XP) Crystal Clear Adaptive Software Development (ASD) Scrum Feature Driven Development (FDD) Dynamic Systems Dev Method (DSDM) Test-driven Development Lean Custom

Page 15: Agile Simplified
Page 16: Agile Simplified
Page 17: Agile Simplified

“DONE” or “NOT DONE” Avoids de 90% Syndrome Code produced, commented, checked in and run against current version

in source control and meeting development standards Peer reviewed (or produced with pair programming) Builds without errors Unit tests written and passing (TDD) Deployed to system test environment and passed system tests Passed UAT (User Acceptance Testing) Any build/deployment/configuration changes

implemented/documented/communicated Relevant documentation/diagrams produced and/or updated Paranoid Compliant

Page 18: Agile Simplified

Revenue Speed to market Quality Flexibility / agility Right product Visibility Cost control Customer satisfaction Less risk More motivating!

Page 19: Agile Simplified

Top 5 reasons why projects fail:

Lack of end-user involvement / Poor Communication

Incomplete requirements and specifications

Lack of change management / Scope Issues

Inadequate testing

Integration

Page 20: Agile Simplified

The Customer is the King

Requirements Are Written As Acceptance Tests Before Any Code Is Written...

Nothing Is Carved In Stone, Except For The Delivery Date...

Tests Are Written Before Code Is Written And Testing Is Automated...

Early and frequent releases…

Page 21: Agile Simplified

Advices: Collaborate Daily Iterative Development Daily Builds Daily Stand-Ups Frequent Releases

Tips: Make quick small decisions Working code beats everything Make it run, make it right, make it fast.

Page 22: Agile Simplified

?

Page 23: Agile Simplified

Agile Software Development with Scrum by Ken Schwaber and Mike Beedle Agile Project Management with Scrum by Ken Schwaber Lean software development by Mary Poppendieck Agile and Iterative Development: A Manager’s Guide by Craig Larman Agile Estimating and Planning by Mike Cohn Agile Retrospectives by Esther Derby and Diana Larsen Scrum and The Enterprise by Ken Schwaber Practices of an Agile Developer by Venkat Subramaniam and Andy Hunt Test Driven Development by Example by Kent Back Introduction to Agile and Scrum (presentation) by Simon Baker

Page 24: Agile Simplified

E-mail: [email protected]

Blog: http://walaapoints.blogspot.com

Online profile: http://www.linkedin.com/in/walaa