• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Agile Simplified
 

Agile Simplified

on

  • 3,436 views

An introduction to Agile Software Development.

An introduction to Agile Software Development.

Statistics

Views

Total Views
3,436
Views on SlideShare
3,350
Embed Views
86

Actions

Likes
3
Downloads
111
Comments
0

6 Embeds 86

http://walaapoints.blogspot.com 72
http://www.linkedin.com 9
http://www.slideshare.net 2
http://74.125.95.132 1
http://www.walaapoints.blogspot.com 1
https://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Agile Simplified Agile Simplified Presentation Transcript

    • Software Development By: Walaa Mohamed Atef
    • 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.
    • Flexible / Agile…. 
    • Planning Analysis Requirements Definition Design Development Integration & Test Operation & Maintenance
    • 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 
    • An alternative way of managing software projects  With different values and principles to traditional development  Incremental, iterative and collaborative, rather than distinct stages 
    • Agile software development refers to a group of software development methodologies 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.
    • 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.
    • 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 
    •  Vary Scope to deliver on time and on Budget.  Never Compromise on Quality
    • 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 
    • 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 
    • Extreme Programming (XP)  Crystal Clear  Adaptive Software Development (ASD)  Scrum  Feature Driven Development (FDD)  Dynamic Systems Dev Method (DSDM)  Test-driven Development  Lean  Custom 
    • “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 
    • Revenue  Speed to market  Quality  Flexibility / agility  Right product  Visibility  Cost control  Customer satisfaction  Less risk  More motivating! 
    • 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 
    • 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… 
    • 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.
    • ?
    • 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 
    • E-mail: walaaatef@hotmail.com  Blog: http://walaapoints.blogspot.com  Online profile: http://www.linkedin.com/in/walaa 