一个好的领导自己最了解自己。特别的是,领导知道自己在公司或者系统的地位,以及自己的优点和缺点。领导人有规律的检查自己的生活和价值观。这种特征最适合Agile,因为反省是Agile最核心的一个原则。 Agile领导的价值观鼓励他们不断的去做出提高。
在传统的waterfall开发模式中,一般公司都有专门的需求分析团队,作为研发和客户之间的桥梁。需求分析团队会有需求规格说明书和需求用例说明书两个标准文档,其中需求用例说明书详细的描述了事件流、页面流、前置条件、后置条件、约束、非功能需求。特点是:花费的时间较长,需求变更导致的影响大(修改测试用例、代码等)
我们在实践中把考量问题的重心放在“底线”上,具体的实施环节不拘泥于Scrum,同时参考了KanBan,Agile modeling,XP等其他模式,但“核心”部分的环节确实是我们经常用到的。
要保证架构的稳定和成功,利用代码对架构进行验证是一种实用的手段。代码验证的核心是测试,特别是单元测试。而测试的基本操作思路是测试优先,它是敏捷方法中非常重要的一项实践,是重构和稳定核模式的重要保障。
软件开发方法学的泰斗,极限编程XP的创始人,敏捷宣言的创始人之一Kent Beck首次来到中国,分享其35年来在架构设计方面的最新总结。
团队设计是敏捷方法论中很重要的一项实践。 我们之所以考虑以团队为单位来考虑架构设计,是因为软件开发本身就不是一件个人的事情,架构设计更是如此。单个人的思维不免有考虑欠妥之处,单个人的学识也不可能覆盖所有的学科。而组织有效的团队却能够弥补这些缺憾。
敏捷方法学承诺的“提升团队交付能力,给客户交付更多商业价值”的确能给项目团队和软件客户带来实实在在的好处。不仅有充足的理由,而且有充足的案例数据来证明这一点。
软件开发人员和项目经理努力地评估敏捷过程对他们的开发环境的适应性。本文指出许多已公布的敏捷过程对不同的项目类型来说存在的局限性,敏捷过程应用在这些项目中可能会存在问题。
敏捷开发有两个很有意思的观点:“尽量晚的做决定”和“尽量快的定义和实现”。前者是为了规避需求变更的风险,后者是为了快速提交。这些对项目的成功非常重要,但这两个观点看起来是矛盾的。决定的晚了,自然没有足够的时间实现,如何快速提交?敏捷中有一个实践,也是我们正在用的,可以很好解决这个问题,那就是将Backlog分解为User Story时尽量落实为松耦合的User Story。
无论开发者如何小心,随着开发的不断进行,系统中缺陷的数量都在不断积累。在传统软件开发方法中,测试往往被推迟到实现之后进行,因而不断积累的Bug不能被及时的发现和修复。