17
Resources Scope Time Quality Antonio Lucca [email protected] http://tonyxzt.blogspot.com/ @tonyxzt

four variables

Embed Size (px)

Citation preview

Resources Scope Time Quality

● Antonio Lucca [email protected]● http://tonyxzt.blogspot.com/● @tonyxzt

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.

Relationships

● + scope => + time● + scope => + resources (questionable)● etc...●

● Quality...(not yet defined)●

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)

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)

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)

Ordinary velocity

Faster? In the same time more features (cut “quality”)

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)

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

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

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)

Curve or practices for Qdv?

Reminder. Cynefin framework:

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

Links● http://www.ustream.tv/flash/video/4722190● http://www.jbrains.ca/permalink/218

● Sufficient Design:● https://elearning.industriallogic.com/gh/submit?Action=PageAction&album=blog2009&path=blog2009/2010/sufficientDesign&devLanguage=Java