您的位置:首页 > 产品设计 > UI/UE

《Team Geek: A Software Developer's Guide to Working Well with Others》读书笔记(二)

2012-08-16 16:47 99 查看
Chapter 2 Building an Awesome Team Culture

未知的团队文化会带来未知的结果。

Unknown cultures bring with them unpredictable results, so it’s better to start with a known starter culture.

团队的创建者们会定义团队文化的大部分,这些文化将持续影响团队,直到团队结束。

The founding members of a team or company define the biggest part of a team’s culture, but it will continue to change and develop over the life of the team.

团队文化包含各种各样的内容,有的是技术性的,有的是社会性的。

The elements that make up a team culture vary wildly. Some are directly relevant to writing software, like code reviews, test-driven development, and the value you place on having good design docs before starting to crank out reams of code. Some elements
might be

more social, like going out to a particular restaurant for lunch every Thursday.

要建立有益的团队文化,摒弃有害的文化。团队文化的建设应该主要集中在工作方面。

The team cultures that are most successful are those that focus the majority of the team’s effort on shipping great software. If your team’s primary focus is anything other than that (e.g., partying, attending meetings, practicing one-upmanship) your team
may bond tightly, but you won’t get very much software written.

团队文化具有自我选择性,会自动排斥与文化不容的人,而吸引相容的人。

The interesting thing about team culture is that, if you build a strongly defined one, it will become self-selecting.

对于生产线上的工人,不需要太多创造性的思维和问题解决能力。但软件开发不同,需要有这些才能的人。

In the assembly line environment, employees are accomplishing simple tasks, often by rote, with little creative-thinking or problem-solving skills required. In the software world, a great deal of creative thinking is required of engineers working on a product,
and if you want a great product, you need great engineers.

如果你想让有才能的人做出优秀的成绩,你需要创造一种文化,使得他们安全地分享ideas和参与决策流程。

If you want great engineers to do great work (and to stick around), you need to create a culture for them that allows them to safely share ideas and have a voice in the decision-making process.

优秀的工程师喜欢与其他优秀的工程师一起工作,所以在招募时应尽量招优秀的人才。

most great engineers want to be on teams with other great engineers. Many great engineers we know gravitate toward teams where they can learn from giants of the industry.

在集权式管理模式下,需要顺从型的工程师,以便于以低成本的方式进行管理。但对于那些优秀的工程师,则希望更多的参与到决策中。

In the case of top-down management, the alpha engineer is the team lead and lesser engineers are hired as team members. This is because subservient team members cost less and are easier to push around. And you’re going to have a hard time finding great engineers
to be on this team because, after all, what really great engineer wants to ride the bus when she can drive the bus at another company?

拥有强烈的团队ego很重要,但是太强烈的个人ego则是不利的。

Having a strong team ego is good; a team totally eclipsed by individual egos is a recipe for disaster.

接纳建设性的批评需要一定的自信。

Constructive criticism is essential to the growth and development of any engineering team. It requires a certain amount of self-confidence

to take any kind of criticism.

有侵犯性人善于融入平和的团队,但平和的人并不善于融入侵犯性文化的团队。所以如果选择建设什么样的文化,平和的、内省式的文化较为合适。

Aggressive people can (usually) get along fine in a quieter environment, but quieter, more introverted people rarely excel (or enjoy working) in an aggressive environment—it’s not only harder to hear their voices over the noise, but it also tends to discourage
them from being active participants. If you’re looking for a culture that allows the broadest range of people to work most efficiently, you could do a lot worse than building that culture on humility, respect, and trust.

要防止随和型、以互相尊重为基础的团队文化不要被侵犯性的人所破坏。

Calm, easygoing cultures built on respect are more vulnerable to disruption by aggressive people than aggressive cultures are vulnerable to disruption from more easygoing people. Easygoing cultures need to be aware of this and not let the aggressive newcomer
take over, typically by refusing to engage this person in an aggressive tone.

交流很重要,优秀的代码需要保证正确的符合目标,而这需要足够的交流来保证。

In many cases, engineers see communication work as an obstacle to be overcome on the road to writing more code, but if your team isn’t in agreement or is uninformed, there’s no way to know if you’re writing the right code in the first place.

在合适的团队文化下,有多种交流渠道,这些渠道保证了所有人是在朝着一个方向在努力,而且保证不重复别人已经完成的工作,且互相吸取经验教训。

If you examine any successful, efficient engineering culture, you’ll find high value placed on numerous channels of communication, such as mailing lists, design docs, mission statements, code comments, production how-tos, and more. It takes considerable
effort to make sure everyone on a team agrees on the team’s direction and understands exactly what the team needs to do.

团队要有明确的目标和工作内容,且目标要被清楚表述,写明做哪些和不做那些事情。

For an engineering team, writing a mission statement is a way to concisely define the direction and limit the scope of your product.

保证会议的高效、短暂和目标明确,减少会议的次数就是减少对工程师的打扰。

通过设计文档进行交流是很好的办法,设计文档用于描述高层次的实现蓝图,在此层次上易于讨论和修改,而在代码层次则难于让别人理解,不利于团队沟通。在编码实现时,经常要对设计文档进行变更,所以要保证设计文档和代码实现保持一致。但也不要在此方面走极端,无论什么都要写详细的设计文档。

A design doc is typically owned by one person, authored by two or three, and reviewed by a larger set. It serves not only as a high-level blueprint of your future project, but also as a low-cost way to communicate to your larger team what you want to do
and how you intend to do it.

为了每日的协调月沟通,需要使用一些沟通工具。例如mail lists、BBS、IM、IRC、Issue Tracker等工具。

所有commited的代码都需要进行code review。

建立一套文化有利于新成员的加入,如果没有的话,新成员也会自创一套,这样则有着不确定性。

A big side benefit of this effort—communication and process—is that it drastically reduces the barrier to entry for newcomers to your team.

编码实际上最终是与人的沟通,而不是机器。

Code is ultimately about communications with people, not just with a machine.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: