Principles behind the Agile Manifesto
Working software is the primary measure of progress.(可工作的软件是进度的首要度量标准)
如何度量软件开发项目的进度呢?传统的方法是将一个项目分解成若干个任务,并跟踪这些任务的完成百分比,以此来衡量进度。但是这可能会产生很大的误导,因为通常任务列表不是完整的,并且完成水平需要一些主观判断,这很难做出,且往往不准确。
测试是这方面的另一个因素,在过去,整个开发过程和测试过程可能是连续的。结果是,即使软件的开发看起来是完整的,但在测试和验证它是完整的之前,您不知道它到底有多完整。敏捷方法强调在开发软件时更同时地进行测试。敏捷中有一个概念叫做“完成的定义”,你会经常听到。团队应该清楚地定义“完成”的含义,这通常意味着软件已经过测试并被用户接受。在其他环境中,done的定义可能会更加模糊,并受到解释的影响。如果您没有明确定义“完成”,则任何对完成百分比的估计都可能是可疑的。
更准确的进度度量方法是将一个软件项目分解为多个功能块,其中每个软件块都有一个明确的“完成”定义,并且可以向用户演示以获得反馈和接受且能为用户带来价值。好的测试脚本和测试数据对于支持此过程至关重要。这些测试脚本也可以用于(回归)测试自动化。
Agile processes promote sustainable development. The sponsors, developers, and users should be able
to maintain a constant pace indefinitely. (敏捷过程倡导可持续开发。
责任人、开发人员和用户要能够共同维持其步调稳定延续)
可持续发展意味着需要在很长的一段时间内不断开发软件功能,团队在整个开发过程中投入的时间和精力应该保持保持一个相对稳定的状态。当节奏变化过大,团队压力就会提升,会出现挫败感,从而降低正确执行工作的准确性。当团队成员压力不大时,他们能有时间去提出一些创新的解决方案,并对其他团队成员或项目或项目环境中发生的情况保持警觉。此外,必须给予团队空闲和放松的时间,确保团队成员不会因疲劳感影响质量、创造力和专注力。要执行敏捷项目,你必须确保项目中的所有利益相关者步调始终保持一致,并且他们能够参与并吸收项目中的可交付成果。不要以破坏创造力和机敏性的方式向团队成员施加压力。
Continuous attention to technical excellence and good design enhances agility.(坚持不懈地追求技术卓越和良好设计,敏捷能力由此增强。)
好的优秀技术和好的设计必须使编码容易,并使应用程序模块化,更加灵活和适应性强。通过使用正确的框架和支持工具,您可以比以往更快地交付更高质量的软件。实际上,这意味着将框架用于常见任务,例如授权,持久性和导航,以及用于构建,发布和部署应用程序的工具。实际上,所有劳动密集型且需要大量专注和关注的任务都可能通过框架和工具来实现。
选择合适的技术,使您的工作更加轻松有趣。重复作业可以并且必须是自动化的。这样可以确保每次正确地完成任务,并降低成本。将这些框架与持续构建环境结合使用,可以最大程度地提高开发环境的敏捷性。
好的设计和出色的技术可以促进您的开发环境的敏捷性。确保选择正确的技术和正确的设计,而不是最复杂和最前沿的产品。这意味着您做出的选择必须符合以下原则:可理解且可行。您做出的选择必须支持业务价值,而不仅仅是技术专家的好奇心。有了正确的设计和正确的技术,您就能以更高的质量快速开发和交付产品。
参考资料
https://agilemanifesto.org/principles.html