Virtually Agile Astro Sabre (Matt Ganis) IBM, Senior Technical Staff Member Hawthorne, NY - September 20, 2007.

Slides:



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

A little Software Engineering: Agile Software Development C Sc 335 Rick Mercer.
What is Agile? Agile is a software methodology based on iterative and incremental development, where requirements and solutions evolve through collaboration.
Keeping the Peace: Mixing Agile and Waterfall Dr. Matthew Ganis, IBM Senior Technical Staff Member Tom Hawkins, Program Manager, ibm.com Westchester Project.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Alternate Software Development Methodologies
Clinton Keith CTO, High Moon Studios Agile Methodology in Game Development: Year 3.
NAUG NAUG Knowledge Evening – th February 2007.
 User assignments (product owner)  ‘circle’  1 st sprint: ◦ Scrum Boards (informative workspace)  Product -, release -, sprint -, defect backlog 
Agile Process Models. Prescriptive models don’t work It is unrealistic to not have changes. Why? The Agile Manifesto: Individuals and interactions over.
Agile development By Sam Chamberlain. First a bit of history..
© ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua.
Software Life Cycles ECE 417/617: Elements of Software Engineering
Agile
1 Software Testing and Quality Assurance Lecture 34 – SWE 205 Course Objective: Basics of Programming Languages & Software Construction Techniques.
Agile Software Development. Traditional Software Development 1.Initiation (RFP) 2.Feasibility study Technical – can we build it? Economic – should we.
EXtreme Programming Quick Introduction Daniel Arraes Pereira Eduardo Lourenço Apolinário Ricardo de Oliveira Cavalcanti.
Extreme Programming Mark Steverson. What Is Extreme Programming? ● Extreme Programming (XP) is a lightweight, agile methodology developed by Kent Beck.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
COMP 350: Object Oriented Analysis and Design Lecture 2
An Agile View of Process
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Software Development Landscape
1 Agile Methodology & Programming Ric Holt July 2009.
Software Engineering Modern Approaches
Tuesday, June 8 th, Agile Development-Successful Delivery & Implementing Across the Enterprise.
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
By Saravanan Bala. General Report 31 % of Software projects are cancelled 75 % of the software projects are considered failures by the people who initiated.
Testing Challenges in an Agile Environment Biraj Nakarja Sogeti UK 28 th October 2009.
Unified Process versus Extreme Programming. Outline Compare and contrast UP and XP  Processes / Disciplines  Management  Artefacts Risk management.
1 e X treme P rogramming D. Dranidis September 2000 CITY College.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
Informatics 43 – May 14, Open Source Source code is freely available and (usually) re-distributable Examples: Firefox web browser Apache HTTP Server.
Copyright © 2015 Curt Hill Software Development Paradigms What do you need to know?
CS3100 Software Project Management Agile Approaches.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Goals for Presentation Explain the basics of software development methodologies Explain basic XP elements Show the structure of an XP project Give a few.
Extreme Programming Based on and
Lecture 4 – XP and Agile 17/9/15. Plan-driven and agile development Plan-driven development A plan-driven approach to software engineering is based around.
Extreme programming (XP) Variant of agile Takes commonsense practices to extreme levels © 2012 by Václav Rajlich1.
Software Engineering Principles Practical Advice and Steps for Managing Your Project.
Agile Methods Presentation By: Jason Abbett. Definition A process to rapidly develop software Many kinds of agile methods but few are practiced.
Agile. Processes Waterfall Traditional With prototyping Sprial Agile Dynamic Systems Development Method (DSDM) Scrum Crystal eXtreme Programming (XP)
Phoenix Scrum User Group Simplifying Scrum Online May 21 st 2009.
Agile 101. Feasibility Study SDLC – What is it? Systems Development Life Cycle: The most commonly used, and generally accepted, project management approach..
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
Introduction to Software Engineering Muhammad Nasir Agile Software Development(2)
TIK 302 Rekayasa Perangkat Lunak Agile Proses. Agile View of Process Represents a reasonable compromise between conventional software engineering for.
Kanban Advanced Software Engineering Dr Nuha El-Khalili.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
Project Management Software development models & methodologies
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
Agile Methods SENG 301.
Agile Project Management and the yin & yang of
Flight Software Conference 2016
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Extreme Programming.
Waterfall and Agile Quality Techniques
How to Successfully Implement an Agile Project
Teaching slides Chapter 1.
Agile Process: Overview
Introduction to Agile Blue Ocean Workshops.
Chapter 3: Agile Software Processes
Agile Development – a new way of software development?
Agile software development
SD5953 Successful Project Management AGILE SOFTWARE DEVELOPMENT
Presentation transcript:

Virtually Agile Astro Sabre (Matt Ganis) IBM, Senior Technical Staff Member Hawthorne, NY - September 20, 2007

Who am I ? My Name is Matt Ganis I lead a group inside IBM called that consists of developers, testers, architects and project managers interested in pursuing Agile methods Officially I work in the ibm.com organization as part of the site architecture team for the external website. I’m also the lead architect for the ibm.com Virtual Branch Office in Second Life

“Internet Time” “ The Conventional wisdom about competition in the age of the Internet is that the business world has become incredibly fast and unpredictable, and we need to throw out the old rules of the game….. For companies competing in the new information economy, the Internet is forcing managers and employees to experiment, invent, plan, and change their ideas constantly while they try to build complex new products and technologies ” Competing on Internet Time: Lessons from Netscape and it’s battle with Microsoft - Michael Cusumano and David Yoffie

What is Agile 1 Agile is an iterative and incremental (evolutionary) approach to software development which is performed in a highly collaborative manner with "just enough" ceremony that produces high quality software which meets the changing needs of its stakeholders. 1

Why Agile ? Many clients are struggling with application delivery issues: –Poor IT relationship with the business –Track record of poor project delivery –Inability to deliver on-time, on-budget –Inability to delivery solutions that meet the needs of the business –Poor results with offshore delivery, or seek to avoid offshore delivery –Large project backlog Internal and external IBM delivery projects are interested in Agile techniques to help address delivery excellence challenges –Requirements often are not well-defined –Speed time to deliver critical business functionality –Reduce technical risk for first of a kind solutions

Agile Practices Planning Game Small Releases Simple Design Continuous Testing Refactoring 40-hour work week Pair Programming Collective code ownership Continuous Integration On-Site customer Coding standards XP is extreme in the sense that it takes 12 well-known software development "best practices" to an extreme

Key Agile Terms TermDefinition Stories A project conducted under an Agile Method is broken up into a set of very small deliverables called stories. Velocity Velocity is a method for measuring the rate at which teams consistently deliver business value in a software system (at what rate can they deliver stories) Iteration Software developed during one unit of time is referred to as an iteration, which may last from one to four weeks. Each iteration is an entire software project: including planning, requirements analysis, design, coding, testing, and documentation. Stories are implemented within iterations Customer The stakeholder that is responsible (i.e., has money) and “owns” the requirement

What makes a “good” story (from Bill Wake: I Independent. We can build them in any order. This allows us to select stories with the highest value N Negotiable - Remember that agile methods are typically variable in scope. That is the time line is fixed (iteration length) and the quality and scope are varied. V Value. Stories need to have real business value to the stakeholders so they can chose the most important” ones E Estimate. If a story can't be estimated (how long to complete) then the customer can't derive value or assign a priority to it. S Small. Having small stories is a result of estimable and negotiable. The larger the story the harder it is to estimate, the less flexibility in negotiation. T Testable. Stories need to be testable, otherwise how do you know the story is complete? I N V E S T

Iterative Development Flow Stories Velocity Unfinished Work New Function Bug Fixes New Velocity Refactoring Retrospective Iteration Planning Development Latest Version Release Plan Bugs Customer Interaction Iteration Plan

Scrum (project management)

Second Life Object as stories Objects are perfect examples for Agile stories. They have a value based on the function they include, can be independent and are negotiable RequirementsStory(s) tasks

Sequential vs. Agile (incremental) Create ObjectBuild Script TestDeploy Create Object Build Script Test Deploy Time

Story Examples The Requirement: We want a billboard (that can exist anywhere in Second Life) that will read a list of events from our calendaring system for a given month and display them in an effort to promote attendance. The calendaring system exists inside IBM (behind a firewall) Arch User Design Development Customer DBA Deploy StartFinish Arch User Design Development Customer DBA Deploy Arch User Design Development Customer DBA Deploy Agile approach

The Stories (the requirement decomposes into at least 3 stories) 1.Create a billboard that can display “text on a prim” (hopefully sentences) 2.Read the text from a standard Notecard that can be dropped on the object 3.Add HTTP access to the billboard to retrieve a standard text file for all copies of the billboard

Benefits Value is delivered faster –We can also achieve a certain level of cost avoidance Managing rapid change of requirements based on business value Developers are learning and training each other –Stories will get more complex as skills grow