Agile Methods, Aspects and Virtual Model Driven Engineering David Parsons Massey University Auckland, New Zealand.

Slides:



Advertisements
Similar presentations
Unified process(UP) UP is an OO system development methodology offered by Rational(Rational Rose) s/w, now a part of IBM Developed by Booach,Rambaugh,Jacobson--
Advertisements

AGILE DEVELOPMENT Outlines : Quick Look of agile development Agility
Breakout Discussion 1 Facilitators Karen Butler-Purry - TAMU Kevin Tomsovic - UTK.
SDLC – Beyond the Waterfall
COPYRIGHT © 2012 ALCATEL-LUCENT. ALL RIGHTS RESERVED. 1 Agile documentation development methodology Giby Panicker and Judith Benjamin 1-Dec-2012.
Alternate Software Development Methodologies
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall B.1.
Agile methods and techniques– some method comparisons Dave Parsons Mark Cranshaw.
Agile Process Models. Prescriptive models don’t work It is unrealistic to not have changes. Why? The Agile Manifesto: Individuals and interactions over.
Agile development By Sam Chamberlain. First a bit of history..
© ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua.
Software Life Cycles ECE 417/617: Elements of Software Engineering
Agile
6 December ’s  60’s “Cowboys” wrote software anyway that they could Difference between best programmers and worst as high as 28:1 (many sources)
Extreme Programming Collaboration in Software Development Process.
Chapter 6 Prototyping, RAD, and Extreme Programming
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
The Challenge to Survive in Today’s Software Development Environment Evaluating the Agile Methodology.
An Agile View of Process
Introduction to Agile Methodologies and Concepts Roy Osherove Principal, Team Agile Blog : ISerializable.com.
Copyright 2006 Scott W. Ambler Agile Survey Results Summary Scott W. Ambler
Roles Managers Technical Team Leaders Programmers Customers Database Administrators Instructors.
Software Development Process
Software Development Landscape
Chapter 4 Agile Development
Copyright 2011 Agile Foundation Training, Corporation Agile Foundation Training Presented by: Certified Scrum Professional Ken Ward
..OR SOMETHING THAT LOOKS LIKE IT SCOTT TURNBULL SOFTWARE ENGINEERING MANAGER EMORY UNIVERSITY LIBRARIES Agile Development.
IS2210: Systems Analysis and Systems Design and Change Twitter:
Agile Awareness Workshop 2008 Flavours of Agile II eXtreme Programming V I K A S H A Z R A T I June 14' 2008.
Current Trends in Systems Develpment
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
By Saravanan Bala. General Report 31 % of Software projects are cancelled 75 % of the software projects are considered failures by the people who initiated.
Embracing change with Extreme Programming Method Engineering Erik ten Brinke
Agile Methodologies: Comparative Study and Future Direction 林佳蓁 資工 4B.
Integrating Usability Engineering and Agile Software Development: A Literature Review 陳振炎教授 楊哲豪
© 2006 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Agile Assessment Gadi Lifshitz, Ayelet Kroskin, Barak Yagour, Yael Dubinsky.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Software development process ธนวัฒน์ แซ่ เอียบ. The development process Process –set of rules which define how a development project. Methodology and.
Coming up: The Manifesto for Agile Software Development 1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 3 Agile Development Software Engineering:
An Agile Method for E-Service Composition Author : Pouya Fatehi, Seyyed Mohsen Hashemi Department of Computer Software, Science and Research Branch, Islamic.
1 The Manifesto for Agile Software Development “We are uncovering better ways of developing software by doing it and helping others do it. Through this.
K.Ingram 1 Sept 2007 Agile Software Development. K.Ingram 2 Sept 2007 Contents Agile Software Development: 1.What is it? 2.Agile’s Values, Principles,
Software Development Overview CPSC 315 – Programming Studio Spring 2013.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Fall 2015CISC/CMPE320 - Prof. McLeod1 CISC/CMPE320 Assignment 1 due tomorrow, 7pm. RAD due next Friday in your Wiki. Presentations week 6. Tomorrow’s lecture.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix B Agile Methodologies B.1.
Agile. Processes Waterfall Traditional With prototyping Sprial Agile Dynamic Systems Development Method (DSDM) Scrum Crystal eXtreme Programming (XP)
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
Introduction to Software Engineering Muhammad Nasir Agile Software Development(2)
Informed Traveler Program and Applications Agile / Scrum Overview Jerry Inberg.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Agile Gintarė Bernotaitytė © 2013.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Manifesto for Agile Software Development
Process 4 Hours.
(Complex) Problem domain Requirements Specification
Appendix B Agile Methodologies
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
Software Development methodologies
Software Engineering: A Practitioner’s Approach, 7/e Chapter 3 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Information Technology Project Management – Fifth Edition
Approaches to Systems Development
Introducing ISTQB Agile Foundation Extending the ISTQB Program’s Support Further Presented by Rex Black, CTAL Copyright © 2014 ASTQB 1.
Agile Development – a new way of software development?
Appendix B Agile Methodologies
From Use Cases to Implementation
System Development Methods
SD5953 Successful Project Management AGILE SOFTWARE DEVELOPMENT
Presentation transcript:

Agile Methods, Aspects and Virtual Model Driven Engineering David Parsons Massey University Auckland, New Zealand

Agenda What it means to be ‘agile’ The ‘agile hour’ workshop Aspects and agile Collaborative development in virtual worlds

Agile Methods and Techniques Analysis of Scott Ambler’s 2006 survey Do agile methods have a positive effect? Do agile methods work better in combinations? What are the most effective methods, individually and in combination What are the most effective techniques?

Our Observations Many organisations are using more than one method Is there any point? Techniques and methods don’t seem to be used as one might expect What is the underlying relationship?

The Data is Deceptive Because Lots of ‘don’t knows’ Large variations in sample sizes DSDM used by only a handful, Crystal Clear also not a large sample, misunderstandings of Feature Driven Development and Test Driven Development Lots of overlap between methods Lack of clarity about the relationship between techniques and methods For example ‘we are doing XP’…

How Many Methods? 4,232 respondents No agile methods: 2,541 One agile method: 1,019 Two agile methods: 500 Three or more methods: 175 Does this make any difference?

Result 1: Number of Methods Cost no difference Productivity significant difference between using no method or using one Quality and Satisfaction significant difference between using no method or using one AND between using one method and using two! So: Use at least one, preferably two No point using three or more

Result 2: If I Use One, Which One? Productivity: There is a significant different between both Crystal Clear and Scrum, (0.02) and Crystal Clear and XP (0.02) Quality There is a significant difference between Crystal Clear and XP (0.03) Cost There is a significant difference in cost between Crystal Clear and Scrum (0.02) Satisfaction There is a significant difference between Crystal Clear and Scrum (0.023) So: Maybe use XP or Scrum?

Which Pairs are Used Most?

Result 3: If I Use Two, Which Two Quality There is a significant difference between the XP/Scrum combination and all other pairs of methods. Only 6 pairs were considered in the sample because the sample sizes were too small for other combinations. Productivity There is a significant difference between the top pair (XP and Scrum) and the lowest three pairs There was no significant difference in cost between any pairs of methods So: Mix XP and Scrum together?

Agile Techniques TechniquesNumber of respondents Percentage of respondents Active stakeholder participation % Agile model driven development % Code refactoring1, % Code regression testing1, % Co-location % Common coding guidelines1, % Continuous integration1, % Database refactoring % Database regression testing % Pair programming % Single sourcing % Test driven design %

What About Techniques? Not using any agile techniques is significantly worse in terms of productivity, satisfaction and quality Only DB regression testing is significantly more expensive Best techniques for Productivity Co-location, continuous integration, pair programming, test driven design Best techniques for Quality Test driven design, pair programming, continuous integration, Best techniques for Satisfaction Active stakeholder participation, agile model driven development, test driven design

Are We Doing XP? Agile Technique used with XPNumberPercentage of Sample Active stakeholder participation % Code refactoring % Code regression testing % Co-location % Continuous integration % Pair programming % Test Driven Design (TDD) %

Does it matter? ProductivityQualityCostSatisfaction Full XP Partial XP

Best Practices? In the XP context, the most effective techniques appear to be Test driven design Code refactoring Collaborative working Stakeholder involvement Co-location

How Many Techniques?

Tentative Conclusions Using agile methods and techniques does appear to be beneficial It may be useful to combine aspects of XP and Scrum These techniques appear to consistently contribute to better results Co-location, test driven design More techniques = better?

The Agile Hour Workshop Explores some of the techniques used within agile methods To try to assess their relative usefulness within a simulated agile process In the spirit of : Process Miniatures, eXtreme Hour, XP Hour, XP Game, Planning Game

What Can We Try Out? The ‘technique’ subset of agile practices Not so much focus on planning and estimating More about what techniques are used within agile methods

Some Agile Techniques Active stakeholder participation Pair programming Co-location Refactoring Regression testing Common coding guidelines Continuous integration Access controlled by game rules

The Idea To design a human powered vehicle To do a process miniature that uses subsets of the available techniques To try to assess which techniques may be the most helpful

The Agile Technique Hour Minutes - planning User Stories, estimates, prioritize stories Minutes - developing QA writes acceptance tests Developers build using subset of techniques Includes mid-term review Minutes - reviewing Acceptance testing and review Three twenty minute iterations:

Spot the Professionals…

Aspects and Agile There may be some synergy between aspect oriented development and agile methods Late arising requirements changes can be cross cutting concerns AOD has an ontology Agile methods have an (Implied) ontology Maybe we can map them together?

Aspect Ontology Software System …Base Code «by means of» Weaving Weaver Static Weaving …Implementatio n 0..* is woven in is enhanced by 0..* Dynamic Weaving 1..* realizes is realized by 1..* 11 makes is made by Concern is a feature of 0..* is composed of 1..* «by means of» Composition Scheme Composability is tangled with 0..* 11 allowsis based on SpatialLingualSocial Aspect

Agile Ontology «is guided by» Practice Phase Technique Activity Agile method Development Process * «is guided by» Principle * is dictated by 1..* may consist of is carried out using 1..* is used in 1..* is part of 1..* consists of 1..* is carried out using 1..* Engineering technique Management technique Feature addresses 1..* Software System builds comprises * LingualSocialSpatial

Unified Ontology …Implementation Concern is tangled with 0..* Aspect / Feature Technique Activity is carried out using 1..* is used in 1..* Engineering technique Management technique addresses 1..* Software System comprises * LingualSocialSpatial Relates to *

Initial Thoughts A few more iterations required! The ontology mapping has helped to clarify the main issues The semantic challenge is the relationship between aspects, features and concerns There is a cognitive leap between aspects as orthogonal cross cutting concerns and aspects as core business features

Second Life One feature of agile methods is collaborative development Not easy in a globally distributed team There is potential to build collaborative tools in a Multi User Virtual Environment (MUVE) such as Second Life

Second Life on YouTube

MUVE Model Driven Engineering Lancaster based project to include Second Life as a model driven engineering and testing environment First step is to explore collaborative software tools that might support distributed agile teams.

Useful Links Links to agile paper and workshop materials Jz1c Jz1c YouTube video

Journals International Journal of Principles and Applications in Information Science and Technology (PAIST) International Journal of Mobile and Blended Learning