Slide 1: Claudio Perrone
Slide 2: Most IT projects fail
Will yours?
Slide 3: “
Software development productivity would skyrocket...
Slide 4: “
…if the least effective 30% were fired tomorrow
--- Neal Ford
Slide 6: How do you get results?
Slide 7: Dude, check this technology out
Sir, I urge you to revisit your process
Darling, people matter too!
Slide 8: Once upon a time I was a successful software developer…
Slide 9: My technical skills made me feel invincible
Slide 10: Until one day…
Slide 11: …I entered a world of deception
Slide 12: It was Hell from day 1
Slide 14: What would you do?
Slide 15: I choked
Slide 16: …but then, I decided to fight back
Slide 17: This is what I tried:
2
1
Agility
Effective Communication
3
Deliberate Creativity
Slide 18: Agility
1
Slide 21: I made a choice:
from predictive...
...to adaptive
Slide 22: Fixed time-boxes help focus...
Can you focus for
48 minutes?
Slide 23: Short iterations enable everything
almost
Motivation Prioritization Feedback Reflection Creativity
Slide 24: How do you express requirements?
Slide 25: The 3 Cs of a User Story
Card
Conversation
Confirmation (acceptance criteria)
Slide 26: Card: role, feature, benefit
Customer withdraws cash As a customer, I want to withdraw cash from an ATM, so that I don’t have to wait in line at the bank.
Ref: http://dannorth.net/introducing-bdd
Slide 27: How do you know you are done?
Slide 28: Define an acceptance criteria (BDD) [Scenario title] Given [some initial context] When [an event occurs] Then [ensure some outcomes]
Ref: http://dannorth.net/introducing-bdd
Slide 29: Acceptance criteria example: context
Scenario 1: Account is in credit
Given the account is in credit
And the card is valid And the dispenser contains cash
Slide 30: Acceptance criteria example: event
When the customer requests cash
Slide 31: Acceptance criteria example: outcomes
Then ensure the account is debited
And ensure cash is dispensed And ensure the card is returned
Slide 32: A little twist: Scenarios can be parsed…
Slide 33: …and then “automated”!
In Ruby:
Given “the account is in credit” do # ... End
In .NET:
.Given(“the account is in credit”)() {...}
Slide 34: Early success brought confidence…
Slide 35: …but the project was still at risk
Slide 36: Effective Communication
2
Slide 37: First… SHUT UP!
Slide 38: Listen
Don’t just hear
Slide 39: Find their greatest need
Slide 40: Commit to a ubiquitous language
Slide 41: Establish trust
Slide 42: Build a sense of ownership
Slide 43: Keep your enemies closer
Slide 44: We see things not as they are, but as we are.
--- Anonymous Proverb
Slide 45: Roles and perceptions
plant
Creativity
implementer
Task
co-ordinator
Direction
completer /specialist
Detail
resource investigator
Resources
shaper
Shaping Criticality
teamworker
Team
monitor-evaluator
Slide 46: How could we get smarter
Slide 47: Deliberate Creativity
3
Slide 48: Unlocking creativity: From what and how to “what if”
Slide 49: The creativity process
Explorer Artist Judge Warrior
Slide 50: Extract Concept (1/2)
You have identified a concrete idea that addresses a given objective...
Slide 51: Extract Concept (2/2)
Therefore
Extract a broader concept to facilitate the creation of alternatives.
Slide 52: Connect all dots with 4 straight lines
Slide 53: Connect all dots with 4 straight lines
Slide 54: How about 3 straight lines?
Slide 55: 1 line?
Slide 56: Reverse assumptions (1/2)
You want to generate alternative ideas by challenging your current assumptions…
Slide 57: Reverse assumptions (2/2)
Therefore List your assumptions Write the opposite of those assumptions Try to identify how to accomplish each reversal
Slide 58: Parallel Thinking
Slide 59: Six thinking hats
Slide 60: So, what happened to the project?
Slide 61: Amazingly, it succeeded
Slide 62: Lessons learned...
“ “
We moved from the Flintstones era to the future.
--- an end user
I was part of something. I belonged.
--- a developer
Slide 63: Thank you!
Claudio Perrone
cperrone@innerworkings.com www.claudioperrone.com/blog