敏捷方法将项目分解为多个阶段,在团队之间分配工作量。我们优先考虑每个阶段的持续改进,而不是完全在部署阶段进行更改。在每日scrum会议期间,团队成员不断通报进度。几种典型的敏捷开发方法包括:Scrum、极限编程(XP)、功能驱动开发(FDD)、自适应软件开发(ADD)、Crystal、动态系统开发(DSD)和精益软件开发等。根据要开发的产品/服务的类型来选择方法。所有这些敏捷方法遵循一套专门的原则。本文着重介绍敏捷方法的五大原则。
1.对挑战和变化持开放态度
敏捷方法侧重于对软件开发所有阶段的变化迅即响应。我们的团队必须了解项目在任何开发阶段的情况。敏捷方法将任务和可交付成果分步迭代(iteration),以获得这种高度清晰性。迭代须在较短的时间内完成,通常是一到四周。确保时间表与分配给项目的总时间一致。
JIRA是一种能够创建快速过滤器以帮助改进代码的工具。JIRA通过报告功能和自定义工作流程,让用户可以清晰地洞察敏捷流程。我们可以使用该工具来构建、测试和发布软件。
2.拥抱用户意见
由于敏捷软件开发方法采用倡导交流和响应的方法,客户放在优先位置。每次迭代后应经常收集客户的反馈意见,在此基础上改进产品。从用户的角度来思考而不是预先假设,可帮助我们开发更好的产品。客户提出的一项新功能可能会成为贵公司产品的突破点!
Sprints by Zoho是一款有助于该过程的工具。它使团队能够轻松地评论代码更改。我们还可以使用该工具收集产品反馈,并在开发的早期阶段进行更改。
3.促进与可操作软件的实时交互,以获得更好的可视化和反馈
我们需要创建可用可操作的软件,而不是理论表示。文档确实在软件开发中发挥了作用,但它仅用于记录。如果您想从客户和利益相关者处获得洞察力,应创建产品的小型工件。我们可能会质疑某个方面,表明需要文档来支持我们的主张,并向客户给予保证。为了证明有必要将您在文档中提出的想法得到实施,没有比提供可操作产品更好的方法了!用户与软件进行实时交互时,用户的理解和感知会发生变化。它提供了改进的余地,并确保我们与客户步调一致。比如说,您声明用户注册时输入弱密码时,您使用JavaScript在网页上触发警告。该功能在原型呈现中时,可以帮助客户直观地显示,并支持我们的主张。记住,文档应简短准确。
我们可以使用AdobeXd、InVision、Webflow和Framer等工具,在进行后端编程之前创建原型。
4.有效沟通,以加快软件开发
向团队成员宣传有效的沟通做法可能比采用高端技术堆栈更有利于项目。敏捷软件开发方法通过每日Scrum会议和结对编程等原则,确保团队成员积极参与工作。
每日Scrum会议用于从每个团队成员的角度通报项目状态。它帮助我们为团队成员可能面临的问题提出解决方案。比如说,如果测试人员没有从开发团队收到可部署的代码,测试过程就会滞后。对于测试团队来说,这是高优先级任务,因此必须制定计划以弥补这一点。团队可以相互联系和协商,以提出有效的解决方案。如果团队之间的沟通到位,可以更好地管理风险。我们可以帮助可能误入歧途的团队成员!
结对编程是一种技术,两名程序员在同一个工作站上远程或面对面协同工作。一人扮演主角,另一个扮演配角。主角编写代码,配角在每一行代码输入时负责检查。程序员须经常互换角色,以确保工作量均等。
Teams、Slack和Trello等项目沟通工具可以帮助团队之间或内部的沟通。频道创建、任务分配、消息传递和会议工具等功能提升了敏捷团队的协作体验。
5.注重质量而非数量
虽然我们致力于按时完成任务,但可能会在开发过程中忽视项目的质量方面。我们可以提供符合行业安全性和稳定性标准的软件部分,以后可以进一步更新和即兴改写软件。比如说,如果您的登录系统在2分钟内使用户完成登录,试着缩短服务器的延迟,从而缩短登录时间。记住要保持切合实际的质量目标和标准,那样不会在紧迫的情况下浪费时间、试图实现过高的目标。
Selenium、Soap UI和Apache JMeter等性能测试工具有助于根据测试用例来评估我们的工作,以确保符合质量标准。
上述敏捷原则是根据我们选择的具体方法、项目类型和业务需求来度身定制的。我们可以结合DevOps 实践,进一步改进敏捷软件开发方法。
原文标题:The 5 Principles of Agile Software Development,作者:Fibonalabs