ThoughtWorks 的软件项目与众不同,直观上就可以得出这样的印象。如果你走近一个ThoughtWorks 参与的项目,不管是测试策略咨询,还是帮助客户提升客户体验,抑或是开发一个软件应用,再或只是协助客户做出一项艰难的决策,只要踏入他们的工作空间,第一眼望过去,就能清楚地看到哪个是ThoughtWorks 的团队。协作、反馈、透明,渗透在我们工作的每一个角落,我们努力将其做到极致。我们把软件开发看做一个由客户、过程、技术和开发者共同组成的生态系统。在ThoughtWorks,没有一个软件项目是单由IT驱动完成的。
我们的软件交付项目,通常会在一个短暂的时间内快速启动。从开始合作的第一天起,我们就会与项目的每一位参与方密切联系,紧密协作。在这段时间内,我们共同定义出系统的概略需求,初步的发布计划,技术架构,潜在的风险、问题及约束。我们因而达成共识,确保彼此面对同一蓝图,打好项目交付的第一仗。
启动之后,我们会尽快开始交付可工作的软件。我们致力于快速交付真正的价值。每1到2周一次迭代,每一个迭代的目标都是可上线的软件系统。在ThoughtWorks,我们使用“故事”——即有开始、过程和结尾,解决某一问题的用户场景。它可以是任何东西,比如完成一个在线支付功能。我们会引导用户创建故事,并对故事排列优先次序。
每个迭代开始时,团队会在一起,讨论决定哪些故事能够为客户或最终用户带来最大价值。这一点是丝毫不容妥协的。对所做的每件事情, ThoughtWorker 都会就其价值去追根就底,去除任何可能的浪费,找出替代方法,并坚持不懈,乐此不疲。
我们的交付非常快。对于要解决的问题,无论是自动化测试、模拟还是系统集成,我们的专家都熟知最新、最合适的工具。现今很多的好用工具,一些是由ThoughtWorker 主导开发的,一些则有我们的积极参与。任何重复性过程,只要能带来价值,我们就将其自动化,将人从这种机械劳动中解放出来,去创造更多价值。测试对我们来说不是一个“阶段”,而是每时每刻都在测试。当最后需要上线时,我们都已经完全准备好了,而不是到最后一刻,才发现原来有一些隐藏的“地雷”。 总结多年的经验教训,ThoughtWorks 建立了一套自己的方法论和最佳实践,融合了敏捷和精益思想,是一套可复用的方体体系。但是,我们知道,没有一种方法能解决所有问题。每一个客户、每一个项目都是不同的,要量体裁衣,根据客户的实际情况采用适宜的方法。说到底,我们真正的驱动力,并不是某一方法,而是为我们的客户创造出高价值的、首屈一指的软件系统(或简单地说,针对某个紧迫问题的正确答案),没有浪费,越快越好,并坚持不懈。