1. C O N T R I B U T I N G
C U L T U R E
E R I C W O O D S
@ w o o d s e o w l
C o r n e l l D r u p a l C a m p 2 0 1 9
T H E V A L U E O F
S M A L L P R A C T I C E S
2.
3. Q U A L I T Y
Learning and Mastery
Continuous improvementWhat's working
What's not
What can change
Plan / Do / Study / Act
Small experiments
Quality has context
4. – S I M O N S I N E K
“Imagine a world in which the vast majority of us
wake up inspired, feel safe at work and return
home fulfilled at the end of the day.”
5. C O M P A S S I O N
Culture is about sharing
Empathy
Creativity
Courage
Trust
Connection
Belonging
7. R E T R O S P E C T I V E S
Why
Purpose: Continuous improvement
Value: Empathy, creativity
How
Regularly scheduled meeting
Safe space (everyone is doing their best)
What worked / what didn't + kudos
Actions
Sticky improvements
8. S H A R E D P L A N N I N G
Why
Purpose: Aligned priorities
Value: Trust, ownership, and engagement
How
Kick-off meetings with everyone
Estimation by implementers
Team prioritization
Visibility of progress
9. S T A N D A R D S
Why
Purpose: Predictable practices and behaviors
Value: Connection, culture, belonging
How
Rules of engagement
Development standards
Definition of done
Reviews
10. R U L E S O F E N G A G E M E N T
Why
Purpose: Equity and inclusion
Value: Quality, empathy, collaboration
How
Meeting to collectively lay ground rules for the whole team
Discuss the ways people like to work and be treated
Establish social norms like "be on time", "use slack instead
of email"
Memorialize it with shared documentation
11. D E V E L O P M E N T S T A N D A R D S
Why
Purpose: Efficiency
Value: Trust, respect
How
Clarify goals
Predictable, reusable, maintainable, scalable
Use existing standards
Drupal standards, GitHub flow
Be consistent but flexible
Use linting (see "drupal phpcs")
12. D E F I N I T I O N O F D O N E
Why
Purpose: Transparency of expectations
Value: Quality, trust
How
Meeting with managers, designers, developers
Describe the process requirements for work to be released
Design steps, development steps, review steps, task
updates
Clarify responsibilities
Memorialize with shared documentation
13. R E V I E W S
Why
Purpose: Quality control
Value: Shared culture
How
Pull requests (with templates!)
Clarify must fix versus recommendations
Must fix: Requirements, coding standards, maintenance issues
Recommendations: Optimization, style
Only add review notes that are worth the time
When receiving a review, presume it should be implemented
Be respectful
15. B U I L D I N G
View code as communication
With other developers, with your future self
Be empathetic
Use common tools
Shared configuration, shared knowledge
Document what works
Engage in small experiments
Build knowledge, continuous improvement
16. E N G A G I N G
Empathy, inclusion, and vulnerability
Be courageous, be open
Responsiveness
Availability to each other
Positive critiques
Mentoring, collaborating
Responsibility
Take care of your self
Take care of your own messes
Ask for help when you can’t
18. R E S O U R C E S S U M M A R Y
The small practice of mediation - https://www.lionsroar.com/5-reasons-to-meditate-september-2013/
PDSA Cycle - https://deming.org/explore/p-d-s-a
Simon Sinek TED talk - https://www.ted.com/talks/simon_sinek_how_great_leaders_inspire_action
Simon Sinek - https://simonsinek.com/
Connection, Brené Brown - https://brenebrown.com
Mediation - Headspace app
Retrospectives - https://www.atlassian.com/team-playbook/plays/retrospective
Kickoff - https://www.atlassian.com/team-playbook/plays/it-project-kick-off
Rules of engagement - https://www.atlassian.com/team-playbook/plays/rules-of-engagement
Meeting Agreements Support Equity and Inclusion -
http://www.msmithconsulting.net/blog/2018/9/13/how-meeting-agreements-support-equity-and-
inclusion
Drupal coding standards - https://www.drupal.org/docs/develop/standards
GitHub flow - https://guides.github.com/introduction/flow/
Drupal CSS architecture goals -
https://www.drupal.org/docs/develop/standards/css/css-architecture-for-drupal-8#goals
Drupal phpcs - https://www.drupal.org/docs/8/modules/code-review-module/installing-coder-sniffer
Open Social development standards -
https://www.drupal.org/docs/8/distributions/open-social/development-standards
Steve Rowe on code review rights and responsibilities -
https://blogs.msdn.microsoft.com/steverowe/2008/08/13/code-review-rights-and-responsibilities/
Editor's Notes
I'm Eric. I'm a web developer.
I have big ideas and grand plans. I want to change the world and be a better person. I love to be inspired by great ideas, beautiful work, and amazing people.
Having this kind of idea of Why is critical. It is the north star, the guiding light, the vision. And with it should come How: the alignment, the goals, the organizing perspective. Without these we have little purpose and lack direction and motivation.
But something I’ve learned over time and of late is that inspiration and big ideas are not what bring transformation. Goals and alignment don’t easily persist.
What has the most influence are the small practices. And with those I want to contribute to a culture of quality and compassion.
(Photo: Mountain goats on Mt Evans, Colorado. Denver 9000' down and 40 miles away.)
This is one of Ithaca's gorges, right near my house. These gorges didn't form in cataclysmic events. Every spring there are floods that bring large rocks and trees down and those make noticeable changes. But is it also the small creek, all year long, that cuts the gorge.
Every day, in our activities, in our routines, we shape the way that we think and act. Just like that water quietly flowing. It makes us who we are. But we can be thoughtful about our activities, about the small practices. Through them we can transform who we are and where we work.
(Photo: Buttermilk Creek, above Lake Treman. There's a cool little swimming hole down there. Ithaca, New York.)
Resources:The small practice of mediation - https://www.lionsroar.com/5-reasons-to-meditate-september-2013/
A culture of quality, to me, is about learning and mastery. How do we do our best, how do we produce our best? By always seeking to know ourselves and improve the parts that we can change.
I studied mechanical engineering in college and learned about continuous improvement as a process management idea. It sounds like boring business speak, but I think it has fundamentally shaped who I am. I have been on teams that engage in continuous improvement practices and have seen the benefits of continually iterating on what's working, what's not, and what we can change. It is one of the singly most important activities for team success, in my view.
There is a framework called PDSA (plan-do-study-act) that structures how to continually evolve quality. The premise is that there are problems to solve that we can tackle with small experiments that are low risk and quickly show results. The planning must include knowing the outcome we expect, so we can tell if something is a success or not. When we do the experiment it can be just as successful for results to show that an idea doesn't work. Studying the results keep us from making larger investments in well-intentioned failures. And when we are successful, it is important to act: to make that change permanent.
Quality also has context. For example, a mission-critical website should go through a battery of tests when deploying changes to confirm it won't disrupt the service, while a small informational website would not be served well by the effort of applying a large process in front of simple changes. What is good in one situation or for one team may not be good for the next. Quality depends on what is being valued and by whom.
(Photo: Lake 22. In the Cascade Mountains, about an hour from Seattle, Washington, with a moderate hike through a beautiful old growth temperate rain forest.)
Resources:
PDSA Cycle - https://deming.org/explore/p-d-s-a
I kept coming back to this quote when I thought about what I value in the workplace.
(See quote)
To have this is to be privileged. To strive for it, to contribute to it, is something any of us can do.
(Photo: Hobbiton, New Zealand. Yes, it exists, and is more wonderful than you might expect.)
Resource:
Simon Sinek TED talk - https://www.ted.com/talks/simon_sinek_how_great_leaders_inspire_action
Simon Sinek - https://simonsinek.com/
Inspired, safe, fulfilled—how do we get there?
Establish connection. Establish trust. Nurture a sense of belonging.
Do this through sharing, through engaging empathetically.
Find this through courage, through creativity. Trust yourself.
Quality needs fertile ground to thrive. Compassion provides that. Collaboration depends on it.
Resources:
Connection, Brené Brown - https://brenebrown.com
Mediation - Headspace app
The places where I've worked that value quality and collaboration have amazing teams. These teams have practices that build trust and empathy. These practices take some learning, some un-learning, and sometimes some courage, but they establish virtuous cycles that make them easier over time and bring more value. Generally these require leadership to establish.
(Photo: Elk at 12,000'. Trail Ridge pass, Rocky Mountain National Park, Colorado.)
Meaningful, routine retrospectives are the most valuable practice I think a team can engage in.
Resources:
Retrospectives - https://www.atlassian.com/team-playbook/plays/retrospective
Shared planning aligns priorities, but is also builds trust, establishes ownership for the entire team, and helps everyone engaging in their own work on the project.
Resources:Kickoff - https://www.atlassian.com/team-playbook/plays/it-project-kick-off
Standards are so valuable in a collaborative space. When there are unspoken rules or expectations, there is fear, which usually appears as frustration, hurt, or anger.
Standards provide an opportunity to discuss and define the practices and behaviors to expect and this builds trust, particularly when everyone can participate in defining the standards.
Resources:
Rules of engagement - https://www.atlassian.com/team-playbook/plays/rules-of-engagement
I come to the idea of Rules of Engagement from learning to use working agreements in meetings. This was in a context of diversity and inclusion and I find so much value in working agreements. It is easy to assume we are all using the same rules of engagement, yet frequently we are wrong. Writing them down makes them explicit, helps shift power, and makes work more equitable and inclusive. This is important to the quality of a team because it fosters a diversity of viewpoints. It also requires and evokes compassion.
Meeting Agreements Support Equity and Inclusion: http://www.msmithconsulting.net/blog/2018/9/13/how-meeting-agreements-support-equity-and-inclusion
Development standards reduce friction and cognitive load. I don't have to be thinking about whether my naming convention or your indentations require compromise each time we work together. We've already worked that out. And if you can agree to an existing external standard that takes a lot of decision-making out of the process.
Resource:
Drupal coding standards - https://www.drupal.org/docs/develop/standards
GitHub flow - https://guides.github.com/introduction/flow/
Drupal CSS architecture goals - https://www.drupal.org/docs/develop/standards/css/css-architecture-for-drupal-8#goals
Drupal phpcs - https://www.drupal.org/docs/8/modules/code-review-module/installing-coder-sniffer
A definition of done may sound straight forward, but when get everyone together to describe it, the complexity becomes more apparent. Even the most basic aspects are tricky: is "done" going to mean delivered and functioning on a web site or is it going to me completed and merged in code?
The value isn't in being able to say where those boundaries are, it is in exposing that there are important steps that must be completed and that there are dependencies along the way.
Resource:
Open Social development standards - https://www.drupal.org/docs/8/distributions/open-social/development-standards
Reviews improve our work. They communicate and reinforce standards. They build shared vernacular which helps development and design occur more quickly. Done well, they increase team cohesion.
Resource:
Steve Rowe on code review rights and responsibilities - https://blogs.msdn.microsoft.com/steverowe/2008/08/13/code-review-rights-and-responsibilities/
Most of those team practices require discussions or meetings to get them established. Some of them require significant leadership buy-in. And for you leaders in the room, can we please do all of these?
There are also personal practices that contribute to a team's culture.
(Photo: Second Beach, Olympic National Park, Washington. At low tide it is possible to walk across to the island, but stay too long and it may be 12 hours before you can get back.)
When I first imagined this talk, I saw the pun in the title, and perhaps you came to it thinking it would be about the culture of contributing to open source and to Drupal. I'd like to be able to contribute back to that community more and perhaps soon I will. For now I am devoting a lot of my energy and time contributing to culture through these two kids of mine.
I also want to share that the heart of what I've had to say today comes from some very personal growth. I encourage you to look at the values, to think about compassion, courage, and connection. Amidst the technical resources on the next page are personal resources, as well.
Lastly, I recently learned the Japanese idea of "wabi sabi" -- it is the beauty of imperfection. I hope you see that today.
As a wonderful human I know likes to say, be good to each other.
Thank you.
(Photo: Trailridge Drive, Rocky Mountain National Park, Colorado. With 16- and 13-year-old perspectives.)