Workshop kicking off at Front End Design Conf with Ethan Marcotte @beep - Responsive Design Pattern Libraries! Yum! #frontendconf (at Saint Petersburg, Florida)
"Designers, Developers and the Love They Share" - Matt Graham (@michigangraham)
UPDATE: Check out the slides for the presentation.
Overview:
Trust, Humility & Relationship. Three fundamental building blocks that help foster community. In this talk Matt gives examples what to look for inside your team, projects and self to help better the community you work in. Then shares details of how GitHub lives out community and relationship within its organization.
Background:
"To make it easier for people to work together, than to work along" - GitHub Mission statement.
Speaker Deck: Find out what's trending what going on for speakers.
Play: replacement for iTunes. Run your own dj wherever
Giants App: built the app for a suite in san fran.
GitHub for Android: open sourced github for Android.
Loves community tools that help us work together
"Group of living organisms interacting, sharing a populated environment and sharing common values"
2005, live in Indiana for 3 years, married gf. Moved back to Michigan, bought a bigger house with some married friends. Let a college girl move in to help with transition to college.
Friend brian flies jet and moves in wife and two kids.
Christmas 30-40 people in the house
"People Love Community". Doing things/making world better place together
Watching community on tv. Friends, Cheers, Full House. We love community, why american legion is still around
loves the interpreter.
Commuty can be fun (but takes a lot of work)
Community Sucks, Because We Suck at Community
"Sometimes I think the collaborative process would work better without you" - Peter C. Vey
What does community look like to GitHub.
We react to our experiences. Felt offended, bitter and began self protecting. Once it starts, it's difficult to stop.
Similar to car crash and going through the same intersection at another point. Takes time to get over that. Doesn't matter how many times before, that one time affects you.
Working on church roof for 2 months, one person fell half way through and cut themselves. Nobody felt safe.
Quit designing for what he loved and for what he was going to approve.
Art director was the one that pointed out that was happening. AD figured it out before he did.
Traumatic Github Experiences
Design Without Development - Design something that gets passed down the line, but is decided to give project to someone else. The client didn't have enough money so we're going to toss it.
Development without Deployment - Everything looks great, works. Skips v2 and goes to v3
41 Shades of blue - Art director keeps coming in and validates their job. MicroManagement/Scope Creep.
Had an art director that came around desk and sighed. "Really this is what you wanted to show me?! This looks like crap" "Maybe it's just the color of the button" Demotivated in the moment. Bitter, hurt, leaning back "I can't believe he just said this" 10 minutes later he comes in and says "YEA! We can ship this!" Didn't change anything.. File was untouched. He had art director mentality.
How to Unsuck Community
"The way we work at Apple makes it critical to work collaboratively with different areas of expertise we share the same goal, have exactly the same preoccupation, with making great products" - Sir Jonny Ive, Apple
Nobody else can change how you react.
Craftsmen are people who practices or is highly in a craft; artisan (an artist)
Designers/Dev/Hybrid want the same thing.
Know the company vision and align yourself with it. Get behind your work community. Choose to align yourself.
Get to know your team. What have they done? What they do prior to the company and what do they do now? Get to know their skill sets and what they're passionate about. Be alb to relate to them. Get to know what drives them to punch other coworkers in the face. So that you can help buddies to not let that happen
Do not expect they do things the way you do. Changes are they don't. We see the same thing very different usually.
Designers: Developers don't see in shapes, fonts and colors
Get to know your products/projects. Don't just do it, understand it.
Document all things. Document as much as you can to help new people understand the past of the project.
Identify challenges.
Expose expectations. Yours, clients, art director. Get as much up front.**
Estimate time and effort. Try not to set hard deadlines when possible. Put the right people in the right place.
Divide and conquer. Find roles and who's doing what
Be mindful about yourself. What are YOU passionate about? What do you get excited about? Doesn't have to be things that you do at office. Could be side work/personal work. If you're not mindful you're going to struggle. How you work best. Time, place, music, location, etc. Doesn't design until after 11. Doesn't do well then. Spends the first hour email, pull request, etc.
Be aware of your insides. Why are you getting frustrated? You can't have an emotion without a thought first. Be mindful of that thought because you react to it.
Beware of you blind spots and that you don't know them all. Find them quickly when you live with 10 people. Most likely if you do it in personal life, you're probably doing it at the office.
You can't control the company atmosphere, but with mindfulness you can know how to affect it.
**example: project day at home to trim bushes and take off ivy. Wife said she'd take care. Trim the bushes and trim ivy, but a truck was attached to bushes. Called buddy Jeff and asked if that's how it should be done. Shared understanding of the project wasn't in line. All bushes were pulled from the front yard.
Adjust For Community
"Why are you so afraid of something you've done so often" - Walk Caughel
Trust your team
repent quickly. When you're wrong, apologize for it. Don't be afraid as if it makes you less of a person.
"I haven't failed, I have just found 1000 ways that don'e work." - Thomaas A Edison
Forgive them quickly. Don't say they weren't wrong, just forgive the fact. "I'm not going to hold it against you as we move forward"
Avoid attacking people, attack problems." - Tom Preston-Werner
Relate with your team. Communicate everything with them. (Almost)
You don't need to know how to write the code, you need to know how to communicate with the developer who does. and vise versa
Be involved as much as you can (or pull back as much as you can)
Love you ideas, but be willing to change them.
Don't stop learning
Community works when you're willing to put them above yourself
How Github Implements Community
"The source of this [GitHub] success, of course, is building community as a foundation element of their company culture and in their customer base, not an afterthought, benefit, or an add-on" - @alexknowshtml
118 chat rooms w/ search (not all focused on GitHub)
DJ room, .com room
"The .com room" is a transparency room that provides everything. Expenses, where the money comes from, projects.. All conversations
Pull request everything. If you're a designer, pull request before any code. provides specs and requests. Create communication.
Project becomes better because everyone worked on it.
Autmoate things. Use computers to buildd computers
Ship Early. Ship often. Shipping software is motivations. Make them smaller shipments, but keep them moving out the door. Iteration over perfection.
Work together. Find people who are passionate about your idea.
"Drink Beers". Really what it measn, relate with each other.
Github Destinations
"The best software is made by happy people working together" - Brian Doll
Rent houses anywhere and go stay there. If you'd like to pay for plane ticket, fly out there and function as community. Can be done in any company.
Mini-summits. Spen time away from the office several times a year just to focus on what they're building at the time. Do things together outside the office.
Dodgeball tournament amongst other teams. Sign up (in october)
Trust. Humility. Relationship. Will change the atmosphere.
Resources
Cerebro - one single place that can be accessed anywhere that talks about anything in the company. Gym membership waived, requests, etc. Search
Boxen - boxen.github.com (Check this out) Open source boxes to get github set up on a box quickly. When Joel runs boxer, it's going to install all apps necessary on the fly. Pull new mac out of box, run a command and go get a beer. By time you come back, it's all ready for you.
Bootstrap - script/bootstrap. Set ups everything for your machine.
Hubot Deployment - "hubot deploy speakerdeck/dark-side to staging". Write scripts so that anybody can deploy at anytime. Do scripts so that people that don' know everything can still push