In the sense of mom and apple pie. MotherhoodStatements are usually assertions that your product has things like FaultTolerance, documentation, maintainability, flexibility, scalability, usability, etc, etc. Nothing you can actually measure, of course.
JanPurchase? has an interesting test, which is to NegateTheStatement? and see if it still makes sense, for example:
Just some hints on how you can measure the things which were claimed as not measurable. In reality, all the qualities you mentioned would need some more precise description, but for the purpose of this demonstration I just assume a certain meaning (violating TomGilb), and suggest a measure:
FaultTolerance: Prepare TestCases with random input or device failure, define a desired behaviour, and check the actual system behaviour. Resulted measurement is percentage of passed test cases. What about "mean time between failures", assuming some faults are likely to occur sometime?
documentation: Define a standard user profile. Get (hire) people who come close to this profile. Give them the documentation and a task list. Measure how long it takes for them to figure out - based on the documentation - how some task has to be performed. Ask them about their confidence with the documentation (on a scale from e.g. 1 to 5), if the documentation seems to be complete (scale 1 to 5), etc. pp.
maintainability: Just check how long it takes to fix a bug or add a feature for someone not experienced with the software.
flexibility: What percentage of your users use the SW in an environment that it was not specified for?
scalability: Define up to e.g. how many transactions per second your SW should scale on which hardware, create a test setup and measure the actual transaction rate.
usability: Define a set of common tasks, give them to experienced and unexperienced users of your SW, measure the time it takes for them to fulfill a task, and or ask them for a rating of your system.
TomGilb's point for many years has been that if you can't measure such qualities then they do indeed have no meaning. Would this have been been called ExtremeMetrics? if it had been discovered at the end of the 90s?
People don't really think that way. Not even XPers. That's why we have a CodeSmells page.
Our practical observation in planning even the lowest ceremony EvolutionaryDelivery (and there are some pretty LowChurch users in front office trading room systems) is that even a measurement 'ThoughtExperiment?' sheds a lot more light on priorities than passive acceptance that measuring a required quality is impossible. This will frequently open up the way for vital user and system feedback from early deliveries.
The way that Gilb's advice hangs together and is scalable here, properly applied, is in the top 5% everyone should know about software development (IMHO).
-- RichardDrake
A better definition might be that
A motherhood statement is one that everyone agrees with.Point being that motherhood statements sound good, but add no real value.
-- BenAveling
PS
Consider a 1D segment of values: |---------------------|
Is the opposite of |----------------(-----)|
Opposite is such an overloaded word. Doesn't it say negate above anyway?
Perhaps MotherhoodStatements can be prioritized. I recall in the book ToDoDoingDone?, a prioritization of the goals of the Apollo mission:
So, given a choice between scalability, usability, reliability, and time-to-market, which one has priority?
-- JohnBrewer
Heck if I know. That's why I like how XP lets the business choose. Whether or not business knows the answer any better than I do is another question. But at least I don't have to make that choice.
See also MotherhoodStory, GilbMeasurabilityPrinciple