LIST

Technique: Discover service boundaries (SOA)

Search for ’natural folding lines’ in the domain Try to find the “natural folding lines” between areas in the domain. how: ask domain experts: “Can you imagine that changing data x ever impact data y” eg. “[hospital] Would the patient changing family name impact which doctor they get treated by” eg. “[webshop] Would changing the description of a product cause the price to change?” When the domain expert looks at you like - "You don't get it at all do you?...

February 4, 2021

Technique: CRC cards (Candidates, Responsibilities, Collaborators)

Roles, Responsibilities, Collaborators An object is an implementation of one or more roles; a role is a set of relatedresponsibilities; and a responsibility is an obligation to perform a task or know information. A collaboration is an interaction of objects or roles (or both). (origin: Wirfs-Brock and McKean in [Wirfs-Brock03]) (src: Book_ Growing Object Oriented Software, Guided By Tests - Steve Freeman & Nat Pryce)

January 31, 2021

Technique: Outside-in TDD = London style TDD = mockist TDD = ATDD (Acceptance)

start each feature with an acceptance test Domain Language only write the acceptance test using only terminology from the application’s domain, not from the underlying technologies (such as databases or web servers) benefits: prevent assumptions about implementation clarity focus on limited set of features user’s point of view (src: Book_ Growing Object Oriented Software, Guided By Tests - Steve Freeman & Nat Pryce) In Book_ Agile Technical Practices Distilled - Pedro, Marco, Alessandro they define test boundaries of acceptance test without external dependencies....

January 31, 2021

Technique: Walking Skeleton for incremental development

Quote: Walking skeleton definition A “walking skeleton” is an implementation of the thinnest possible slice of real functionality that we can automatically build, deploy, and test end-to-end. -- Alistair Cockburn (src: Book_ Growing Object Oriented Software, Guided By Tests - Steve Freeman & Nat Pryce) (origin: [Cockburn04]) keep the skeleton’s application functionality so simple that it’s obvious and uninteresting For example, for a database-backed web application, a skeleton would show a flat web page with fields from the database....

January 31, 2021