测试驱动开发(TDD)实践

不知道大家有没听过“测试先行的开发”这一说法,作为一种开发实践,在过去进行开发时,一般是先开发用户界面或者是类,然后再在此基础上编写测试。但在TDD中,首先是进行测试用例的编写,然后再进行类或者用户界面的开发。由于要先开发测试用例,那么开发人员就必须清楚测试的目的,所测功能模块的业务逻辑以及需要测试的场景。这样TDD确保了项目的代码与所需的业务是匹配的,并且在日后的开发工作中也能确保之前所做的功能的可测试性。
 
很多同学问TDD是使用那种编程语言,或者是某种技术,这里需要明确的是,TDD并不是某种技术,而是一种项目实践。
 
二.传统开发模式与TDD开发模式
 

Software Development Project Management: The importance of the role of project leader

接到这个命题作文已经有一段时间了,一直没有写,主要原因是里面有两个东西影响,一个是标题里的Management,大部分人第一感觉Management就是要“管”人,就是 “权”,另外一个词是Leader, Leader经常被人翻译为“项目经理”,也就是“官”。所以在我写文章之前一定要把这两个词解释一些,因为这两个东西一直是我作为负责人要去弱化的东西。同时,我需要解释一下这两个英文词我的理解,”Management” 就是管理,Leader就是就是引导,就是榜样。

第一次做“敏捷教练”

一位软件产品公司朋友找我,想在公司内部推动敏捷,让我帮忙做研发团队敏捷教练。这是四、五个月前的事情,不久前,团队终于在Scrum模式下完成了一款产品升级,尽管跌跌撞撞,但还是坚持下来了。我在过程中只参加了两次回顾会。
 
第二款产品比第一款困难得多,无论技术难度还是业务复杂度都不在一个量级上,团队里有一半成员经验丰富,另一半几乎是新手。经过商量,他们决定让经验丰富的成员带新手,将项目分成几个大的模块,每个人带一个新手领一个模块。PO和架构师都认为这样既能保证开发进度,也能保证质量,只是将八个人变成四个人的敏捷团队。是这样吗?
 

数据仓库浅析

数据仓库基础

数据仓库和传统的数据库不同,它是为各行各业的决策制定过程提供支持的所有类型数据的战略集合。它的原始数据一般来源于传统的数据库系统,也叫业务系统,将获得的数据源汇集起来,根据项目需求,经过数据仓库建模,ETL(数据的抽取,转换和加载),将处理后的数据存储于数据仓库中,最后通过前台展现为领导的决策制定提供数据支持。

因为数据仓库的项目主要是跟数据打交道,比较枯燥也很繁琐,我在项目中经常听到一些同事抱怨做数据仓库类型的项目太累,天天扎在数据堆里,无趣急了。诚然,不过我认为数据固然枯燥,但是当你发现最后你ETL的结果或者报表上展现的数据能跟客户方统计出来的数据(或者是客户期盼的结果)能对上时,当你做出来的一张报表能为客户节省每个月一周时间时,当整个数据仓库项目能够给客户带来很大的商业价值时,我想你应该会有很强的成就感,这也正是数据仓库项目所追求的目标。

论“敏捷”之惑

“敏捷”,不仅仅是一种方法论,更关乎思维方式或做事的态度与哲理。

盛安德科技曾是推行“敏捷”理念的先驱者,如今已不再强调这个理念本身了,因为我们发现,多数人只是将其理解为一种工作流程,行事之道却早已背道而驰了。而我们的初衷,是希望团队中的每个人都可以在此理念指导下更加独立地工作,激发自己的创造力。

Scrum 的流行加深了人们对于“敏捷”的误解。因为 Scrum 很容易理解,对于习惯了“瀑布流”软件开发流程的人们来说尤其如此,所以很多人将 Scrum 流程等同于“敏捷”,认为“敏捷”是与“瀑布流”相对而言的一种开发流程而已。可事实上,“敏捷”本身与流程无关,而 Scrum 更像是一种流程。请注意,马丁×福勒(Martin Fowler, ThoughtWorks 公司的 CSO),敏捷开发方法的创始人之一 ,可不认为 Scrum 就是“敏捷”。

Pages