RE: [AM] Article of Interest in CIO Magazine

Yuval Oren <[email protected]> Sun, 7 Mar 2004 22:22:13 -0800
Newsgroups gmane.comp.programming.modeling.agile
Message-ID <[email protected]>
>From: [email protected] [mailto:[email protected]] 
>

>In a message dated 3/7/2004 8:25:30 PM Pacific Standard Time,
[email protected] writes:

>There are other major post-deployment costs that are not so obvious, 

>Actually, Steven, I agree, and thank you for bringing them into the
discussion. I omitted them so as not to distract my focus from the effect of
system design on post->deployment costs. Now that you have brought them up,
there could, in fact, be a direct correlation between the design of a system
and the costs you've mentioned. But >where in the agile equation does
consideration for these things fit? 

 

One factor that needs to play into design is how much it will cost to
re-factor. If it's very easy to change some functionality - if it's hidden
in an implementation class, for example - then there's no need to build in
all the requirements or try to avoid future changes. If, however, it's
costly to change, such as a public interface or API, then you need to design
it to minimize future changes to the interface.

 

>While the purists among us might suggest that we disregard those things
that are not known, because there is some likelihood that whatever work we
do on them may >ultimately be unnecessary, and therefore a waste of
resources, the "impurists" might suggest that to do nothing in the face of
seemingly incontrovertible evidence that the >system will require some level
of post-deployment maintenance or modification is irresponsible, derelict,
or worse. 

 

It also depends on how you define "known." If you know you'll need it, and
if you think it will be more difficult to add later, then you might as well
take care of it now. I feel that the deciding factor for these things should
be how much more costly it will be to add later rather than now, weight
against the chance you'll actually need it.

 

Another point to consider - and I'm sure the XP and AM folks will disagree
with me here - is the experience of your development team. If everybody
shares the "big picture," and they understand it well enough to make the
appropriate re-factoring correctly at the right time, then you should
consider yourself blessed for having such an aligned team. I've sometimes
found myself in cases, however, where it will take me less time to build the
extra feature than to explain how it should fit later. This is especially
relevant when you can't be there all the time. I've had consulting jobs
where I knew nobody would try to change the system until a year after I
left. I felt it appropriate in those situations to build up the software and
abstractions/layers so that it was very easy to add the anticipated upcoming
features.

 

-Yuval

For more information about AM, visit the Agile Modeling Home Page at www.agilemodeling.com
--^----------------------------------------------------------------
This email was sent to: [email protected]

EASY UNSUBSCRIBE click here: http://topica.com/u/?bUrKDA.bWnbtk.Z2NtYS1h
Or send an email to: [email protected]

TOPICA - Start your own email discussion group. FREE!
http://www.topica.com/partner/tag02/create/index2.html
--^----------------------------------------------------------------