许多产品开发组织一直在尝试被称为“敏捷软件开发”方法,最受欢迎的是被称为“极端编程”(XP),但还有几个包括水晶,自适应,Scrum和务实编程的其他内容。

在这些情况下,产品团队往往怀疑产品经理的作用如何适合该方法。或者,产品经理可能涉及,如果他们的产品开发组织使用这种方法,那么所产生的产品将受到一些更为公开的方法的批评。

在这个报告中,我们将首先解释十个核心ets of Agile Development are, and then we’ll look at the specific example of XP, and then we’ll look at how this model impacts the product manager and how to deal with some of the challenges it poses.

敏捷开发方法概述

There are twelve core principles that the various Agile methods all have in common. The ways in which each method carries out the principles vary sometimes considerably, but the common philosophy is:

1.首要任务是通过早日和频繁地提供贵重软件 - 贵重软件

2. Deliver working software frequently, from a couple of weeks to a couple of months – frequent releases

3. Working software is the primary measure of progress – software matters more than documents

4.欢迎改变要求,即使是发展迟到 - 倾听和迅速学习

5. Business people and developers work together daily through the project – intense collaboration

6.在激励个人周围建立项目 - 为他们提供他们需要的环境和支持,并相信他们完成工作

7.将信息传达到和开发团队内的最有效和有效的方法是通过面对面的对话

8.自我组织团队 - 敏捷架构中最好的架构,要求和设计;任何地方的好主意

9.持续注意技术卓越和良好的设计增强了敏捷 - 重构经常

10. Agile processes promote sustainable development – should be able to maintain a constant pace indefinitely – no death marches

11. Simplicity is essential – less is more

12. At regular intervals, the team reflects on how to become more effective, and then adjusts its processes accordingly – post-mortems

Overview of Extreme Programming

为了帮助说明遵循Agile方法的真正意味着什么,让我们看看最受欢迎的细节,称为极端编程(XP)。虽然创造者强调它不是一种单尺寸适合的方法,但它应该选择地应用,虽然它应该选择地应用,但是有一个核心的基本原则,形成方法的基础:

- 对编程 - 软件由两个程序员一起编写,在一台计算机周围一起工作。

– Simple Design – the idea is to design and build only what you need right now and not for some potential future need.

– On-site Customer – the developers have a customer that represents what the product needs to do, sitting with the team and constantly available for clarification and decisions.

- 增量开发 - 策略是开始小,做很多“迷你版”,以便将产品迅速发展到它需要的地方。

– Scheduling and Planning – estimates are provided by the engineers and the customer decides scope and timing for each release.

– Continuous Code Review – based on the pair programming model, the developers are constantly reviewing each others’ work.

– Continuous Testing – the technique is to have the developers write unit tests as they code, and the customer writes functional tests as use cases are defined, and these tests all are run on an automated, ongoing basis.

– Continuous Build – the software is constantly built and integrated so that problems are found early and the system is always kept in a buildable state.

- 连续重构 - 软件开发人员通过重构代码来简化和改进实现,同时保持运行所有测试。

– Collective Code Ownership – rather than the model where each developer “owns” his own section of code, in the XP model every developer can improve any code anywhere in the system anytime he sees an opportunity and need.

- 开放式工作区 - 这个想法是,该团队在一个大型房间里与该中心的开发人员一起工作。

– 40-hour Weeks – the belief is that overtime should be limited so that quality remains high.

- 通过代码的文档 - 信仰是最有用的文档是软件本身,并且团队需要遵循编码标准。

Certainly this is very much a software developer-centric view of the world, as there really isn’t much besides the programmers (figuratively and literally at the center) and the user (the customer). However, in general, many of these techniques represent industry best practices and pose little concern to the product manager.

也就是说,一般有三个主要关注的主要领域:

Defining the Product:

第一个与你如何弄清楚建立什么。最初为自定义软件项目创建了XP方法,以满足单一客户的特定需求(例如内部员工工资系统),而不是用于代表一系列需求的客户的通用产品。事实上,在描述XP方法的书籍和文章中,您将勉强提及产品管理(通过其所有名称中的任何一个)甚至是UI设计。

Typically the main concern is this notion of an on-site customer. However, the product manager, to the degree she has studied the target customer and understands his needs, environment and concerns, as well as the competitive situation, can do her best to serve as a proxy for the customer in this process, just as is typically done by the product manager in conventional methods.
更大的关注是缺乏产品设计师(UI设计)角色。对于必须以其优点销售的产品(与合同中的定制软件)出售,用户界面/用户体验至关重要,需要专业设计者的技能,因此您必须将此关键角色纳入过程中。

这些更改可以通过将第一个迭代作为不断变化的原型处理来适应XP进程,执行验证以确保团队将建立合适的产品,然后继续使用以下迭代来开发产品实现。关键是为了确保您建立客户想要购买的产品,并且能够弄清楚如何使用。一个客户或产品经理理解它是不够的。必须以更广泛的目标市场代表验证产品。

建立产品

The second area of concern is with the consequences of some of these techniques for a scalable, high-performance, reliable, and maintainable product. These concerns quickly get into near-religious arguments about the best way to develop and test software, which are largely beyond the scope of the product management role, but the main point relative to the product manager is to ensure the release requirements are clearly defined up front. The engineering organization can then address the concerns of how to manage the risks in the best way they see fit.

The XP process typically looks to the customer to define the use cases (called stories) which serve as the basis for functional tests. On small efforts this may be fine, but for larger, general product efforts, there is a need for a dedicated role to concentrate on identifying and creating the necessary test cases to ensure scalability, functionality, performance, fault-tolerance, localizability, etc. This is typically the QA function, and there is no reason it can’t be used with the XP model. The key is that the developers are responsible for the unit tests, and the QA people are responsible for the other types of tests (e.g. system, integration, functional tests).

Deploying the Product

最终关注的领域与将产品部署到生产中有关。XP挑战长期信念,即改变成本随着时间的推移而大幅增长。换句话说,通过遵循XP的实践,您可以减少系统生产中的变化的影响。虽然一般而言,对于自定义内部系统来说,对于许多类型的商业软件产品来说,变化的影响仍然高,如果不高于以往任何更高,特别是具有大型活跃的用户社区的互联网服务。

幸运的是,我们在其他地方讨论了“柔和部署”实践的其他地方,这些技术可以帮助产品团队减少更频繁的发布和更新的负面影响和更新XP项目鼓励的更新。

概括

一般来说,敏捷的发展和特别是尤其是极端的编程方法,以解决一些具有传统生产软件的方法,特别是在增加客户/客户沟通,减少弄清楚你是建筑物的时间客户将重视客户,并通过增量开发来降低风险,并首先构建最高优先级功能。有几种非常有价值的技术,特别是在配对编程,增量开发和连续和自动测试和构建中。

However, for product organizations building commercially available products and services, it is important to augment these methods with product management, product design, and quality assurance to ensure you’re building a product that will be useful to, and usable by, a broad range of users and customers, and that will be robust enough to operate in a range of customer environments.

Share This