Are Agile Projects Doomed to Half-Baked Design? Alex Chaffee Leslie Chicoine

Slides:



Advertisements
Similar presentations
Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
Advertisements

SDLC – Beyond the Waterfall
A little Software Engineering: Agile Software Development C Sc 335 Rick Mercer.
COPYRIGHT © 2012 ALCATEL-LUCENT. ALL RIGHTS RESERVED. 1 Agile documentation development methodology Giby Panicker and Judith Benjamin 1-Dec-2012.
PROC-1 3. Software Process. PROC-2 What’s a process? Set of activities in creating software It involves creativity –hard to automate –Requires human judgment.
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
Unit 1, Lesson 4 Software Development Cycle AOIT Introduction to Programming Copyright © 2009–2012 National Academy Foundation. All rights reserved.
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
NAUG NAUG Knowledge Evening – th February 2007.
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..
Software Life Cycles ECE 417/617: Elements of Software Engineering
Agile
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
An Agile View of Process
Introduction to Agile Methodologies and Concepts Roy Osherove Principal, Team Agile Blog : ISerializable.com.
Introduction to Agile.
An Overview of Agile L e a d i n g C h a n g e T h r o u g h C o l l a b o r a t i o n.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Chapter 4 Agile Development
Chapter 5 Software Process Models. Problems with “Traditional” Processes 1.Focused on and oriented towards “large projects” and lengthy development time.
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
IS2210: Systems Analysis and Systems Design and Change Twitter:
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
Extreme programming overview Agenda  Extreme programming goals  Extreme programming values  Extreme programming practices  The Extreme programming.
One XP Experience: Introducing Agile (XP) Software Development into a Culture that is Willing but not Ready Joe Bergin * Fred Grossman * David Leip **
Embracing change with Extreme Programming Method Engineering Erik ten Brinke
Unified Process versus Extreme Programming. Outline Compare and contrast UP and XP  Processes / Disciplines  Management  Artefacts Risk management.
Agile Methodologies: Comparative Study and Future Direction 林佳蓁 資工 4B.
CPSC 2150 August 21, Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
June 05 David A. Gaitros Jean Muhammad Introduction to OOD and UML Dr. Jean Muhammad.
Agile
The Systems Development Life Cycle
Informatics 43 – May 14, Open Source Source code is freely available and (usually) re-distributable Examples: Firefox web browser Apache HTTP Server.
Process Presentation Kin Wan Li, Ashley Zoch, Mevesh Gopee, Damian Ridgwell, Edwin Lusala,
Copyright © 2015 Curt Hill Software Development Paradigms What do you need to know?
CS3100 Software Project Management Agile Approaches.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Virtually Agile Astro Sabre (Matt Ganis) IBM, Senior Technical Staff Member Hawthorne, NY - September 20, 2007.
AGILE XP AND SCRUM © University of LiverpoolCOMP 319slide 1.
Agile Methods Presentation By: Jason Abbett. Definition A process to rapidly develop software Many kinds of agile methods but few are practiced.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
Agile. Processes Waterfall Traditional With prototyping Sprial Agile Dynamic Systems Development Method (DSDM) Scrum Crystal eXtreme Programming (XP)
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
Extreme Programming מתודולוגיה לפיתוח פרויקטי תוכנה.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
Agile Center of Excellence. Richard K Cheng Agile is just a high level concept.
Presented By : Prima Business Solutions. Agile Software Development Process.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Project Management Software development models & methodologies
Embedded Systems Software Engineering
Agile Project Management and the yin & yang of
Introduction to Agile Software Development
Planning User stories are written.
Extreme Programming.
Waterfall and Agile Quality Techniques
روش‌های سريع الانتقال (چابک) توسعه نرم افزار
What do you need to know about XP?
Chapter 3: Agile Software Processes
Coming up: What is Agile?
Refactoring.
Agile Development – a new way of software development?
Agile software development
Agile Development.
Chapter 5: New and Emerging Process Methodologies
Presentation transcript:

Are Agile Projects Doomed to Half-Baked Design? Alex Chaffee Leslie Chicoine

Introduction What is Design What is Coding XP and Agile Programming Agile Design: How to merge Agile processes and design principles Q&A

Web 2.0 = ?

play

Web 2.0 = play faster

Design Methods Design

Strategy Graphics User Centered Front End Coding User Interface Information Architecture Interactive Interaction Research User Flow Concepts Design Methods Design

I design. Design Methods

Research Thought Modeling Communication Play Re-design Design Methods I design.

Coding Coding Methods

Model-View- Controller Databases JavaScript Java Debugging CSS Version Control IDEs Research Coding Ruby Design Patterns UML Diagrams Deploying Perl Object-Oriented Design Best Practices Scripting Coding Methods

I code. Coding Methods

I code. Research Thought Modeling Communication Play Re-design Coding Methods

“Design is finding the problem, not the solution.” —Leslie Chicoine The Big Idea

The hard problems are… people problems –(mis-) communication –(not enough) feedback –(not fully) comprehending constraints process problems –deadline and resource management –design flexibility in the face of frequent change Where can we find a people-oriented process, and process- oriented people?

Extreme Programming is an Agile Process –Motto: Embrace Change –Other Agile Processes include Scrum, Crystal Clear, Adaptive Software Development, Feature Driven Development, DSDM, Agile Modeling XP Defined

Extreme Programming is an Agile Process Values  Feedback  Communication  Simplicity  Courage XP Defined

XP Practices Collective Ownership Pairing Continuous Improvement Continuous Integration testing refactoring simple design High code quality Sustainable Pace On-site Customer design by discussion frequent spontaneous working sessions Suggest and agree to process changes ”Ask the room” “Don’t be stupid.” retrospectives Incremental design, development, deployment Weekly demos XP Practices

XP Cycles –Rapid Iteration, small releases –Frequent planning/design sessions Iteration Planning, Release Planning Break down requirements into stories into tasks Daily Standup Regular All-Hands Retrospectives –Frequent (weekly) demos of deployed, 100% functional software real code, real db, real ui, but only some of the stories coders, clients, designers, PMs are all in the room XP Cycles

XP Meets Waterfall Design Extreme Programming Waterfall Design

XP Meets Waterfall Design Extreme ProgrammingWaterfall Design

XP Meets Waterfall Design

The three things we do in XP that any team should do  Weekly demos  Daily standups  Pairing Caution: May provoke resistance and hostility XP Staples

Agile Design

“Plans are useless, but planning is indispensable.” -Dwight D. Eisenhower Agile Design

Embracing change Communal design ownership Evolving solutions Agile Design

“Make it OK for people to challenge an idea or two, the good ideas can withstand it and the weaker ideas fall away and make room for something [better].” -Brad Bird, Writer/Director of the Incredibles Agile Design

“He’ll take good ideas from wherever they come from.” “He asks you, he wants to know what you think.” Agile Design

Scales of Design

Concept Business Goals User Tasks / Motivations Site Flow & Wayfinding Supporting Systems Navigation Widgets Global Styles Language Buttons Graphics Fonts Large Scale Small Scale Scales of Design

The Large Scale is tested in the Small Scale. The Small Scale reveals if the Large Scale ideas are solid. Scales of Design

Play faster. Scales of Design

Play faster. Scales of Design

Play faster. Scales of Design

Play faster. Scales of Design

Concept Business Goals User Tasks / Motivations Site Flow & Wayfinding Supporting Systems Navigation Widgets Global Styles Language Buttons Graphics Fonts Large Scale Small Scale Scales of Design

Problems vs. Solutions

“Design is finding the problem, not the solution.” Problems vs. Solutions

Documents as communication space Not as blueprints Problems vs. Solutions

Expose and flesh out the problems While manage constraints Problems vs. Solutions

Suggest solutions Share the outcome to create buy-in Problems vs. Solutions

Open Design

Agile demands open: it’s got to be flexible and extensible. Open Design

Expose to create depth.

Concept Business Goals User Tasks / Motivations Site Flow & Wayfinding Supporting Systems Navigation Widgets Global Styles Language Buttons Graphics Fonts Large Scale Small Scale Scales of Open Design

Open Design

Small Scale as reflection of Large Scale Design emerges from simple rules

Designers should… Design a week in advance of coding Not make your mockups pixel-perfect Work literally side-by-side with coders when implementing mockups Allow coders to participate in IA/UI design — Especially after the coding has already started

Coders should… Coders should ask designers… or else –time is wasted re-working solved issues –solutions are implemented that don't work with other parts of the designed system –coders make assumptions based on mockups Coders should give frequent live demos… or else –designers don't know what parts of the design are/aren't working –designers don't know what parts of the design aren't working together –coders don't know their code has bugs or needs tweaking

How to integrate with an outside design company? Communication and feedback are naturally more stretched out Some unnatural (or at least un-Agile) barriers are imposed –Time and space –Signoff procedures –Documentation / specs –Perfectionism –Mistrust Bring them in to your process as much as you can Don’t force them to adapt too much or they’ll resent and demonize you Iterate per-month at first, then per-week Invite them to your demos (remotely if need be)

Alex Chaffee Leslie Chicoine Say Hi.