SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC)

Similar documents
Software Life Cycle. Main Topics. Introduction

AGILE SOLUTIONS. Agile Basics

Introduction to Agile/Extreme Programming

Chapter 3 Software Process Model

Waterfall model is the earliest SDLC approach that was used for software development.

THE ADVANTAGES OF AGILE METHODOLOGIES APPLIED IN THE ICT DEVELOPMENT PROJECTS

CMPT 275 Software Engineering

Major attributes of the Lifecycle. The Systems Development Lifecycle. Project phases. Planning. Design. Analysis

SWE 211 Software Processes

Processes and Life- Cycles. Kristian Sandahl

Reducing Business Risk

Software Engineering Lecture 5 Agile Software Development

03. Perspective Process Models

D25-4. How Intertech Uses Agile

Case Study: How to Eliminate Flaws of Waterfall and Agile Development Processes Using a Hybrid Model

MODULE Explain briefly the different types of system models that might be created during the system analysis phase. 2. Write short notes on

Architectural Practices and Challenges in Using Agile Software Development Approaches

SOFTWARE TESTING PROCESS IN AGILE DEVELOPMENT

SCRUM - compact The agile software development methodology

An Evolutionary Lifecycle Model with Agile Practices for Software Development at ABB

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2

Agile Easy Read Snippets - Book 1. Agile Snippets. David Geoffrey Litten Agile Primer

This tutorial also elaborates on other related methodologies like Agile, RAD and Prototyping.

Scrum. a description. V Scrum Alliance,Inc 1

Agile Software Development. Agile Software Development Basics. Principles of the Agile Alliance. Agile Manifesto. Agenda. Agile software development

Agile Tutorial for the Senior Project Class School of Computing and Information Sciences Florida International University

Agile at Scale -Beyond SAFe. John B Hudson, B.Sc., PMP, ACP, CSM, SPC

Session 11E Adopting Agile Ground Software Development. Supannika Mobasser The Aerospace Corporation

Scrum and Agile Processes. Dr.-Ing. Oliver Ciupke Haufe-Lexware GmbH & Co. KG 2011

Introduction to Software Engineering

AGILE SOFTWARE DEVELOPMENT. Keith Pine Kumeel Alsmail Parker Li Björn Davis

Agile Development Doesn t Have to Mean Fragile Enterprise Processes

Introduction to Agile and Scrum

A Hybrid Approach to the Use of Agile in Health IT. Session 147 March 7, 2018 Spencer Reeser-Stout, Senior Project Manager

AGILE methodology- Scrum

Introduction to Agile Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 07 09/13/2016

Scrum. Software Engineering and. The Waterfall model. The Waterfall model - some arguments. The Waterfall model - some arguments. Time.

Johanna Rothman. Chapter 1 Why Agile and Lean Approaches Work. Copyright 2017

The Art of Agile Practice

Chapter 3 Agile Software Development

Chapter 8. Systems Development. Ralph M. Stair George W. Reynolds

Managing Risk in Agile Development: It Isn t Magic

V Model material adapted from Steve Easterbrook. Waterfall Model material adapted from Steve Easterbrook. Lifecycle of Software Projects

Part 1. Software engineering Facts. CSC 4181 Compiler Construction Software Engineering Lectures. What is software engineering? What is software?

Based on Software Engineering, by Ian Sommerville Coherent sets of activities for specifying, designing, implementing and testing software systems

AGILE DEVELOPMENT AND ITS IMPACT ON PRODUCTIVITY

Agile Development Methodologies:

SCRUM - LESSONS FROM THE TRENCHES

Certified Scrum Master

Volume 8, No. 1, Jan-Feb 2017 International Journal of Advanced Research in Computer Science RESEARCH PAPER Available Online at

[control] [data] [process] [strategy] [partners] [testing] [validation]

Working Towards Lightweight Enterprise Architectures: the Process, frameworks, standards, and models

Business Alignment Through the DevOps Loop

Owning An Agile Project: PO Training Day 2

Software Development Methodologies. CSC 440: Software Engineering Slide #1

Introducing Enterprise Scrum for Business Agility: Scale Scrum from Single Teams to Whole Organizations

Choose an Agile Approach

Pertemuan 2. Software Engineering: The Process

BA25-Managing the Agile Product Development Life Cycle

Establishing Architecture for Large Enterprise Solutions in Agile Environment

Presented by Only Agile. What is Agile?

CollabNet Trends, Challenges, and Success with Agile ALM

Harnessing the power of agile development

SDLC Models- A Survey

January 17, All Rights Reserved Best Practices Training, LLC

Preparation Guide. EXIN Agile Scrum Foundation

User Involvement in Project Success

6/29/ Professor Lili Saghafi

Debunking Agile Myths

Applying Lean Principles to PMBOK Projects. Dr. Martina Ryan

Agile & Lean / Kanban

Two Branches of Software Engineering

Intermediate Certificate in Software Testing Syllabus. Version 1.4

PRINCE Update. Changes to the manual. AXELOS.com. April 2017 PUBLIC

[Name] [ ID] [Contact Number]

Handling Product Management Across The Enterprise. copyright Net Objectives, Inc.

Agile Delivery Framework (ADF)

A case. Management SPM

The Agile Product Manager / Product Owner Dilemma

THE COMPREHENSIVE FACTORS

Advantages and Disadvantages of. Independent Tests. Advantages. Disadvantages

Can Your Proposal Process Be More Agile?

Project Management Basics (Stefan Sobek PMP) Chapter 2: PM in IT-Context

Scrum Team Roles and Functions

Generalizing Agile Software Development Life Cycle

What is Continuous Integration. And how do I get there

Agile Introduction for Leaders

Oracle Unified Method (OUM) Using OUM with Agile Techniques. Jan Kettenis Oracle Global Methods Oracle Consulting Netherlands

SAP BUSINESS GROUP AGILE FOR SAP SOLUTIONS

KANBAN and TEAMWORK. Natural User Interface Technology to Business Erasmus Intensive Programme LAHTI

18-642: Software Development Processes

The Rise of Agile Breakfast and Discussion Powered by Accenture and Mayer Brown

Software development activities

ENGAGING A PRODUCT OWNER ON A GOVERNMENT CONTRACT

Software Development Life Cycle:

Agile Quality Management

Scrum Requirements Engineering Practices and Challenges in Offshore Software Development

Scrum Alliance Certified Team Coach SM (CTC) Application SAMPLE

Collaboration at Scale: Managing Dependencies Across Large Teams Aug-10

Product Owner Training - From Idea to Implementation. Robin Dymond Mark Pushinsky

Transcription:

SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC)

UNIT OBJECTIVE Understand the influences on a project Understand what a software process is Understand two common models

WHAT EACH PARTY CONTROLS Client Side Every software project has three client controls Tech Side The tech team has three controls Process People Technology Cost Time Functionality Software Engineering is about managing the client side and defining the tech side while managing risk.

MOST EVERYTHING INVOLVES TEAMS The effectiveness of the team relates directly to success Working with and within teams requires extra effort for Communication Ever play the operator game? Documentation Tooling Hand-offs (process exchanges or role turn-over) Remember, you cannot read other people s minds

CIRCLE OF LIFE 1. Teams come, operate, evolve or disband 2. People come, grow, and eventually move on 3. Projects come, grow, enter stasis or evolve Your project has to accommodate these facts of project life

PROJECT INFLUENCES Scale Affects the ability to know everything Complexity becomes a critical factor, if it wasn t already Legacy Rarely is everything from scratch Being able to extend others work is essential

PROFESSIONALISM Personal Ethics Confidentiality Respecting confidences of employers or clients regardless if there is a formal agreement Competence Accurately reflect what you can do and accept only work that is within your competence Intellectual Property Protecting the IP of employers and clients Misuse Do not use skills or resources inappropriately Effects Developers and administrators may have access to highly confidential information Systems that do not work can destroy a company IPR violations can be result in fines or cease and desist orders System abuse can paralyze a company http://www.ieee.org/about/corporate/governance/p7-8.html https://www.acm.org/about/code-of-ethics

PROCESS noun pro cess a series of actions that produce something or that lead to a particular result http://www.merriam-webster.com/dictionary/process Typical Good Qualities Effective Efficient Relevant Valid Actually Used Reusable Managed Measurable Usable Beware: it is easy to become over-zealous or lost in process

SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC) Purpose Lead to good software Reduce risk Enable visibility and measurement Enable teaming Key attributes Outcomes/results of processes are key deliverables or products Roles are clear Pre and post conditions are understood and held true

KEY ELEMENTS IN ANY SDLC 1. Feasibility 2. Specification 3. Architecture and Design 4. Development 5. Validation 6. Evolution/Maintenance The devil is in the details of how the steps are organized and executed

The Promise The Reality Nothing is ever as simple as it seems

PROCESS MODELS

WATERFALL MODEL (CIRCA 1968) Sequential process phases One step completes before next one starts Rational process Enables careful planning This is how construction is done. Good for some piece of the system cannot be easily changed (e.g. hardware) where explicit and exhaustive testing is required before launch Challenges Heavyweight process Meaning the process is followed systematically and completely (slow) Specification is a negotiation process Specifications precede the system World rarely is known upfront and even more rarely stays fixed Hard to adapt to upstream changes once the step completes Feasibility Specification Architecture & Design Development Validation Evolution & Maintenance Feasibility Analysis Requirement Documents Design Documents Code Test plans and results Updates

WATERFALL MODEL Real projects rarely follow a sequential flow Hard to state all requirements explicitly No maintenance or evolution involved Customer must have patience Any blunder can be disastrous

BOEHM S FIRST LAW Errors are most frequent during requirements and design activities and are more expensive the later they are removed.

Cost WHAT THIS MEANS IN PRACTICE 300 Relative cost of an error depending on when it is discovered 250 200 150 100 50 0 Requirements Design Code Unit Test System Test Field Project Phase

ITERATIVE MODELS System is created by successive versions. Go through each process step, then iterate Similar to how you are taught to write a paper Includes feedback between steps Lowers the cost of implementing requirement changes Allows some client/user feedback to be considered Smaller sized steps means delivery of something comes sooner Value is created earlier It may not be clear where in the program the project is Changes can lead to messy designs and implementations Evolution & Maintenance Validation Test plan and results Feasibility Feasibility Analysis Developmen t Code Specification Requirem ent Document Architecture & Design Design Document s

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 That is, while there is value in the items on the right, we value the items on the left more. This is a response to over-zealous and rigid process mongering Emphasizes getting to the right result versus creating a lot of useless documents, over-planning, or blindly following process However, this is NOT a repudiation of documentation or plans. http://agilemanifesto.org/

AGILE IS A SET OF SDLC APPROACHES Glossary: RUP Rational Unified Process https://en.wikipedia.org/wiki/rational_unified_pro cess XP Extreme Programming https://en.wikipedia.org/wiki/extreme_programmin g DSDM - Dynamic systems development method https://en.wikipedia.org/wiki/dynamic_systems_dev elopment_method FDD - Feature-driven development https://en.wikipedia.org/wiki/featuredriven_development Borrowed from Haresh Karkar http://www.slideshare.net/hareshkarkar/overview-of-agile-methodology

AGILE Emphasis producing small increments of software in a reasonably short time frame Entire process is run during a sprint Sprint results are deployed Antithesis of Waterfall Plans develop incrementally and evolve Client collaboration versus client negotiation Specification follows from working system, not the reverse Immediate feedback from deployment Responding to change rather than following a plan Enhancements, new features, and bug fix are all prioritized as candidates for focus during next sprint Emphasis on keeping scope small Although the impact of changes will grow over time [ ] is like driving at night in the fog. You can only see as far as your headlights, but you can make the whole trip that way. E.L. Doctorow, Writers At Work: The Paris Review Interviews

SCRUM Emphasis on small, semi-independent teams ideally delivering discrete pieces of a system Team ideally has total responsibility for the components it produces Leads to devops models 1. Team Small, cross-functional, self-organizing units 2. Scope Small deliverable scope delivered in consensus priority order Priorities can be adjusted (typically at sprint start) 3. Timeline Small iterations (2-3 weeks is typical) emphasizing delivery at the end

HOW SCRUM TYPICALLY OPERATES A sprint is one iteration through the process The backlog contains all the work needing doing Includes features and other tasks User stories describe the function from the consumer s perspective The User may be another software component/system. You estimate how much work/time each User Story will take The client provides her view of the priorities in the backlog. The tech team reassesses priorities to allow for dependencies or difficulties The backlog is now a roadmap for the sprint or day within the sprint Daily stand-ups to discuss progress and plans for what is next A scrum-master choreographs the sprint and keeps the team focused and distractions at bay.

SCRUM In rugby, a scrum is the way you restart the game after a minor infraction.

TEST-FIRST DESIGN Puts test specification as the critical design activity Understands that deployment comes when the system passes testing Clearly defines what success means No more guesswork as to what complete means Specification Defines acceptance Informs designs objectives Tests Defines (non)function objectives Design Defines system The act of defining tests requires one to understand how the solution works Verified system System under test Development Deployment

KEY CONCERNS DRIVING IN SELECTING A PROCESS What is the net tolerance for finding errors in deployment? How fast is the market moving? Are the teams experienced with a particular process? Typical view of waterfall Typical view of iterative Is the contract fixed and firm? When do the clients expect to see something? Adapted from http://www.agilemodeling.com/essays/costofchange.htm Copyright 2003 Scott W. Ambler

EVEN WITH ADVANCES IN PROCESS, PROJECT SUCCESS REMAINS RISKY Pessimist View Optimist View Lean Iterative Agile Ad-Hoc All projects Traditional 0 23 45 68 90 113 Success Challenged Failed Standish Group (UK), Chaos Study, 1995 0% 25% 50% 75% 100% Successful Challenged Failed Dr. Dobb s Journal 2013 IT Project Success Survey posted at www.ambysoft.com/surveys/

WALKING THE SDLC STEPS

FEASIBILITY Determines if a project should be attempted Usually done once at the beginning by senior (trusted) team members Feasibility study is a proposal Does not require prototyping, but often includes it The decision maker is the audience This person may not be sufficiently technical In large organizations, this can be a walk-up multiple hierarchies Budget processes and staffing usually follow from a positive response Two outcomes 1. Yea 2. Nay

WHAT GOES INTO A FEASIBILITY STUDY 1. Recommendation 2. Technology 3. Economic 4. Legal 5. Operational 6. Schedule

UNCERTAINTY MAKES THIS VERY HARD Challenges Clients are unsure what they need at a useful level of detail Benefits are hard to quantify Impacts and recognizing unintended consequences is even harder to quantify Approach is often based on very rough guesses Organizational structures may need change Assumptions may be faulty Mitigations Experience can guide process But the most experienced people may not be the most technically current Solicit support and build interest for the project Beware of irrational enthusiasm Leads to unreasonable expectations Senior executives rarely forget your promises

THE BOSS VIEW (ADAPTED FROM BILL ARMS) The Main Line Senior member(s) of the client s organization decide whether to begin a major software project. Client: who is this project for? Scope: is it well defined? Where are there dependencies and on whom? Benefits: are the benefits real and quantifiable? Do I trust these numbers? Technical: Is the project possible? Is there at least one technical way to carry out the project? Resources: what are the estimates of staff, time, equipment, etc.? What are the options if the project is not done? Additional Considerations Do I trust this team? Have we tried this before? Market maker? Fast follower? Is this really worth investing in? Are there IPR issues? License dependencies? Can this organization pull this off? Management capabilities Development capabilities Operational capabilities Sales capabilities