Hi all,
Personally, and maybe it's due to my RUP experience and architect's background, I tend to follow the RUP principle of identifying architecturally significant use cases, which
will be stories in this case.
I think it's worth identifying what stories bear the greatest technical risks and uncertainties and ask the PO whether the team can plan them in early iterations. The
architectural value must of course be balanced with the business value. If a story were technically risky with a limited business value, it could wait for sure.
Working this way allows for sort of securing, most probably only temporarily, architectural choices but for stories that bring value to the customer. You don't design and
architect the solution for future stories but for
those that you implement right away only. This also means that from one sprint to the next, there will nevertheless be
refactoring because we don't do any big design upfront but instead implement the solution that serves the stories planned in the sprint.
Cheers,
Stephan
On Wednesday 31 Mar 2010 06:30:16 Roy Morien wrote:
> Has this question arisen becaue you have a real situation that you need to
> overcome (in which case could you give me / us a concrete example), or are
> you asking 'just in case' you face the situation in the future?
>
>
>
> I often think situations like this are more apparent than real, and are
> usually brought about because of poor design and programming practices,
> rather than bein
g a problem in its own right.
>
>
>
> For (a simple) example, if I write a function that reads the clock and
> checks to find if a file exists, then I may very well run into a
> refactoring requirement if someone in the future just wants to call a
> function to read the clock. But this is, of course, bad programming
> practice, which has caused the need for refactoring
>
>
>
> If I design a database tale, that is subsequently found to need more
> datafields, then I guess I am going to need to 'refactor' my database ...
> is this poor analysis practice wherein I should have found ALL of the
> datafields at the start? No, it is simply evolution of undersanding about
> the requirements. Is
it a huge problem? No, refactoring databases is
> almost a trivial activity these days, but does have an impact on
> processing code.
>
>
>
> SO in one situation we have poor code, demanding refactoring, and on the
> other situation we have an evolution of understanding, which is a good
> thing.
>
>
>
> If I must refactor my database because of efficiency concerns, because the
> db traffic grew well beyond expectations, then maybe some better forward
> thinking was in order ... but we are all wise in hindsight. This again
> doesn't really seem to be an example of your apparent concern.
>
>
>
> Let us know more.
>
>
>
> Regards,
>
> Roy Morien
>
>
>
> To:
scrumdevelopment <at> yahoogroups.com> From:
adam.sroka <at> gmail.com> Date: Tue, 30 Mar 2010 21:18:39 -0700
> Subject: Re: [scrumdevelopment] iterative development with system design
>
> On Tue, Mar 30, 2010 at 9:05 PM, zp.dai <
tyitsf <at> hotmail.com> wrote:
> > Hi guys,
> >
> > When the team is working on stories for the current sprint, how can they
> > do a good design which can also covers stories in future well? In other
> > word, how do you suggest to minimize refactoring existing code?
>
>
Keep the design simple, in large part by refactoring proactively.
> Also, have frequent discussions about the general approach and how to
> improve it - include everyone.
>
> > In our team, we will write dev approach for the all defined user stories,
> > no matter they will be done in this sprint or next. But I'm not sure
> > this is the best practice, as this seems not so iteratively somehow.
>
> I would suggest having discussions opportunistically - as close as
> possible to the time when you actually do it. Writing it down is much
> less important than talking about it. Designing it too soon is almost
> certainly wasteful, because things will change. Designing it too late
> will lead to more refactoring
/re-designing, as you implied. Designing
> it just in time (As you are about to implement it) works very well.
>
>
>
>
> __________________________________________________________
> Get personal with Windows. Download a free gift for your PC.
>
http://experience.windows.com