Chinese version: http://www.infoq.com/cn/articles/douban-dev-management
English translatedversion: http://www.microsofttranslator.com/BV.aspx?ref=IE8Activity&a=http%3A%2F%2Fwww.infoq.com%2Fcn%2Farticles%2Fdouban-dev-management
Based with Douban’Engineering Vice President Duan Nian Wei Zhuang table conversation rather thaninto, the two sides mainly discussed how to give the team a set of rules, howto transmit values, right motivation strategies, how to examine topics such asengineers.
Introduction of guests
Duan Nian, incumbent DoubanVice President of engineering. Started programming (BASIC) in 80s, individualsinterested in entering the software industry with the support of, successivelyserving in companies such as Huawei, new technology, joined Google in China. Insoftware development, testing, software, team management and other fields areinvolved, recently focused on team-building, engineering culture. Interested inways to improve team productivity and personal skills.
Douban’ s developmentmanagement is based on a set of constraints and rules. Constraints arefundamental, rules based on constraints to development. We have three basicconstraints:
1.Final evaluationcriteria depends on the contribution to product line
2.To do things the rightway
3.Must have technicalobjectives
1st is arguably performancerecognized principles, that is, what kind of performance can be recognized.writing 1000 lines of code is not a performance indicate, what value youbringing is. When you don't have a direct contribution to the business, but increasingproductivity, this is also count.
2nd is that we do not acceptlow-quality code. Good taste of engineers natural with it.
3rd can also say we areasking members of the pursuit of code. If we are looking for a person, if heonly work as a task, lack of enthusiasm for upgrading their technology itself,so even if he was again well, we refuse. Such a person might just focus onperformance, rather than focus on smarter, more efficient way of doing things.
Based on this three-pointconstraints, we have formulated a number of rules, these rules can lead toother rules, but each team also produce their own set of rules.
For example, each code mustto be do code review, this is a general rule. This rule needs the support oftools, which is why we develop CODE platform in the first place. Our codereview is a process of relative autonomy, not from top to bottom or from bottomto top. Basically, every team will be formed inside one or two people with codecleanliness, and they're finding low-quality code for such a role.
Code review tasks, under theCODE platform, derives from other rules, such as in the merge code before youimplement CI, as well as branching rules, submitted to the rules of the code,and so on. Of course, this also requires tools support. CODE as a platform canbe implemented well to accommodate these rules.
Within each team, if your PMwant to decide how to do distributing the task, they may have different rules.Some teams had created 20% not function development rules, specifically do with20% time to generate long-term value development, such as debt-repairtechnique. Some teams take consultative manner to distribute workloads that arenot visible at a time. These are derived from the team's pursuit of technology.
Overall, the constraints arethe same, the rules can be adjusted.
how to formulate the rules
The management 3.0, this booksays: good managers is not the rules of the game makers. We tend to let theteam his own team rules in a democratic way, I try not to meddle. Of course, inthe early stage of team development, and you can also try to set some rules,but you will find that these rules will be replaced by new rules arising fromwithin the team.
As managers, we could nothelp but to like a game designer to design rules, but this is impossible todefine the rule, we should not do so. We ought to emphasize constraint definesthe boundary rules to ensure no conflict rules with constraints.
Some are more attention toconsistency, especially ideological consistency, unity of values, I disagree onthis point. I think the unity of this thing makes no sense. The so-calledconsensus, there are generally three levels:
1.Vision: Is "what to doand what not to do." For example to put ads on the page, it should do it,everyone will have their own opinions.
2.Value: Is the"how to do things," under the vision, reflected by rules andconstraints. I think values is not something pasted on the wall--the mantra onthe wall, are generally less stuff.
3.Rules and restrictions.That is in practice. Rule is a thing which can easily be copied, such as thedevelopment process, you see everyone with a pull request to submit, you caneasily do so. In this process, the values have been enhanced.
For me, I prefer allconsistent in behavior rather than to pursue the thought consistent. Rulecreation process should be democratic, the process requires conflict,collision, compromises--because our thought is not consistent and rule once itis established, every individual should abide by the rules.
How to encouragecross-team collaboration and sharing
In early time, our companyonly have no more than 20 people, was not yet divided into product lines, allthe tasks in a pool, open on the Trac, if you interest one taks, do it byyourself. Of course, there are some constraints, such as a practice is"maintains its own code." After year 2009 , in order to solving theownership and rapid response to keep small teams, we entered into a productline approach. In the line mode, engineer's job is relatively fixed, not like Iused to walk a public pool.
This horizontal linkagesweakened between engineers, good experience, systems, principles cannot beshared across product lines, while engineers also are limited to a product linewithin a long time may seem boring.
So last year, we used a lotof energy to push cross-team collaboration. First approach is to establish acommon pool, giving individuals more chance of the outcome, but there is noparticularly good results. Now we focus on the performance rules, makescross-team's contribution can be recognized by bean performance system,although they can't say a lot, but compared to last year's attempt is moresuitable for some.
Our use of incentives verycarefully. On one hand you have to say they saw the employee contribution, careabout the contribution, on the other hand you have incentives to avoidexcessive and cause deterioration, becoming inspired to do spontaneous behavioris one thing.
Last year, we have anemployee voluntarily cleaning up unwanted data in a database, put a lot ofspare time, let the database access speed has been greatly enhanced. So, Ishould give him a bonus? Obviously, this is a very valuable and should beencouraged to contribute, but instant cash rewards are not the best way.Because the direct cash incentives would likely lead to motivation to change.And sharing is, we also considered to share a points system, but we're veryconcerned that would metamorphose into an internal drive to an external drive –not the reward, we will not share it? And you set the score, some tasks morecredits, and some tasks less integral, and would lead to "pick"problem.
Incentive balance how canthis thing do? I agree that bonuses and salaries had better go with theperformance appraisal, rather than an event-specific bonuses – would lead tospontaneous behavior modification is on the one hand, on the other hand is verylikely to be fair. For employees doing good rates incentive is as it should be,but not necessarily with money. Coat of arms of the CODE system is a goodinstant incentive--the coat of arms of saw his effort on my behalf, can also bedisplayed for others to see, you can have very good communication withoutadverse interference on the internal drive.
Assessment systems mainly tosolve how to evaluate engineering problems. Basically, we did not set specificquantitative targets, primarily two basic points: one is face to face, face toface with tech lead assessment of every engineer. Another is public, is thatall of the engineer's assessment basis is open to the public. We did anassessment every six months, and 3 days each time 5 or 6 tech lead, we candiscuss and even PK, all kinds of reasons to have an article. Now all of theassessments I have participated throughout the development team now, more than130 people, basically I need everyone, long-term growth in the future, I hopethat the assessment process into the Commission's Forms.
However, I think theassessment of performance evaluation is not the most important part. Evaluationthe most important part of goal-setting and should be checked on a regularbasis, there has been more, such as how to delegate and how to targetselection, and so on. Administrators manage objects not people, but the system:for the team this system, how do you make team recognized objectives andconstraints, how to make the team are capable of forming their own rules, toharmonize these rules with the goal, this is the team managers should focus onthings. For people management, managers should do a maximum incentive level,people further down the assigned things don't fit anymore. Team themselves aslong as there is a goal, it will spontaneously go, you don't need to payattention to the team what to do.
Now market Shang manymanagement of theory, are has respective stressed of points, like KPI or bonus,actually you will found many theory Zhijian is conflict of, because they no putcompany overall into considerations, but only see a a level, a part, on withthis a part derivative out set management theory, looks is has truth, butreally to practice up, which many are just is "looks is beauty" just.
Finally recommends two books:a book is mentioned by me earlier management 3.0, which provides a very goodframework and managers need to consider the dimension. Although the author ofthis book in order to snap "management in complex theory" this"subversive" theme, referring to a lot of classical management theoryalso exist in concept, deliberately using different names or description--fromthis point that the author is a little "trick", but the book is stilla good book. The 3.0 refers to the complexity of the theory of knowledgemanagement can be found in Melanie's book, the complex, the complex, this bookintroduces the basic theory of many complex areas, such as cellular automata,ants, chaos theory, non-Turing machine, bio-information engineering and forunderstanding complex systems has been a big help. Of course, you want to knowmore about complex theories, Hofstadter book is not to be missed.