Discussion about the effect of quality on the process, for example defining the quality as the variable that affects the speed, and the independence, of implementing the next features. Inspired by the speed quality barrier of J.B. and quality of non decreasing velocity (Qdv) of @keith_b models. The claim is that sustainable long term development should be being over the quality of non declining velocity level, and so there could be a discussion about the fact that some practices are economically justified if it could be proved they make possible to be over the Qdv.
Boost Fertility New Invention Ups Success Rates.pdf
four variables
1. Resources Scope Time Quality
●
Antonio Lucca tonyx@yahoo.com
●
http://tonyxzt.blogspot.com/
●
@tonyxzt
2. Scope Quality Resources Time
●
Scope - what is to be done; the features to be
implemented;
●
Quality - the requirements for correctness and
other "good" things
●
Resources - the investment of personnel,
equipment, and ...
●
Time - the duration of the project.
4. about quality
●
External quality: what is perceived by the users
of a system. => part of the scope
●
Internal quality: refers to issues that usually
aren't visible to the user, but which have a
profound effect on the maintainability of the
system
●
(Henrik Kniberg. Scrum and Xp From the Trenches)
5. Negotiate the quality?
●
Is not up for discussion. It is the team's
responsibility to maintain the system's quality
under all circumstances and this is simply not
negotiable. Ever.
●
(Well, OK, almost never)
●
(Henrik Kniberg: Scrum and Xp from the
trenches)
6.
7. I don't refactor because I want to have the ultimate design, I refactor to make the
next feature cheaper.”
(J.B. Rainsberger)
●
=> marginal cost. marginal cost is the change in total cost that arises when the
quantity produced changes by one unit
●
Low quality => marginal goes up (timeframes increases)
●
High quality => marginal cost goes down (timeframes decreases)
●
(http://www.ustream.tv/flash/video/4722190)
●
“Quality speed barrier: for any project we can find a quality level below which one
must trade off quality and speed and above which one derives more speed from
better quality.”
●
(http://www.jbrains.ca/permalink/218)
10. Consequences
●
In time T1 we done 29 features, instead of 18,
but we have a different base code “quality”
●
=> less “resource”. (base code should be a
resource, to make the next features cheaper
and independent)
11. Toxic code
●
“declining velocity” model. As the times goes
up, toxic part of the code increases, and it
makes more and more difficult to implement
new features.
●
=> decreasing velocity
●
So then ∂V/∂t <0
12. The opposite?
●
Base code is a resource, not an obstacle
●
Going forward, it is more likely that the base
code contains what we need to implement
new features (eat your own dog food).
●
Tendency of going faster
●
=> ∂V/∂t >0
13. In the middle there is the threshold:
●
So there is in the middle a level 0
●
∂V/∂t = 0
●
It is called Qdv
●
Quality of non decreasing velocity
●
(Keith Braithwaite)
●
(http://peripateticaxiom.blogspot.com/2009_05
_31_archive.html)
16. Conclusions
●
The practices and values to be added in the
process to reach sustainability are not always
the same, and there is not predictable effect
(complex area of cynefin framework:
retrospective coherence)
●
There is the need of some empirical evidences
of this model
●
The model matches the “short term needs” of
business and long term sustainability as well