软件开发的最终形态是什么?简单来说就是能够自动化的把想法变成软件成品。
那么软件开发的现状又是什么?现状是从想法到软件成品的过程需要产品、开发、测试等各方面人员的密切配合,花费大量时间沟通、编码、测试,才能一点一点变成软件成品。
软件开发过程总在不断接近理想状态的,随着行为驱动开发(BDD)工具的出现了,它又近了一小步。
BDD 最大的意义在于:打破了产品、开发和测试之间的壁垒,使软件自动化产出的过程前置。
现实是复杂的,软件开发毕竟是一个很复杂的过程,因此在实施 BDD 的时候,就需要考虑和回答很多现实问题。
1.自己是否真的了解 BDD
对于那些流行的,但是自己并不真正了解的技术,还是不要轻易的实施才好,不然结果可能适得其反。想要实施 BDD 我们还需要了解很多其他相关的概念、技术和工具。例如:敏捷开发、TDD、ATDD、实例化需求、自动化测试、持续集成、Cucumber、Gherkin等等。此外还有各端特定的 BDD 工具的选用以及怎样和现有开发环境相结合。
2.自己在技术上是否验证过 BDD
如果真的想实施 BDD ,那么结合现有的技术栈,进行深入的 BDD 验证是优先要完成的工作。这既是一个加深对 BDD 理解的过程,也是一个了解自己是否真的有能力和信心实施 BDD 的过程。
3.实施 BDD 的现实成本、风险和收益
实施 BDD 不可能绕过现实的成本和收益的衡量。从各种介绍 BDD 的文章中很容易知道 BDD 能带来的好处,但是成本和风险的计算更多的需要考虑自身的实际情况。例如:团队的学习成本、团队的适应期成本、团队成员工作分配不平衡风险、团队成员的不合作风险、形式主义风险、失败的风险。
4.BDD 的实施方案和具体步骤是怎样的
实施方案和具体步骤是指导 BDD 顺利实施的必要文档。其内容是实施的时间、切入点、范围、程度、沟通方式、技术架构等一整套方便实际操作的文档。在方案编写过程中可以考虑一些通用原则,例如,统一思想、循序渐进、由易到难、由小到大、培养习惯等。
5.干系人的态度
在实施 BDD 的整个过程中都需要考虑相关人员的态度变化,使整个实施的过程保持一个良好的氛围,不然就算实施了 BDD ,也可能让它的实际收益大打折扣,甚至完全失败。