MTAT Software Engineering Management

Size: px
Start display at page:

Download "MTAT Software Engineering Management"

Transcription

1 MTAT Software Engineering Management Lecture 05: Agile Principles and Processes Part A Dietmar Pfahl Spring dietmar.pfahl@ut.ee

2 Announcements Exam dates (incl. retake) and rooms are now fixed and in SIS There is one project topic available defined by RIA (Estonian Information Systems Authority) eesti.ee is the key government portal in Estonia exposing user interfaces to x-road services operated by service providers. More than 800 services are currently available. Currently, the service providers develop the service and the small eesti.ee team builds the user interface. We are looking at ways to have a single development process covering the entire cycle from creating the service to building the UI. Contact: Andres Kütt - andres.kutt@ria.ee

3 Project Teams Status on March 09: Team 01: Vitalii Peretiatko & Tatevik Ishikyan: Topic? Team 02: Ijlal Hussain & Khalil ur Rehman: Topic? Team 03: Israel Cuautle & Anmol Gautam: RIA topic Team 04: Madhu Tipirishetty & Margus Sellin: Improvement of inaccurate planning and estimating with Scrum" 18 students still missing Silver Samarütel and Veronika Prokopova have posted partnering inquires on Message Board! Short Presentation date: Wednesday, March 25

4 Structure of Lecture 05 Feedback on Homework 1 Homework 2 -- Light-weight (agile) processes / Evolutionary development Extreme Programming (XP) Scrum (intro)

5 Homework 1: Introduction to SPI Administrative information: This homework has to be done individually. Maximum number of marks: 3 Submission deadline is Monday, 16-Feb-2015, at 20:00 sharp. If you don t submit in time, you receive a penalty as follows: Late delivery until Tuesday, 17-Feb-2015, at 20:00 1 mark penalty (-33% of maximum) Late delivery after Tuesday, 17-Feb-2015, 20:00 3 marks penalty (-100% of maximum) No exceptions from the penalty-rules will be made! Submit your homework using the Submission function provided on the course web-page: ion IMPORTANT: Only files in PDF format will be accepted! I won t look at files that are not PDF. Write your name and student id in the report (ideally, also put a date and give the report a proper heading)

6 Homework 1: Solution Sketch Q-1 [0.5 marks]: According to SI s managers, what were the shortcomings of Scrum in SI s development context? Answer (sketch): They felt that Scrum was too rigid, didn t scale, and was unsuitable for maintenance tasks. They also feared that the combination of inaccurate estimates and timeboxes gave longer lead times and what they perceived as waste, such as Scrum planning meetings, reduced productivity and quality. (p. 48, 2 nd paragraph)

7 Homework 1: Solution Sketch Q-2 [0.5 marks]: SI used quantitative and qualitative approaches to evaluate whether Kanban is actually better than Scrum. What data was collected for the quantitative evaluation? Answer (sketch): Process type PT = {Scrum, Kanban} Type of work item WI = {Bug, PBI (Project Backlog Item)} Time Year.quarter = {2009.1,, } Churn = Number of lines added + deleted + modified Lead time: Number of days from next state to ready for release state on the board Production: #WI developed per quarter (often called throughput ) Productivity: Production per developer = throughput/developer Productivity 2: Total churn per developer per quarter Quality: Number of weighted bugs with weights: blocking (weight 8), critical (4), moderate (2), and minimal (1) (Cf. contents of Table 1).

8 Homework 1: Solution Sketch Q-3 [1.5 marks]: SI measured productivity in two different ways. Give precise definitions of all measures that SI used to measure productivity. Did Kanban perform better or worse with regards to productivity? Answer (sketch): They measured productivity in two ways (cf. Table 1): Productivity (1): Production per developer, with Production = Number of work items developed per quarter, with Type of work item = Bug or Project backlog item (PBI) Productivity 2: Total churn per developer per quarter, with Churn = number of code lines added, deleted, or modified (Churn can be due to Bug fixing or PBI development)

9 Homework 1: Solution Sketch Q-3 [1.5 marks]: SI measured productivity in two different ways. Give precise definitions of all measures that SI used to measure productivity. Did Kanban perform better or worse with regards to productivity? Answer (sketch): What was better? For measure Productivity : when using Bugs, Scrum was better than Kanban; when using PBI, Kanban was better than Scrum (cf. Figure 4) For measure Productivity 2 : when using Bugs, Scrum was better than Kanban; when using PBI, Kanban was better than Scrum (cf. Figure 5) For Productivity 2 the changes were (in both directions) relatively smaller than for Productivity (i.e., 15.3 down to 12.1 (-21%) versus 0.46 to 0.41 (- 11%), and 5.9 to 10.2 (+73%) versus 1.28 to 1.55 (+21%)

10 Homework 1: Solution Sketch Q-4 [0.5 marks]: What did SI do to evaluate Kanban versus Scrum qualitatively? What do you think is more important: quantitative or qualitative evaluation? Underpin your answer with arguments. Answer (sketch): They let the first author of the paper, the professor of Oslo University, conducted interviews with 4 individuals working at SI, including the head of products operations and the CTO, as well as a team leader and a developer. Each of them was asked about their perceptions regarding Scrum and Kanban. Both quantitative and qualitative evaluations are equally important. Quantitative evaluation helps to get hard facts. Qualitative evaluation helps interpreting the hard facts properly and adding additional information not captured by the hard facts

11 Homework 1: Distribution of Marks Students enrolled: 25 HW1 submitted: 23 Penalty of -1: 1 Average marks: 2.2 No name on sheet: >3

12 Structure of Lecture 05 Feedback on Homework 1 Homework 2 -- Light-weight (agile) processes / Evolutionary development Extreme Programming (XP) Scrum (intro)

13 Homework 2: Software Process Modeling Background information: Deadline: Monday, 16-March-2015, at 20:00 (sharp!) Recall Exercise 2 from the lecture where you modeled a process using one of the (equivalent) notations shown in Figure 1 below. Then perform the tasks described on the next page.

14 Homework 2: Software Process Modeling Task T1 [3 marks]: Have a look at the description of Scrum published in the Eclipse Process Framework (EPF) Wiki at Create a process model using the table notation shown in Figure 1. Make a note/comment, if you think, information is missing (incomplete) or inconsistent in the process description provided by the EPF Wiki. Note: Marking will consider completeness and correctness of the model as well as appropriateness of your notes/comments

15 Homework 2: Software Process Modeling Task T2 [2 marks]: In the model you created in Task T1, select at least three activities that are directly connected via product-flow (i.e., one activity consumes at least one artifact produced by another activity). Then create a graphical representation of this subset of the Scrum process model. You can choose one of the following three notations (and tools): Notation from Figure 1 Spearmint (you find information on how to download and install Spearmint on the course wiki Lecture 4) Bizagi (you find information on how to download and install Bizagi Process Modeler on the course wiki Lecture 4) Note: Marking will consider completeness and correctness of the model and consistency with the model developed in Task T1.

16 Homework 2: Software Process Modeling Task T3 [1 mark]: Explain your choice of the notation/tool in Task T2. What was the reason why you chose it and what are the advantages and disadvantages of the notation you chose? To get full marks, you need to define and discuss at least two criteria that guided your decision. For example, you may use a table notation as shown below:

17 Structure of Lecture 05 Feedback on Homework 1 Homework 2 -- Light-weight (agile) processes / Evolutionary development Extreme Programming (XP) Scrum (intro)

18 Requirements and Customers

19 Process Types Waterfall Incremental Iterative/Evolutionary

20 Process Types Challenges: - Changing Requirements - Fixed-price/fixed-scope/fixed-deadline projects - Heavy-weight process models (prescriptive) - Taylorism, trying to create many specialised roles Waterfall Incremental Iterative/Evolutionary

21 The Agile Manifesto Kent Beck et al. (2001): 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.

22 There exists more than one Agile Method! Scrum Crystal Clear DSDM FDD LEAN XP AUP = Agile Unified Process DSDM = Dynamic Systems Development Method FDD = Feature-Driven Development XP = Extreme Programming AUP KANBAN

23 Structure of Lecture 05 Feedback on Homework 1 Homework 2 -- Light-weight (agile) processes / Evolutionary development Extreme Programming (XP) Scrum (intro)

24 Extreme Programming (XP) Origin: Kent Beck, Ward Cunningham, Ron Jeffries (end of 1990s) Idea: light weight process model, agile process Characteristics: Minimum of accompanying measures (docs, modeling, ) Team orientation (e.g., joint responsibility for all dev. artifacts) Small teams (12-14 persons) Involvement of user/client at an early stage Social orientation Scope: Pilot or small projects with low criticality of the results

25 13 XP Practices Project Cycle Planning Game (Poker) Small Releases Whole Team Customer Tests Development Cycle Simple Design Pair Programming TDD (Unit Test) Refactoring Supporting Practices Coding Standard Sustainable Pace (40-hour week) Metaphor (Common Understanding) Continuous Integration Collective Ownership (Acceptance Tests) (On-site Customer) (Short Increments)

26 Requirements vs. User Stories Traditional requirement shall statements: The system shall provide a user configurable interface for all user and system manager functions The user interface shall be configurable in the areas of: Screen layout Font Background and text color Corresponding User Story : As a system user or system manager, I want be able to configure the user interface for screen layout, font, background color, and text color, So that I can use the system in the most efficient manner

27 From Requirement to User Story Functional Requirements Requirement: The system shall provide the capability for making hotel reservations. User Story 1: As a premiere member, I want to search for available discounted rooms. User Story 2: As a vacationer, I want to search for available rooms. User Story 3: As a vacationer, I want to save my selections.

28 From Requirement to User Story Non-Functional Requirements Requirement: The system shall User Story 4: As a vacationer and user of the hotel website, I want the system to be available 99.99% of the time. User Story 5: As a vacationer, I want web-pages to download in <4 seconds. User Story 6: As the hotel website owner, I want 10,000 concurrent users to be able to access the site at the same time with no impact to performance.

29 7 6 Planning Poker Participants in planning poker include all of the developers on the team Step 1: Give each estimator a deck of cards Step 2: Moderator reads description of User Story to be estimated. Step 3: Product owner answers any question the estimators may have about the User Story. Step 4: Each estimator privately selects a card representing his or her estimate. Cards are not shown until each estimator has made a selection.

30 7 6 Planning Poker (cont d) Step 5: When everyone has made an estimate, the cards are simultaneously turned over. Step 6: If estimates differ, the highest and lowest estimates are explained by the estimators - otherwise the estimation is completed for this User Story. Step 7: The group can discuss the story and their estimates for a few more minutes. The moderator can take any notes he/she thinks will be helpful when this story is being programmed and tested. After the discussion, each estimator re-estimates by selecting a card. -> Go to Step 5. Note: In many cases, the estimates will already converge by the second round. But if they have not, continue to repeat the process. The goal is for the estimators to converge on a single estimate that can be used for the story. It rarely takes more than three rounds, but continue the process as long as estimates are moving closer together.

31 Simple Design Characterisation: Four characteristics of simple design, listed in priority order: The system runs all the tests. It contains no duplicate code. The code states the programmers' intent very clearly. It contains the fewest possible number of classes and methods. The practice of TDD describes how the system is created in many small steps, driven by tests that programmers write. Each of these tests is a probe into the design of the system, allowing the developers to explore the system as it is being created. Thus, in XP, design interleaves with coding, i.e., design quite literally happens all the time. Guidelines to help in arriving at a simple design: Look for a simple but not stupid way to solve a problem. Pay attention to good design principles when forming a system incrementally. (-> design patterns) Don t add infrastructure or other features that might be needed later. Chances are they won't be (YAGNI: You Aren't Going to Need It). Let the user stories force you to change the design. Don't generalize a solution until it is needed in at least two places. Follow the first rule above and keep implementation simple. Let the second user pay for the generality. Seek out and destroy duplication and other code smells (or: design smells ). The practice of refactoring is the most powerful tool in the arsenal. It is through removing duplication that new classes, methods, and larger scale systems are born. Remember that it is just code. If it is getting overly complex and painful, delete it. It can always be recreated again in less time and better than the first time by leveraging what was learned the first time.

32 Test-Driven Development (TDD) namespace UnitTestingExamples.Library { using System; namespace UnitTestingExamples.Tests { using System; using NUnit.Framework; } [TestFixture] public class BankAccountTests { [Test] public void TestDeposit() { BankAccount account = new BankAccount(); account.deposit( ); account.deposit( 25.0 ); Assertion.AssertEquals( 150.0, account.balance ); } } Unit Test Functionalityoriented Regressiontesting can be automated public class BankAccount { private double _balance = 0.0; } } public void Deposit( double amount ) { _balance += amount; } public double Balance { get { return _balance; } } (Source: Wikipedia)

33 TDD package helloworldapp; /** * dietmar */ public class HelloWorldApp { } /** args the command line arguments */ public static void main(string[] args) { System.out.println("Hello World!"); }

34 TDD package helloworldapp; /** * dietmar */ public class HelloWorldApp { /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools Templates * and open the template in the editor. */ package helloworldapp; import java.io.bytearrayinputstream; import java.io.bytearrayoutputstream; import java.io.printstream; import org.junit.afterclass; import org.junit.beforeclass; import org.junit.test; import static org.junit.assert.*; public class HelloWorldAppTest { public HelloWorldAppTest() { } Test Class Test Fixture private final ByteArrayOutputStream outcontent = new ByteArrayOutputStream(); } /** args the command line arguments */ } public static void main(string[] args) System.out.println("Hello World!"); } public void setupstreams() { System.setOut(new PrintStream(outContent)); public void cleanupstreams() { System.setOut(null); } /** * Test of main method, of class HelloWorldApp. public void testmain() { System.out.println("main"); String[] args = null; HelloWorldApp.main(args); assertequals("hello World!", outcontent); } Set Up Clean Up Test Method

35 Test-Driven Development (TDD) Context User Story (new functionality) Write a failing test. Clean up code. Make the test pass.

36 What is Refactoring? Refactoring Maintenance Evolution

37 Beck s Definition A change to the system that leaves its behavior unchanged, but enhances some nonfunctional quality simplicity, flexibility, understandability, performance (Kent Beck, Extreme Programming Explained, page 179)

38 Fowler s Definition A change made to the internal structure of software to make it easier to understand and cheaper to modify without changing its observable behavior (Martin Fowler, Refactoring, page 53)

39 A Trivial Example (Martin Fowler, Refactoring)

40 Context Test-Driven Development (TDD) User Story (new functionality) Write a failing test. Clean up code. Make the test pass.

41 Refactoring Comprehensive Definition Changes made to the system that Do not change observable behavior (all the tests still pass) Remove duplication or needless complexity Enhance software quality: - Make the code simpler and easier to understand - Make the code more flexible - Make the code easier to change

42 How to Refactor? Ensure all tests pass Make sure your tests pass Find some code that smells Determine how to simplify this code Make the simplifications Run tests to ensure things still work correctly Find code that smells Determine simplification Repeat the simplify/test cycle until the smell is gone Ensure all tests still pass Make simplification

43 Code Smells Indicators that something may be wrong in the code Can occur both in production code and test code

44 The Catalogue of Refactorings (1) Add Parameter Change Bidirectional Association to Unidirectional Change Reference to Value Change Unidirectional Association to Bidirectional Change Value to Reference Collapse Hierarchy Consolidate Conditional Expression Consolidate Duplicate Conditional Fragments Decompose Conditional Duplicate Observed Data Dynamic Method Definition Eagerly Initialized Attribute Encapsulate Collection Encapsulate Downcast Encapsulate Field Extract Class Extract Interface Extract Method Extract Module Extract Subclass Extract Superclass Extract Surrounding Method Extract Variable Form Template Method Hide Delegate Hide Method Inline Class Inline Method Inline Module Inline Temp Introduce Assertion Introduce Class Annotation Introduce Expression Builder Introduce Foreign Method Introduce Gateway Introduce Local Extension Introduce Named Parameter Introduce Null Object Introduce Parameter Object Isolate Dynamic Receptor Lazily Initialized Attribute Move Eval from Runtime to Parse Time Move Field Move Method Parameterize Method Preserve Whole Object

45 The Catalogue of Refactorings (2) Pull Up Constructor Body Pull Up Field Pull Up Method Push Down Field Push Down Method Recompose Conditional Remove Assignments to Parameters Remove Control Flag Remove Middle Man Remove Named Parameter Remove Parameter Remove Setting Method Remove Unused Default Parameter Rename Method Replace Abstract Superclass with Module Replace Array with Object Replace Conditional with Polymorphism Replace Constructor with Factory Method Replace Data Value with Object Replace Delegation With Hierarchy Replace Delegation with Inheritance Replace Dynamic Receptor with Dynamic Method Definition Replace Error Code with Exception Replace Exception with Test Replace Hash with Object Replace Inheritance with Delegation Replace Loop with Collection Closure Method Replace Magic Number with Symbolic Constant Replace Method with Method Object Replace Nested Conditional with Guard Clauses Replace Parameter with Explicit Methods Replace Parameter with Method Replace Record with Data Class Replace Subclass with Fields Replace Temp with Chain Replace Temp with Query Replace Type Code with Class Replace Type Code with Module Extension Replace Type Code With Polymorphism Replace Type Code with State/Strategy Replace Type Code with Subclasses Self Encapsulate Field Separate Query from Modifier Split Temporary Variable Substitute Algorithm

46 Code Smells & Refactoring Full document posted on course wiki (list shown here is not complete)

47 Refactoring Summary Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior. (Invented by Martin Fowler) Many refactorings can be automated Catalogue of refactorings: Note: It is not always clear (a) how to detect refactoring opportunities and (b) what refactoring(s) are most appropriate (-> code smells : )

48 Pair Programming Characterisation: Two programmers work together at one computer. One, the driver, writes code while the other, the observer (or navigator[1]), reviews each line of code as it is typed in. The two programmers switch roles frequently. Benefits: Studies found that programmers working in pairs produce shorter programs, with better designs and fewer bugs faster Challenges: Total amount of effort (person-hours) increases. Management needs to balance faster completion of the work and reduced testing and debugging time against the higher cost of coding. The benefit of pairing is greatest on tasks that the programmers do not fully understand before they begin: that is, challenging tasks that call for creativity and sophistication. On simple tasks, which the pair already fully understands, pairing results in a net drop in productivity. Productivity can also drop when novice-novice pairing is used without coaching.

49 Structure of Lecture 05 Feedback on Homework 1 Homework 2 -- Light-weight (agile) processes / Evolutionary development Extreme Programming (XP) Scrum (intro)

50 The Term Scrum Originates from Rugby Meaning crowded Complex move that requires team work

51 What is Scrum? Agile Management Framework for SW development projects With a few clear rules: Roles: Product Owner, Team, Scrum Master Product Backlog, Sprint Backlog, few compact reports Short work cycles (-> Sprints ) for incremental development Based on the Agile Manifesto of Kent Beck at al. Human-centred Technology and tools have secondary role Close cooperation with customer Empirical learning process Scrum does not define a development methodology, QA strategy, or risk management approach, but asks the team to take care of these issues appropriately.

52 Scrum Elements Overview

53 Scrum Process Simplified Overview

54 Scrum: Backlogs Product Backlog Collection of requirements (user stories) for the product at project start: a few, little detailed user stories; collection evolves over time and requirements will be refined over time Managed by the Product Owner Sprint Backlog Collection of requirements (user stories) that are selected for implementation during next sprint Manged by the Team

55 Scrum: Sprint Sprint Period (max. 30 calendar days) in which a shippable product increment (executable, tested, and documented) is created by the Team Time-boxed, i.e., ends exactly at the scheduled time At the end of the Sprint, the Product Owner has to accept the final results (i.e., the software) Partially completed or incorrect results will not be shipped (no compromise on quality) and go back to the Product Backlog for inclusion in the next Sprint (Backlog)

56 Scrum: 3 Roles Product Owner Decides which requirements are implemented for a product version Decides about when product increments will be shipped Team Implements requirements Decides how many requirements are implemented in a Sprint Organizes its activities (-> tasks) independently Scrum Master Takes care of the proper implementation of Scrum Supports the team in process-related issues

57 Scrum: Product Owner Elicits and collects customer needs Describes requirements Decides on release dates and contents Is responsible for project success and the profitability of the product Prioritizes requirements according to market value Adjusts requirements and priority, as needed Accepts or rejects work results

58 Scrum: Product Owner (cont d) Works closely with the team Helps to understand customer needs and requirements Details requirements Checks resulting work products and approves them Integrates all stakeholders in the development and regularly elicits their needs Besides customer also marketing and sales Product owner combines and filters stakeholder requirements Has a sound technical understanding Makes general overall design decisions Combines classical product manager, project manager, and chief architect

59 Team Small team size: Typically 5 to 9 team members Cross-functional: Design, coding, testing, etc. Members must have a broad range of competencies Every team member is an expert in his/her field but can also take over responsibilities of other team members Teams are independent/empowered Decides which requirements to include in next Sprint (i.e., team has power to reject too many requirements) Decides independently which tasks to perform to implement the requirements

60 Team (cont d) Teams are self-organizing Joint, consensual decisions on tasks to perform for obtaining the goal of the Sprint, and on work distribution Work is coordinated via Sprint Backlog, Burn-down Chart, and Daily Scrum Members should work in close distance (ideally in the same room) Members should be full-time Membership should change only between sprints

61 Scrum Master Represents management to the project Responsible for enacting Scrum values and practices Removes impediments Ensures that the team is fully functional and productive Enables close cooperation across all roles and functions Shields the team from external interferences

62 Typical Scrum Project

63 Slice of a Typical Scrum Project To be continued in the next lecture.

64 Next Lecture Topic: Agile Principles and Processes Part B For you to do: Start working on Homework 2 Have a look at materials on course wiki: Scrum Reference Card Scrum Training Series (6 videos)

JUnit 3.8.1, 64. keep it simple stupid (KISS), 48

JUnit 3.8.1, 64. keep it simple stupid (KISS), 48 Index A accessor methods, 11, 152 add parameter technique, 189 190 add() method, 286 287, 291 algorithm, substituting, 104 105 AND logical operator, 172 architectural design patterns, 277 278 architecture,

More information

MTAT Software Engineering Management

MTAT Software Engineering Management MTAT.03.243 Software Engineering Management Lecture 11: Flow-based (KANBAN) Principles and Processes Dietmar Pfahl Spring 2014 email: dietmar.pfahl@ut.ee Structure of Lecture 11 Flow-based agile development

More information

SOFTWARE ENGINEERING SOFTWARE EVOLUTION. Saulius Ragaišis.

SOFTWARE ENGINEERING SOFTWARE EVOLUTION. Saulius Ragaišis. SOFTWARE ENGINEERING SOFTWARE EVOLUTION Saulius Ragaišis saulius.ragaisis@mif.vu.lt CSC2008 SE Software Evolution Learning Objectives: Identify the principal issues associated with software evolution and

More information

Agile Manifesto & XP. Topics. Rapid software development. Agile methods. Chapter ) What is Agile trying to do?

Agile Manifesto & XP. Topics. Rapid software development. Agile methods. Chapter ) What is Agile trying to do? Topics 1) What is trying to do? Manifesto & XP Chapter 3.1-3.3 2) How to choose plan-driven vs? 3) What practices go into (XP) development? 4) How to write tests while writing new code? CMPT 276 Dr. B.

More information

Optimize tomorrow today.

Optimize tomorrow today. Applying Agile Practices to Improve Software Quality Name: Arlene Minkiewicz Chief Scientist 17000 Commerce Parkway Mt. Laurel, NJ 08054 arlene.minkiewicz@pricesystems.com Phone: 856 608-7222 Agenda Introduction

More information

CSE 403 Lecture 21. Refactoring and Code Maintenance. Reading: Code Complete, Ch. 24, by S. McConnell Refactoring, by Fowler/Beck/Brant/Opdyke

CSE 403 Lecture 21. Refactoring and Code Maintenance. Reading: Code Complete, Ch. 24, by S. McConnell Refactoring, by Fowler/Beck/Brant/Opdyke CSE 403 Lecture 21 Refactoring and Code Maintenance Reading: Code Complete, Ch. 24, by S. McConnell Refactoring, by Fowler/Beck/Brant/Opdyke slides created by Marty Stepp http://www.cs.washington.edu/403/

More information

How We Refactor, and How We Know It

How We Refactor, and How We Know It Emerson Murphy-Hill, Chris Parnin, Andrew P. Black How We Refactor, and How We Know It Urs Fässler 30.03.2010 Urs Fässler () How We Refactor, and How We Know It 30.03.2010 1 / 14 Refactoring Definition

More information

XP Evolution Rachel Davies

XP Evolution Rachel Davies XP Evolution Rachel Davies Sept 10, 2005 2005 Agile Experience Ltd. 1 What is XP? 1.eXtreme Programming (XP) is so named because it raises practices that improve code quality to extreme levels 2. XP is

More information

Lecture 7: Software Processes. Refresher: Software Always Evolves

Lecture 7: Software Processes. Refresher: Software Always Evolves Lecture 7: Software Processes What is a Software Development Process? The Lifecycle of a Software Project Agile vs. Disciplined Some common approaches: RUP, SCRUM, XP, ICONIX, Where UML fits in (next lecture)

More information

02291: System Integration

02291: System Integration 02291: System Integration Week 10 Hubert Baumeister huba@dtu.dk DTU Compute Technical University of Denmark Spring 2018 Last Week Principles of good design: layered architecture Software Development Processes

More information

Software Development Process Models

Software Development Process Models Software Development Process Models From classical notions to more agile approaches th@cs.toronto.edu, BA8134 Code & Fix or Cowboy Coding 1) Write program 2) Test and fix program Problems: program users

More information

MTAT Software Engineering. Written Exam 10 January Start: 9:15 End: 11:45

MTAT Software Engineering. Written Exam 10 January Start: 9:15 End: 11:45 MTAT.03.094 Software Engineering Written Exam 10 January 2014 Start: 9:15 End: 11:45 Important Notes: The exam is open book and open laptop. Web browsing is allowed, but you are not allowed to use e mail

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 8 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2016 Last Week State machines Layered Architecture: GUI Layered Architecture: Persistency

More information

Refactoring. Chen Tang March 3, 2004

Refactoring. Chen Tang March 3, 2004 Refactoring Chen Tang March 3, 2004 What Is Refactoring (Definition) Refactoring is the process of changing a software system in such a way that it does not alter the external behavior of the code yet

More information

COURSE 11 DESIGN PATTERNS

COURSE 11 DESIGN PATTERNS COURSE 11 DESIGN PATTERNS PREVIOUS COURSE J2EE Design Patterns CURRENT COURSE Refactoring Way refactoring Some refactoring examples SOFTWARE EVOLUTION Problem: You need to modify existing code extend/adapt/correct/

More information

Test Driven Development. René Barto SES Agile Development - Test Driven Development

Test Driven Development. René Barto SES Agile Development - Test Driven Development Test Driven Development René Barto SES Agile Development - Test Driven Development 27-09-2006 Contents About Myself About SES Agile Development A Typical Developer s Day Test Driven Development Questions

More information

Extreme programming XP 6

Extreme programming XP 6 Extreme programming XP 6 Planning Game 3 Planning Game Independent: Stories should be as independent as possible. When thinking of independence it is often easier to think of order independent. In other

More information

Topic 01. Software Engineering, Web Engineering, agile methodologies.

Topic 01. Software Engineering, Web Engineering, agile methodologies. Topic 01 Software Engineering, Web Engineering, agile methodologies. 1 What is Software Engineering? 2 1 Classic Software Engineering The IEEE definition: Software Engineering is the application of a disciplined,

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 9: Layered Architecture Persistency Layer; Software Development Process Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2017 Recap

More information

Agile Software Development Agile UX Work. Kati Kuusinen TUT / Pervasive / IHTE

Agile Software Development Agile UX Work. Kati Kuusinen TUT / Pervasive / IHTE Agile Software Development Agile UX Work Kati Kuusinen Researcher @ TUT / Pervasive / IHTE kati.kuusinen@tut.fi Contents 1. Introduction / Motivation 2. Agile software development 3. User experience work

More information

MTAT Software Engineering. Written Exam 17 January Start: 9:15 End: 11:45

MTAT Software Engineering. Written Exam 17 January Start: 9:15 End: 11:45 MTAT.03.094 Software Engineering Written Exam 17 January 2014 Start: 9:15 End: 11:45 Important Notes: The exam is open book and open laptop. Web browsing is allowed, but you are not allowed to use e mail

More information

Introduction to Extreme Programming

Introduction to Extreme Programming Introduction to Extreme Programming References: William Wake, Capital One Steve Metsker, Capital One Kent Beck Robert Martin, Object Mentor Ron Jeffries,et.al. 12/3/2003 Slide Content by Wake/Metsker 1

More information

xtreme Programming (summary of Kent Beck s XP book) Stefan Resmerita, WS2015

xtreme Programming (summary of Kent Beck s XP book) Stefan Resmerita, WS2015 xtreme Programming (summary of Kent Beck s XP book) 1 Contents The software development problem The XP solution The JUnit testing framework 2 The Software Development Problem 3 Risk Examples delivery schedule

More information

Collaboration at Scale: Prioritizing a Backlog. 13-Dec-2017

Collaboration at Scale: Prioritizing a Backlog. 13-Dec-2017 Collaboration at Scale: Prioritizing a Backlog 13-Dec-2017 Collaboration at Scale Designed for Scrum-centric organizations with more than 10 Scrum teams, the Collaboration at Scale webinar series provides

More information

Reengineering II. Transforming the System

Reengineering II. Transforming the System Reengineering II Transforming the System Recap: Reverse Engineering We have a detailed impression of the current state We identified the important parts We identified reengineering opportunities We have

More information

THE SCRUM FRAMEWORK 1

THE SCRUM FRAMEWORK 1 THE SCRUM FRAMEWORK 1 ROLES (1) Product Owner Represents the interests of all the stakeholders ROI objectives Prioritizes the product backlog Team Crossfunctional Self-managing Self-organizing 2 ROLES

More information

Administration Guide. Release

Administration Guide. Release Administration Guide Release 13.3.00 This Documentation, which includes embedded help systems and electronically distributed materials, (hereinafter referred to as the Documentation ) is for your informational

More information

Agile Accessibility. Presenters: Ensuring accessibility throughout the Agile development process

Agile Accessibility. Presenters: Ensuring accessibility throughout the Agile development process Agile Accessibility Ensuring accessibility throughout the Agile development process Presenters: Andrew Nielson, CSM, PMP, MPA Ann Marie Davis, CSM, PMP, M. Ed. Cammie Truesdell, M. Ed. Overview What is

More information

Testing in the Agile World

Testing in the Agile World Testing in the Agile World John Fodeh Solution Architect, Global Testing Practice 2008 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. Outline

More information

Refactoring, 2nd Ed. A love story. Michael Hunger

Refactoring, 2nd Ed. A love story. Michael Hunger Refactoring, 2nd Ed. A love story Michael Hunger Michael Hunger Open Sourcerer Neo4j @mesirii It crashed at 940! I know what you're here for! Covers By: dev.to/rly Which Refactoring do you like most? Extract

More information

XP: Planning, coding and testing. Planning. Release planning. Release Planning. User stories. Release planning Step 1.

XP: Planning, coding and testing. Planning. Release planning. Release Planning. User stories. Release planning Step 1. XP: Planning, coding and testing Annika Silvervarg Planning XP planning addresses two key questions in software development: predicting what will be accomplished by the due date determining what to do

More information

Dilbert Scott Adams. CSc 233 Spring 2012

Dilbert Scott Adams. CSc 233 Spring 2012 Dilbert Scott Adams CSc 233 Spring 2012 Dilbert Scott Adams CSc 233 Spring 2012 2 Dilbert Scott Adams CSc 233 Spring 2012 3 prerequisites CSc 233 Spring 2012 I thought we had agreed long ago that the Department

More information

Understading Refactorings

Understading Refactorings Understading Refactorings Ricardo Terra terra@dcc.ufmg.br Marco Túlio Valente mtov@dcc.ufmg.br UFMG, 2010 UFMG, 2010 Understanding Refactorings 1 / 36 Agenda 1 Overview 2 Refactoring 3 Final Considerations

More information

XP: Planning, coding and testing. Practice Planning game. Release Planning. User stories. Annika Silvervarg

XP: Planning, coding and testing. Practice Planning game. Release Planning. User stories. Annika Silvervarg XP: Planning, coding and testing Annika Silvervarg Practice Planning game Goal: schedule the most important tasks Which features to implement in what order Supports: simple design, acceptance testing,

More information

Practical Objects: Test Driven Software Development using JUnit

Practical Objects: Test Driven Software Development using JUnit 1999 McBreen.Consulting Practical Objects Test Driven Software Development using JUnit Pete McBreen, McBreen.Consulting petemcbreen@acm.org Test Driven Software Development??? The Unified Process is Use

More information

LESSONS LEARNED: BEING AGILE IN THE WATERFALL SANDBOX

LESSONS LEARNED: BEING AGILE IN THE WATERFALL SANDBOX www.twitter.com/telerik www.facebook.com/telerik LESSONS LEARNED: BEING AGILE IN THE WATERFALL SANDBOX Philip Japikse (@skimedic) phil.japikse@telerik.com www.skimedic.com/blog MVP, MCSD.Net, MCDBA, CSM,

More information

Quality, Project Management & Supply Professional (Customized). Choice of any 3 certifications outlined as follows:

Quality, Project Management & Supply Professional (Customized). Choice of any 3 certifications outlined as follows: Any 3 Certifications Prep: ASQ Quality, PMI Project Management, APICS Supply Chain, or Scrum QPS Course No. 343 TRAINING PROGRAM: Quality, Project Management & Supply Professional (Customized). Choice

More information

Credit where Credit is Due. Lecture 25: Refactoring. Goals for this lecture. Last Lecture

Credit where Credit is Due. Lecture 25: Refactoring. Goals for this lecture. Last Lecture Credit where Credit is Due Lecture 25: Refactoring Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2002 Some of the material for this lecture and lecture 26 is taken

More information

Testing in Agile Software Development

Testing in Agile Software Development Testing in Agile Software Development T 76.5613, Software Testing and Quality Assurance Slides by Juha Itkonen Lecture delivered by 4.10.2006 V-model of testing Benefits of the V-model Intuitive and easy

More information

8. Quality Assurance

8. Quality Assurance 8. Quality Assurance Prof. Dr. Dirk Riehle, M.B.A. Friedrich Alexander-University Erlangen-Nürnberg Version of 22.03.2012 Agile Methods by Dirk Riehle is licensed under a Creative Commons Attribution-

More information

Designed in collaboration with Infosys Limited

Designed in collaboration with Infosys Limited Proposal for Introduction of New Industry Course in Engineering Curriculum Agile Software Development - Deliver Software Better Everyday Designed in collaboration with Infosys Limited Version 1-2016 Contents

More information

A CONFUSED TESTER IN AGILE WORLD

A CONFUSED TESTER IN AGILE WORLD A CONFUSED TESTER IN AGILE WORLD QA A LIABILITY OR AN ASSET THIS IS A WORK OF FACTS & FINDINGS BASED ON TRUE STORIES OF ONE & MANY TESTERS!! J Presented By Ashish Kumar, A STORY OF TESTING. WHAT S AHEAD

More information

Refactoring. Software Engineering, DVGC18 Faculty of Economic Sciences, Communication and IT Eivind Nordby

Refactoring. Software Engineering, DVGC18 Faculty of Economic Sciences, Communication and IT Eivind Nordby Refactoring Faculty of Economic Sciences, Communication and IT 2011-09-21 Why Refactor Refactoring is one factor in keeping your system in shape Without continuous refactoring, the system will rot It takes

More information

Ready for Scrum? Steve Hutchison DISA T&E

Ready for Scrum? Steve Hutchison DISA T&E Ready for Scrum? Steve Hutchison DISA T&E Presentation Tasks Backlog In Progress Done Scrum Overview Role of Testing in Scrum Agile Testing Summary 2 Scrum Overview Software development framework focused

More information

Hands-On Lab. Agile Planning and Portfolio Management with Team Foundation Server Lab version: Last updated: 11/25/2013

Hands-On Lab. Agile Planning and Portfolio Management with Team Foundation Server Lab version: Last updated: 11/25/2013 Hands-On Lab Agile Planning and Portfolio Management with Team Foundation Server 2013 Lab version: 12.0.21005.1 Last updated: 11/25/2013 CONTENTS OVERVIEW... 3 EXERCISE 1: AGILE PROJECT MANAGEMENT... 4

More information

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution Software Life Cycle Main issues: Discussion of different life cycle models Maintenance or evolution Introduction software development projects are large and complex a phased approach to control it is necessary

More information

Refactorings. Refactoring. Refactoring Strategy. Demonstration: Refactoring and Reverse Engineering. Conclusion

Refactorings. Refactoring. Refactoring Strategy. Demonstration: Refactoring and Reverse Engineering. Conclusion Refactorings Refactoring What is it? Why is it necessary? Examples Tool support Refactoring Strategy Code Smells Examples of Cure Demonstration: Refactoring and Reverse Engineering Refactor to Understand

More information

Introduction to Extreme Programming. Extreme Programming is... Benefits. References: William Wake, Capital One Steve Metsker, Capital One Kent Beck

Introduction to Extreme Programming. Extreme Programming is... Benefits. References: William Wake, Capital One Steve Metsker, Capital One Kent Beck Introduction to Extreme Programming References: William Wake, Capital One Steve Metsker, Capital One Kent Beck Extreme Programming is... Lightweight software development method used for small to medium-sized

More information

A Case Study of Requirements Specification in an Agile Project

A Case Study of Requirements Specification in an Agile Project A Case Study of Requirements Specification in an Agile Project Master s thesis Karoline Lunder Department of Informatics UNIVERSITY OF OSLO 2. May 2014 1 Abstract Requirements specification when using

More information

PMI Agile Certified Practitioner (PMI-ACP) Exam Prep Training - Brochure

PMI Agile Certified Practitioner (PMI-ACP) Exam Prep Training - Brochure PMI Agile Certified Practitioner (PMI-ACP) Exam Prep Training - Brochure Take your Career to the Next-level with a Globally-recognised Credential Course Name : PMI-ACP Version : INVL_PMI_ACP_BR_02_1.2

More information

כללי Extreme Programming

כללי Extreme Programming פיתוח מער כות תוכנה מבוססות Java כללי Extreme Programming אוהד ברזילי ohadbr@tau.ac.il Based on: K. Beck: Extreme Programming Explained. E. M. Burke and B.M. Coyner: Java Extreme Programming Cookbook.

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 3 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2017 Contents Programming Tips and Tricks Booleans Constants Delegation Requirements

More information

Kanban One-Day Workshop

Kanban One-Day Workshop Kanban One-Day Workshop Copyright Net Objectives, Inc. All Rights Reserved 2 Copyright Net Objectives, Inc. All Rights Reserved 3 Lean for Executives Product Portfolio Management Business Product Owner

More information

Development Processes Agile Adaptive Planning. Stefan Sobek

Development Processes Agile Adaptive Planning. Stefan Sobek Development Processes Agile Adaptive Planning Stefan Sobek Agile Planning Process Adaptive Planning In agile projects frequently issues and changes will be discovered. Go into these projects with expectations

More information

5 Object Oriented Analysis

5 Object Oriented Analysis 5 Object Oriented Analysis 5.1 What is OOA? 5.2 Analysis Techniques 5.3 Booch's Criteria for Quality Classes 5.4 Project Management and Iterative OOAD 1 5.1 What is OOA? How to get understanding of what

More information

Implementing evolution: Refactoring

Implementing evolution: Refactoring 2IS55 Software Evolution Sources Implementing evolution: Refactoring Alexander Serebrenik / SET / W&I 17-5-2010 PAGE 1 Last week Problem: changing code is difficult Assignment 6 Deadline: Today Assignment

More information

The Scaled Agile Framework

The Scaled Agile Framework The Scaled Agile Framework Foundations of the Scaled Agile Framework (SAFe) SDJug Oct. 15, 2013 2008-2013 Leffingwell, LLC, and Scaled Agile, Inc. All rights reserved. Armond Mehrabian Enterprise Agile

More information

Refactoring. George Dinwiddie idia Computing, LLC

Refactoring. George Dinwiddie idia Computing, LLC Refactoring George Dinwiddie idia Computing, LLC http://idiacomputing.com http://blog.gdinwiddie.com What is Refactoring? Refactoring is a disciplined technique for restructuring an existing body of code,

More information

Using Storyotypes to Split Bloated XP Stories

Using Storyotypes to Split Bloated XP Stories Using Storyotypes to Split Bloated XP Stories Gerard Meszaros ClearStream Consulting Inc., 3710 205 5 th Avenue S.W. Calgary, Alberta Canada T2P 2V7 gerard@clrstream.com Abstract. An ideal XP project is

More information

SE420 - Software Quality Assurance

SE420 - Software Quality Assurance SE420 - Software Quality Assurance http://dilbert.com/strips/comic/2006-01-29/ Lecture 3 Unit Testing, Part-2 January 21, 2019 Sam Siewert Reminders Assignment #2 Posted Thursday [Unit Re-Use] Explore

More information

Object Oriented Programming

Object Oriented Programming Binnur Kurt kurt@ce.itu.edu.tr Istanbul Technical University Computer Engineering Department 1 Version 0.1.2 About the Lecturer BSc İTÜ, Computer Engineering Department, 1995 MSc İTÜ, Computer Engineering

More information

2014 Intelliware Development Inc.

2014 Intelliware Development Inc. What You ll Learn in this Presentation: The basics of user stories. How user stories fit into the overall Agile planning process. How to write a user story. A story card example 2 Why is it so Difficult

More information

Software Design and Analysis CSCI 2040

Software Design and Analysis CSCI 2040 Software Design and Analysis CSCI 2040 Introduce two important development practices in the context of the case studies: Test-Driven Development Refactoring 2 Logic is the art of going wrong with confidence

More information

Agile Software Development. Software Development Methodologies. Who am I? Waterfall. John York JOHN YORK EECS 441 FALL 2017 A BRIEF LOOK

Agile Software Development. Software Development Methodologies. Who am I? Waterfall. John York JOHN YORK EECS 441 FALL 2017 A BRIEF LOOK Who am I? John York Agile Software Development JOHN YORK Director of Engineering at ProQuest Dialog Chief Technologist SpellBound AR A Computer Engineer from the University of Michigan! An agile development

More information

Agile Software Development. Software Development Methodologies. Who am I? Waterfall. John York JOHN YORK EECS 441 WINTER 2018 A BRIEF LOOK

Agile Software Development. Software Development Methodologies. Who am I? Waterfall. John York JOHN YORK EECS 441 WINTER 2018 A BRIEF LOOK Agile Software Development JOHN YORK EECS 441 WINTER 2018 John York Director of Engineering at ProQuest Dialog Chief Technologist SpellBound AR A Computer Engineer from the University of Michigan! An agile

More information

AntiPatterns. EEC 421/521: Software Engineering. AntiPatterns: Structure. AntiPatterns: Motivation

AntiPatterns. EEC 421/521: Software Engineering. AntiPatterns: Structure. AntiPatterns: Motivation AntiPatterns EEC 421/521: Software Engineering Definition: An AntiPattern describes a commonly occurring solution to a problem that generates decidedly negative consequences Refactoring Reference: Refactoring

More information

Evolving Software. CMSC 433 Programming Language Technologies and Paradigms Spring Example. Some Motivations for This Refactoring

Evolving Software. CMSC 433 Programming Language Technologies and Paradigms Spring Example. Some Motivations for This Refactoring CMSC 433 Programming Language Technologies and Paradigms Spring 2007 Refactoring April 24, 2007 Lots of material taken from Fowler, Refactoring: Improving the Design of Existing Code 1 Evolving Software

More information

How technical excellence helps in LeSS adoption. Anton Bevzuk Dodo Pizza Chief Agile Officer

How technical excellence helps in LeSS adoption. Anton Bevzuk Dodo Pizza Chief Agile Officer How technical excellence helps in LeSS adoption Anton Bevzuk Dodo Pizza Chief Agile Officer The plan Why engineering practices? Deep dive into Pair Programming Test Automation Continuous Integration Q&A

More information

DESIGN. (Chapter 04)

DESIGN. (Chapter 04) DESIGN (Chapter 04) THE PROCESS OF INTERACTION DESIGN Overview What is involved in Interaction Design? Importance of involving users Degrees of user involvement What is a user-centered approach? Four basic

More information

Agile Development

Agile Development Agile Development 12-04-2013 Many flavors: Waterfall, Spiral Rapid Application Development (DSDM) Xtreme Programming (XP, an agile methodology) Usability Engineering Model, Star Iteration is done throughout

More information

Agile where are we at?

Agile where are we at? Consultant www.crisp.se Agile where are we at? Keynote - Agile Tour Bangkok Nov 2017 henrik.kniberg@crisp.se @HenrikKniberg Dad Climate guy Organizational coach & Change Instigator Author Scrum Retrospective

More information

Founda'ons of So,ware Engineering. Process: Agile Prac.ces Claire Le Goues

Founda'ons of So,ware Engineering. Process: Agile Prac.ces Claire Le Goues Founda'ons of So,ware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals Define agile as both a set of itera.ve process prac.ces and a business approach for aligning customer needs with

More information

9/5/2015. MTAT Software Engineering. Structure of Lecture 01. Course Information/Overview. Letter Grades. Student Feedback 2014/15

9/5/2015. MTAT Software Engineering. Structure of Lecture 01. Course Information/Overview. Letter Grades. Student Feedback 2014/15 MTAT.03.094 Software Engineering Structure of Lecture 01 General Course Information/Overview Introduction into Software Engineering Lecture 01: Course Introduction Dietmar Pfahl Fall 2015 email: dietmar.pfahl@ut.ee

More information

Introduction to User Stories. CSCI 5828: Foundations of Software Engineering Lecture 05 09/09/2014

Introduction to User Stories. CSCI 5828: Foundations of Software Engineering Lecture 05 09/09/2014 Introduction to User Stories CSCI 5828: Foundations of Software Engineering Lecture 05 09/09/2014 1 Goals Present an introduction to the topic of user stories concepts and terminology benefits and limitations

More information

Software Quality in a Modern Development Team. Presented by Timothy Bauguess and Marty Lewis

Software Quality in a Modern Development Team. Presented by Timothy Bauguess and Marty Lewis Software Quality in a Modern Development Team Presented by Timothy Bauguess and Marty Lewis High-Quality Software Who benefits? End users Development Stakeholders Components of Software Quality Structural

More information

Business Analysis for Practitioners - Requirements Elicitation and Analysis (Domain 3)

Business Analysis for Practitioners - Requirements Elicitation and Analysis (Domain 3) Business Analysis for Practitioners - Requirements Elicitation and Analysis (Domain 3) COURSE STRUCTURE Introduction to Business Analysis Module 1 Needs Assessment Module 2 Business Analysis Planning Module

More information

Adopting Agile Practices

Adopting Agile Practices Adopting Agile Practices Ian Charlton Managing Consultant ReleasePoint Software Testing Solutions ANZTB SIGIST (Perth) 30 November 2010 Tonight s Agenda What is Agile? Why is Agile Important to Testers?

More information

To practice UCSD Usability Design

To practice UCSD Usability Design To practice UCSD from principles to process Adds essential UCSD activities and roles to any process. Easy to communicate. Easy to integrate: in organizations and projects. A subset of a development process.

More information

Development with Scrum

Development with Scrum Pro Agile.NET Development with Scrum Jerrel Blankenship Matthew Bussa Scott Millett Apress* Contents About the Authors About the Technical Reviewers Acknowledgments Introduction xv xvi xvii xviii Chapter

More information

The Kanban Applied Guide

The Kanban Applied Guide The Kanban Applied Guide Official Guide to Applying Kanban as a Process Framework May 2018 2018 Kanban Mentor P a g e 1 Table of Contents Purpose of the Kanban Applied Guide... 3 Kanban Applied Principles...

More information

Software Design COSC 4353/6353 D R. R A J S I N G H

Software Design COSC 4353/6353 D R. R A J S I N G H Software Design COSC 4353/6353 D R. R A J S I N G H Week 5 Refactoring What is Refactoring? Code Smells Why Refactoring? Techniques IDEs What is Refactoring? Art of improving the design of existing code

More information

This Thing Called Kanban

This Thing Called Kanban This Thing Called Kanban A presentation for Agile Richmond Slide 1 Announcing Innovate Virginia! Accelerate Delivery with Lean and Agile! Friday Sept 16, 2011 Lewis Ginter Botanical Gardens Leading experts

More information

Requirements and User-Centered Design in an Agile Context

Requirements and User-Centered Design in an Agile Context Requirements and User-Centered Design in an Agile Context The Volvo Group Business Areas AB Volvo Volvo Trucks Renault Trucks Mack Trucks Nissan Diesel Buses Construction Equipment Volvo Penta Volvo Aero

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 10 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2017 Last Week Layered Architecture: Persistent Layer Software Development Processes

More information

E xtr B e y CS R m oy 6704, e T a P n a Spring r n o d J g ia n 2002 r g a S m hu m ing

E xtr B e y CS R m oy 6704, e T a P n a Spring r n o d J g ia n 2002 r g a S m hu m ing Extreme Programming CS 6704, Spring 2002 By Roy Tan and Jiang Shu Contents What is Extreme Programming (XP)? When to use XP? Do we need yet another software methodology? XP s rules and practices XP s relation

More information

Exam Questions

Exam Questions Exam Questions 70-498 Delivering Continuous Value with Visual Studio 2012 Application Lifecycle Management https://www.2passeasy.com/dumps/70-498/ 1. You are the application architect on your team. You

More information

Sample Exam. Advanced Test Automation - Engineer

Sample Exam. Advanced Test Automation - Engineer Sample Exam Advanced Test Automation - Engineer Questions ASTQB Created - 2018 American Software Testing Qualifications Board Copyright Notice This document may be copied in its entirety, or extracts made,

More information

Defining Project Requirements

Defining Project Requirements Defining Project Requirements SWEN-610 Foundations of Software Engineering Department of Software Engineering Rochester Institute of Technology 1 There are functional and non-functional requirements. Functional

More information

l e a n Lean Software Development software development Faster Better Cheaper

l e a n Lean Software Development software development Faster Better Cheaper software development Lean Software Development Faster Better Cheaper mary@poppendieck.com Mary Poppendieck www.poppendieck.com Characteristics of Lean Companies: 1. They don t call themselves Lean The

More information

Administrivia. Programming Language Fall Example. Evolving Software. Project 3 coming out Midterm October 28. Refactoring October 14, 2004

Administrivia. Programming Language Fall Example. Evolving Software. Project 3 coming out Midterm October 28. Refactoring October 14, 2004 CMSC 433 Programming Language Fall 2004 Project 3 coming out Midterm October 28 Administrivia Refactoring October 14, 2004 Lots of material taken from Fowler, Refactoring: Improving the Design of Existing

More information

Best Practices for Collecting User Requirements

Best Practices for Collecting User Requirements Federal GIS Conference February 9 10, 2015 Washington, DC Best Practices for Collecting User Requirements Gerry Clancy Glenn Berger Requirements Provide direction for program success Why Requirements are

More information

An Intro to Scrum. Agile (Iterative) Project Development. Written in 2001 Can be read in its entirety at:

An Intro to Scrum. Agile (Iterative) Project Development. Written in 2001 Can be read in its entirety at: An Intro to Scrum Agile (Iterative) Project Development Broken down into iterations Self-Managed Minimal Planning Easily/Quickly adapts to change The Agile Manifesto Written in 2001 Can be read in its

More information

THE JOURNEY OVERVIEW THREE PHASES TO A SUCCESSFUL MIGRATION ADOPTION ACCENTURE IS 80% IN THE CLOUD

THE JOURNEY OVERVIEW THREE PHASES TO A SUCCESSFUL MIGRATION ADOPTION ACCENTURE IS 80% IN THE CLOUD OVERVIEW Accenture is in the process of transforming itself into a digital-first enterprise. Today, Accenture is 80 percent in a public cloud. As the journey continues, Accenture shares its key learnings

More information

Kerievsky_book.fm Page 355 Thursday, July 8, :12 PM. Index

Kerievsky_book.fm Page 355 Thursday, July 8, :12 PM. Index Kerievsky_book.fm Page 355 Thursday, July 8, 2004 12:12 PM Index A Absorbing class, 117 Abstract Factory, 70 71 Accept methods, 327 Accumulation methods, 315, 325 330 Accumulation refactorings Collecting

More information

App Development. Mobile Media Innovation Module 6

App Development. Mobile Media Innovation Module 6 App Development Mobile Media Innovation Module 6 Mobile Media Module The Mobile Media Module is designed as a two-week, broad-based study on the mobile landscape that can be applied in many courses. The

More information

defined. defined. defined. defined. defined. defined. defined. defined. defined.

defined. defined. defined. defined. defined. defined. defined. defined. defined. Table of Contents Week 1 Software Development... 2 Software Eng Life-Cycle Development Phases... 2 Methodologies... 2 Week 2 - XP, Scrum, Agile... 3 Extreme Programming (XP)... 3 Values of XP Programming...

More information

The Need for Agile Project Management

The Need for Agile Project Management The Need for Agile Project Management by Mike Cohn 21 Comments originally published in Agile Times Newsletter on 2003-01-01 One of the common misperceptions about agile processes is that there is no need

More information

Composing Methods. Extract Method - Code that can be grouped - Meaningful name for method

Composing Methods. Extract Method - Code that can be grouped - Meaningful name for method Composing Methods Extract Method - Code that can be grouped - Meaningful name for method Inline Method - inverse of Extract Method - Method body is more obvious Extract Variable - Expression: hard to understand

More information

Software Development Methodologies

Software Development Methodologies Software Development Methodologies Lecturer: Raman Ramsin Lecture 8 Agile Methodologies: XP 1 extreme Programming (XP) Developed by Beck in 1996. The first authentic XP book appeared in 1999, with a revised

More information

Kanban In a Nutshell. Bob Galen President & Principal Consultant RGCG, LLC

Kanban In a Nutshell. Bob Galen President & Principal Consultant RGCG, LLC Kanban In a Nutshell Bob Galen President & Principal Consultant RGCG, LLC bob@rgalen.com Copyright 2015 RGCG, LLC 2 About Velocity Partners Better business through better software HQ in Seattle Nearshore

More information