Ron Jeffries | 1 Apr 2010 02:05
Picon
Favicon
Gravatar

Re: In The Begining

Hello, Mike.  On Wednesday, March 31, 2010, at 10:59:42 AM, you
wrote:

> we are trying to determine if we are going to use ORM and what flavor if we
> do/ Freeware vs commercial (paid for ). Determining which product we use
> will help us decide on other parts of the project.

I probably wouldn't DO that but if I were going to, I see no big
problem with stories providing information to the Product Owner.

If the ORM I picked was going to influence other parts of the
product, I would be looking pretty hard at why that was. I would not
think it should, as a rule.

> Another example would be Templating vs. Master Pages ( we are doing some
> prototyping to determine complexity and support of each)

Not sure I understand this. If the idea is to have some kind of
templates "to make us go faster" I wouldn't recommend doing that up
front.

Ron Jeffries
www.XProgramming.com
www.xprogramming.com/blog
We know less about the project today than at any time in the future.
  -- Chet Hendrickson
You mean today is the dumbest day of the rest of my life?
  -- Ron Jeffries

------------------------------------
(Continue reading)

Roy Morien | 1 Apr 2010 08:31
Picon
Favicon

RE: iterative development with system design

It's Roy, but that's OK. I don't mind being mistaken for Ron  Not sure what his take might be though.
 
OK, your reply highlights a problem that I have seen for many years when teaching database development, and in database textbooks. That is, what to call what. I take an ER Modelling approach to developing databases (within a User Story Driven Approach). I call the ER Model the Conceptual Model. The ER Model can be, and in my view should be, defined without database considerations in mind, at all. But, nonetheless, there is a usual assumption that an major outcome of this activity will ultimately be a database. So the Conceptual Model (ie: ER Model) can be transformed into the Logical Data Model, where the data is defined. Entities have attributes which transform into datafields, usually, and are given physical definition ... datatype, length etc. You then can add table proce ssing required datafields as well. Then, the logical model is transformed into the Physical Model. This is where the specific DBMS will need to be understood. Table and index clustering, table types, accessing paths etc. need to be defined. This is a DBA function, to define the physical database to be as efficient as possible, whilst maintaining the integrity of the logical data design. I would suggest that a DBA would be 'on loan' to a development team, to many develoment teams, and not part of a specific team. Similarly to a network administrator, or a security administrator, this is more in the realm of looking after things after the development is complete. I think that tuning the database is something that must happen depending on observed performance. We can make som e assumptions up front about network or database traffic, but in any case, tuning the database is not a one time activity ... it is a continuing function for the lifetime of the system, using daily statistics.
 
Now, I will admit that all of my experience has been with business systems, where data stored relationally is entirely adequate. Exactly how things might change given different (sometimes radically different) DBMS's and different storage paradigms, I really don't know. But I would still hold to the view that the data must be defined conceptually (that is, understanding the business information architecture), logically (understanding the design of the data architecture itself) and physically, on the disk, according to best usage of the specific DBMS. (Maybe 'cloud computing' brings with it significant changes to how we do all this, especially the last part, but again, I don't know at this stage).
 
However, having said all that, which seems to me to be better discussed in a database forum, I fall back to the discussion about an agile approach to this, and I will steadfatly hold to my view that the database can, and should, be developed incrementally, evolving, and that this does not create specific and dangerous problems for future ' refactoring'.

Regards,
Roy Morien
To: scrumdevelopment <at> yahoogroups.com
From: stephan.huez <at> gmail.com
Date: Wed, 31 Mar 2010 18:06:42 +0200
Subject: Re: [scrumdevelopment] iterative development with system design

 
Hi Ron

Actually, I think that we concur on the first part. The conceptual or logical or whatever we name it view on the database can be seen early. Nevertheless, when we speak relationally, it points me to the database and tables and foreign keys, whereas in higher levels of the application, I only speak in objects and relationships. I take it that when you said " You can design and implement the database relationally, without heed to the underlying physical structres.", you referred to what I call the logical model whereas database tables and their relationships are the physical model.

You said that tuning the database is a DB function and not a developer function. Could you elaborate on the way you see DBA interacting with the team? I usually prefer that DBA be part of the team and be considered as developers as any other team member.

Actually, my most recent experience is based on working mission critical systems whose focus was as much, not to say more, on the non-functional requirements than on the functionality. This might seem weird to many but this happens. To get to that, you need to prove that you system is responsive, stable and reliable well before rolling it out into production. In such cases, the tuning happens prior to the roll out because the more you add to the system, the more you must make sure that performance remains steady. This is, I think, why we have diverging opinions on when the tuning begins.

Cheers,

Stephan

On 31 March 2010 17:03, Roy Morien <roymorien <at> hotmail.com> wrote:
 

Perhaps I have spent too long designing relational databases, and applying normalisation principles. Mind you, I apply the normalisation principles way back at the ER Modelling stage, in what I see as a modular, loosly coupled, highly cohesive design.
 
In my view, we can readily see what is often refered to as the External View of the database, or the Conceptual View, dependng on your book. You can design and implement the database relationally, without heed to the underlying physical structres. That is the level of refactoring that is most likely, I think. As is stated in this posting " the actual database refactoring takes place when the database is tuned to help meet performance requirements". This is a DBA function, not a developer function, and should continue well into the implementation lifetime of the databasem which is why I don't particularly agree with the statement that "One single story will never get it right.". Such refactoring mostly occurs long after all User Stories have been attended to. How much any developer can foresee this situation  is a matter of fact, and I think the fact is, the developer can't, and really shouldn't spend much time being concerned about it. Performance tuning must necessarilly be based on performance history, which has not yet occured at the development stage.

Date: Wed, 31 Mar 2010 16:35:28 +0200

Subject: Re: [scrumdevelopment] iterative development with system design

 
In my experience, it is always better to keep the database design to what is actually used and not what is likely to be used. Personally, I don't like wasting time creating, and maintaining something that is not used.

I also find that it is much better to make the upper levels work fine and provide customers with the right functionality prior to starting digging into the database. If the database is properly abstracted, it is easy to work as if it weren't there. It also works the other way round. Nevertheless, I find it much easier to refactor the code than the database. Once you get into the database, you also need to start with heavier integration tests, which take longer to run and take usually more energy to maintain. Technologies that generate the database can come in hand y in this situation. This lets you time to reflect on the actual database structure to put underneath.

On the other hand, I would say that the actual database refactoring takes place when the database is tuned to help meet performance requirements.You can only properly design your database based on the way it will be used. One single story will never get it right. This happens when we eventually know how the database will be used in terms of load patterns, distribution and so forth. The database might in the end look much different from the domain objects that the application deals with. If the performance requirements were critical aspects, as I have already encountered, it is important to work out how to get the system fast early, including the database.When we get to this stage, we are supported by the test suite that was built. We know that we are safe to refactor the database without braking everything.

Applying good design principles help prevent the application from falling apart when a domain object changes for instance.This nevertheless happens way too often IMHO. Evolutionary design of the database is not, IMHO, the easiest to be successul with.

Cheers,

Stephan

On 31 March 2010 16:02, Roy Morien <roymorien <at> hotmail.com> wrote:
 
I agree entirely ... a basic tenet of good project management is to ensure the feasibility of the product, and that must include approaching the riskiest parts, or most complex parts,  of the system first. If they cannot be done, then there is little point in spending time on the easy bits.
 
But that has little to do with the matter of whether or not you plan ahead, and try to second guess what might lie ahead to avoid refactoring etc.
 
The question that I alway ask about database designs, usually done in a BDUF manner, is why (as an example) it is necessary to know about 'TEACHERS' when we are analysing 'STUDENTS'. To me, developing the database is a bit like 'How do you eat an elephant?' ... a little at a time. If you apply those basic tenets that Ron mentioned earlier about programming (high cohesion, low coupling, modularity) to the database then you can evolve the database without much refactoring, if any. To me, adding a new table to the database is not refactoring. Even adding new columns to a database table isn't really refactoring, in my book.
 
The fundamental problem being addressed is where new requirements demand a destructive redevelopment of previously completed work. How often does this happen if good design principles are followed?
 
This seems like a folk memory of olden days, of werewolves and ghoulies that aounded in an earlieer time, in the form of having to restructure an IMS schema, for example. Of having to rewrite the processing code to an X-Y addressed terminal, fo r another example. But times have changed!


 
Regards,
Roy Morien
 
To: scrumdevelopment <at> yahoogroups.com
From: stephan.huez <at> gmail.com
Date: Wed, 31 Mar 2010 11:56:11 +0200

Subject: Re: [scrumdevelopment] iterative development with system design

 
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



Meet local singles online. Browse profiles for FREE!



Meet local singles online. Browse profiles for FREE!


.ExternalClass #ecxygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;padding:0 10px;} .ExternalClass #ecxygrp-mkp hr {border:1px solid #d8d8d8;} .ExternalClass #ecxygrp-mkp #ecxhd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;} .ExternalClass #ecxygrp-mkp #ecxads {margin-bottom:10px;} .ExternalClass #ecxygrp-mkp .ecxad {padding:0 0;} .ExternalClass #ecxygrp-mkp .ecxad a {color:#0000ff;text-decoration:none;} .ExternalClass #ecxygrp-sponsor #ecxygrp-lc {font-family:Arial;} .ExternalClass #ecxygrp-sponsor #ecxygrp-lc #ecxhd {font-weight:700;font-size:78%;line-height:122%;} .ExternalClass #ecxygrp-sponsor #ecxygrp-lc .ecxad {margin-bottom:10px;padding:0 0;} .ExternalClass a {color:#1e66ae;} .ExternalClass #ecxactions {font-family:Verdana;font-size:11px;padding:10px 0;} .ExternalClass #ecxactivity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;} .ExternalClass #ecxactivity span {font-weight:700;} .ExternalClass #ecxactivity span a {color:#5085b6;text-decoration:none;} .ExternalClass #ecxactivity span span {color:#ff7900;} .ExternalClass #ecxactivity span .ecxunderline {text-decoration:underline;} .ExternalClass .ecxattach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;} .ExternalClass .ecxattach div a {text-decoration:none;} .ExternalClass .ecxattach img {border:none;padding-right:5px;} .ExternalClass .ecxattach label {display:block;margin-bottom:5px;} .ExternalClass .ecxattach label a {text-decoration:none;} .ExternalClass blockquote {;} .ExternalClass .ecxbold {font-family:Arial;font-size:13px;font-weight:700;} .ExternalClass .ecxbold a {text-decoration:none;} .ExternalClass dd.ecxlast p a {font-family:Verdana;font-weight:700;} .ExternalClass dd.ecxlast p span {margin-right:10px;font-family:Verdana;font-weight:700;} .ExternalClass dd.ecxlast p span.ecxyshortcuts {margin-right:0;} .ExternalClass div.ecxattach-table div div a {text-decoration:none;} .ExternalClass div.ecxattach-table {width:400px;} .ExternalClass div.ecxfile-title a, .ExternalClass div.ecxfile-title a:active, .ExternalClass div.ecxfile-title a:hover, .ExternalClass div.ecxfile-title a:visited {text-decoration:none;} .ExternalClass div.ecxphoto-title a, .ExternalClass div.ecxphoto-title a:active, .ExternalClass div.ecxphoto-title a:hover, .ExternalClass div.ecxphoto-title a:visited {text-decoration:none;} .ExternalClass ecxdiv#ygrp-mlmsg #ecxygrp-msg p a span.ecxyshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;} .ExternalClass .ecxgreen {color:#628c2a;} .ExternalClass .ecxMsoNormal {;} .ExternalClass ecxo {font-size:0;} .ExternalClass #ecxphotos div {float:left;width:72px;} .ExternalClass #ecxphotos div div {border:1px solid #666666;height:62px;overflow:hidden;width:62px;} .ExternalClass #ecxphotos div label {color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;} .ExternalClass #ecxreco-category {font-size:77%;} .ExternalClass #ecxreco-desc {font-size:77%;} .ExternalClass .ecxreplbq {;} .ExternalClass #ecxygrp-mlmsg {font-size:13px;font-family:Arial, helvetica,clean, sans-serif;} .ExternalClass #ecxygrp-mlmsg table {font-size:inherit;font:100%;} .ExternalClass #ecxygrp-mlmsg select, .ExternalClass input, .ExternalClass textarea {font:99% Arial, Helvetica, clean, sans-serif;} .ExternalClass #ecxygrp-mlmsg pre, .ExternalClass code {font:115% monospace;} .ExternalClass #ecxygrp-mlmsg ecx* {line-height:1.22em;} .ExternalClass #ecxygrp-mlmsg #ecxlogo {padding-bottom:10px;} .ExternalClass #ecxygrp-mlmsg a {color:#1E66AE;} .ExternalClass #ecxygrp-msg p a {font-family:Verdana;} .ExternalClass #ecxygrp-msg ecxp#attach-count span {color:#1E66AE;font-weight:700;} .ExternalClass #ecxygrp-reco #ecxreco-head {color:#ff7900;font-weight:700;} .ExternalClass #ecxygrp-reco {margin-bottom:20px;padding:0px;} .ExternalClass #ecxygrp-sponsor #ecxov li a {font-size:130%;text-decoration:none;} .ExternalClass #ecxygrp-sponsor #ecxov li {font-size:77%;list-style-type:square;padding:6px 0;} .ExternalClass #ecxygrp-sponsor #ecxov ul {padding:0 0 0 8px;} .ExternalClass #ecxygrp-text {font-family:Georgia;} .ExternalClass #ecxygrp-text p {;} .ExternalClass #ecxygrp-text tt {font-size:120%;}
Download a free gift for your PC. Get personal with Windows.

__._,_.___


To Post a message, send it to:   scrumdevelopment <at> eGroups.com
To Unsubscribe, send a blank message to: scrumdevelopment-unsubscribe <at> eGroups.com



Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required)
Change settings via email: Switch delivery to Daily Digest | Switch to Fully Featured
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe

__,_._,___
Stephan Huez | 1 Apr 2010 10:39
Picon
Gravatar

Re: iterative development with system design

Hi Roy, (Sorry again)

Thanks for the explanation. I clears things up.

Cheers,

Stephan

On 1 April 2010 08:31, Roy Morien <roymorien <at> hotmail.com> wrote:
 

It's Roy, but that's OK. I don't mind being mistaken for Ron  Not sure what his take might be though.
 
OK, your reply highlights a problem that I have seen for many years when teaching database development, and in database textbooks. That is, what to call what. I take an ER Modelling approach to developing databases (within a User Story Driven Approach). I call the ER Model the Conceptual Model. The ER Model can be, and in my view should be, defined without database considerations in mind, at all. But, nonetheless, there is a usual assumption that an major outcome of this activity will ultimately be a database. So the Conceptual Model (ie: ER Model) can be transformed into the Logical Data Model, where the data is defined. Entities have attributes which transform into datafields, usually, and are given physical definition ... datatype, length etc. You then can add table processing required datafields as well. Then, the logical model is transformed into the Physical Model. This is where the specific DBMS will need to be understood. Table and index clustering, table types, accessing paths etc. need to be defined. This is a DBA function, to define the physical database to be as efficient as possible, whilst maintaining the integrity of the logical data design. I would suggest that a DBA would be 'on loan' to a development team, to many develoment teams, and not part of a specific team. Similarly to a network administrator, or a security administrator, this is more in the realm of looking after things after the development is complete. I think that tuning the database is something that must happen depending on observed performance. We can make some assumptions up front about network or database traffic, but in any case, tuning the database is not a one time activity ... it is a continuing function for the lifetime of the system, using daily statistics.
 
Now, I will admit that all of my experience has been with business systems, where data stored relationally is entirely adequate. Exactly how things might change given different (sometimes radically different) DBMS's and different storage paradigms, I really don't know. But I would still hold to the view that the data must be defined conceptually (that is, understanding the business information architecture), logically (understanding the design of the data architecture itself) and physically, on the disk, according to best usage of the specific DBMS. (Maybe 'cloud computing' brings with it significant changes to how we do all this, especially the last part, but again, I don't know at this stage).
 
However, having said all that, which seems to me to be better discussed in a database forum, I fall back to the discussion about an agile approach to this, and I will steadfatly hold to my view that the database can, and should, be developed incrementally, evolving, and that this does not create specific and dangerous problems for future ' refactoring'.

Date: Wed, 31 Mar 2010 18:06:42 +0200

Subject: Re: [scrumdevelopment] iterative development with system design

 
Hi Ron

Actually, I think that we concur on the first part. The conceptual or logical or whatever we name it view on the database can be seen early. Nevertheless, when we speak relationally, it points me to the database and tables and foreign keys, whereas in higher levels of the application, I only speak in objects and relationships. I take it that when you said " You can design and implement the database relationally, without heed to the underlying physical structres.", you referred to what I call the logical model whereas database tables and their relationships are the physical model.

You said that tuning the database is a DB function and not a developer function. Could you elaborate on the way you see DBA interacting with the team? I usually prefer that DBA be part of the team and be considered as developers as any other team member.

Actually, my most recent experience is based on working mission critical systems whose focus was as much, not to say more, on the non-functional requirements than on the functionality. This might seem weird to many but this happens. To get to that, you need to prove that you system is responsive, stable and reliable well before rolling it out into production. In such cases, the tuning happens prior to the roll out because the more you add to the system, the more you must make sure that performance remains steady. This is, I think, why we have diverging opinions on when the tuning begins.

Cheers,

Stephan

On 31 March 2010 17:03, Roy Morien <roymorien <at> hotmail.com> wrote:
 

Perhaps I have spent too long designing relational databases, and applying normalisation principles. Mind you, I apply the normalisation principles way back at the ER Modelling stage, in what I see as a modular, loosly coupled, highly cohesive design.
 
In my view, we can readily see what is often refered to as the External View of the database, or the Conceptual View, dependng on your book. You can design and implement the database relationally, without heed to the underlying physical structres. That is the level of refactoring that is most likely, I think. As is stated in this posting " the actual database refactoring takes place when the database is tuned to help meet performance requirements". This is a DBA function, not a developer function, and should continue well into the implementation lifetime of the databasem which is why I don't particularly agree with the statement that "One single story will never get it right.". Such refactoring mostly occurs long after all User Stories have been attended to. How much any developer can foresee this situation  is a matter of fact, and I think the fact is, the developer can't, and really shouldn't spend much time being concerned about it. Performance tuning must necessarilly be based on performance history, which has not yet occured at the development stage.

Date: Wed, 31 Mar 2010 16:35:28 +0200

Subject: Re: [scrumdevelopment] iterative development with system design

 
In my experience, it is always better to keep the database design to what is actually used and not what is likely to be used. Personally, I don't like wasting time creating, and maintaining something that is not used.

I also find that it is much better to make the upper levels work fine and provide customers with the right functionality prior to starting digging into the database. If the database is properly abstracted, it is easy to work as if it weren't there. It also works the other way round. Nevertheless, I find it much easier to refactor the code than the database. Once you get into the database, you also need to start with heavier integration tests, which take longer to run and take usually more energy to maintain. Technologies that generate the database can come in handy in this situation. This lets you time to reflect on the actual database structure to put underneath.

On the other hand, I would say that the actual database refactoring takes place when the database is tuned to help meet performance requirements.You can only properly design your database based on the way it will be used. One single story will never get it right. This happens when we eventually know how the database will be used in terms of load patterns, distribution and so forth. The database might in the end look much different from the domain objects that the application deals with. If the performance requirements were critical aspects, as I have already encountered, it is important to work out how to get the system fast early, including the database.When we get to this stage, we are supported by the test suite that was built. We know that we are safe to refactor the database without braking everything.

Applying good design principles help prevent the application from falling apart when a domain object changes for instance.This nevertheless happens way too often IMHO. Evolutionary design of the database is not, IMHO, the easiest to be successul with.

Cheers,

Stephan

On 31 March 2010 16:02, Roy Morien <roymorien <at> hotmail.com> wrote:
 
I agree entirely ... a basic tenet of good project management is to ensure the feasibility of the product, and that must include approaching the riskiest parts, or most complex parts,  of the system first. If they cannot be done, then there is little point in spending time on the easy bits.
 
But that has little to do with the matter of whether or not you plan ahead, and try to second guess what might lie ahead to avoid refactoring etc.
 
The question that I alway ask about database designs, usually done in a BDUF manner, is why (as an example) it is necessary to know about 'TEACHERS' when we are analysing 'STUDENTS'. To me, developing the database is a bit like 'How do you eat an elephant?' ... a little at a time. If you apply those basic tenets that Ron mentioned earlier about programming (high cohesion, low coupling, modularity) to the database then you can evolve the database without much refactoring, if any. To me, adding a new table to the database is not refactoring. Even adding new columns to a database table isn't really refactoring, in my book.
 
The fundamental problem being addressed is where new requirements demand a destructive redevelopment of previously completed work. How often does this happen if good design principles are followed?
 
This seems like a folk memory of olden days, of werewolves and ghoulies that aounded in an earlieer time, in the form of having to restructure an IMS schema, for example. Of having to rewrite the processing code to an X-Y addressed terminal, for another example. But times have changed!


 
Regards,
Roy Morien
 
To: scrumdevelopment <at> yahoogroups.com
From: stephan.huez <at> gmail.com
Date: Wed, 31 Mar 2010 11:56:11 +0200

Subject: Re: [scrumdevelopment] iterative development with system design

 
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 being 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



Meet local singles online. Browse profiles for FREE!



Meet local singles online. Browse profiles for FREE!



Download a free gift for your PC. Get personal with Windows.



__._,_.___


To Post a message, send it to:   scrumdevelopment <at> eGroups.com
To Unsubscribe, send a blank message to: scrumdevelopment-unsubscribe <at> eGroups.com



Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required)
Change settings via email: Switch delivery to Daily Digest | Switch to Fully Featured
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe

__,_._,___
xJUSSIx | 1 Apr 2010 11:16
Picon
Favicon

Team as a whole feeling very anti-Scrum

I started working as an SM recently in a team that has tried to adopt Scrum for some time now with more than
questionable results. They have mostly reverted back to the old ways of working and the situation seems
quite difficult.

What are some of the suggested ways to make the team feel less hostile towards Scrum? How would you
reintroduce Scrum to a team in a situation where mostly everyone thinks Scrum is useless? I'd like to hear
similar stories and possibly even some suggestions. 

I thought I would start first with the team's biggest pain points and reasons why they think agile and Scrum
are not that useful. Then I should be able to pinpoint the root causes. Does this make sense at all?

For more background information, see my latest blog entry here:
http://beyondagility.blogspot.com/2010/03/i-think-i-just-got-hit-by-cargo-cult.html

Thanks in advance!

Jussi

------------------------------------

To Post a message, send it to:   scrumdevelopment <at> eGroups.com
To Unsubscribe, send a blank message to: scrumdevelopment-unsubscribe <at> eGroups.comYahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/scrumdevelopment/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/scrumdevelopment/join
    (Yahoo! ID required)

<*> To change settings via email:
    scrumdevelopment-digest <at> yahoogroups.com 
    scrumdevelopment-fullfeatured <at> yahoogroups.com

<*> To unsubscribe from this group, send an email to:
    scrumdevelopment-unsubscribe <at> yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/

Kurt Häusler | 1 Apr 2010 11:54
Picon
Gravatar

Re: Team as a whole feeling very anti-Scrum



On Thu, Apr 1, 2010 at 11:16 AM, xJUSSIx <xjussix <at> yahoo.com> wrote:
 

I started working as an SM recently in a team that has tried to adopt Scrum for some time now with more than questionable results. They have mostly reverted back to the old ways of working and the situation seems quite difficult.

What are some of the suggested ways to make the team feel less hostile towards Scrum? How would you reintroduce Scrum to a team in a situation where mostly everyone thinks Scrum is useless? I'd like to hear similar stories and possibly even some suggestions.

I thought I would start first with the team's biggest pain points and reasons why they think agile and Scrum are not that useful. Then I should be able to pinpoint the root causes. Does this make sense at all?

Yes this does make sense.

Before Scrum was the team more formally managed, or less formally managed? In other words, did they come to Scrum from a Waterfall background or a Cowboy Coding background?

What were the reasons for trying Scrum? How would you describe the teams culture? Do they work on projects or continually developed software products? Does the team have otherwise agile values and principles that are compatible with Scrum, or some other set of values and principles? Does the team engage in agile engineering practices?

What sorts of issues were raised at the retrospectives and how were they dealt with?


__._,_.___

To Post a message, send it to:   scrumdevelopment <at> eGroups.com
To Unsubscribe, send a blank message to: scrumdevelopment-unsubscribe <at> eGroups.com



Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required)
Change settings via email: Switch delivery to Daily Digest | Switch to Fully Featured
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe

__,_._,___
xJUSSIx | 1 Apr 2010 12:28
Picon
Favicon

Re: Team as a whole feeling very anti-Scrum

Here are some answers to your questions:

--- In scrumdevelopment <at> yahoogroups.com, Kurt Häusler <kurt.haeusler <at> ...> wrote:
> Before Scrum was the team more formally managed, or less formally managed? In other words, did they come to
Scrum from a Waterfall background or a Cowboy Coding background?

I believe the whole organization has a waterfall background. Highly specialized people in strict silos etc.

> What were the reasons for trying Scrum? 
The reason is Scrum is the standard basically in the whole enterprise. Agile adoption started in the usual
way with a couple of teams piloting agile practices but ended up as the standard for every software project.

> How would you describe the teams culture? Do they work on projects or continually developed software products?
Hard to tell after such a short time with them, sorry. The team works on a product that is continually
developed. Like I wrote in the blog entry, the team is doing mostly integration related things.

> Does the team have otherwise agile values and principles that are compatible with Scrum, or some other set
of values and principles?
Again, hard to tell yet. I've read between the lines that they are very comfortable in doing just the things
they have always done and continuous improvement might not be second nature to them..

> Does the team engage in agile engineering practices?
As far as I know, the development environment supports at least partially some sort of CI and automated
testing. I have a feeling though that automated testing at least is not used very much. One thing to
remember is not much new code is developed by this team.

> What sorts of issues were raised at the retrospectives and how were they dealt with?
All I know so far is retrospectives AND daily standups have been discarded because the team sees no value in
them. I haven't had the chance to talk about the retrospectives in detail with the PO yet.

/Jussi

------------------------------------

To Post a message, send it to:   scrumdevelopment <at> eGroups.com
To Unsubscribe, send a blank message to: scrumdevelopment-unsubscribe <at> eGroups.comYahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/scrumdevelopment/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/scrumdevelopment/join
    (Yahoo! ID required)

<*> To change settings via email:
    scrumdevelopment-digest <at> yahoogroups.com 
    scrumdevelopment-fullfeatured <at> yahoogroups.com

<*> To unsubscribe from this group, send an email to:
    scrumdevelopment-unsubscribe <at> yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/

Peter Stevens (calendar | 1 Apr 2010 12:55
Picon

Re: Team as a whole feeling very anti-Scrum

On 01.04.10 11:16, xJUSSIx wrote:
 

I started working as an SM recently in a team that has tried to adopt Scrum for some time now with more than questionable results. They have mostly reverted back to the old ways of working and the situation seems quite difficult.

What are some of the suggested ways to make the team feel less hostile towards Scrum? How would you reintroduce Scrum to a team in a situation where mostly everyone thinks Scrum is useless? I'd like to hear similar stories and possibly even some suggestions.

I thought I would start first with the team's biggest pain points and reasons why they think agile and Scrum are not that useful. Then I should be able to pinpoint the root causes. Does this make sense at all?

For more background information, see my latest blog entry here:
http://beyondagility.blogspot.com/2010/03/i-think-i-just-got-hit-by-cargo-cult.html

Thanks in advance!

Jussi

Hi Jussi,

So you were sent by management to fix a problem in the team. Management doesn't have problems, their teams do. If only the teams would cooperate, life would be good. ;-) If only it were that simple...

Your first step is to earn some respect from the team. Coming into a new project, I have often found it helpful to start with a 'let's get to know each other meeting - I'd like to understand you and your issues'. The emphasis is not on scrum, just on understanding the current situation. I would present it as 'let's take a step back and see where we are." Given the aversion to scrum, I would avoid the R-word, but that's what you're doing.

I like to identify some pain point where I can help the team quickly. Why? To establish myself as being someone who can and will help them. To address what the team (as opposed to management) considers to be the real issues.

The classic approach would be 'What has happened over the last 3 months?' Ask for the facts, write them on post-its, put them on the flip-chart (you know ;-) ) Before people put their post-its on the flipchart, draw a horizontal line: above the line is what moved them positively, below negatively. (It's kind of interesting to count the post its at this point, most teams have many more negative points than positive).

Then ask, what do we do well. Let the team pat themselves on the back. This is also your chance to see what's missing and ask friendly questions ("Gee, given the pressure to produce working software, I would have expected you to talk about your automated test suites at this point. What is the situation with testing?"

I never ask 'what do we do badly' - it leads the discussion in the wrong way.

At this point, I would deviate from the standard (what could we do better), and ask 'what is the biggest impediment to moving forward' - 1 card per person. But maybe you'll stay with the standard. In any case, chances are good (especially if you asked the right questions after step two) than many of the problems will be things that Scrum helps you fix. At the very least, you should have a clearer picture of why you are getting the resistance and what problems need to be addressed.

Hope this helps,

Cheers,

Peter


-- Peter Stevens, CSM, CSPO, CSP www.scrum-breakfast.com tel: +41 44 586 6450

__._,_.___

To Post a message, send it to:   scrumdevelopment <at> eGroups.com
To Unsubscribe, send a blank message to: scrumdevelopment-unsubscribe <at> eGroups.com



Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required)
Change settings via email: Switch delivery to Daily Digest | Switch to Fully Featured
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe

__,_._,___
Editeur | 1 Apr 2010 13:26
Picon
Favicon

[News] Will Mike Cohn Leave the Scrum Alliance?

The Scrum Alliance announced last year that Scrum creator Ken Schwaber resigned as President and Chair of
the Board of Directors. This might be however not the end of the turmoil in the Agile world. Ken Schwaber was
replaced October 5 by Mike Cohn, but there are now rumors that he might leave the Scrum Alliance to join the
Waterfall Alliance. And this is not the only surprise that might happen soon: other unverified sources
mentions that the Waterfall Alliance is also currently negotiating with Jeff Sutherland and Tom Gilb to
join its board. 

Read the full story here: http://www.devagile.com/modules/news/article.php?storyid=601

------------------------------------

To Post a message, send it to:   scrumdevelopment <at> eGroups.com
To Unsubscribe, send a blank message to: scrumdevelopment-unsubscribe <at> eGroups.comYahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/scrumdevelopment/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/scrumdevelopment/join
    (Yahoo! ID required)

<*> To change settings via email:
    scrumdevelopment-digest <at> yahoogroups.com 
    scrumdevelopment-fullfeatured <at> yahoogroups.com

<*> To unsubscribe from this group, send an email to:
    scrumdevelopment-unsubscribe <at> yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/

jgentsch32 | 1 Apr 2010 13:52
Picon
Favicon

A practical example of Scrum and Kanban

Just found this video:

http://www.youtube.com/watch?v=7DpWcsghuck

I guess they went a bit over the top but I really liked the idea. ;-)

------------------------------------

To Post a message, send it to:   scrumdevelopment <at> eGroups.com
To Unsubscribe, send a blank message to: scrumdevelopment-unsubscribe <at> eGroups.comYahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/scrumdevelopment/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/scrumdevelopment/join
    (Yahoo! ID required)

<*> To change settings via email:
    scrumdevelopment-digest <at> yahoogroups.com 
    scrumdevelopment-fullfeatured <at> yahoogroups.com

<*> To unsubscribe from this group, send an email to:
    scrumdevelopment-unsubscribe <at> yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/

Michael Vizdos | 1 Apr 2010 15:01
Picon
Gravatar

Re: [News] Will Mike Cohn Leave the Scrum Alliance?

Wow.

I am reading this while watching pigs fly out of my barn, a pink giraffe walk by, and totally agreeing with everything Obama says and also knows, for sure, that the earth will end on 12/12/12.

Good luck Mr. Cohn (and happy April Fools).

Thank you,

- Mike Vizdos
 www.michaelvizdos.com
 www.implementingscrum.com


On Thu, Apr 1, 2010 at 7:26 AM, Editeur <ginitram <at> yahoo.fr> wrote:
 

The Scrum Alliance announced last year that Scrum creator Ken Schwaber resigned as President and Chair of the Board of Directors. This might be however not the end of the turmoil in the Agile world. Ken Schwaber was replaced October 5 by Mike Cohn, but there are now rumors that he might leave the Scrum Alliance to join the Waterfall Alliance. And this is not the only surprise that might happen soon: other unverified sources mentions that the Waterfall Alliance is also currently negotiating with Jeff Sutherland and Tom Gilb to join its board.

Read the full story here: http://www.devagile.com/modules/news/article.php?storyid=601




__._,_.___


To Post a message, send it to:   scrumdevelopment <at> eGroups.com
To Unsubscribe, send a blank message to: scrumdevelopment-unsubscribe <at> eGroups.com



Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required)
Change settings via email: Switch delivery to Daily Digest | Switch to Fully Featured
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe

__,_._,___

Gmane