谦逊
最优秀的开发人员都拥有谦逊的美德 , 他们总能认识到自己并不是无所不知的 。事实上 , 无论是开发人员还是客户 , 甚至所有的 project stakeholder , 都有他们自己的专业领域 , 都能够为项目做出贡献 。一个有效的做法是假设参与项目的每一个人都有相同的价值 , 都应该被尊重 。
原则
敏捷建模(AM)定义了一系列的核心原则和辅助原则 , 它们为软件开发项目中的建模实践奠定了基石 。其中一些原则是从XP中借鉴而来 , 在Extreme Programming Explained中有它们的详细描述 。而XP中的一些原则又是源于众所周知的软件工程学 。复用的思想随处可见!基本上 , 本文中对这些原则的阐述主要侧重于它们是如何影响着建模工作;这样 , 对于这些借鉴于XP的原则 , 我们可以从另一个角度来看待 。
核心原则
◆主张简单
当从事开发工作时 , 你应当主张最简单的解决方案就是最好的解决方案 。不要过分构建
敏捷开发
(overbuild)你的软件 。用AM的说法就是 , 如果你现在并不需要这项额外功能 , 那就不要在模型中增加它 。要有这样的勇气:你现在不必要对这个系统进行过分的建模(over-model) , 只要基于现有的需求进行建模 , 日后需求有变更时 , 再来重构这个系统 。尽可能的保持模型的简单 。
◆拥抱变化
需求时刻在变 , 人们对于需求的理解也时刻在变 。项目进行中 , Project stakeholder可能变化 , 会有新人加入 , 也会有旧人离开 。Project stakeholder的观点也可能变化 , 你努力的目标和成功标准也有可能发生变化 。这就意味着随着项目的进行 , 项目环境也在不停的变化 , 因此你的开发方法必须要能够反映这种现实 。
◆你的第二个目标是可持续性
即便你的团队已经把一个能够运转的系统交付给用户 , 你的项目也还可能是失败的--实现项目投资者的需求 , 其中就包括你的系统应该要有足够的鲁棒性(robust ) , 能够适应日后的扩展 。就像Alistair Cockburn常说的 , 当你在进行软件开发的竞赛时 , 你的第二个目标就是准备下一场比赛 。可持续性可能指的是系统的下一个主要发布版 , 或是你正在构建的系统的运转和支持 。要做到这一点 , 你不仅仅要构建高质量的软件 , 还要创建足够的文档和支持材料 , 保证下一场比赛能有效的进行 。你要考虑很多的因素 , 包括你现有的团队是不是还能够参加下一场的比赛 , 下一场比赛的环境 , 下一场比赛对你的组织的重要程度 。简单的说 , 你在开发的时候 , 你要能想象到未来 。
◆递增的变化
和建模相关的一个重要概念是你不用在一开始就准备好一切 。实际上 , 你就算想这么做也不太可能 。而且 , 你不用在模型中包容所有的细节 , 你只要足够的细节就够了 。没有必要试图在一开始就建立一个囊括一切的模型 , 你只要开发一个小的模型 , 或是概要模型 , 打下一个基础 , 然后慢慢的改进模型 , 或是在不在需要的时候丢弃这个模型 。这就是递增的思想 。
◆令投资最大化
你的项目投资者为了开发出满足自己需要的软件 , 需要投入时间、金钱、设备等各种资源 。投资者应该可以选取最好的方式投资 , 也可以要求你的团队不浪费资源 。并且 , 他们还有最后的发言权 , 决定要投入多少的资源 。如果是这些资源是你自己的 , 你希望你的资源被误用吗 。
推荐阅读
- 带小猫去绝育,回来后不理人还猛翻白眼,我到底做错了什么?
- 1光年到底有多远? 1光年等于多少公里
- 有一技之长,到底有多重要? 学什么技术
- 到底什么叫机床? 机床是什么?
- 完全不懂南红,到底该怎买才能不吃亏? 南红是什么
- 取环到底痛不痛
- 姬存希到底好不好 姬存希化妆品怎么样
- 肺结节到底是怎么回事
- 无花果盆栽到底该怎么种植? 无花果怎么种
- 新型飞行机器人像果蝇一样敏捷
