ThoughtWorks招聘咨询工程师
September 20th, 2011
ThoughtWorks迫切需要既能写程序又能见客户的咨询工程师。如果你认为自己适合,请给我邮件: JXiong at ThoughtWorks dot COM 。我期待和你一起工作。
这是一个怎样的职位:- 绝对有挑战性。我们服务各个行业最领先的企业,直接面对客户提供咨询,为他们解决各种(技术和非技术的)难题。
- 充满成就感。我们把世界最先进的软件开发技术和方法引入中国。我们不仅帮助客户,而且提升整个中国软件业的水平。
- 快速成长。背靠ThoughtWorks全球的智力资源(例如Martin Fowler和Jim Highsmith),跟一群国内技术社区的领导者一起工作,这是国内罕有的技术人员成长的优秀平台。
- 合格的编程技能:有丰富的开发真实应用程序的经验(语言不限,Java为佳)
- 对企业应用的生产环境有所了解,有Unix生产环境下工作的经验为佳
- 看重软件卓越,从未停止追求把程序写得更好、让自己变得更强
- 敬业,勤奋努力,有强烈的责任心,重视对客户、对团队的承诺
- 大型企业系统的设计和架构经验
- 良好的沟通、演讲能力和直接面对客户工作的经验
- 对敏捷软件开发方法有所了解
- 社会责任感:追求用自己的工作让世界变得更美好
工作地点:成都/西安,但是出差会很多,可能80%时间出差。
百年老店的基因
July 8th, 2011
(商业读书会第七期的题目又是两篇: IBM’s centenary: The test of time | The Economist 和 IBM- 1100100 and counting | The Economist )
老师说:“小心哦,第二篇很长的~”其实第二篇无非是《 谁说大象不能跳舞 》的缩写,读起来很快。第一篇里讲到成为百年老店需要的企业基因,并且对几家现在的热门企业做了比对,颇有点意思。

尤其是在IT这种日新月异的行业里,要想做一家长存的企业,就不能让自己绑定在某个产品、某个平台、某个技术,而是“致力于一项超越任何具体产品或技术的事业”。把这作为百年老店的基因,作者认为苹果、亚马逊和Facebook看起来有百年老店的潜质;戴尔、思科和微软的长存能力很成问题,尽管它们现在很强大;Oracle正在努力建立一个超越性的使命,而Google尽管从来就有超越性的使命但从来就太过依赖单一产品(搜索和广告),所以这两家的长存性还是个问号。
联想到今天开始读的 德鲁克 讲:定义一家企业的,不是企业生产和销售什么,而是客户对企业需要什么。是以,关注自己生产和销售什么的企业,只能在一时恰好赶上客户的需要;关注客户需要什么的企业,才能基业常青。即便是大热门的通信行业,也有走向 日用品化 的一天,而且这一天好像已经不远了——核心网和接入网会变成日用品甚至被 收归国有 ,习惯了用技术语言描述产品的厂商学着笨拙地 面对消费者市场 ,这都是一年中亲眼所见。
德鲁克还讲,企业只有两个基本职能:市场营销和创新。德鲁克还讲,只有管理才使得知识和知识分子得以发挥他们的作用。那么我相信,这种作用主要不是体现在市场营销上,而是体现在创新上。上个周末老师讲了企业发展的波浪:现有业务上升的时候,就是创新的最佳时机;而现有业务进入平稳期的时候,创新的压力会变得巨大。
(德鲁克还讲,管理的三件根本任务:经济绩效;员工的成就;社会责任。介个~不知道松哥和胡凯看了有何感想?)
对于企业如此,对于个人亦如此:绑定于某种特定的技能、特定的行业,放在长期来看都有日用品化的趋势。致力于一件超越任何“我能做什么”的事业,把眼下的利益、能力的成长和对社会的贡献同样重视,保持学习并总在顺境时寻找新的增长点,这也是让自己变得强大的基因吧。
不知不觉写到深夜,想起了 信长公唱起敦盛 :
人間五十年、下天のうちを比ぶれば夢幻の如くなり。一度生を享け、滅せぬもののあるべきか。
往积极的方面想,既然“岂有长生不灭者”,怎可不抓紧时间尝试直到发现自己的极限呢?
职业规划中的“我想要”和“我需要”
July 7th, 2011
最近听到一些年轻的同事纷纷想转职,想从程序员转做业务分析师。尤其是年轻的ZY也有这样想法,让我感到有点触动。很多时候,尤其是年轻的时候,我们分不清“我想要”和“我需要”。在一句“我想要做BA”的背后,需要的是什么?

人际交往能力
据说程序员是一个死板孤僻有人际交往障碍的族群。因为不愿成为头上长草脚下生根的孤老程序员,所以我想要做BA。
但是,没有人阻止你在写好程序的同时练习人际交往(尤其是在ThoughtWorks这样的公司)。实际上,现代商业软件开发根本没有什么火箭科学,作为一个程序员大部分时间本身就是在进行人际交往。你能把设计思路讲得明明白白让队友信服吗?你能列出各种实现选择的优劣说服客户不要做愚蠢的选择吗?你能面对五十个同事做一次落落大方的技术演讲让大家欢声笑语同时学到知识吗?练习人际交往的机会俯拾皆是,不要等到自己被冠以“业务分析师”的名头才把脑袋从屏幕前移开。
对商业的了解
每天给客户写的代码为什么值那么多钱?为了理解客户的商业运作,所以我想要做BA。
同样,没有人阻止你去了解。尤其是这个网络时代,让学习这些知识变得前所未有的简单。你只要订阅 Economist 和 McKinsey Quarterly 的RSS,每天花两个小时读完所有的更新(并且用 1.HourFor.Me 来监督自己),很快你就会发现:你能跟上各种“高端的”商业对话。这些文章里会有不时提到的引用书目,到豆瓣加上这些书,每周一本,一年读完50本,你对商业的了解会超过你的客户——他所知道的大多只与某个行业相关,而你学到的将是全景。
请注意,我说的是简单,不是容易。每天坚持两个小时做一件事、每周读完一本书,这永远不会容易。戴上“业务分析师”的名头也不会让这件事变得容易。
交互设计能力
总是写这些枯燥的代码太没意思了。为了 像小熊那样 画出酷炫的手绘,所以我想要做BA。
买 这本书 ,开始练习素描。每天一小时,两个月以后你就能画得 有模有样 。然后订阅 Smashing Magazine 的RSS,到网上找手绘和简笔画素材,不断练习。同样,你并不需要一个名头、一个工作才能学习这些。
管理能力
我不想总是跟着别人屁股后面,我想别人都听我的,所以我想要做PM(为此先做BA,因为据说BA更容易变成PM)。
记得在决定加入ThoughtWorks的那一天,老师对我说:“leadership”和“management”是不同的东西。要别人跟从你,你需要的是leadership,而不是一个manager的头衔。所以还是这句话:不要等待某个头衔,现在就开始练习你的leadership。想想你的代码会被别人如何使用,想想你开发的软件会被如何部署,在所有人都妥协的时候鼓励团队坚持写测试和重构,这些都是leadership的表现形式。郑大大 展现leadership的方式很简单:“在我的项目里不容忍烂代码。”很简单,但一点也不容易,也许你可以问问郑大大是怎么做的。
更少的压力/更多的钱
为什么每次出bug都要我来修?为什么我的薪水不够买房?我要做PM,我要出人头地,我要有钱⋯⋯
你知道我会说什么。去变得更强,然后来踢我的屁股吧。
ThoughtWorks的真实故事
也许在如今的某些大团队中,“多能工化”已经成了一个传说。在我的第一个ThoughtWorks项目中,Perryn Fowler 既是架构师又是tech lead还是PM有时兼任BA并且每天写程序。当他满脸怒气地对我说“我的项目里不允许有没测试的代码”时,我就认定:ThoughtWorks的leadership就应该是这样的——他让你感到你应该听他的,并且如果你不听,他会一脚踢在你屁股上然后自己搞定所有事。
郑大大现在的项目有同样的气味。LY作为BA+PM进入,我从第一天开始就告诉他:你要写代码,你要了解所有事,如果出了问题你就顶上。ZQ作为QA进入,每天参加code review,并且学着写Chef脚本。从项目管理的角度,我希望所有人能做所有事这样项目就不会有瓶颈;从人的角度,我不想看到“ThoughtWorks PM”、“ThoughtWorks QA”,我想看到一个个Perryn的复刻,随时准备踢别人屁股并且搞定任何事。
然而,关键在于⋯⋯
正如我一再强调的,所有这些能力,都不需要得到一个专门的职位或者头衔才能开始获得。因为它们有一个共同的特点:它们都基于人类语言。
软件开发从根本上来说,是将人类可理解的连续的物理世界,以图灵机可计算的方式建模为离散的数字模型的过程。而整个软件行业的各种行为中,只有编程(即:以图灵机可计算的方式建模)这一行为不是基于人类语言,而是基于机器语言的。换句话说,即使不戴BA/PM的帽子,你永远可以和那些只懂人类语言的麻瓜们练习其他能力;一旦你脱下了程序员这顶帽子,你将没有机会练习严肃的编程。这一根本性的分野决定了一个事实:程序员可以转向其他职位,而其他职位无法转成程序员——所有post-technical的人,无论多么努力保持自己的技术水平,最多也只能停留在转职之前的水准。
因为这是一条不归路,所以在说“我想要做⋯⋯”之前请想清楚:离开编程的键盘,你所追求的可能只是一种很简单(尽管不容易)就能学到的能力;但与机器对话——整个软件开发的根本——的能力,当你发现自己需要的时候,就再也找不回来了。
Leadership Over Management
March 5th, 2010

灰色区域是普通员工,蓝色区域是被尊敬的员工,绿色区域是优秀的管理者,红色区域是危险的。
所以,得不到管理职位没什么好着急的,领导力更要紧。




