software creation communication agile principles applied to software projects

21
Software Creation Communication Agile Principles applied to software projects

Upload: jasmine-ball

Post on 01-Jan-2016

235 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Software Creation Communication Agile Principles applied to software projects

Software Creation Communication

Agile Principles applied to software projects

Page 2: Software Creation Communication Agile Principles applied to software projects

Silos of KnowledgeC

ompu

ter

Sci

ence

Bus

ines

s

Bio

logy

Phy

sics

Phy

sics

Phi

loso

phy

Soc

iolo

gy

Psy

chol

ogy

Etc

., e

tc.,

etc

.

Craft, Community, Pride, Learning, Creativity, Communication, etc.

Eff

icie

ncy

Page 3: Software Creation Communication Agile Principles applied to software projects

Agile Manifesto

Manifesto for Agile Software Development We are uncovering better ways of developing

software by doing it and helping others do it. Through this work we have come to value:

Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.

http://agilemanifesto.org/

Page 4: Software Creation Communication Agile Principles applied to software projects

Authors of Agile Manifesto

Kent BeckMike BeedleArie van BennekumAlistair CockburnWard CunninghamMartin FowlerJames GrenningJim Highsmith

Andrew HuntRon JeffriesJon KernBrian MarickRobert C. MartinSteve MellorKen SchwaberJeff SutherlandDave Thomas

Note: Most of this presentation is based upon the work of Alistair Cockburn’s Agile Software Development

Page 5: Software Creation Communication Agile Principles applied to software projects

Is creating software…

Engineering? Science?Art?Development?Construction?Something else?Does it matter?

Page 6: Software Creation Communication Agile Principles applied to software projects

It does matter!

The way we think about anything is constrained by The mental frames we use

Frames trump facts. Frames will stay and the facts will bounce off. -George Lakoff

The language we use to describe it (connotations) Tax relief vs. tax deferment Death tax vs. inheritance tax

Actions and results CAN differ depending on your viewpoint!

Page 7: Software Creation Communication Agile Principles applied to software projects

When we experience something, we parse it into separate, meaningful chunks

When we parse according to one pattern and later put the pieces back together, we get a distorted, simplified result!

Parsing Experience

OR ?

Page 8: Software Creation Communication Agile Principles applied to software projects

Conclusions…

Any complex shape can be parsed according to different patterns

Our perception of “what is there” proceeds in different directions depending on how we separate elements

What we notice is biased by the vocabulary we start with

Page 9: Software Creation Communication Agile Principles applied to software projects

Impossibility of Communication?

Information received is determined by what happens inside the receiver, not just the information the sender is trying to impart

Stimulus: Yell “Fire” in a crowded theater Response A: someone hears, and exits safely Response B: someone hears, and panics Response C: someone is asleep, and doesn’t hear Response D: someone doesn’t speak English, and

doesn’t understand

Page 10: Software Creation Communication Agile Principles applied to software projects

Impossibility of Communication?

Communication is NEVER perfect and complete

The more a person is different from you, the SMALLER the communication gap he can jump

No matter how much you back it up, there is ALWAYS someone who will not understand.

Page 11: Software Creation Communication Agile Principles applied to software projects

Impossibility of Communication?

From Steve McConnell, Rapid Development

Page 12: Software Creation Communication Agile Principles applied to software projects

We can never hope to completely specify the requirement or the design

Experience, Explicit Communication Experience, Explicit Communication

The Golden Rule: The task on a project is not to try for complete communication, but to manage the incompleteness

Conclusion…

Page 13: Software Creation Communication Agile Principles applied to software projects

Levels of Listening

Level 1: Following Need explicit procedures/instructions Detailed manuals and documentation provide safety RUP – Rational Unified Process

Level 2: Detaching Can adapt procedures to the situation Understands where procedures break down The Art of Computer Programming

Level 3: Fluent Irrelevant if following a procedure Understands the desired end effect and will make it work

despite process or tools The Pragmatic Programmer

Page 14: Software Creation Communication Agile Principles applied to software projects

Levels of Listening

The Zen of Level 3…. “Do whatever works” “When you are really doing it, you are

unaware you are doing it” “Use a technique so long as it is doing some

good”To someone fluent – makes senseTo someone detaching – confusingTo someone following - useless

Page 15: Software Creation Communication Agile Principles applied to software projects

Conclusions…

Consider the level of your team Is it following, detached, or fluent? Is it some

combination of the three?

The mystery is that we can’t get perfect communication. The answer to the mystery is that we don’t need perfect communication!

Remember the Golden Rule: manage the incompleteness. That is, you just need to get close enough, often enough.

Page 16: Software Creation Communication Agile Principles applied to software projects

Think Outside the Box

Let’s compare software development to…a group writing epic poetry together!

Page 17: Software Creation Communication Agile Principles applied to software projects

Think Outside the Box

Who are the players?The people who ordered the poemKey poem designers

Began as a one person project, but the poet, in usual fashion, promises MUCH more than she can deliver!

So, adds other people fairly good at poetry, and takes the role as ‘lead’ poet

Still can’t get it done, so now they get desperate – they add friends and neighbors, beginners NOT good at poetry!

Page 18: Software Creation Communication Agile Principles applied to software projects

Think Outside the Box

As more people are added, many of whom are inexperienced, communication and coordination becomes a HUGE problem

One person was good at descriptive passages, one was good at the gory bits, etc.

The lead poet is now so busy coordinating and checking, she no longer has time to write poetry!

A couple of people wrote pages and pages of material describing the antagonists, way more than needed – that is the part they liked writing about.

Another few people kept revising and revising, never satisfied with their work

Page 19: Software Creation Communication Agile Principles applied to software projects

Think Outside the Box

As time progressed, the group got desperate and added even MORE people.

Communications were horrible, no one had a current copy of the poem, and no one knew the actual state of the poem

Page 20: Software Creation Communication Agile Principles applied to software projects

Conclusions…

What does this say about software development?

Almost every project of any size has temperamental geniuses and average or below workers, hard requirements, and communication pressures.

Why do we expect software development to be any different from group epic poetry writing?

Page 21: Software Creation Communication Agile Principles applied to software projects

So Then, What is Programming?

Normally thought of as… Solitary Inspiration-based Logical activity

But it is ALSO… A group engineering activity Mathematical A craft A mystical act of creation

It’s creation is sensitive to tools, but its quality is independent of tools