Agile software development

Slides:



Advertisements
Similar presentations
Keith McMillan Principal, Adept Technologies Copyright (C) 2008, Adept Technologies llc.
Advertisements

Applying Agile Methodologies to Traditional Publishing Kristen McLean Bookigee, Inc. February 12 th, 2011.
Colin Weaver The Eleven Essential Behaviours of Successful Agile Project Teams.
Agile Software Development کاری از : مهدی هوشان استاد راهنما : استاد آدابی.
AGILE DEVELOPMENT Outlines : Quick Look of agile development Agility
COPYRIGHT © 2012 ALCATEL-LUCENT. ALL RIGHTS RESERVED. 1 Agile documentation development methodology Giby Panicker and Judith Benjamin 1-Dec-2012.
PROC-1 3. Software Process. PROC-2 What’s a process? Set of activities in creating software It involves creativity –hard to automate –Requires human judgment.
Software Development Methodologies 1. A methodology is: A collection of procedures, techniques, principles, and tools that help developers build a computer.
Agile Architecture Prabhu Venkatesan for COMP-684.
Agile 101.
Agile Project Management with Scrum
Intro to Scrum. What is Scrum? An answer to traditional “fixed cost / strict requirements” contracts which had very high rates of failure Recognizes the.
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,
Agile Architecture? Paul Lund 24 th Nov Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Agile Methods.
Software Development Models: Waterfall and Spiral Sung Hee Park Department of Mathematics and Computer Science Virginia State University August 21, 2012.
Does it work with Data Warehouses?. “We are uncovering better ways of developing software by doing it and helping others do it. Through this work we.
Agile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions.
An Agile View of Process
Introduction to Agile.
Software engineering Process models Pavel Agejkin.
Rally: One Writer’s Perspective. Background 28 years in technical communications including Symantec, Autodesk, and Cisco. Participated in Rally-based.
BEFORE AGILE METHODS Other Engineering fields development models were used, ie: Waterfall Method: Intensive planning and refactoring before coding is actually.
1 Agile Methodology & Programming Ric Holt July 2009.
Agile Programming Principles.
The Agile Primer July 2008 © ThoughtWorks 2008.
CSE G674/2009 Project Project Management Section Presented by: Amir Aref Adib.
Chapter 4 Agile Development
AGILE Methodology. AGILE  derived from the word ‘agile manifesto’, also called the Manifesto for Agile Software Development which is a formal proclamation.
Current Trends in Systems Develpment
Alcatel-Lucent CDC Workshop, Coaching & Knowledge Transfer Project Management.
AgileCamp Presents: Agile 101. Good luck in your presentation! This slide deck has been shared by AgileCamp Kit under the Creative Commons Attribution.
Building a new HMS from scratch Bite size software delivery Richard Troote Alex Stephenson Head of ICT Head of Property Services.
Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model.
Agile Methodology Paul Mohrbacher. Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through.
IS3320 Developing and Using Management Information Systems Lecture 20: Project Management Rob Gleasure
#AgileEd. Using Agile in the Classroom Cindy Royal, Associate Professor Texas State University slideshare.net/cindyroyal #AgileEd.
AGILE XP AND SCRUM © University of LiverpoolCOMP 319slide 1.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
- Discussion of Chapter 1 in Martin and Martin.  We are uncovering better ways of developing software by doing it and helping others do it. Through this.
Module 2: What is Agile? Why use it? TLO: Given a DoD program involved in software development, the student will recognize situations where applying agile.
Agile 101. Feasibility Study SDLC – What is it? Systems Development Life Cycle: The most commonly used, and generally accepted, project management approach..
The Agile Manifesto Some thought starters for Ogilvy on how to work with Agile and SCRUM approaches to managing projects.
Steve Lundquist, PMP, M.Sc..  As a PMP certified program manager, there are numerous tools, processes, methodologies, and tricks that are available to.
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 Engineering cosc 4359 Spring 2017.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
Chapter 5 Agile Development Moonzoo Kim KAIST
Agile Project Management and the yin & yang of
Agile Methodology and Scrum
AGILE SCRUM METHODOLOGY
Introduction to Agile Software Development
Principles for Agile Development
Agile Training Day 2 November 17, 2015.
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
Agile Software Development Brian Moseley.
Project Management and the Agile Manifesto
How to Successfully Implement an Agile Project
The Agile Manifesto is based on 12 principles
Introduction to Agile Blue Ocean Workshops.
Adjective: Able to move quickly and easily. Principles and Values
Projects, Assignments, and other Assessments
Agile software development
SD5953 Successful Project Management AGILE SOFTWARE DEVELOPMENT
Presentation transcript:

Agile software development

Agile software development software development methodologies based on  iterative and incremental development, where requirements and solutions evolve through collaboration between  self-organizing cross-functional teams. 

Predecessors heavyweight methods heavily regulated, regimented, micromanaged, waterfall model of development lightweight software development (mid-1990s ) Scrum (1995),  Crystal Clear, Extreme Programming (1996),  Adaptive Software Development, Feature Driven Development, Dynamic Systems Development Method (DSDM) (1995).

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

Agile Manifesto - 1 Individuals and Interactions – in agile development, self-organization and motivation are important, as are interactions like co-location and pair programming. Working software – working software will be more useful and welcome than just presenting documents to clients in meetings. Customer collaboration – requirements cannot be fully collected at the beginning of the software development cycle, therefore continuous customer or stakeholder involvement is very important. Responding to change – agile development is focused on quick responses to change and continuous development.

Agile Manifesto - Twelve principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements, even late in development Working software is delivered frequently (weeks rather than months) Working software is the principal measure of progress Sustainable development, able to maintain a constant pace Close, daily co-operation between business people and developers

Agile Manifesto - Twelve principles -II Face-to-face conversation is the best form of communication (co-location) Projects are built around motivated individuals, who should be trusted Continuous attention to technical excellence and good design Simplicity Self-organizing teams Regular adaptation to changing circumstances

Agile Model Driven Development (AMDD) MDD-approach to software development where extensive models are created before source code is written. AMDD - small, co-located team

You'll work with a range of stakeholders

AMDD lifecycle: Modeling activities in SDLC

AMDD Through the Agile Development Lifecycle.

Agile requirements change management process

Why Should You Do Some Initial Agile Requirements Envisioning? You can answer fundamental business questions.   Like it or not, people are always going to ask you: what the vision what's the scope how long do you think it's going to take (the schedule) how much is it going to cost (the expected budget).  You often don't need to answer these questions in detail but you will need to convince the people who are funding and supporting your project that you understand the fundamental business issues that your project team is going to address. Improved productivity.  You can identify and think through some of the critical business issues facing your project.

Why Should You Do Some Initial Agile Requirements Envisioning? - II Big Requirements Up Front (BRUF) Approach Reduced business risk. Your team gains the advantage of having a guiding business vision without the disadvantages associated with BRUF.  Scaling agile software development.  Your initial requirements model will be a key work product in any "agile at scale" efforts because it provides the business direction required by your overall architecture team for their initial architectural envisioning efforts 

What Should You Model Initially? identify some high-level requirements as well as the scope of the release The goal is to get a good gut feel what the project is all about. Go on: Usage model Domain model  User interface model(s)

Usage Model Usage models enable you to explore: how users will work with your system collection of essential use cases or system use caseson a Rational Unified Process (RUP) project a collection of features for a Feature Driven Development (FDD) project a collection of user stories for an Extreme Programming (XP) project.

Usage Model - II

Usage Model - III

Usage Model - IV

Domain Model

User Interface Model

User Interface Model

User Interface Model

User Interface Model

What Modeling Tools Should You Use?

How Much Initial Requirements Envisioning Should You Do? Initial requirements stack. prioritized requirements stack Initial project vision.  To reduce your overall business risk on the Rational Unified Process (RUP) Project Management Institute (PMI) Overview diagrams.  Because you’ll likely need to give presentations to key project stakeholders overviewing the project you’ll likely want to create a couple of scope diagrams which describe the business.  UML use case diagrams or traditional business process models are usually pretty good at this. 

The value of modeling

Why You Don't Need, Nor Want, Details Up Front It results in significant wastage.   It decreases the chance that you'll detect that you're building the wrong thing.  People aren't good at defining up front what they want.  It motivates poor decision making.  It increases communication risk. 

Why You Don't Need, Nor Want, Details Up Front - II Many traditionalists will tell you that you need to model everything up front in detail.  They mistakenly believe this for several reasons: That's what they know.  Big modeling up front (BMUF) They're specialists Traditional project management ideas motivate poor modeling strategies. They underestimate their own scheduling skills. They've given up hope. 

When Does it Make Sense to do a lot of Requirements Envisioning? You're working in an unknown problem space. You're working on a commercial product.  Your governance framework is serial.  You're doing systems engineering.  Your contract demands it.  Your organizational culture promotes it.

Are People Actually Doing This?

Primary approaches to modeling.

Success factors by paradigm

The best practices of Agile Modeling.

SCRUM

Intro iterative, incremental framework for project management contains sets of practices and predefined roles: the “ScrumMaster”, who maintains the processes the “Product Owner”, who represents the stakeholders and the business the “Team”, a cross-functional group of about 7 people who do the actual analysis, design, implementation, testing, etc.

Scrum Roles Ancillary Scrum roles The ancillary(additional) roles in Scrum teams are those with no formal role and infrequent involvement in the Scrum process—and must nonetheless be taken into account. Users The software is being built for someone! If software is not used - much like 'the tree falling in a forest' riddle - was it ever written? Stakeholders (customers, vendors) The people that will enable the project, but are only directly involved in the process at sprint reviews. Managers People that will set up the environment for the product development organization.

Scrum Roles Core Scrum roles The core roles in Scrum teams are those committed to the project in the Scrum process—they are the ones producing the product (objective of the project). Product Owner represents the voice of the customer and is accountable for ensuring that the Team delivers value to the business. writes customer-centric items (typically user stories), prioritizes them, and adds them to the product backlog(access). Scrum teams should have one Product Owner, and while they may also be a member of the Development Team, it is recommended that this role not be combined with that of ScrumMaster.

Scrum Roles Team The Team is responsible for delivering the product. 5–9 people with cross-functional skills who do the actual work (analyse, design, develop, test, technical communication, document, etc.). It is recommended that the Team be self-organizing and self-led, but often work with some form of project or team management. ScrumMaster who is accountable for removing impediments(hurdles) to the ability of the team to deliver the sprint goal/deliverables. not the team leader but acts as a buffer between the team and any distracting influences. ensures that the Scrum process is used as intended. enforcer of rules.

Scrum process flow

Scrum process flow Planning Product owner and team decide which stories are actually feasible to be moved from the Product backlog to the Sprint backlog. Sprint The team is left alone to perform the user stories which it has committed itself in the planning meeting. The product owner may attend the “daily scrums” if a granular status update is desired. Review The team presents its work and verifies what it has done indeed satisfies the utmost desires of the product owner.