瘦人说

ThoughtWorks西安前端那些事

刚加入ThoughtWorks,就来到了西安办公室,这是个充满活力的环境,在西安办公室那段时间对我意义非常大,不仅我的前端技能提升了不少,还让我认识到在这样的环境里面工作是那么的舒服,开心。

说说我们的目标

前端工程师在ThoughtWorks还是个新鲜职位,但是热度很高,我想在整个行业也是如此。在ThoughtWorks工作是没有特别明确的职位划分的,前端工程师在公司是和非前端开发在一起工作,朝夕相处,结对编程,也不会只专注于做前端开发,更多的作用是为了把前端技能分享给大家,作为靠谱的前端工程师需要帮助其他开发,提供一些最佳实践,让他们成长得更快。另一方面,公司的技术栈更新是非常迅速的,不在乎是否是前端技能。开发之间都能互相学习到更新更好的技术,我在西安那段时间学到了很多RubyOnRails相关技能。

那么我们的目标是什么?作为知识型工作者,我们的目标是通过知识分享消除知识壁垒,通过实践快速的验证和提升自己,从而应对变化,变化是指技术栈更新,行业变化等等。所以在开发方面不需要很严格的工作职责划分,尽量做到所有人做所有事。有句话最近经常听说,就是“招聘一个靠谱的前端工程师是比较难的”。在ThoughtWorks,除了招聘,我们可以通过这种方式培养公司内部的人才,这样不是更可靠么。

在分享中学习

前端知识分享

技术分享在西安办公室是非常平常的一件事,我和另一个前端工程师商量着给大家做一个长期的前端知识分享,他负责CSS部分,我负责JavaScript部分。通过准备PPT,才发现自以为了解的透彻前端知识在分享给大家的时候,往往发现了细节之处只知其表面而不知其原理,懂怎么使用而从没想过为什么需要这么设计。

我给大家准备的连续性JavaScript分享的主题是《Dive Into JavaScript》,第一次分享的题目就是关于原型继承,选这个比较偏难的题目的原因就是想大家先啃“硬骨头”,在今后的开发遇到问题时能从原型继承方面思考下。为了不误人子弟,我准备PPT花了很长时间,每一个细节都得弄明白,还得想一个让大家觉得有趣的方式,怎么才能让分享通俗易懂,这种没有完美解决方案的最伤脑筋。给大家分享之后发现大家都听的云里雾里,虽然都觉得一知半解,但我发现大家都能从原型继承上思考了,我的目标也就达到了。这次分享发生了一个小插曲,有个实习生在我分享完之后直接给我说,我发现你讲错了,我当时一惊,马上和他讨论清楚,他弄明白之后才放心的走开,事后发现问问题或产生怀疑的人学到的东西更多,也更扎实。像这位同事一样,思考之后的结果印象会更深。作为分享的人,在和他讨论甚至争论中,会发现更多细节,说服别人理解你的理论是这么的困难,又会在得出“正确”结论之后无论你是否对错都会松口气,说句原来就是这么回事,终于搞懂了。

在西安办公室做分享,一般每次都会有10人左右来参加,时间长了,总是那几个人来,随着大家技术的提升,前端支持分享也变得更注重细节,更偏向动手实践,相互作用下,参与者学习得就越快,分享者也能抽出更多时间去专研更高级的领域。除了上文提到的原型继承分享,我做的分享还有《DOM和BOM》、《脚本和样式》、《Why Not Using Async Like This Way?》、《渐进增强在Webapp开发中的应用》、《Inception和Ideation》等等;在CSS方面我的前端同事分享了《盒模型》、《CSS布局 - 圣杯布局》、《Web颜色搭配》等等。

项目经验总结

在ThoughtWorks,你会发不仅仅是前端工程师来做前端技术分享。我的另一位同事是一位Geek,ROR高手,在他们组的Web项目中使用到Backbone前端开发框架,这是西安办公室前端技术最前卫的一个项目。他在项目做完一个阶段的时侯给大家做了一次Backbone前端MVC框架的使用的技术分享,说来羞愧,他分享的时候我还在对前端MVC框架属于刚研究阶段。在分享中,他不仅给大家介绍了Backbone的优势劣势,多种最佳实践,还讲到如何进行Backbone的测试,这个在其他公司的技术分享时是很少提到的,他们的项目中,前端代码的测试覆盖率一直保持100%,这是非常令人惊讶的,很多互联网公司都有可能做不到这点。

UX小组

UX和前端开发是一家么?我觉得是的。很多公司都会说我们有专业web设计人员,有优秀的前端开发工程师,如果把职位划分的很清楚只会加大沟通成本,现在的软件开发变得越来越容易,软件的好与坏不停留在功能是否完善而是集中在用户体验好不好,而好的用户体验来自多次的用户使用软件的反馈,为了让软件快速适用于最终用户,可用的软件的迭代速度必须加快,对UX设计人员来说,除了要求快速出设计和交互界面之外,在ThoughtWorks还会要求UX能做些前端开发的工作,集中在HTML+CSS上。如果是前端工程师向前再走一步提升多一些UX设计能力,UX设计师能退后一步实践下前端开发怎么工作,既加强的交流也使得从设计图到实现变得很平滑。试想一下,一个懂前端开发的UX或一个略懂UX的前端开发是多么的强大,在敏捷团队里变得无比给力。

为了实现这一目标,在西安办公室成立了UX小组,有纯美工、前端工程师、用户体验设计师、开发工程师等,几乎网罗了各种角色。我们创建了知识分享墙,每周会追踪几次知识分享,也会安排下一周会有哪些人来做知识分享,美工可以教程序员画画啊,体验设计师带大家一起做主要用户分析啊,开发分享前端开发经验啊,一切的一切都十分有趣,并且能学到知识。同时,墙上还有一个许愿区域,就是任何人都可以在这个区域上写你想让UX小组的成员分享什么样的知识,这样才能鼓励更多的人一起来参与活动,因为UX组中一个同事来自香港,所以有人写上了“想学粤语”,结果参加那次分享的人特别多。

除了分享墙之外,我们还组织了每个星期一次的酷站分享,平时大家都收集几个觉得设计得比较好的网站,收藏在pinterest里,然后在酷站分享会上给别人讲解为什么你会喜欢这个网站的设计,缺点有哪些,同时呢,体验设计师会给出他对这个网站设计方面的专业看法,开发的也会说说实现这样设计的网站的难度有多大,需要注意的地方有哪些,而很多其他角色就说说看用户角度出发他的看法是什么,总之就是通过大家的讨论,提升大家的品味,也看看现在网站的设计趋势是什么。个人感觉非常有意义。

现在西安UX小组办得非常成功,打算也在其他办公室也推广一下。

不难看出,在ThoughtWorks有很多人都在进行知识分享,其中前端技术分享渐渐变得越来越多,而且它并不是前端工程师的专利和职责,大家都在通过分享帮助到更多有兴趣的人,提升自己的演讲能力和专业水平,从分享中学习。

写在最后

通过分享能让人快速成长,ThoughtWorks的分享活动也不局限于办公室之内,不限制在前端技术或者是设计。虽说在前端领域,ThoughtWorks西安还处于中级发展阶段,但它的成长的非常迅速,希望有更多人加入到我们的分享行列中来。

Comments

Proudly published with Hexo