Let's see if my take adds anything (not certain by any means...)
I'm not sure about the "assigning a release to each one" thing. I thought the idea was to put a "price" on each story/function point/unit of development and pick what goes into the current sprint. Everything else is backlog - you can offer some indication of remaining effort (see evidence based scheduling in FogBugz) but I don't think you should be allocating to specific sprints - you don't know what'll be in the backlog by the time you get there, for one thing. All you know is that it's going to change, so why waste time on it?
There should be a designated user representative. Or more than one, if domain knowledge can't be concentrated in one individual. But someone from the business domain should be in charge overall of deciding what goes into a sprint, subject to the effort available, of course. There can be a place for a Business Analyst type, but they need to be domain experts. If your user(s) can't write stories, even with your help (it's a co-operative thing, or should be) then you all need help. Consider getting a coach involved for a sprint or two.
You won't be writing functional specs in an Agile environment. You'll be writing code. Your user will be on hand at all times (or you're already exposed to significant risk) and they're your spec. The story tells you "what", and is going to be a small enough unit of work that you should be able to decide on "how" fairly quickly. And refactor. Always refactor. It's not an overhead, it's part of the process and your design won't evolve satisfactorily without it.
If you have VPs (hey, I'm a VP, we're not all bad!) who ask that sort of question, then parts of your company are not getting it yet. Choose someone (the person best able to deal with non-techies, perhaps, or maybe the person least able, since they clearly need the practice) to explain it to them. If what's built is important to them, perhaps their questions are an indication that someone's not as involved as they should be.
You should translate your requirements into a Product Backlog. This backlog is what you use to decide what Sprint Backlog items are chosen for each Sprint iteration. Management decides what is on the Product Backlog, but the team needs to agree to what they can produce in the Sprint (this is a negotiation that occurs at every sprint).
Your Product Owner (usually a product manager) drives the creation of the stories. The Stories are simple (as a system admin, I need to be able to add a user). If your product management does not understand your product, you are in trouble.
Agile is about designing as required. The design is never in the story. The spec can be per story, or per feature. You could design all your CRUD inside of one spec, which covers multiple stories.
The Product Owner gets a product demo at the end of every Sprint. So value is demonstrated at every cycle. So your VP would get reports on a monthly basis (ususally 3 weeks of dev + 1 week to prepare for the Sprint demo).
If you are going to do anything in regards writing or designing code, one of the things you should always do, is write a spec, irrespective of whatever methodology you are using, wether it is Scrum, XP, Agile or SDLC. Many people who say that writing specs is so unagile and a monument to wasteful bureaucratic paperwork. The simple fact is that they are misguided when they say that code is the spec.
The clear fact is that a spec allows you to formulate your ideas and designs beforehand, and its much easier to change a spec than it is to change a program, especially if you are working outside the confines of simple LOB application. Specs ensure you have a clearer understanding of what is required when you start coding.
Its been show time and time again that teams that use specs, design better software. In my opinion, if you hear anybody say the code is the spec, that is dogma, plain and simple, and is storing up huge maintainability problems for the future.
As an aside, I don't have anything against the Agile Manifesto or light management process centric methods like Scrum. I've used it in the past few years a number of times, and it delivers. I've also seen good software down the drain, where an agile focus would have saved it. But it is no panacea or silver bullet.
发布评论
评论(3)
让我们看看我的看法是否添加了任何内容(无论如何都不确定......)
我不确定“为每个人分配一个版本”的事情。 我认为这个想法是为每个故事/功能点/开发单元设定一个“价格”,并选择当前冲刺的内容。 其他一切都是待办事项 - 您可以提供一些剩余工作量的指示(请参阅基于证据的调度 in FogBugz),但我认为您不应该分配给特定的冲刺 - 一方面,您不知道到达那里时积压的内容是什么。 您只知道它会发生变化,那么为什么要浪费时间呢?
应该有指定的用户代表。 如果领域知识不能集中在一个人身上,或者不止一个。 但是,来自业务领域的人员应该全面负责决定冲刺的内容,当然,这取决于可用的努力。 业务分析师类型可能有一席之地,但他们需要是领域专家。 如果您的用户无法编写故事,即使在您的帮助下(这是合作的事情,或者应该是),那么你们都需要帮助。 考虑让一名教练参与一两次冲刺。
您不会在敏捷环境中编写功能规范。 你将编写代码。 您的用户将随时待命(或者您已经面临重大风险),他们是您的规格。 这个故事告诉您“什么”,并且将是一个足够小的工作单元,您应该能够相当快地决定“如何”。 并重构。 始终重构。 这不是开销,而是流程的一部分,如果没有它,您的设计将无法令人满意地发展。
如果您的副总裁(嘿,我是副总裁,我们并不都是坏人!)问这类问题,那么您公司的部分人员还没有明白这一点。 选择一个人(也许是最有能力与非技术人员打交道的人,或者可能是最没有能力的人,因为他们显然需要这种练习)向他们解释。 如果构建的内容对他们来说很重要,也许他们的问题表明有人没有像他们应该的那样参与。
Let's see if my take adds anything (not certain by any means...)
I'm not sure about the "assigning a release to each one" thing. I thought the idea was to put a "price" on each story/function point/unit of development and pick what goes into the current sprint. Everything else is backlog - you can offer some indication of remaining effort (see evidence based scheduling in FogBugz) but I don't think you should be allocating to specific sprints - you don't know what'll be in the backlog by the time you get there, for one thing. All you know is that it's going to change, so why waste time on it?
There should be a designated user representative. Or more than one, if domain knowledge can't be concentrated in one individual. But someone from the business domain should be in charge overall of deciding what goes into a sprint, subject to the effort available, of course. There can be a place for a Business Analyst type, but they need to be domain experts. If your user(s) can't write stories, even with your help (it's a co-operative thing, or should be) then you all need help. Consider getting a coach involved for a sprint or two.
You won't be writing functional specs in an Agile environment. You'll be writing code. Your user will be on hand at all times (or you're already exposed to significant risk) and they're your spec. The story tells you "what", and is going to be a small enough unit of work that you should be able to decide on "how" fairly quickly. And refactor. Always refactor. It's not an overhead, it's part of the process and your design won't evolve satisfactorily without it.
If you have VPs (hey, I'm a VP, we're not all bad!) who ask that sort of question, then parts of your company are not getting it yet. Choose someone (the person best able to deal with non-techies, perhaps, or maybe the person least able, since they clearly need the practice) to explain it to them. If what's built is important to them, perhaps their questions are an indication that someone's not as involved as they should be.
您应该将您的需求转化为产品待办事项列表。 您可以使用此待办事项来决定为每个 Sprint 迭代选择哪些 Sprint 待办事项项。 管理层决定产品待办事项列表中的内容,但团队需要就他们在冲刺中可以生产的内容达成一致(这是在每个冲刺中发生的协商)。
您的产品负责人(通常是产品经理)推动故事的创作。 故事很简单(作为系统管理员,我需要能够添加用户)。 如果您的产品管理层不了解您的产品,那么您就会遇到麻烦。
敏捷是根据需要进行设计。 设计从来没有出现在故事中。 规范可以针对每个故事或每个功能。 您可以在一个规范内设计所有 CRUD,该规范涵盖多个故事。
产品负责人在每个 Sprint 结束时都会获得产品演示。 因此,价值在每个周期都会得到体现。 因此,您的副总裁将每月收到报告(通常需要 3 周的开发时间 + 1 周的时间来准备 Sprint 演示)。
You should translate your requirements into a Product Backlog. This backlog is what you use to decide what Sprint Backlog items are chosen for each Sprint iteration. Management decides what is on the Product Backlog, but the team needs to agree to what they can produce in the Sprint (this is a negotiation that occurs at every sprint).
Your Product Owner (usually a product manager) drives the creation of the stories. The Stories are simple (as a system admin, I need to be able to add a user). If your product management does not understand your product, you are in trouble.
Agile is about designing as required. The design is never in the story. The spec can be per story, or per feature. You could design all your CRUD inside of one spec, which covers multiple stories.
The Product Owner gets a product demo at the end of every Sprint. So value is demonstrated at every cycle. So your VP would get reports on a monthly basis (ususally 3 weeks of dev + 1 week to prepare for the Sprint demo).
如果您要做任何有关编写或设计代码的事情,您应该始终做的一件事就是编写规范,无论您使用什么方法,无论是 Scrum、XP、敏捷还是 SDLC。 许多人说编写规范非常不灵活,而且是浪费的官僚文书工作的纪念碑。 一个简单的事实是,当他们说代码就是规范时,他们被误导了。
明显的事实是,规范允许您预先制定想法和设计,并且更改规范比更改程序要容易得多,特别是当您在简单 LOB 应用程序的范围之外工作时。 规范可确保您在开始编码时更清楚地了解所需内容。
一次又一次地表明,使用规范的团队可以设计出更好的软件。
在我看来,如果你听到有人说代码就是规范,那就是教条,简单明了,并且为未来埋下了巨大的可维护性问题。
顺便说一句,我并不反对敏捷宣言或 Scrum 等以轻管理流程为中心的方法。 这几年我用过很多次
它提供了。 我也看到过优秀的软件被浪费掉了,而敏捷的专注可以挽救它。 但这并不是灵丹妙药或灵丹妙药。
If you are going to do anything in regards writing or designing code, one of the things you should always do, is write a spec, irrespective of whatever methodology you are using, wether it is Scrum, XP, Agile or SDLC. Many people who say that writing specs is so unagile and a monument to wasteful bureaucratic paperwork. The simple fact is that they are misguided when they say that code is the spec.
The clear fact is that a spec allows you to formulate your ideas and designs beforehand, and its much easier to change a spec than it is to change a program, especially if you are working outside the confines of simple LOB application. Specs ensure you have a clearer understanding of what is required when you start coding.
Its been show time and time again that teams that use specs, design better software.
In my opinion, if you hear anybody say the code is the spec, that is dogma, plain and simple, and is storing up huge maintainability problems for the future.
As an aside, I don't have anything against the Agile Manifesto or light management process centric methods like Scrum. I've used it in the past few years a number of times,
and it delivers. I've also seen good software down the drain, where an agile focus would have saved it. But it is no panacea or silver bullet.