loading presentation...
Fork of Dave Hoover's talk from SDC Chi 2011
- Struggle for discipline
- Least resistance => fragile code
- Positive peer pressure
A Heedful Programmer...
- Sees actions from team's POV
- Communicates openly, deliberately
- Constantly refines actions based on feedback
Background
- Karl Weick
- Aircraft carriers
- High complexity, high reliability
Heedful Interrelating
- Collective mind
- Connections between your team
- Handle unexpected problems
How do we become more heedful?
Share knowledge
- Don't silo
- Some problems need MULTIPLE experts
- Pair frequently, collaborative code ownership
- Shared responsibility for being aware
Heads up, Blinders off
- Bring in newcomers that will question process
- Welcome new ideas, don't dismiss as "that's the way we've always done it"
- Be mindful about what you are doing
- Hold retrospective and take action
Pain Driven Development
- If it hurts, do it more
- Force yourself to get better
- Or at least make it obvious that the process is out of whack
Have a pow-wow
- Shift from documentation to stories
- Talk about a feature as a group
- Bust out the white board
- Rely on each other to fill in details that cue retrieval
Warm Fuzzies
- Safe environment for questions/presenting
- Accepting of ideas from everyone
- Encourage community involvement
- People aren't resources
- Removing people from social interaction removes them from collective mind
Use process to build trust
- Use trust to remove processes that suck
- Independence => Expertise => Independence
- Constantly refining and retrospecting to find emerging patterns
Are you habitual or heedful?
next_week = clone(this_week)
next_week = retrospective(this_week)
Thought Questions
- Adaption: is your process changing? stagnant?
- Noobs: how do we onboard and socialize with newcomers?
- Narratives: what are your team rituals, why?
- Cooperation: do we have shared knowledge? bus number?
- Trust: once we have it, what can we stop doing?