Taking a Waterfall Project Agile REF: Paul Geberth GCSS-J Project Manager Establishment of an Agile Project.

Slides:



Advertisements
Similar presentations
McGraw-Hill/Irwin © 2006 The McGraw-Hill Companies, Inc. All rights reserved BUSINESS DRIVEN TECHNOLOGY Chapter Nineteen: Building Software to Support.
Advertisements

BUSINESS DRIVEN TECHNOLOGY
Transforming Organizations
Software Development Methodologies 1. A methodology is: A collection of procedures, techniques, principles, and tools that help developers build a computer.
Copyright  2002, Medical Present Value, Inc. All rights reserved. Copyright © 2010 Texas Education Agency. All rights reserved. TEA confidential and proprietary.
Ni.com Introduction to Agile and Scrum Speaker/Author: Paul Packebush Section Manager, Corporate Metrology Author:Logan Kunitz Staff Calibration Engineer.
Slide Set to accompany Web Engineering: A Practitioner’s Approach
SCRUM John Drew. SCRUM - overview Scrum is a project management discipline that has evolved since the early 1990s to deliver software that meets business.
7-1 INTRODUCTION: SoA Introduced SoA in Chapter 6 Service-oriented architecture (SoA) - perspective that focuses on the development, use, and reuse of.
Validata Release Coordinator Accelerated application delivery through automated end-to-end release management.
Roadmap to Continuous Integration Testing and Benefits Gowri Selka, Walgreens Natalie Koltun, Walgreens May 20th, 2014 ©2013 Walgreen Co. All rights reserved.
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.
Improving Process for Better Software. Who We Are An experiential learning program that provides technology solutions for our partners, and real- world.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Agile Methods.
Iterative development and The Unified process
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
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.
Introduction to Agile.
Software engineering Process models Pavel Agejkin.
DNN LOVES JENKINS FOR CONTINUOUS INTEGRATION
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
CONFIDENTIALITY © 2010 BA ValueBASE LLP, The concepts and methodologies contained herein are proprietary to BA ValueBASE LLP. Duplication, reproduction.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Software Project Management
CLEANROOM SOFTWARE ENGINEERING.
1 Agile Methodology & Programming Ric Holt July 2009.
Software Engineering Modern Approaches
Agile Programming Principles.
The Agile Primer July 2008 © ThoughtWorks 2008.
Agile Web Development C. Daniel Chase University of Colorado at Boulder.
AGILE Methodology. AGILE  derived from the word ‘agile manifesto’, also called the Manifesto for Agile Software Development which is a formal proclamation.
AgileCamp Presents: Agile 101. Good luck in your presentation! This slide deck has been shared by AgileCamp Kit under the Creative Commons Attribution.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Carnegie Mellon University © Robert T. Monroe Management Information Systems Supply Chain Management Systems Management Information.
2 © 2014 copyright of Training ByteSize unless otherwise stated. “I’ve always been Agile. I just never knew it! A real experience from the 1990s.” John.
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.
Systems Design Approaches The Waterfall vs. Iterative Methodologies.
CS1: Classic Software Life Cycle “Waterfall” method: 1.Requirements/Analysis Determine the problem to be solved – client-centered 2.Specification.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
AGILE COTS Václav Pergl We are uncovering better ways of developing software by doing it and helping others do it. Through this work.
1 11/21/2015 ã 2007, Spencer Rugaber Agile Manifesto February, 2001 XP, SCRUM, DSDM, Adaptive Software Development,
2  Examine effects of using agile methods for creating Internet products on customer satisfaction and firm performance  Agile methods are informal,
Why (or When) Agile Fails Creating high performance software delivery teams.
CS 5150 Software Engineering Lecture 2 Software Processes 1.
Agile Metrics It’s Not All That Complicated. © 2011 VersionOne 2 Welcome – About your Trainer, Katia Sullivan VersionOne Product Trainer and Agile Coach.
Stand Up Comedy Project/Product Management
Overview of RUP Lunch and Learn. Overview of RUP © 2008 Cardinal Solutions Group 2 Welcome  Introductions  What is your experience with RUP  What is.
Software Testing Process
- 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.
Chapter 3 Agile Development
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.
Integrating the Code during the Development Alexander Vakrilov Telerik Corporation
A way to develop software that emphasizes communication, collaboration, and integration between development and IT operations teams.
Copyright 2015, Robert W. Hasker. Classic Model Gathering Requirements Specification Scenarios Sequences Design Architecture Class, state models Implementation.
Agile Introduction Emerson Murphy-Hill. Agile Manifesto/Alliance XP, SCRUM, DSDM, Adaptive Software Development, Crystal, FDD February 2001 (Snowbird,
CS 4500: Software Development Software Process. Materials Sommmerville Chapters 1, 2 and 3 Software Cycle and Models:
RATIONAL UNIFIED PROCESS PROCESS FRAMEWORK OVERVIEW.
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
Baby Steps to Agility How to Grow Into Agile. A little about me A little about Agile Growing into Agile Questions Goals.
Embedded Systems Software Engineering
Agile Project Management and the yin & yang of
Introduction to Agile Software Development
A Case Study: Automated Continuous Software Engineering Cycle (ACSEC)
How to Successfully Implement an Agile Project
Baisc Of Software Testing
Adjective: Able to move quickly and easily. Principles and Values
Chapter 3: Agile Software Processes
Presentation transcript:

Taking a Waterfall Project Agile REF: Paul Geberth GCSS-J Project Manager Establishment of an Agile Project

HEADER / FOOTER INFORMATION (SUCH AS NORTHROP GRUMMAN PRIVATE / PROPRIETARY LEVEL I) 2 What Is Agile Agile vs. Waterfall: –Waterfall based in: Long phases. Heavy investment on big up front design. Lacks flexibility. –Customers want the ability have new capabilities within a few months: Agile is highly responsive to change. Rapid/focused release cycles. Customer (stakeholder) daily involvement is key.

HEADER / FOOTER INFORMATION (SUCH AS NORTHROP GRUMMAN PRIVATE / PROPRIETARY LEVEL I) 3 Why go Agile – Waterfall Model Waterfall Life-Cycle cartoon by Geoff Harris "Everything is going great, our risks have been identified, our customer is in complete agreement. System testing should be a breeze".

HEADER / FOOTER INFORMATION (SUCH AS NORTHROP GRUMMAN PRIVATE / PROPRIETARY LEVEL I) 4 Why go Agile – Waterfall Model Waterfall Life-Cycle cartoon by Geoff Harris

HEADER / FOOTER INFORMATION (SUCH AS NORTHROP GRUMMAN PRIVATE / PROPRIETARY LEVEL I) 5 Why go Agile – Waterfall Model Global Combat Support System (GCSS-J ) executing as a Waterfall styled program: –Well defined schedule with firm milestone dates. –Loosely defined requirements. –Milestones and deliveries followed the typical Waterfall methodology: It quickly became apparent that waterfall was NOT the correct answer for us !

HEADER / FOOTER INFORMATION (SUCH AS NORTHROP GRUMMAN PRIVATE / PROPRIETARY LEVEL I) 6 What is Agile

HEADER / FOOTER INFORMATION (SUCH AS NORTHROP GRUMMAN PRIVATE / PROPRIETARY LEVEL I) 7 Why go Agile – Continuous Integration Transition Continuous Integration is a software development practice where members of a team integrate their work frequently. Each person usually integrates at least daily - leading to multiple integrations per day. Because of high integration frequency, every integration has to be verified by an automated build to detect integration errors as quickly as possible, which prevents errors from snowballing.

HEADER / FOOTER INFORMATION (SUCH AS NORTHROP GRUMMAN PRIVATE / PROPRIETARY LEVEL I) 8 Why go Agile Increasing productivity, Reducing time to market, Reducing software defects. By monitoring build status in near real time, we ensured that a broken build could be fixed quickly. This resulted in always having a working system on daily basis. Remote developers checking code in/out from Source control Automate Detect build detects any modifications, automatically tries to build the software and execute tests. Source Control Sends notifications of build success or failure to developers. Upon notification of a build failure, developers responsible for the offending code fix the broken build, generally within the same day.

HEADER / FOOTER INFORMATION (SUCH AS NORTHROP GRUMMAN PRIVATE / PROPRIETARY LEVEL I) 9 Establishment of an Agile Project A survey done by VersionOne on companies practicing the Agile development approach showed that 55% of respondents reported 25% or greater improvement in productivity In another survey, Microsoft researchers found out that using TDD alone led to 2-4 times increase in software quality at cost of 20%-35% more time. The Logistics Decision Support System (LDSS), is developing a complete, integrated logistics decision support system for the Army’s Future Combat System by implemented Continuous Integration and Test Driven Development, and what we learned and gained from practicing these two Agile techniques.

HEADER / FOOTER INFORMATION (SUCH AS NORTHROP GRUMMAN PRIVATE / PROPRIETARY LEVEL I) 10 Practicing Test-Driven Development An automated build server can detect trivial compilation errors, but it can not detect runtime bugs. The important of Test Driven Development is writing unit tests and integration tests (not after the fact) to detect runtime bugs early on. One of the biggest challenges is components to be developed form a huge web of inter-dependencies, which makes it impossible to predict which inter-dependencies are going to be the development bottlenecks. Utilized the Dependency Injection design pattern. We sought to establish a level of abstraction via public interfaces and to remove dependencies on components by supplying a plug-in architecture.

HEADER / FOOTER INFORMATION (SUCH AS NORTHROP GRUMMAN PRIVATE / PROPRIETARY LEVEL I) Practicing Test-Driven Development 11

HEADER / FOOTER INFORMATION (SUCH AS NORTHROP GRUMMAN PRIVATE / PROPRIETARY LEVEL I) 12 Managing Integration Complexity via Dependency Injection Finding and fixing bugs in a large software system is very time-consuming. This complexity usually leads to an integration nightmare in terms of cost and schedule. By gradually introducing integration dependencies via Dependency Injection along the course of software development, we were able to focus effort efficiently on finding and fixing bugs. First of all, we started with layered system designs, we constructed mock layers so that development teams could use these mock layers for writing automated integration tests. As we developed and tested more components, we started replacing mock components with real implementation components and writing more automated integration tests. This approach allowed us to gradually build up the system with thoroughly tested and integrated components.

HEADER / FOOTER INFORMATION (SUCH AS NORTHROP GRUMMAN PRIVATE / PROPRIETARY LEVEL I) Benefits of Agile Working software is the primary measure of progress. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. Business people and developers must work together daily throughout the project. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation 13