Are Agile Projects Doomed to Half-Baked Design?

  • Published on
    19-Oct-2014

  • View
    35.207

  • Download
    0

Embed Size (px)

DESCRIPTION

Today's web-based applications go live every few weeks. Agile methodologies like Extreme Programming and Scrum, focus on short development cycles, accelerated feedback from users and customers, and incremental delivery. On the technical side these approaches can bring discipline and predictability to short release cycles. But can these incremental methodologies incorporate successful design techniques? Using case studies and examples from their own project experience, Alex and Leslie will discuss how to integrate design and Agile, discussing what works, what problems arise, and most importantly, the changes in mindset that are necessary on an integrated Agile design/implementation team.

Transcript

  • Are Agile Projects Doomed to Half-Baked Design?

    Alex Chaffee
    alex@PivotalLabs.com

    Leslie Chicoine
    leslie@GetSatisfaction.com

  • 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 =

    ?

  • Web 2.0 =

    play

  • Web 2.0 =

    play faster

  • Design Methods

    Design

    Start by defining design. Its a pretty big word.

  • Strategy

    Graphics

    User Centered

    Front End Coding

    User Interface

    Information Architecture

    Interactive

    Interaction

    Research

    User Flow

    Concepts

    Design Methods

    Design

    Part of the reason its so big is all the possible outcomes, and this is how people normally talk about it. But every project has different outcome needs, and every team has different skill sets. So it make it hard to talk about design or prescribe it as these things.

  • I design.

    Design Methods

    A state of acting, a mode of thinking, and really everyone is a designer. So the person with the title is in charge of fostering the design or a project, and staying in that mind set when others may need to delve deeply into their own domains.

  • Research

    Thought

    Modeling

    Communication

    Play

    Re-design

    Design Methods

    I design.

    That mind set is about doing these kinds of things. And its these kinds of things that get an incredible boost from Agile Development. So Im going to go into more specific about these in a moment.

  • 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

    Coding is a creative act. A lot bad processes have come up by not recognizing this fact. For example, doing implementation in phases, pulling people from one project to another without context, and working in separate geographic locations. You have to be able to iterate, to play. You have to be able to traverse all of the levels.

  • 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 constraintsprocess problemsdeadline and resource managementdesign 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 ChangeOther 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

    Dont be stupid.

    retrospectives

    Incremental design, development, deployment

    Weekly demos

    XP Practices

  • XP Cycles

    Rapid Iteration, small releasesFrequent planning/design sessionsIteration Planning, Release PlanningBreak down requirements into stories into tasksDaily StandupRegular All-Hands RetrospectivesFrequent (weekly) demosof deployed, 100% functional softwarereal code, real db, real ui, but only some of the storiescoders, clients, designers, PMs are all in the room

    XP Cycles

  • XP Meets Waterfall Design

    Extreme
    Programming

    Waterfall
    Design

  • XP Meets Waterfall Design

    Extreme Programming

    Waterfall Design

    http://www.extremeprogramming.org

    http://www.jjg.net/ia/

  • XP Meets Waterfall Design

    Results of the washing machine are better, so how do we turn that stream into a machine?

  • 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

    Weekly demos cause resistance since people want to keep working -- either they chose too big a chunk to get done in a week, or they want to keep working on it until its perfect.

    Daily standups cause resistance since people want to get in late, or theyre unwilling to ask for help or give it.

    Pairing causes resistance since people feel like theyll be judged, or wont get credit, or theyre more comfortable, or productive, working alone.

    But XP is about getting outside your comfort zone, and about whats best for the team

  • Agile Design

    Agile Design

  • Plans are useless, but planning is indispensable.
    -Dwight D. Eisenhower

    Agile Design

    The mind set.

  • Embracing change

    Communal design ownership

    Evolving solutions

    Agile Design

    Agile design is about being comfortable with embracing lots of on going changes, and sharing the ownership over designs with a whole team because this is how you evolve solutions and create a great project.

    Unlike the Architecture metaphor we hear so often (this analogue collapses at the blue prints) we get to test our assumptions as we go. So really Agile is more akin to putting on a play or creating a movie

  • Agile Design

    A great example is The Incredibles. I highly recommend going and renting this DVD and checking out The Making of extras section.

  • Agile Design

    The major take away about how the multidisciplinary team works together to evolve the project.

  • 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

    They created an environment where open discussion and opinions are welcome and where its OK to challenge ideas because as Brad Bird says The good ideas can withstand those challenges and the weaker ideas fall away.

  • Hell take good ideas from wherever they come from.

    He asks you, he wants to know what you think.

    Agile Design

    The team talks about how Brad Bird creates this environment and we can all learn to do the same. To take ideas from everyone on the team and to ask people what they think. Asking questions and providing people information is really key to this kind ofopen and Agile environment.

  • Scales of Design

    Scales of Design

    To frame this Im going to talk about the 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

    Similar to waterfall there are scales of an project. But were going to look at it from a slightly different lense.

  • The Large Scale is tested in the Small Scale.

    The Small Scale reveals if the Large Scale ideas are solid.

    Scales of Design

    By sliding up and down the scales you create a valuable feedback loop that informs the direction of the design.

  • Play faster.

    Scales of Design

    Take for example the Navigation for my company Satisfaction. Soon after we felt we had gotten a good pass over the concepts we started trying to break tasks out into tabs as you can see on the first rough top version.

  • Play faster.

    Scales of Design

    We delved down deeper using that top version to the page level but soon realized we trying to do two things on one page, so we broke it out and re-did the navigation. In the meantime we revisited the Large Scale business goals and realized that we didnt need Moderation, and hense

  • Play faster.

    Scales of Design

    Didnt need a space for that task. Soon we had a running code version, and at that point we started arguing about the wording of the Navigation.

  • Play faster.

    Scales of Design

    We added a few more sections, and still couldnt get the wording right. One set of words reflected where you could go, and the other reflected where you are. This led us to step up a Scale.

    So we looked at our Scales again and noticed that on the page level the headers did the job of telling us where you are. So we going to remove that function from the navigation entirely.

    And in fact it looks like we are going to kill the navigation all together. This stems from new iterations on the business model and concept Scale.

  • 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

    So its really important to frame problems in the various scales.

  • Problems vs.