成为金牌咨询师的五个秘诀

在ThoughtWorks做了一年的咨询师之后,我看到很多同事在项目中脱颖而出,而那似乎和他们的技术背景以及在项目中所花的时间无关。我仰慕这些人,并试图去找出让他们表现出众的“秘方”。通过和他们交流,以及参加培训,我找到了5个让自己在项目中表现出色的秘诀,希望这些对你同样有用!

如何实现假设驱动开发

这里我向大家介绍一种假设驱动的软件开发理论,它是我们在思考新的想法、产品和服务,甚至组织变革的基础上实践而来的。在软件开发中通过一系列不停的实验去测试我们的想法,然后找到各种理想结果,当然这个过程是迭代的,直到得到一个理想的结果或是证明当初的想法是不可行为止。

避免成为优秀程序员

最近读到Mark Pearl博客里一篇名为《Programming, a Subset of Writing》的文章,其中的观点让我十分推崇,尤其是下面这段:

优秀程序员和普通程序员最大的区别在于,优秀的程序员会使用整洁、易于理解的方式进行编程,任何不必要的复杂代码均不会出现。和我工作过的那些真正优秀的程序员总是尊学这样的编程步骤:写代码、重构、进一步重构。

就像日常生活技能一样,提高自己的办法唯有不断练习, 但是除了重构和进一步重构之外,你还能做些什么?

别着急提方案,先想好问题在哪

作为ThoughtWorks的一名用户体验设计师,我做过很多不同的产品。我常常发现项目组早已列出了一系列他们想要实现的功能,而在工作中,他们只是在寻找一个新办法去改进设计流程,让其变得更有效。通常我会从他们列出的功能中找出一个,然后问他们一个简单的问题:“这个功能为用户解决了什么问题?”,这个问题往往就能把他们难住。

明信片上的互联网

当从安全角度来审视计算机之间的通信时,你会发现现在的互联网在这一方面并没有什么太多的东西。在安全通信领域传播最为最广泛的技术叫作“传输层安全”协议(TLS,之前也曾被称作“安全套接字层”协议——SSL)。然而,这项技术并没有像预期那样广泛地部署使用,因为其配置过于复杂。但是,即使能够正确地配置,TLS还是存在着很多问题,以至于从长远角度来看也并不是十分合适的。而另一个在传输安全中需要提及的,就是怎样用一种安全的方式去查找名字。DNS(“域名服务”)是进行名字查找的协议,但是它也同样存在着许多的问题。

打造你自己的技术雷达

我们缺少的是一个技术雷达:一份评估既有技术与新生技术的风险和利益的动态文档。我相信你会需要两个雷达:一个自己的雷达,用来帮助指导你的事业决策;另一个是公司的雷达,帮助你们在做购买决定和选择技术方向时保持理智。我会讨论如何创建这两种雷达,但是首先,我想先谈谈为什么我会产生这样的想法。

醒醒吧少年,只用Cucumber不能帮助你BDD

在Ruby社区中,测试和BDD一直是一个被热议的话题,不管是单元测试,集成测试和功能测试,你总能在Ruby社区中找到能帮助你的工具,Cucumber就是被广泛使用的工具之一。许多团队选择Cucumber的原因是“团队要BDD”,也就是行为驱动开发(Behavior Driven Development),难道用了Cucumber之后团队就真的BDD了么?

我们真的缺前端工程师吗?

这两天在好几个地方都看到了一篇关于为什么整个互联网行业都缺前端工程师?的文章,文章本身是去年的,中心思想是:其实我们并不缺前端工程师,我们缺的是优秀的前端工程师。我还是比较同意作者观点的,不过略有意犹未尽的感觉。于是我结合自己的经验,也来聊一下这个话题:我们真的缺前端工程师吗?

敏捷实践之Desk Check

在推广敏捷的过程中,虽然ThoughtWorks有过很多应用的经验,但是当我们把一个实践介绍给其他人,总会遇到为什么要这样做的问题。在带领大家做之前,口头上的介绍和说服工作是必不可少的,毕竟这是给团队成员打消疑虑,树立信心,建立目标的一个过程。做到团队的每个成员都理解了这个实践的意义,对实践的执行就能很容易的达到要求。否则,团队执行的人很难心悦诚服的执行,结果就是这一环节会很快被大家无视,慢慢消亡了。

你会给别人提反馈吗?

我们必须承认人对事物的认知是不同的,它跟每个人的经历,教育背景,工作经验,家庭,所出环境都是有影响的,因此对于同样内容的理解也是因人而异,值得注意的是,尽管当我们为对方基于某个事件而提出反馈时带有个人解读,但是具有感情色彩的判断是不建议的,尤其是负面的感情,因为它对反馈的效果大打折扣,甚至出现负面效果。这就要求提供反馈的人实事求是,反馈的内容是对方的行为,不要增加任何的主观判断。