Team Geek: A Software Developer's Guide to Working Well with Others
Team Geek TipsJOIN THE TEAMDon’t work alone. Create a low-friction environment for rapid feedback loops with other programmers.Keep the "bus factor" high. (Bus factor = the number of people that would have to get hit by a bus before your project is completely doomed)Practice humility, respect, and trust. Almost every social conflict can ultimately be traced back to a lack of one or all of these behaviors:Humility:You’re not the center of the universe. You’re neither omniscient nor infallible. You’re open to self-improvement.Respect:You genuinely care about the people with whom you work. You treat them as human beings, and appreciate their abilities and accomplishments.Trust:You believe others are competent and will do the right thing; you’re okay with letting them drive when appropriate.SET THE STAGE FOR SUCCESSBuild a strong team culture. Base that culture on humility, trust, and respect— and consensus-based decision making.Write a mission statement.It's just as important to agree on what you're NOT doing as what you are.Run efficient meetings:Only invite people who absolutely need to be there.Have an agenda and distribute it early.End the meeting early if possible.Keep the meeting on track.Try to schedule the meeting near other interrupt points in your day.Build strong processes and tools around team communication. They're just as important as your software tools.Never underestimate the bandwidth (and power) of a face-to-face conversation. It trumps all forms of electronic communication.BE A TRUE LEADERRemove roadblocks for the team. Strive to be a "servant leader."Be a leader, not a manager. Managers worry about *how* to get things done, while Leaders worry about *what* things get done, and trust their team to figure out how to do it.Provide direction and intrinsic motivation. Figure out how much guidance the people on your team need to stay on track—and happy.MANAGE PROBLEMS WITHOUT DRAMAReject behaviors, not people.Guard your team's attention and focus.Ignore trolls and stick to facts.Don't sacrifice long-term culture for short-term convenience.MANAGE UP & OUTAsk for forgiveness, not permission.If you can't take the path, make the path.Connect to the right people. Take advantage of the favor economy.Cut to the chase.Make requests using "3 bullets and a call to action" method.Example:There is a pony deficiency.Lack of ponies makes people sad.Ponies increase productivity.Please get us a pony.TAKE CARE OF YOUR USERSWhen marketing your product, under-promise and over-deliver. Be aware of how people perceive your software; it determines whether they’ll even try it out.Make your software easy to use. If your software isn’t easy to try, fast, friendly, and accessible, users will eventually walk away.Listen to your customers. Users want to be heard and acknowledged. Proactive engagement with long-term users has a positive effect on the evolution of your software, and on retaining your customers.