原文發布於: http://www.zhihu.com/question/33197302/answer/56199040

我是 Canonical 台湾台北办公室员工,虽然因为业务关系时常来往中国各省差旅,恐怕无法反映中国地区程序员的体验。

有钱任性的创办人,乐意付钱让人作开源项目,对于信仰自由软件或开放原码的人应该相当有吸引力。差别是你写的每一行代码大概都会是 GPL 或 LGPL 授权,无论是 merge proposal 或是 bug comment 都公布在 Launchpad[1] 供人评阅。有许多機會與技术能力强大的牛人共事,大部分的同事都非常友善、容易合作。在这里身為软件程序员也很容易找到工作、生活的平衡点,反正自愿决定 是否加班。

高度自由,可以弹性的选择工作时间与工作地点。事实上,不少人是在家工作,我自己依照需要独立专注工作的需求,通常一周有一天会在家里工作。在某些团队, 你也能自由选择如何完成你的工作,包含尝试不同的开发语言或技术方案。当然这些自由度与开心程度取决你的直属老板的管理风格与能力。

由于许多人都在家工作,平时透过网路联系,一年半载才有机会见面,这时 team building 就更重要了。早期的时候,每个半年有一次 Ubuntu Developer Submmit,召集全球员工一同旅行到美国或欧洲,进行为期一周的欢乐派对^H^H会议,往往开场的时候得叮咛晚上别饮酒过量,但是会议时间过后肯定可 以在附近的酒吧看到每个团队一边狂欢一边讨论工作。后来由于公司规模太大,召开全员到齐的会议太昂贵。只剩下各个团队举办 Sprint 会议,规模大概两三百人到十几人节奏明快的会议。上回到北京開 Sprint, 结束日前一晚由 Vice President 带著一群老外隊伍,到三里屯酒吧街对饮到清晨三点,隔日开会都醉了。

这个公司有许多有挑战性的工作,也有非常乏味的苦力工作,端视你在那一个事业群、团队下面。每个一段时间会因为创办人兴趣^H^H业务变动,进行组织改 组,当下最大的两个软件工程事业群是 Cloud Dev Ops 与 Ubuntu Engineering and Services。从 Ubuntu Engineering and Services 中的工程团队,又大致分成 Ubuntu Engineering 与 Commercial Engineering。

其中 Ubuntu Engineering 做的是产品项目,像是 Ubuntu Phone, Desktop, Core, Unity8, Mir, Snappy 等等。做产品相对比较具有挑战性,会依据 Mark Shuttleworth 的产品策略或产品经理定下开发蓝图,以 Agile 敏捷开发模式进行产品项目开发 (之前是依据半年的发行周期),每隔两三周都会交付成果。由于代码完全开源,所以开发时候也可能有外界社区加入给予意见。全球的员工透过 CI/Launchpad/IRC/Kanban board 等协作工具合作,需要线上沟通的技能透过文字或代码清楚表达你的思路。除了公司内部小组间的合作,也常常需要回应开源社区的疑问。

至于 Commercial Engineering 则是将产品出货的部门,产品类型多元,可能是 Desktop、Phone 或是神秘的研发计划。其中最枯燥无味的大概就是 Desktop preload project,许多工作已经制式化,日常是不停重复同样的工序,像是验证硬件程序、测试 BIOS、打内核补钉、整 workaround、出貨排期、发行预载版等等。这些工作是确保搭载 Ubuntu 出货的笔记本等硬件功能都可以完美的运行,由于硬件完成的时候因为各种因素会导致驱动无法运作,像是 BIOS 不按照业界规格实践、不同的硬件使用同样的产品代码,导致使用错误的驱动程序、或是新硬件平台时内核支持功能未完善等,这些细节都需要大量人力的调适。这 个部门会适配来自不同合作伙伴的闭源软件,依据授权的不同导致部份代码无法开源。硬件调适与功能验证[7] 是 Canonical 收费的主要服务之一。

即便仍然会有些开发工作,像是做 userspace 的软件问题、LTS 的共用预载版、Firmware Test Suite[2]、Checkbox Job[3]、上述这些重复工序的自动化工具,但是常态仍是重复工序。而空闲程度通常跟出货季节相关,淡季时有些人会兼职当猎头、专研新技术、上网选修课 程、修 Launchpad[1] 上公开的臭虫[8]、翻译物理书籍等等。不过目测接下来一两年的 Snappy Personal Ubuntu 会从 Debian-based 换成 Snappy[4],以及 Unity8 的更换,应该会有一波新的挑战。

Commercial Engineering 也有一些来自不同客户的订制项目,订制项目通常包含大量软件改造与功能适配等工作,相对会多元有趣一些。

目前除了在家工作的员工之外,Canonical 在全球有四个主要办公室 London、Boston、北京、台北,依照事业群或团队的要求,会要求是否进办公室,通常与硬件相关的部门,像是需要实体硬件上测试的 QA 等就必须进办公室工作。各地辦公室的福利不同,北京辦公室就让本地员工来回答吧。由于许多员工都是在家工作,所以有个坑人的规定,是员工必须自备笔记本, 即使在办公室上班,公司仍不配发电脑。

在台北办公室的福利之一是办公室位于 Taipei 101,以下是我的窗景 (四十七楼) –
20150707_184148-01
以上是我的个人体验,你也可以参考一下 Glassdoor 上的员工评价[5],看看其他人的说法。

如果看了这么多之后,你对到 Canonical 工作感兴趣,欢迎查看目前职缺列表[6],在填送求职申请的时候,介绍人一栏写 Rex Tsai. 并私下与我联系,以便告知你应征的技巧或调查职缺内容或向征人团队经理写推荐信。除了帮点小忙外,Canonical 也提供 Referral Bonus Policy,正式通过试用后介绍人会得到 USD 1,000-2,000 的介绍费奖励,依照所需职位的急迫重要性不同,我曾经最高拿过 USD 5,000 的介绍奖金呢!有兴趣请来联系吧。

[1] Launchpad
[2] Firmware Test Suite Kernel/Reference/fwts
[3] Testing/Automation/Checkbox
[4] Ubuntu’s Desktop-Next Switching From .DEBs To Snappy
[5] Canonical Reviews
[6] Canonical | Careers

[7] Certification

[8] BugSquad – Ubuntu Wiki

原文發表於: http://www.weibo.com/p/1001603847877410613709

这问题从 2012年2月前开始, Canonical 聘顾 Jonathan Riddell 全职进行 Kubuntu 项目。2012 后由于无商业客户采用,于是停止官方支持,Jonathan 不愿做新项目,加入新公司 Blue Systems 后继续运营 Kubuntu 社区项目。Canonical 仍将他视为 Kubuntu 项目领导,相对于其他社区版本一视同仁提供相关资源,这包含运算资源等等软件基础建设、差旅补助、活动补助、社区纪念品等。

但是自从一 两年前,Jonathan 对于各种 Canonical 的各种不满加深了沟通上的歧见。像是明文规定的补助项目,他希望可以改善先吃 Pizza 后报帐(2)的程序,Ubuntu 社区联系人明确回应了处理方式与流程。即便这个问题应该到正确的社区列表上讨论,但是他却在无关但是更多开发者关注的 ubuntu-devel 提出,企图引起注意。更别说后来再次否认 Ubuntu 社区联系人提供了餐费补助(3)。

这些重要议题的歧见演化出拒绝合作的行为。各种情绪上不满,让他开始到处找 Canonical 的可疑问题,发布了数个不同的质疑,包含了法律(5)、财务(6)、社区治理办法等等。许多质疑都是相当重要且有建设性,问题是他拒绝接受合作。

从社区委员会通知信中指出

  • 拒绝接受社区理事会研究的结果,虽然他就是当初要求调查的人。
  • 只要不顺心就公开私下讨论邮件。
  • 刻意扭曲对人的说法与立场。
  • 指控其他社区成员不诚实公正。
  • 指控社区理事会冷漠处理。无视整个团队花了许多时间与精力处理他的问题。
  • 在公开或私下沟通中,恶意的对待的社区理事会与 Canonical
  • 以他的领导角色的身份造成社区分歧,而非促成社区合作。

许 多事项都可以在公开的邮件列表看到讨论与他的行为。此处不再列举,研究了这几个月的数个讨论串、长达几百封信的争论。从个人观点看来,这完全符合笔者七年 前写的文章「来乱者去死」(1) 的各种特质。在这种处境下,他已经有建设性无法领导社区。而这个处置是请 Kubuntu 提名另外一位更善于协调沟通的领导,并保留 Jonathan Riddell 其他社区开发者的权限,他仍可提交、评论、继续提出质疑。

这 些离题的纷争困扰社区发者,而非实际的推进项目。当然,最后的处理方式十分令人不快,移除社区抬头的作法也相当伤人。但是目的是 Jonathan 可以继续纠结,但是社区可以不用分心而继续走下去。至于关于 Kubuntu 的社区委员会中的政治与利益问题,可见 Ken Vermette 的分析(7)。

欢迎讨论 Jonathan 的各种指控,包含法律、财务问题等。但是恕我不回应未先爬文的一行仇恨文。授权等问题后续再逐一回应。

利益揭露: 本人任职于 Canonical 担任 Commercial Engineering 部门 Technical Architect.

参考资料

既前一次 blog 發文,分享 2011 十一月參加 UDS-P 心得,轉眼間已經一年,中間也舉辦過 UDS-Q, UDS-R (我只到 Oakland 出席 UDS-Q)。

2013 年開始,Ubuntu Developer Summit 轉為線上形式,只用 Google Hangout 在線上開會,大幅縮減舟車勞頓的辛勞。無論你在世界什麼地方,都可以方便的以 IRC、Youtube 直播、EtherPad、Hangout 加入討論。2013 年已經舉行過兩場 UDS,分別是 UDS-1303UDS-1305

這兩次的會議,主要是聚焦預定在十月十七日發行的 Ubuntu 13.10 (Saucy Salamander) 開發計畫。

稍微整理一下這兩場會議中,我個人較為關心的開發計畫。

Foundations

Clients

Server/Cloud

QA

Community

更多細節請參考以下網址

十一月初的時候,到 Orlando, FL 的 Caribe Royale 出席參加 12.04 的 UDS-P – Ubuntu Developer Summit. Ubuntu 開發者大會。

UDS 是每半年一次的研討會,每次都會邀請各「上游」社群與 Ubuntu 開發團隊聚集在一起,討論下一版的主要開發目標並制定里程。而 UDS-P 的主要議題,自然是下一版 12.04 的 Precise Pangolin (嚴謹的穿山甲),12.04 也是 LTS 版本,支援期間長達五年。也因此 Mark Shuttleworth 也在開場 Keynote 的時候鼓勵與會者,在場的一言一行都會受到世界許多關注,在長達一週的會議中,所做的決定都會影響到許多使用者 (目前 Ubuntu 有超過兩百萬使用者),特別是偏好穩定系統的企業。

UDS 的形式有別於一般「研討會」,會場總共有 24 間會議室 (本次跟 Linaro Connect Q4.11 合辦),除了少數幾個全場演講是以簡報演講方式進行,剩餘大部分的議程是由註冊人帶領,幾位主要的開發者以圓桌方式坐在會議室中央,其他人可以隨意進入旁聽,並隨時插入相關議題或提問。像是 Multi-monitor Support 等熱門議題,太晚進會議室只好待在後面站著囉。

議題內容多元,從社群經營硬體核心基礎軟體雲端系統中國版本,甚至是發想性質的議題,像是讓 Ubuntu 支援手機、平板電腦與智慧電視裝置 等等。每個議題時間大約一個小時,各個來自世界各地的開發者,在大量咖啡因的作用下,進行節奏迅速的爭辯討論。由於並非每位開發者都可以現場出席會議,遠端開發者也可以透過即時語音廣播 (icecast) 與 IRC 加入討論。

costume party_831

一個小時的會議後,所有的討論會整理成藍圖 (blueprints),這些藍圖就是本次發行階段所需要開發的目標項目與負責人。在 UDS-P 中,有超過三百份藍圖。這些藍圖完全透明開放給所有人參考,也歡迎任何人介入制定。

許多開發者,即便是 Canonical 員工,有超過 70% 都是在家中工作,UDS 是難得的難得可以相互見面的機會。各個上游軟體專案的開發者,也會出席這次的會議,像是 Debian Project Leader Stefano ZacchiroliFreeRDP Marc-André Moreau 等等。他們增強了 Ubuntu 與上游專案進一步的合作關係。

令人印象深刻的是,整場會議中許多強者對於其他人的開放信任態度,記得在週四晚上的 Keysigning Party,我身旁一位 “神級” Debian Developer,誠懇對每一位交換簽章的人,說「沒問題,我相信你」,也許是因為大部份的人都抱持一樣的態度,使會議進行相當順暢而且充滿生產力的歡樂氣氛。

costume party_981

接下來還有力氣的話,我會再分享一些議程資訊。

照片: http://www.flickr.com/photos/37955218@N08/sets/72157627962230661/
訪問: http://akgraner.com/?p=1124
錄影: http://www.youtube.com/user/ubuntudevelopers#p/u

Ubuntu UDS P Orlando – Interview with Mark Shuttleworth

利益揭露: 筆者為 Canonical 員工。