▲ | jonahx 4 days ago | ||||||||||||||||
> The idea that tests should be split into a specification layer and execution layer is a good one that should have taken off by now. There is a fundamental reason it hasn't: An actual specification layer isn't any simpler than the execution layer. That's a programmer's fallacy. What has taken off, and is part of virtually every software project, is a loose, natural language specification, which hints at "more or less" what the stakeholders are imagining. The idea that you can close the gap between this and a complete specification in a way that all stakeholders can still digest is the fantasy of cucumber. Or any other tool that attempts it. You can't solve the problem in that way. Because, from a high-level stakeholder's perspective, the whole point of the people below them (whether programmers or UX designers or anyone else) is to fill in those details in a way that matches their own hazy expectations, at least well enough. | |||||||||||||||||
▲ | MoreQARespect 4 days ago | parent [-] | ||||||||||||||||
>An actual specification layer isn't any simpler than the execution layer. The point of separation of concerns isnt to keep the simple layer separate from the complex one. It's to simplify the whole thing by only addressing one concern per layer. Unit tests are often a pain in the ass to read because they are a mess of implementation and specification details. No separation. >You can't solve the problem in that way. Because, from a high-level stakeholder's perspective, the whole point of the people below them (whether programmers or UX designers or anyone else) is to fill in those details in a way that matches their own hazy expectations If you crystallize the hazy expectations on their behalf and skip feeding it back to them then you will often find out that "thats not what i meant" after the code is complete. Those mistakes are expensive and avoidable. | |||||||||||||||||
|