Blog on Dan North & Associates Limited 09月30日 19:08
BDD社区与核心实践
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文探讨了行为驱动开发(BDD)的核心原则与边界问题。作者认为BDD应基于中心化价值而非边界化实践,通过社区驱动的案例资源促进协作与探索。文章分析了BDD与XP、Scrum的对比,强调了价值导向的实践方式,并提出了建立基于案例的BDD资源库的建议,鼓励社区贡献实际案例与经验。

🌟 BDD应以核心价值为导向而非强制实践边界,如XP的十二实践或Scrum的认证体系,这种边界化方式限制了灵活性与创新,而基于原则的社区(如价值观)则更具包容性与发展潜力。

🗺️ 作者提出了构建‘BDD by Example’社区资源库的构想,通过案例驱动的‘人物之旅’(如好奇游客、技术采纳者等)帮助不同背景者理解BDD,包含经验报告、常见实践配方、实验技术及资源链接。

🤝 BDD的核心实践如‘三重朋友’(Three Amigos)协作方法虽非官方强制,但紧密围绕价值核心,体现了价值导向下的自发探索,如开发者、分析师、测试者共同从多角度审视问题。

🔍 作者反思了敏捷宣言缺乏明确定义的问题,指出其价值主张(如人和交互重于流程)均为深层价值的例证,BDD同样应避免过度依赖具体实践,通过真实案例传递‘协作创造商业价值’的核心理念。

📚 BDD的实践建议包括:明确利益相关者、处理信息缺失、运用发现技术(如角色建模、故事地图)、多样化示例记录方式(Gherkin语法、表格或自由文本),并平衡自动化与手动测试的关系。

tl;dr: Send us your examples of real world BDD. Read on to find out why.

The panel#

‘What is BDD?’

‘How can I tell if I’m ‘doing BDD right’? Or wrong? Is there even such a thing?’

‘Where should I start?’

‘Is this or that practise considered part of BDD?’

‘What are the mandatory ‘core’ practises of BDD?’

These and similar questions were the topic of the closing panel at the recent CukeUp conference in London.

I’ll be honest, I was expecting to be the curmudgeon saying things like ‘How hard can this be?’ and ‘Aren’t we just pandering to people who want the illusion of certainty, and shouldn’t they know better?’ Instead I found myself in the middle of a stimulating and nuanced discussion, during which I had a couple of aha moments which led me to write this post.

During the discussion I introduced the idea of boundary markers, which are ways some religious groups mark themselves out as special or exclusive. Eating or not eating certain kinds of foods, wearing specific clothing, carrying out particular rituals, possessing arcane knowledge, are all ways to distinguish those inside the camp from those outside.

The lovely Paul Rayner, whom I discovered is a preacher as well as a BDD practitioner, joined the panel—which operated more as a fishbowl—and explained that the term came from an anthropologist who studies missionaries, and who documented two contrasting ways missionaries attempt to establish faith communities.

Briefly, a community defines itself by either its centre or its boundary. A Centred Community is based on core principles or values. You can identify with the community by how closely your behaviour reflects its values, so it necessarily has fuzzy edges. A Bounded Community uses those boundary markers I mentioned earlier to identify inclusion, so membership is binary. You are either doing all the things or you aren’t. Paul has written a really nice article about bounded and centred communities and I recommend you read that if you want the full story.

On boundaries and centres#

In my experience boundaries seem to correlate with commercial or political interests, where centres seem to correlate with an affinity for the community’s values.

As an example, Kent Beck originally described XP as ‘helping business people and technical people communicate with one another’, and sometimes as ‘making software development safe for programmers’. I remember the zealotry that emerged shortly after he published XP Explained. If you weren’t following the Twelve Practises (later Thirteen Practises) then you weren’t doing ‘Pure’ XP, whatever that means.

Yet XP is an explicitly value-based method. At its core are the principles of Simplicity, Communication, Feedback, Courage and Respect. All the practises Kent describes in XP Explained are just the supporting information, sharing what he and Ward Cunningham and the rest of the team did at Chrysler. However it’s easier to make money from consulting or training if you have explicit practises to sell, so it suited the commercial interests to bring those to the forefront.

Scrum has it even worse. Certification is the epitome of boundary marking, and selling certification is a great way to gain both money and status. The official line is that Scrum is based on principles from Lean Operations, in particular the principle of inspect-and-adapt. In reality all the Scrum I see is prescriptive, inflexible, practise-based, in fact more like inspect-and-criticize, all of which suggests a boundary. Are you doing Stand-ups? Are you following the Stand-up Formula? What about Sprint Planning with an omniscient Product Owner, Backlog Grooming, Sprint Commitments/Forecasts? Story Point Estimation? Then I’m sorry, but you aren’t doing Scrum. Then the fault line splits and you get the Scrum Alliance and the Scrum Empire, or whatever it’s called, where one has Certified Scrum Masters and the other has Professional Scrum Masters. What’s a CIO to do?

On principles and practises#

The absence of a clear boundary is a double-edged sword. Whilst it can make people nervous, it can also be a rich source of new techniques. The absence of a boundary around BDD has meant certain practises have emerged and become commonplace over the years. I came across the Three Amigos method of exploring features by way of agile testing gurus Janet Gregory and Lisa Crispin, although it originated with George Dinwiddie. Three Amigos was never part of my original description of BDD, but in the right circumstances it looks like a great way to collaborate.

Occasionally I facilitate Discovery Workshops where I bring together people from different backgrounds and use creative exercises like persona modelling, communication maps, storyboards, or building a product-in-a-box. Sometimes we weave in aspects of Jeff Patten’s Story Mapping or Gojko Adzic’s Impact Mapping. The Three Amigos session seems like a more opinionated version of that: let’s put just a developer, analyst and tester together and see what happens as they look at the problem from each other’s perspective.

Three Amigos isn’t a mandatory part of BDD, but it does feel ‘close’ to the core of what I intended. Chris Matts recently wrote an article about the principle of Inclusion as a generalized case of the practise. I would go further and say that Inclusion in this sense is just another example of Deliberate Discovery, so it’s principles all the way down, probably until you get to ‘Collaborate to create business impact’ or something equally nebulous.

Agile by example#

So my first aha moment was realizing the BDD community was value-based and centred rather than practise-based and bounded. Then Gáspár Nagy joined the panel and made a startling—to me, at least—observation.

No-one ever defined ‘agile’!

The agile manifesto doesn’t contain a definition of ‘agile’. Instead it provides a number of examples: People and interactions are more important than processes and tools, working software trumps comprehensive documentation, etc. No-one explains why, it’s all supposed to be kind of obvious. Better ways and all that.

Now I’ve been citing those value statements since they were first published, and it never occurred to me until that moment that they are just examples of some deeper, undisclosed values. Pretty ironic for the someone who talks about building software by using examples.

BDD by example#

I watched what happened to the Scrum and XP communities and their respective practitioners. Kent Beck wrote several books about XP, yet he deliberately chose not to monetize it via certification or subscriptions. I admire that so I deliberately chose not to try to monetize BDD by creating an institute or selling certification. Unfortunately this means people who hear about BDD and want to investigate it don’t know where to start; people who want to offer training don’t know what to include. There are some great books out there but they can’t be all things for all audiences.

So what are the values that underpin BDD? I am convinced that the right way to define BDD is in terms of a centred rather than bounded community, and since I am someone who thinks in examples I made a suggestion to the folks at CukeUp that I would like to extend to you.

I want to build a community-curated resource for everyone interested in BDD.

It should be example-based, with various ’trails’ for different personas: Claire the Curious Tourist, Tony the Toe-dipper, Sunil the Scaler-upper, Ceri the Coach, Nigel the Nervous Adopter, Sally the Skeptical Sponsor, and no doubt many others. It will contain experience reports, recipes for the most common practises, suggestions for advanced or experimental techniques along with appropriate caveats, links to articles, books, training, consulting, probably initially vetted by me but over time peer-approved by the community. More than that I don’t know yet. I want the personas and examples to shape the solution, otherwise it wouldn’t be BDD, would it?

I’ve registered the domain bddbyexample.org, which is currently pointing to this blog post, but which will eventually host this choose-your-own-adventure into the world of BDD. Oh, and it will have killer search. Finding things is important.

We want you to send us your examples of BDD in practise, BDD in the wild, examples of examples and examples of scenarios, BDD mutations, adaptations, exaptations.

Here are some sample questions to whet your appetite. If any of them resonate with you, please send us an example, a story, a link or anything else you think we will find useful.

    What kinds of problem are you solving or product are you building?How are you engaging with your stakeholders?How are you identifying those stakeholders in the first place?Are you in a context where you don’t have access to key information? What are you doing to compensate?What techniques do you use for discovery?How do you explore your blind spots? What do you do to surface second-order ignorance, where you don’t know what you don’t know?How do you surface examples? Who is involved?How do you document examples? Do you use Given/When/Then ‘Gherkin’ syntax? Tables? Free prose? Drawings? Something else?How much do you automate? What do you do about the other stuff?Can you tell us a story about how BDD has helped you?Or where it failed and why you think that was?What other methods and techniques are you using with BDD? Are you using Cynefin, any of Impact, Story, Delivery or Skills Mapping?How about Systems Thinking, Theory of Constraints or the various limited WiP methods like Kanban?

Please email us at examples@bddbyexample.org with your examples of any of the above, your ideas for other personas for the website, or anything else you think might be relevant. Let us know if you want the example to remain anonymous, or if not how we should refer to you and/or your organization on the site. Tom Stuart has volunteered to be our interim Responsible Adult, collecting all the submissions and reporting on progress.

Also please get in touch if you are interested in helping with curating, building or otherwise being involved in this project. I’ll be taking the role of executive producer, encouraging and shaping from the sides but trying not to be the delivery bottleneck for anything.

We will report progress and conduct open discussions on the BDD Google Group.

Thanks to Chris Matts, Rachel Davies, Nat Pryce, Gáspár Nagy, Paul Rayner, Konstantin Kudryashov and the other participants for taking part in the CukeUp Panel, Tom Stuart for coming up with the idea and herding the cats, and SkillsMatter and the CukeUp conference for hosting us.

Check out

Goalwards®

, our new business agility practice!

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

行为驱动开发 BDD 敏捷开发 价值导向 社区实践 软件开发方法
相关文章