eXtremely Distributed Software Development

Slides:



Advertisements
Similar presentations
Acceptance Testing.
Advertisements

AgileMan Consulting So what the heck is Agile? It came about as a response to the high failure rate of software projects (> 60%), where failure means late,
Agile development By Sam Chamberlain. First a bit of history..
CSCU 411 Software Engineering Chapter 2 Introduction to Software Engineering Management.
Improving Process for Better Software. Who We Are An experiential learning program that provides technology solutions for our partners, and real- world.
LSU 10/09/2007Project Schedule1 The Project Schedule Project Management Unit #4.
Test Driven Development TDD. Testing ”Testing can never demonstrate the absence of errors in software, only their presence” Edsger W. Dijkstra (but it.
Testing. What is Testing? Definition: exercising a program under controlled conditions and verifying the results Purpose is to detect program defects.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
SWEN 302: AGILE METHODS Roma Klapaukh & Alex Potanin.
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
Mobile Aps: Agile Mentoring Review
© Copyright 2011 John Wiley & Sons, Inc.
Agile Concepts - II “Agile” Estimating & Planning Nupul Kukreja 5 th November, 2014.
PowerPoint Presentation for Dennis, Wixom, & Tegarden Systems Analysis and Design with UML, 3rd Edition Copyright © 2009 John Wiley & Sons, Inc. All rights.
Copyright © 2015 Curt Hill Software Development Paradigms What do you need to know?
Chapter 7 The Practices: dX. 2 Outline Iterative Development Iterative Development Planning Planning Organizing the Iterations into Management Phases.
Chair of Software Engineering Exercise Session 6: V & V Software Engineering Prof. Dr. Bertrand Meyer March–June 2007.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
Yeah but.. What do I do? Software Leadership Dan Fleck 2007.
By Manish Shrotriya CSE MS 4 Point Agile Manifesto 1.Individuals and interactions over processes and tools 2.Working software over comprehensive.
Copyright © Curt Hill Software Development Methodology What do you need to know?
Copyright © Curt Hill Scrum Software Development Paradigms What is a Scrum?
Project Management Finals Lesson 1 - Principles - Techniques - Tools.
Copyright © 2016 Curt Hill Kanban Software Development Paradigm The revenge of Toyota.
Chapter 4 & Chapter 5 Important Concepts
Software Development.
Methodologies and Algorithms
Information Systems in Organizations 2
Appendix B Agile Methodologies
Chapter 1: Introduction to Systems Analysis and Design
Agile Development -- an overview
Project Management (x470)
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Project Management Processes
Information Systems in Organizations 2
The Software Development Cycle
Software Documentation
IS Project Management How to Close a TPM Project
Agile Development -- an overview
Roberta Roth, Alan Dennis, and Barbara Haley Wixom
What do you need to know about XP?
Object Oriented Analysis and Design
Information Systems in Organizations 2
Test Driven Development
History, Characteristics and Frameworks
Design and Programming
Agile and XP Development
Agile Process: Overview
Agile and XP Development
Version Control at Google
Introduction If you have got a call for an Agile testing interview, then congratulations are in order. You may be feeling nervous, but it sure to be felt.
CSE 303 Concepts and Tools for Software Development
Information Systems in Organizations 2
Project Management Processes
VIRBank Kristina Naudžiūnaitė Rita Birgelytė
LESSON 01 Hands-on Training Execution
Information Systems in Organizations 2
Chapter 1: Introduction to Systems Analysis and Design
Coming up: What is Agile?
Chapter 13: Construction
Applying Use Cases (Chapters 25,26)
Applying Use Cases (Chapters 25,26)
Agile Development – a new way of software development?
Appendix B Agile Methodologies
Software Testing Lifecycle Practice
that focus first on areas of risk.
Chapter 1: Introduction to Systems Analysis and Design
Code Reviews Assignment Each team should perform a code review
The Software Development Cycle
Presentation transcript:

eXtremely Distributed Software Development XDSD for short Copyright © 2016 Curt Hill

Introduction A new agile system intended to manage free-lance developers Uses a technique called Puzzle Driven Development This breaks the project into very small units of work Typical work unit is less than an hour in length Limited communication among developers Author is Yegor Bugayenko Copyright © 2016 Curt Hill

Setup The project leaders work for or are contracted by the enterprise They partition the project into bite size pieces These tasks are obtained Farm out the pieces concurrently to free-lance developers They control the quality and pay the developers Copyright © 2016 Curt Hill

Use of GIT GIT is usually used for the repository Developer gets a private copy of the repository When complete with the task issues a pull request Repository owner reviews work If it meets expectations The work is merged to trunk Task is closed Payment is submitted Copyright © 2016 Curt Hill

XDSD Principles Only Closed Tasks are Paid For Tasks are Small Unfinished Components may be Delivered No Informal Communications between Developers Bugs are Paid For Pull Requests Only No Compromises About Code Quality Copyright © 2016 Curt Hill

Tasks and Payments A task may have a time budget of 15 minutes to an hour This may be subject to negotiation An hourly rate is negotiated The developer has ten days to finish the task The payment is fixed by the task duration and the hourly rate Does not matter if it took five minutes or five days Copyright © 2016 Curt Hill

No Obligation Principle Each developer is under no obligation to finish on time or even start They are free-lancers they may accept it or reject it They may take less than the amount of time or more Must be complete in ten days or task is given to someone else Only if task is completed in that ten days will payment be rendered Copyright © 2016 Curt Hill

Definition of Done Task is done when the deliverables are returned to the author They determine that the task is done acceptably Only when done is payment made Copyright © 2016 Curt Hill

Developer Suggestions Don't even start a task unless you're sure you can finish it Ask any and all questions of the task author before any work Don't assume anything Stay after the author to close tasks Don't expect any help from anyone — you're on your own; Ask about payment if you don’t receive it automatically after an author closes your task(s) Copyright © 2016 Curt Hill

Unfinished Components may be Delivered A 30 minute time frame is usually not enough for a complete module What is expected is the start of the module with stubs for the pieces where the specification may not have been clear These are the puzzles of PDD Copyright © 2016 Curt Hill

PDD Puzzle Driven Development Similar in concept to stepwise refinement The unknown pieces are called puzzles Puzzles are items that we are not sure about and that require more refinement Refinement can come from the author They may also be new tasks Copyright © 2016 Curt Hill

Java Puzzles Developers in Java use several annotations to indicate a puzzle @todo indicates a puzzle @ignore indicates a stub that is not as yet implemented This is a task waiting for implementation Copyright © 2016 Curt Hill

No Informal Communications The only means of communication is the ticket tracking system The only encouraged communication is between the author and the developer The author creates the ticket Copyright © 2016 Curt Hill

Bugs are Paid For At the hourly rate for 15 minutes Mostly testers find bugs, but developers or anyone else may as well Each bug found then generates a task to fix A bug is: Reproducible Refers to functionality already implemented Can be fixed in a reasonable amount of time Doesn't duplicate a bug already reported Copyright © 2016 Curt Hill

Team Roles Project Manager — assigns tasks and pays on completion System Analyst — documents the product owner's ideas Architect — defines how system components interact Designer — implements most complex components Programmer — implements all components Tester — finds and reports bugs Copyright © 2016 Curt Hill

Types of Problems Most of the personnel inserts or removes the following types of problems Unclear or ambiguous requirements Features not yet implemented Functional and non-functional bugs Lack of test coverage Unresolved @todo markers Lack of risk analysis Copyright © 2016 Curt Hill

No Compromises About Code Quality Before a trunk merge occurs all unit tests are done Static analyzers are also run These are automated No payment unless it passes everything Copyright © 2016 Curt Hill

Finally XDSD is an agile approach that deals with: Software development paradigm Free-lance developer management tool One of the newest systems Assignment: Where are the XDSD tasks to be found? Copyright © 2016 Curt Hill