Re: [U2] Agile and Scrum

2009-10-19 Thread David A Barrett
Just to be clear on this.  Scrum and XP aren't particularly related. Scrum 
is a project management methodology and doesn't speak to how the 
programming is done.  XP directly relates to how the development is done. 
Three of the 12 XP practices have overlap with Scrum (Planning Workshops, 
Small Releases and Testing), but that's pretty much where it ends.  A lot 
of the thinking, obviously, comes from the same place.

You don't even have to be building a system to use Scrum.  You could use 
it to manage any other project that isn't a defined process; something 
like planning a vacation would work well with Scrum.  It doesn't work well 
for things like building a house, because those kind of projects are less 
exploratory in nature. 

The reason that Scrum works is because it embraces the one concept that 
tradition PM methodologies dread - the fact that the act of starting to 
build a piece of software changes everyone's understanding of the system. 
It is inevitable that as both the programmers and customer see the system 
come together they learn things about the system and their understanding 
about it should work to best fit the business needs improves.  Any 
methodology that bases all of its detailed planning on the flawed 
understanding that everyone has before the coding has started has got a 
big leg up when it comes to failing.

Scrum works because it defers virtually all of the decision making until 
the last possible moment.  No feature is build until it bubbles up to the 
top of the priority list, and the specifications for it aren't finalize 
until it's ready to be coded.  This means that every decision is made in 
the light of the greatest possible knowledge of the system possible for 
that decision.  And then all of those decisions are reviewed and 
re-evaluated by the customer a short time later.

The biggest stumbling block that people have is, How do you do the 
strategic planning?.  The truth is, as I'm sure everybody already has 
figured out, is that traditional strategic planning is either a joke, or 
at best delivers a product that misses the customer's goals by a wide 
margin.  Traditionally, done is defined by identifying at the very 
beginning of the project a set of features that the software must have. 
But since this by definition based on an incomplete understanding of the 
system, is usually pretty flawed.  So you think you've done strategic 
planning, but what you've really done is locked yourself into delivering a 
flawed design.  You don't lose anything with Scrum, except you acknowledge 
at the beginning that you can't really tell when you'll be done because 
you can't know what done means at this point - call it the Heisenberg 
Uncertainty Principle of Software Development.  On the upside, with Scrum 
you know that you won't waste time building features that nobody wants, 
and the programmers will always be focused on writing the code that the 
customer has identified as the highest priority - so it's almost a 
certainty that you'll get to done faster than with a Gantt Chart.

Finally, you don't need any dedicated software to manage Scrum.  Our 
Product Backlog is held in a Lotus Notes database.  For reasons I won't go 
into here, I'm not doing burndown charts anymore, but when I did I just 
used an Excel spreadsheet.  Most of our planning and tracking is done 
using Post-It notes on a whiteboard now.  It works better than anything 
electronic that I've seen.


Dave Barrett
Project Manager,
Lawyers' Professional Indemnity Company (LAWPRO®)


This e-mail may be privileged and/or confidential, and the sender does not 
waive any related rights and obligations. Any distribution, use or copying 
of this e-mail or the information it contains by other than an intended 
recipient is unauthorized. If you received this e-mail in error, please 
delete it and advise me (by return e-mail or otherwise) immediately. 

Ce courrier électronique est confidentiel et protégé. L'expéditeur ne 
renonce pas aux droits et obligations qui s'y rapportent. Toute diffusion, 
utilisation ou copie de ce message ou des renseignements qu'il contient 
par une personne autre que le (les) destinataire(s) désigné(s) est 
interdite. Si vous recevez ce courrier électronique par erreur, veuillez 
le supprimer et m'en aviser immédiatement, par retour de courrier 
électronique ou par un autre moyen.
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Agile and Scrum

2009-10-19 Thread Dawn Wolthuis
Some good summary information here, Dave. One note about not needing
specialized software is that you use a white board with post-it notes.
Using a Kanban board (or similar) with Scrum makes a lot of sense if
you are colocated. If you are a distributed team, a tool like
scrumy.com might be a good way to do the whiteboard with post-its.
In anycase, I would content that a distributed team does need
automated tools, although as you mention, they do not need to be
dedicated to Scrum.

We use trac and export to Excel at times for various purposes. One of
the key tools I am not getting from this handily is a burn-down chart,
which I think is potentially an excellent tool for the team to see our
progress as we go through an iteration. If we switch our iterations
from monthly (and I'm not doing a good job with that) to weekly, the
burndown might be quite irrelevant, so it is good to know you are not
even doing them and still consider it a Scrum approach.

Thanks.  --dawn

On Mon, Oct 19, 2009 at 8:53 AM, David A Barrett dave.barr...@lawpro.ca wrote:
 Just to be clear on this.  Scrum and XP aren't particularly related. Scrum
 is a project management methodology and doesn't speak to how the
 programming is done.  XP directly relates to how the development is done.
 Three of the 12 XP practices have overlap with Scrum (Planning Workshops,
 Small Releases and Testing), but that's pretty much where it ends.  A lot
 of the thinking, obviously, comes from the same place.

 You don't even have to be building a system to use Scrum.  You could use
 it to manage any other project that isn't a defined process; something
 like planning a vacation would work well with Scrum.  It doesn't work well
 for things like building a house, because those kind of projects are less
 exploratory in nature.

 The reason that Scrum works is because it embraces the one concept that
 tradition PM methodologies dread - the fact that the act of starting to
 build a piece of software changes everyone's understanding of the system.
 It is inevitable that as both the programmers and customer see the system
 come together they learn things about the system and their understanding
 about it should work to best fit the business needs improves.  Any
 methodology that bases all of its detailed planning on the flawed
 understanding that everyone has before the coding has started has got a
 big leg up when it comes to failing.

 Scrum works because it defers virtually all of the decision making until
 the last possible moment.  No feature is build until it bubbles up to the
 top of the priority list, and the specifications for it aren't finalize
 until it's ready to be coded.  This means that every decision is made in
 the light of the greatest possible knowledge of the system possible for
 that decision.  And then all of those decisions are reviewed and
 re-evaluated by the customer a short time later.

 The biggest stumbling block that people have is, How do you do the
 strategic planning?.  The truth is, as I'm sure everybody already has
 figured out, is that traditional strategic planning is either a joke, or
 at best delivers a product that misses the customer's goals by a wide
 margin.  Traditionally, done is defined by identifying at the very
 beginning of the project a set of features that the software must have.
 But since this by definition based on an incomplete understanding of the
 system, is usually pretty flawed.  So you think you've done strategic
 planning, but what you've really done is locked yourself into delivering a
 flawed design.  You don't lose anything with Scrum, except you acknowledge
 at the beginning that you can't really tell when you'll be done because
 you can't know what done means at this point - call it the Heisenberg
 Uncertainty Principle of Software Development.  On the upside, with Scrum
 you know that you won't waste time building features that nobody wants,
 and the programmers will always be focused on writing the code that the
 customer has identified as the highest priority - so it's almost a
 certainty that you'll get to done faster than with a Gantt Chart.

 Finally, you don't need any dedicated software to manage Scrum.  Our
 Product Backlog is held in a Lotus Notes database.  For reasons I won't go
 into here, I'm not doing burndown charts anymore, but when I did I just
 used an Excel spreadsheet.  Most of our planning and tracking is done
 using Post-It notes on a whiteboard now.  It works better than anything
 electronic that I've seen.


 Dave Barrett
 Project Manager,
 Lawyers' Professional Indemnity Company (LAWPRO®)


 This e-mail may be privileged and/or confidential, and the sender does not
 waive any related rights and obligations. Any distribution, use or copying
 of this e-mail or the information it contains by other than an intended
 recipient is unauthorized. If you received this e-mail in error, please
 delete it and advise me (by return e-mail or otherwise) immediately.

 Ce courrier 

[U2] Agile and Scrum

2009-10-16 Thread jpb-u2ug

http://www.agilegamedevelopment.com/2007/12/pair-programming.html


XP Development


Jerry Banker

___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


[U2] Agile and Scrum

2009-10-15 Thread David A Barrett
As a Scrum practitioner in an MV environment for the past 5 years or so, I 
think I can shed some light on this.  First, the Agile Manifesto:

We are uncovering better ways of developing 
software by doing it and helping others do it. 
Through this work we have come to value: 

Individuals and interactions over processes and tools 
Working software over comprehensive documentation 
Customer collaboration over contract negotiation 
Responding to change over following a plan 

That is, while there is value in the items on 
the right, we value the items on the left more. 

The basic idea behind Scrum is that you divide the work to be done into 
little chunks and they are put in a list called the Product Backlog. 
Usually each chunk is an individual feature.  The customer prioritizes the 
Product Backlog, usually in a meeting with the Development Team who supply 
some time estimates.  Then the Team decides what Backlog items they can 
complete in a fixed time period (usually 30 days), called a Sprint.  They 
commit to completing those items.  Complete means fully tested, 
potentially implementable code.  At the end of the Sprint, the Development 
Teams shows what they have completed to the customer.  Rinse and repeat.

Once the Sprint has started, the list of PB items chosen cannot be 
changed.  This is the golden rule.  If you need to change it, then cancel 
the whole Sprint, deliver nothing, and start a new one.  In 5 years, we've 
done that once (and it turned out to be a waste of time).  It's a big 
stick.

Really important is the idea that the customer sees completed work each 
Sprint.  This is guaranteed to give them ideas, and let them see where 
problems may come up.  The result of that is that some things in the 
Product Backlog may move up or down in priority, and new items will be 
added to the Product Backlog.  I am constantly amazed at how poor 
non-programmers are at visualizing how unwritten software will work.  This 
becomes a non-issue in Scrum.

Any non-trivial bug is simply added to the Product Backlog.  We don't 
argue about whether or not something is a bug, a new feature, a change in 
scope or mission from God any more.  If it is going to take the 
Development Team's time, then it goes in the Backlog and the customer can 
assign a priority to it.  End of discussion.

In my opinion, it's a risk free approach to at least try on a project. 
Worst case scenario, you waste some time working on the stuff the customer 
thinks is the most important.

There's no reason why you need to ditch documentation.  Just make it part 
of the definition of complete.

There are two major adjustments that programmers need to make.  The first 
just happens by itself:  The programmers realize they don't own the 
software.  I can't remember the last time that we had a fight with the 
users over how the software should work, or what it should look like or 
whatever.  If they're wrong, they'll see it in 30 days and they'll have to 
commit more of the development time to fixing it, but they won't be able 
to point fingers at the Team.  We just build what they ask for.

The second is that the programmers need to adopt a just good enough 
approach to programming.  There's no value in making the code you write 
bigger than you need it to be, or to build in features that no one has 
asked for.  Write the bare minimum to do the job required and nothing 
more.  This doesn't mean writing crappy code or painting yourself into a 
corner, but don't go peaking down the project plan building in stuff you 
haven't got to yet.  There's always a chance that you'll never get to that 
future feature. 

Our experience is that we've been able to open up a firehose of new 
functionality on the users with a small team and without building up a 
massive maintenance burden.  There have been a few occasions when we've 
actually put a project on hold because the customer needs time to digest 
what we've done, revamp procedures, train personnel and re-evaluate future 
development priorities.  How cool is that?!!!

There are some Agile concepts that are a little tough to implement in an 
MV environment.  Test Driven Development, for instance, is tough because 
you need an automated testing tool, and most MV programs constantly update 
the database, which means you need to roll back your database in order to 
reuse the test cases.  All of which is tough.



Dave Barrett
Project Manager,
Lawyers' Professional Indemnity Company (LAWPRO®)


This e-mail may be privileged and/or confidential, and the sender does not 
waive any related rights and obligations. Any distribution, use or copying 
of this e-mail or the information it contains by other than an intended 
recipient is unauthorized. If you received this e-mail in error, please 
delete it and advise me (by return e-mail or otherwise) immediately. 

Ce courrier électronique est confidentiel et protégé. L'expéditeur ne 
renonce pas aux droits et obligations qui s'y rapportent. Toute diffusion, 

Re: [U2] Agile and Scrum

2009-10-15 Thread Boydell, Stuart
Good post!

Stuart Boydell 

-Original Message-
From: u2-users-boun...@listserver.u2ug.org 
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of David A Barrett
Sent: Friday, 16 October 2009 07:01
To: u2-users@listserver.u2ug.org
Subject: [U2] Agile and Scrum

As a Scrum practitioner in an MV environment for the past 5 years or so, I 
think I can shed some light on this.  First, the Agile Manifesto:

We are uncovering better ways of developing 
software by doing it and helping others do it. 
Through this work we have come to value: 

Individuals and interactions over processes and tools 
Working software over comprehensive documentation 
Customer collaboration over contract negotiation 
Responding to change over following a plan 

That is, while there is value in the items on 
the right, we value the items on the left more. 

The basic idea behind Scrum is that you divide the work to be done into 
little chunks and they are put in a list called the Product Backlog. 
Usually each chunk is an individual feature.  The customer prioritizes the 
Product Backlog, usually in a meeting with the Development Team who supply 
some time estimates.  Then the Team decides what Backlog items they can 
complete in a fixed time period (usually 30 days), called a Sprint.  They 
commit to completing those items.  Complete means fully tested, 
potentially implementable code.  At the end of the Sprint, the Development 
Teams shows what they have completed to the customer.  Rinse and repeat.

Once the Sprint has started, the list of PB items chosen cannot be 
changed.  This is the golden rule.  If you need to change it, then cancel 
the whole Sprint, deliver nothing, and start a new one.  In 5 years, we've 
done that once (and it turned out to be a waste of time).  It's a big 
stick.

Really important is the idea that the customer sees completed work each 
Sprint.  This is guaranteed to give them ideas, and let them see where 
problems may come up.  The result of that is that some things in the 
Product Backlog may move up or down in priority, and new items will be 
added to the Product Backlog.  I am constantly amazed at how poor 
non-programmers are at visualizing how unwritten software will work.  This 
becomes a non-issue in Scrum.

Any non-trivial bug is simply added to the Product Backlog.  We don't 
argue about whether or not something is a bug, a new feature, a change in 
scope or mission from God any more.  If it is going to take the 
Development Team's time, then it goes in the Backlog and the customer can 
assign a priority to it.  End of discussion.

In my opinion, it's a risk free approach to at least try on a project. 
Worst case scenario, you waste some time working on the stuff the customer 
thinks is the most important.

There's no reason why you need to ditch documentation.  Just make it part 
of the definition of complete.

There are two major adjustments that programmers need to make.  The first 
just happens by itself:  The programmers realize they don't own the 
software.  I can't remember the last time that we had a fight with the 
users over how the software should work, or what it should look like or 
whatever.  If they're wrong, they'll see it in 30 days and they'll have to 
commit more of the development time to fixing it, but they won't be able 
to point fingers at the Team.  We just build what they ask for.

The second is that the programmers need to adopt a just good enough 
approach to programming.  There's no value in making the code you write 
bigger than you need it to be, or to build in features that no one has 
asked for.  Write the bare minimum to do the job required and nothing 
more.  This doesn't mean writing crappy code or painting yourself into a 
corner, but don't go peaking down the project plan building in stuff you 
haven't got to yet.  There's always a chance that you'll never get to that 
future feature. 

Our experience is that we've been able to open up a firehose of new 
functionality on the users with a small team and without building up a 
massive maintenance burden.  There have been a few occasions when we've 
actually put a project on hold because the customer needs time to digest 
what we've done, revamp procedures, train personnel and re-evaluate future 
development priorities.  How cool is that?!!!

There are some Agile concepts that are a little tough to implement in an 
MV environment.  Test Driven Development, for instance, is tough because 
you need an automated testing tool, and most MV programs constantly update 
the database, which means you need to roll back your database in order to 
reuse the test cases.  All of which is tough.



Dave Barrett
Project Manager,
Lawyers' Professional Indemnity Company (LAWPRO®)


This e-mail may be privileged and/or confidential, and the sender does not 
waive any related rights and obligations. Any distribution, use or copying 
of this e-mail or the information it contains by other than an intended 
recipient

Re: [U2] Agile and Scrum

2009-10-15 Thread Clifton Oliver
Agreed. An excellent post. And at 769 words, it's half an article.  
(Hint, hint.)


David, if you (or anyone else reading this thread) would like to  
contribute an article to Spectrum magazine on this or related topics,  
please contact me.


You can reach me at my part-time address, edi...@intl-spectrum.com,  
or at my regular address or phone number in the sig block below.


An Agile Anecdote: I was going to try a simple form of XP (Extreme  
Programming) on a project several years ago. The client loved the idea  
and agreed to it with few reservations. I knew they just didn't get  
it when the next meeting they asked me to provide them with a Gantt  
chart showing the iteration milestones and what features would be in  
each iteration.


Regards,

Clif

--
W. Clifton Oliver, CCP
CLIFTON OLIVER  ASSOCIATES
Tel: +1 619 460 5678Web: www.oliver.com


On Oct 15, 2009, at 1:36 PM, Boydell, Stuart wrote:


Good post!

Stuart Boydell

-Original Message-
From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org 
] On Behalf Of David A Barrett

Sent: Friday, 16 October 2009 07:01
To: u2-users@listserver.u2ug.org
Subject: [U2] Agile and Scrum

As a Scrum practitioner in an MV environment for the past 5 years or  
so, I

think I can shed some light on this.  First, the Agile Manifesto:




___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Agile and Scrum

2009-10-15 Thread Dawn Wolthuis
Good job and thank you for writing that up.

I've been trying on the scrum front, after having some past project
successes with various agile techniques, but I do not feel like I'm
particularly successful on the Scrum front.

We have our tickets for requirements (user stories) and tasks in
Trac, so we attempted to get http://www.ohloh.net/p/agilo-scrum
installed, to no avail. I am now attempting to use scrumy.com, which I
like but it has no cross-reference to trac so that dual entry doesn't
quite work for us and we haven't yet gotten into the swing of it.

Of course the tools do not make Scrum, but it is difficult to do Scrum
without at least a burn-down report. Additionally, there are a few
best practices we do not have, such as all developers being remote
(each typically being many states away from the next) and most work
just a few sweat-equity hours each week on the project. I asked for
suggestions on an agile list a while back and they suggested going to
a weekly sprint, which I have tried a few times.

The good news is that even with the few techniques we are using from
Scrum, such as switching from a daily to a weekly Scrum meeting, and
from having a stand up meeting to a skype conference call, but
asking the same Scrum questions, we continue to move forward, even if
at a very slow pace. We are not standing still, spinning or digging a
hole as software projects can sometimes do. We are simply failing to
use some of the key aspects of Scrum and failing to move fast, things
I suspect might be related. I feel like I could do better, so any
suggestions, given our constraints (no one co-located and no one
getting paid, for example) would be much appreciated.

Thanks.  --dawn


On Thu, Oct 15, 2009 at 3:01 PM, David A Barrett dave.barr...@lawpro.ca wrote:
 As a Scrum practitioner in an MV environment for the past 5 years or so, I
 think I can shed some light on this.  First, the Agile Manifesto:

We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:

Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

That is, while there is value in the items on
the right, we value the items on the left more.

 The basic idea behind Scrum is that you divide the work to be done into
 little chunks and they are put in a list called the Product Backlog.
 Usually each chunk is an individual feature.  The customer prioritizes the
 Product Backlog, usually in a meeting with the Development Team who supply
 some time estimates.  Then the Team decides what Backlog items they can
 complete in a fixed time period (usually 30 days), called a Sprint.  They
 commit to completing those items.  Complete means fully tested,
 potentially implementable code.  At the end of the Sprint, the Development
 Teams shows what they have completed to the customer.  Rinse and repeat.

 Once the Sprint has started, the list of PB items chosen cannot be
 changed.  This is the golden rule.  If you need to change it, then cancel
 the whole Sprint, deliver nothing, and start a new one.  In 5 years, we've
 done that once (and it turned out to be a waste of time).  It's a big
 stick.

 Really important is the idea that the customer sees completed work each
 Sprint.  This is guaranteed to give them ideas, and let them see where
 problems may come up.  The result of that is that some things in the
 Product Backlog may move up or down in priority, and new items will be
 added to the Product Backlog.  I am constantly amazed at how poor
 non-programmers are at visualizing how unwritten software will work.  This
 becomes a non-issue in Scrum.

 Any non-trivial bug is simply added to the Product Backlog.  We don't
 argue about whether or not something is a bug, a new feature, a change in
 scope or mission from God any more.  If it is going to take the
 Development Team's time, then it goes in the Backlog and the customer can
 assign a priority to it.  End of discussion.

 In my opinion, it's a risk free approach to at least try on a project.
 Worst case scenario, you waste some time working on the stuff the customer
 thinks is the most important.

 There's no reason why you need to ditch documentation.  Just make it part
 of the definition of complete.

 There are two major adjustments that programmers need to make.  The first
 just happens by itself:  The programmers realize they don't own the
 software.  I can't remember the last time that we had a fight with the
 users over how the software should work, or what it should look like or
 whatever.  If they're wrong, they'll see it in 30 days and they'll have to
 commit more of the development time to fixing it, but they won't be able
 to point fingers at the Team.  We just build what they ask for.

 The second is that the programmers need to adopt a just good enough
 approach to programming.  

Re: [U2] Agile and Scrum

2009-10-15 Thread Ross Ferris
Hi David,

The rollback can be pretty easy if you have a virtual environment for
the database testing ... 

Great story!

Ross Ferris
Stamina Software
Visage  Better by Design!


-Original Message-
From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-
boun...@listserver.u2ug.org] On Behalf Of David A Barrett
Sent: Friday, 16 October 2009 7:01 AM
To: u2-users@listserver.u2ug.org
Subject: [U2] Agile and Scrum

SNIP
There are some Agile concepts that are a little tough to implement in
an
MV environment.  Test Driven Development, for instance, is tough
because
you need an automated testing tool, and most MV programs constantly
update
the database, which means you need to roll back your database in order
to
reuse the test cases.  All of which is tough.




___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users