Re: XP Question about Metaphor

From: H. S. Lahman (h.lahman_at_verizon.net)
Date: 11/22/03


Date: Sat, 22 Nov 2003 16:39:17 GMT

Responding to Czort...

>>Being 'closer in time' is just another way of saying one uses smaller
>>waterfalls.
>
>
> Hello H.S. Lahman,
>
> I believe the difference is much bigger than you seem to imply.
>
> Most agile methods say that you switch between design (D) and coding (C)
> with high frequency. You make the switch many times a day - many times an
> hour, even.

A waterfall model simply says there is a defined sequence of dependent
process steps. It doesn't say how big those steps are, how long they
take, or what one does within those steps. In that respect /all/
software development involves a waterfall model at some scale.

However, this thread context is about BDUF. The scale you are talking
about is tactical at the OOP level. I am talking about OOA/D that takes
the form of architectural spikes, system metaphors, CRCs, TDD, and
refactoring. The first two are done prior to any increment. CRCs and
TDD are done at the story level.

Refactoring addresses OOP as well as OOA/D so it is more difficult to
draw a line in the sand. Refactoring for local things like eliminating
duplicate code is inherently tactical and will tend to be done at any
time during OOP. However, refactoring that introduces new classes and
different collaborations that affect code that was untouched in the
current increment is an OOA/D activity and that sort of refactoring is
usually done at the story and increment level.

BTW, IMO if refactoring is triggered many times an hour, then it is time
to step up a level or two of abstraction because there is probably
something more fundamental wrong with the solution. To me triggering
refactoring that often equates to what Fowler calls 'shotgun surgery'.

*************
There is nothing wrong with me that could
not be cured by a capful of Drano.

H. S. Lahman
hsl@pathfindermda.com
Pathfinder Solutions -- Put MDA to Work
http://www.pathfindersol.com
(888)-OOA-PATH



Relevant Pages

  • Re: Does Agile Development have to be OO?
    ... >> It looks like principles of Agile Development are equally applicable to OO ... > and militant refactoring are crucial elements. ... Stop fantasizing Lahman. ... > Refactoring is really about dependency management to provide long-term ...
    (comp.object)
  • Re: XP Question about Metaphor
    ... > design before coding, ... This has just defined a finer granularity to the waterfall. ... is there design up front within the project or the increment ... whether refactoring is up front and scales finer than story (more on ...
    (comp.object)
  • Re: XP Question about Metaphor
    ... >>They are in proportion to the size of an increment's waterfall. ... >>time devoted to CRCs, writing tests, and refactoring within an increment ... done prior to writing and testing code. ...
    (comp.object)
  • Re: XP, a Criticism
    ... > incrementally and use refactoring to expand the necessary functionality, ... XP relies very heavily on customer participation and unless a customer ... requirements to both the developers and the QA people. ... OO principles to ensure maintainability from one increment to the next. ...
    (comp.object)
  • Re: Smells versus beauty
    ... It is easy to show how copy/paste repetition is risky and always ends up meaning much more work than refactoring into generalizations, ... "Smells" are too much about the current situation and too little about where you want to be. ... code with a bad "smell" are simply distillations of OOA/D into cookbook ... best they are solutions for fixing things when the fundamentals have not ...
    (comp.object)