Agile Methodology MODULE 3 – Part 2.

Slides:



Advertisements
Similar presentations
Agile Software Development کاری از : مهدی هوشان استاد راهنما : استاد آدابی.
Advertisements

Software Development Life-Cycle Models
Agile Project Management with Scrum
Agile development By Sam Chamberlain. First a bit of history..
Project Management – An Overview Project as a metaphor – a way to approach a series of activities Contexts – construction managementt, IT development,
Iterative development and The Unified process
Software Development Models: Waterfall and Spiral Sung Hee Park Department of Mathematics and Computer Science Virginia State University August 21, 2012.
Agile Process: Overview n Agile software engineering represents a reasonable compromise to conventional software engineering for certain classes of software.
An Agile View of Process
Introduction to Agile.
Software engineering Process models Pavel Agejkin.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
1 Agile Methodology & Programming Ric Holt July 2009.
Chapter 4 Agile Development
Chapter 5 Agile Development Chapter 5 Agile Development Moonzoo Kim KAIST 1.
Tuesday, June 8 th, Agile Development-Successful Delivery & Implementing Across the Enterprise.
Current Trends in Systems Develpment
Alcatel-Lucent CDC Workshop, Coaching & Knowledge Transfer Project Management.
Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
2  Examine effects of using agile methods for creating Internet products on customer satisfaction and firm performance  Agile methods are informal,
Software Engineering (CSI 321) An Agile View of Process 1.
#AgileEd. Using Agile in the Classroom Cindy Royal, Associate Professor Texas State University slideshare.net/cindyroyal #AgileEd.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
AGILE SOFTWARE DEVELOPMENT. Agile software development : Agile software development refers to a group of software development methodologies that promotes.
Informed Traveler Program and Applications Agile / Scrum Overview Jerry Inberg.
Software Development Process Models (II) Agile Methodologies Extreme Programming.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
Chapter 5 Agile Development Moonzoo Kim KAIST
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Agile Project Management and the yin & yang of
Manifesto for Agile Software Development
Iterative development and The Unified process
Object-oriented Analysis and Design
Agile Methodology and Scrum
Process 4 Hours.
AGILE SCRUM METHODOLOGY
Introduction to Agile Software Development
Methodologies and Algorithms
Agile Training Day 2 November 17, 2015.
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Appendix B Agile Methodologies
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Software Engineering: A Practitioner’s Approach, 7/e Chapter 3 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Agile Software Development Brian Moseley.
Information Technology Project Management – Fifth Edition
Software Engineering (CSI 321)
Rapid software development
Introduction to Software Engineering
COMP 350: Object Oriented Analysis and Design Lecture 2
Copy rights  Exam Eligibility  Exam Pattern  Pre requisites  Content Distribution  Tools and Techniques  Domains and Tasks for.
Project Management and the Agile Manifesto
How to Successfully Implement an Agile Project
Agile Software Processes
Agile Process: Overview
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Introduction to Agile Blue Ocean Workshops.
Adjective: Able to move quickly and easily. Principles and Values
Chapter 3: Agile Software Processes
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
The Manifesto for Agile Software Development
Agile software development
Agile Development.
SD5953 Successful Project Management AGILE SOFTWARE DEVELOPMENT
Presentation transcript:

Agile Methodology MODULE 3 – Part 2

Agile Methodology Overview: What is the Agile Methodology? History Principles Characteristics AGILE Method: SCRUM

History Evolved in the mid 90s as part of a reaction against “heavyweight” methods e.g. heavily regulated, regimented, micro--managed use of the Waterfall Method Sought to move away from the Waterfall Method which was seen as bureaucratic, slow, demeaning, and inconsistent with the ways that developers perform effective work Initially called lightweight methods

History Earlier Methods Scrum (1986) Crystal Clear and Other Crystal Methodologies Extreme Programming (XP) (1996) Adaptive Software Development (ASD) Feature Driven Development Dynamic Systems Development Method (DSDM) (1995) Agile Modeling Lean Software Development Agile Unified Process (AUP)

Individuals and interactions over processes and tools The Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have 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

The Agile Manifesto Customer satisfaction by rapid, continuous delivery of useful software Working software is delivered frequently (weeks rather than months) Working software is the principal measure of progress Close, daily cooperation between business people and developers Face-to-face conversation is the best form of communication

The Agile Manifesto Projects are built around motivated individuals, who should be trusted to get the job done Continuous attention to technical excellence and good design Simplicity Self-organizing teams Regular adaptation to changing circumstances

Agile Characteristics More adaptive than predictive Focuses on the near future rather than the distant future Focuses on adapting quickly to changing realities rather than planning for the entire length of the development process Has a lot in common with Rapid Application Development

Agile Characteristics Time periods are strict time boxes and are measured in weeks rather than months Highly collaborative work Emphasizes real time communication Emphasizes on building releasable software in short time periods Customer is on sire and part of the development team

Agile Characteristics Phases Inception Elaboration Construction Transition

Agile Characteristics Inception Phase Smallest phase in the project Ideally short Goals: Establish a justification or business case for the project Establish the project scope and boundary conditions Outline the Use Cases and key requirements that will drive design tradeoffs

Agile Characteristics Inception Phase (continued) Goals: Outline one or more architectures Identify risks Prepare a preliminary project schedule and cost estimate Establish a baseline by which to compare actual and planned expenditures

Agile Characteristics Inception Phase (continued) Deliverables: Objectives and Scope of the Project High Level Use Cases Candidate Architectures Project Schedule and Cost Estimates

Agile Characteristics Elaboration Phase Project starts to take shape Healthy majority of the system requirements is captured Analysis of the problem domain Primary Goals: Address known risk factors Establish and validate system architecture Delve deeper into the requirements previously gathered

Agile Characteristics Elaboration Phase (continued) Deliverables: Detailed Use Cases Conceptual Diagrams Ex. Process Flow Diagrams, Activity Diagrams, etc. Package Diagrams Architectural Diagrams Stable System Architecture Plan for Construction Phase Including cost and schedule estimates

Agile Characteristics Construction Phase Largest phase Where the bulk of the coding takes place Use cases are translated to demonstrable prototypes System is built under the foundation laid in Elaboration

Agile Characteristics Construction Phase (continued) Main Focus: Development of components and features Implemented in a series of short, timeboxed iterations Each iteration yields an executable release of software Deliverables: First external release of the software Succeeding releases of the software as per iteration

Agile Characteristics Transition Phase Product moves from development team to end users Feedback received may lead to further refinements Refinements may be incorporated in several iterations

Agile Characteristics Transition Phase (continued) Activities: System conversion Training of end users and maintenance team Validation of system against end user expectation via beta testing Quality level validation Deliverables: Final release of the system

Agile Characteristics Principles on Code Production Keep it simple Have one shared metaphor Regularly restructure the system (Refactoring) Continuously integrate and test Follow coding standards

Agile Characteristics Agile Best Practices Daily kickoff and review of goals Short release cycles Responsive development Generalism Use of generic skill sets that are common across the team, instead of reliance on specific skill sets that are scarce

Agile Characteristics Advantages Customer decides scope, priority, and dates from a business perspective, while technical people estimate and track progress Incremental development Emphasis on responsibility for quality Emphasis on keeping it simple, regular refactoring, and continuous integration and testing

Agile Characteristics Advantages (continued) Lightweight, efficient, low-risk, flexible, scientific, and fun way of developing software

Agile Characteristics Criticism / Disadvantages Puts strong dependence on trust Code-centered rather than design-centered Lack of orderly design process and structured reviews may lead to extensive and time consuming tests Lack of structure and necessary documentation

Agile Characteristics Criticism / Disadvantages (continued) Only works with senior-level developers Reliance on verbal communication Requires too much cultural change to adopt

Suitability with Types of Projects AGILE Homeground Low criticality Senior developers Requirements change frequently Culture that thrives on “chaos” or changing realities

Suitability with Types of Projects PLAN-DRIVEN Homeground High criticality Junior developers Requirements don’t change too often Large number of developers Culture that demands order

Suitability with Types of Projects Scrum Extreme Programming (XP) Agile Modeling Agile Unified Process (AUP) Agile Data Method Test Driven Development (TDD) Feature Driven Development (FDD) Behavior Driven Development (BDD) Essential Unified Process (EssUP)

SCRUM Originally a rugby term which is short for “scrummage”

Suitability with Types of Projects Characteristics An iterative incremental process commonly used with the Agile Methodology Can be used: For managing software development projects As a program management approach (Scrum of Scrums) Works hand in hand with the PSA Time and Material Model

Suitability with Types of Projects Characteristics (continued) A process skeleton that includes a set of practices and pre-defined roles Employs “Sprints” – a time period, usually 15-30 days in which development occurs on a set backlog items that the team has committed to

Scrum Roles Pig Roles – The ones committed to the project and the Scrum process (Scrum Team) Chicken Roles – The ones not part of the actual Scrum process but are only involved.

Pig Roles Products Owner The voice of the customer Responsible for maintaining the Product Backlog Scrum Master (or Facilitator) Responsible for the Scrum process Ensures that Scrum is used correctly and its benefits are maximized.

Pig Roles Team A cross-functional group of people Responsible for managing itself to develop the product

Chicken Roles Users Who the software is built for Stakeholders People who have interest in the project People within or outside an organization that may influence the project’s objectives and outcomes Managers The people who will set up the environment for development

SCRUM Documents Product Backlog The WHAT that will be built High level document for the entire project Prioritized list of high level requirements Contains broad descriptions of all required features, wish list items, etc. Contains rough estimates

SCRUM Documents

SCRUM Documents Sprint Backlog Tells HOW requirements are to be implemented in the upcoming Sprint Greatly detailed document enumerating tasks to be completed during the Sprint Broken down list of tasks, with each task being no more than 16 hours Tasks are never assigned, but signed-up for by team members

SCRUM Documents

SCRUM Documents

SCRUM Documents Burn Down Chart Publicly displayed chart Shows the amount of remaining tasks for the current Sprint Updated daily Gives a simple view of the daily progress of the team during a Sprint

SCRUM Documents

SCRUM General Practices Customers are part of the development team Frequent intermediate deliveries with working functionality Frequent risk and mitigation plans Transparency in planning and module development Frequent stakeholder meetings to monitor progress

SCRUM Documents

QUESTIONS AND COMMENTS ?