敏捷是一系列技术和方法的集合,可提高团队内的决策、生产力和思维能力。
这些技术涵盖了传统软件工程的各个方面,例如项目管理、软件设计和架构以及流程优化。为了使它们尽可能简单地实施,它们由经过简化和优化的程序组成。
因为适当的心态可以显着影响团队应用技术的程度,所以敏捷也是一种心态。这种心态有利于团队成员之间的信息共享,以便可以集体做出重要的项目选择,而不是由经理单独充当决策者。拥抱敏捷心态需要让整个团队参与规划、设计和流程优化。敏捷团队的每个成员都参与技术的应用,并与整个团队共享相同的信息。
对于许多没有经历过如此成功的团队来说,敏捷与它所承诺的有很大不同,而这种差异的很大一部分往往是团队对每个项目的态度。大多数软件开发企业都涉足敏捷,虽然其中许多企业取得了成功,但一些团队的成果并不理想。他们在项目运行方式上取得了一些进展,足以让拥抱敏捷的努力变得值得,但他们还没有看到敏捷所承诺的重大变化。这是心态转变背后的主要思想:“敏捷”是指帮助团队培养高效的心态。
然而,“心态转变”到底是什么意思呢?在软件团队工作需要每天规划、设计、开发和发布软件。 “心态”与此有何关系?事实证明,您和您的队友处理这些问题的方式会影响您在日常工作中采用的许多程序。
这是一个例子。 每日站立是团队成员讨论目标和问题的聚会,是团队最流行的敏捷方法之一。我们让每个人全程站立,以保持会议简短。对于许多团队来说,在项目中添加每日站立会议已被证明是非常成功的。
理解敏捷价值观(敏捷宣言)
敏捷价值观要点
• 敏捷宣言包含可打造高效团队的共同价值观和想法。
• “个人和交互重于流程和工具”意味着团队应该首先关注团队中的人员以及他们如何沟通,其次才是他们使用的工具和实践。
• “工作软件胜过全面文档”意味着交付满足用户需求的软件比交付描述软件的规范更重要。
• 工作软件是指能够为公司创造价值的软件。
• “客户协作胜过合同谈判”意味着对待每个人都像同一个团队一样。
• 许多高效的敏捷团队将产品所有者视为项目团队的成员来进行协作,而不是作为客户进行谈判。
• “响应变化胜过遵循计划”意味着认识到计划会变得不准确,并且交付软件比执行计划更重要。
• 任务板是一种敏捷的规划工具,其中用户故事被附加到板上,并根据其在当前项目或迭代中的状态分类为列。
敏捷软件的 12 条原则
我们的首要任务是通过尽早持续交付有价值的软件来满足客户 - 客户永远是对的。
欢迎不断变化的需求,即使是在开发后期。敏捷流程利用变革为客户带来竞争优势。意思是:
a.当发生变化时,没有人会陷入“麻烦”。
b.我们同舟共济。每个人都在合作。
c.我们不会坐等改变,直到为时已晚。
d.我们不再将改变视为错误。
e.我们从变化中学习。这是团队成长并更好地共同构建软件的最有效方式。
Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. By using time-boxed iteration to deliver working software frequently, agile teams constantly adjust the project so that it delivers the most value to the customer
The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. When people on the team don't communicate on a face to face basis, they may agree on the broad strokes, but end up working toward different goals. Comprehensive documentation can make this worse by making it easy to introduce ambiguity.
Collaboration between business analysts and developers on a daily basis throughout the project yields greater efficiency. This is due to the fact that business professionals must wait until the very end of the project to review and provide input on the team's performance, and finalizing modifications at this point in the project is far more costly.
Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
Working software is the primary measure of progress.It is better than progress reports for giving everyone the latest update on the project’s status, because it’s the most effective way for the team to communicate what they’ve accomplished. This is one reason why agile teams use iterative development. By delivering working software at the end of each iteration, and by doing a real product demonstration that shows everyone exactly what the team did, they keep everyone up to date on the progress of the software in a way that is almost impossible to misread.
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.
Simplicity—the art of maximizing the amount of work not done—is essential.Agile teams keep their solutions as simple as possible by avoiding building unnecessary features or overly complex software.
The best architectures, requirements, and designs emerge from self-organizing teams.Self-organizing teams share responsibility for all aspects of the project, from conceiving the product to project management to design and implementation.
At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.By taking the time to look back and talk about lessons they learned after each iteration and also at the end of the project, agile teams constantly get better at building software.
POPULAR AGILE METHODOLOGIES
Just a brief definitions of them:
Scrum,extreme programing(XP), Lean and Kanban
1. Scrum and Self-organizing teams
Scrum is a potent framework that emphasizes incremental progress, continuous improvement, and cooperation in Agile project management. Scrum assists organizations in navigating the complexity and uncertainty of product development by emphasizing the delivery of value in small increments and cultivating a strong team dynamic.
2. Extreme programing(XP)
A strong Agile methodology, Extreme Programming places a strong emphasis on close client and developer cooperation as well as technical quality. Through the use of techniques like pair programming, TDD, and continuous integration, XP supports teams in producing high-caliber software that satisfies user needs in a setting that is changing quickly. With its emphasis on feedback, simplicity, and communication, it works especially well for projects whose requirements change often.
3. Lean
Within Agile, the Lean methodology emphasizes efficiency, continuous improvement, and customer satisfaction while delivering maximum value with little waste. Teams can improve their ability to collaborate, respond more quickly to changing needs, and streamline their operations by implementing Lean concepts and practices. This method works well with the Agile principles of flexibility and customer-focused development, which makes it a potent tactic in contemporary software development.
4. Kanban
Effective Agile methodology Kanban places a strong emphasis on efficiency, visual management, and ongoing development. Through the implementation of Kanban boards and concepts, teams may improve workflow management, foster collaboration, and increase customer value delivery. Because of its adaptability and emphasis on flow, it works especially effectively in settings where priorities and requirements shift regularly.
위 그림은 Scrum, XP, Lean이 모두 어떻게 Agile 가치를 핵심으로 갖고 있으며 몇 가지 가치, 아이디어, 관행을 서로 공유하는지 보여줍니다.
애자일 소프트웨어 개발 수명주기
Agile SDLC는 제품이 처음부터 끝까지 거치는 구조화된 일련의 단계입니다. 6단계로 구성됩니다.
1. 개념: 프로젝트 범위 및 우선순위 정의
2. 시작: 프로젝트 요구 사항에 따라 Agile 팀 구성
3. 반복: 고객 피드백을 고려한 코드 생성
4. 릴리스: 코드를 테스트하고 문제를 해결하세요. 이 모든 작업이 완료되면 제품의 최종 반복이 프로덕션에 출시될 수 있습니다.
5. 유지 관리: 제품의 서비스 가용성을 보장하기 위해 지속적인 기술 지원을 제공합니다
6. 단종: 제품 수명의 끝, 종종 새 제품의 시작과 동시에 발생합니다. 제품이 새로운 소프트웨어로 교체되거나 시스템 자체가 시간이 지남에 따라 더 이상 사용되지 않거나 조직과 호환되지 않는 경우 이 단계에 들어갑니다. 소프트웨어 개발 팀은 먼저 소프트웨어가 폐기된다는 사실을 사용자에게 알립니다. 교체가 있는 경우 사용자는 새 시스템으로 마이그레이션됩니다.
팀이 선택하는 프로젝트 관리 접근 방식에 따라 애자일 수명 주기가 조금씩 달라집니다. 예를 들어 스크럼 팀은 반복과 비슷한 스프린트라는 짧은 간격으로 운영됩니다. 또한 스크럼 마스터와 같이 명확하게 정의된 역할이 있습니다. 반면 칸반 팀은 필요한 역할 없이 연속적인 흐름처럼 운영됩니다. 익스트림 프로그래밍은 팀이 엔지니어링 기술의 우선순위를 정하고 더 짧은 반복으로 작업하는 또 다른 예입니다. 그러나 모든 소프트웨어 개발팀의 목표는 동일합니다. 바로 작동하는 소프트웨어를 사용자에게 적시에 제공하는 것입니다.
以上是解锁敏捷:超越框架的详细内容。更多信息请关注PHP中文网其他相关文章!