Are Agile Projects Doomed to Half-Baked Design?
date post
19-Oct-2014Category
Business
view
35.222download
0
Embed Size (px)
description
Transcript of Are Agile Projects Doomed to Half-Baked Design?
Are Agile Projects Doomed to Half-Baked Design?
Alex Chaffee
[email protected]Leslie Chicoine
[email protected]Introduction
What is Design
What is Coding
XP and Agile Programming
Agile Design: How to merge Agile processes and design principles
Q&AWeb 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 ChicoineThe 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 changeWhere 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 ModelingXP Defined
Extreme Programming is an Agile Process
ValuesFeedback
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 roomXP Cycles
XP Meets Waterfall Design
Extreme
ProgrammingWaterfall
DesignXP 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. EisenhowerAgile Design
The mind set.
Embracing change
Communal design ownership
Evolving solutionsAgile 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 IncrediblesAgile 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
FontsLarge 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
FontsLarge Scale
Small Scale
Scales of Design
So its really important to frame problems in the various scales.
Problems vs.