[pypy-dev] How agile is PyPy?

Laura Creighton lac at strakt.com
Wed Sep 28 18:20:33 CEST 2005


One thing that is rareley mentioned but rather important for agile
development is the measurement of how often you _get it wrong_.  (Or
at least, throw it out.)  This is because the results run counter to
traditional metrics of software development.  Agility means the
ability to get it wrong.  So -- within limits -- more wrong is better.

In traditional, completely non-agile, development, there is only time
to build one implementation.  You must get it correct the first time.
Therefore you spend forever sitting down and planning 'the correct way
to do something'.  And then you do it.  Of course, fairly soon it
becomes obvious that the very best plan you could come up with
overlooked certain very important things.  And this is just too bad,
because you don't have time to do things except the one way, so you
have to make as few changes to the master plan as possible ... and so
it goes.  Eventually, over time, the software can no longer stand the
new demands that are put on it, and it is time to rewrite from scratch.
You just cannot patch it up any more.

In agile development you rewrite a lot of small things a lot.  Instead
of discussing what is the best way to implement feature Q, you can
just go off and _build_ 3 ways to implement feature Q, and then look
at them and measure them, if it is appropriate, and see what is
better.  But because you have the ability to persue different ways of
doing things, you end up throwing out a lot of code.  

You also need language support for this -- you can talk all you like
about agile development, but some languages are so hard to write code
in that you really will not have time to try 3 or 5 or 7
implementations of an idea.  Plus having sweated bricks to make one,
you are in love with your own code, and find it hard to toss it when
the opportunity arises.

So if you aren't throwing out a lot of code, then you aren't being
very agile.  I'd say we're excellent on that score.

Also -- while traditional agile methodolgies talk about _responding_
to change -- generally from the customer -- we don't have any.  So we
make change just because we think it would be a good -- or interesting
thing to do.  We're not responding to outside pressures.  Indeed, we
would like it if the EU was a bit more flexible, and we could make
some changes to our proposal on the basis of what we have learned by
doing.  But the EU is not very agile, and poor at responding to
changes desired by funded project consortia.

Laura

In a message of Tue, 27 Sep 2005 22:20:52 +0200, Beatrice During writes:
>--8323328-2105496072-1127852452=:25960
>Content-Type: TEXT/PLAIN; charset=ISO-8859-1; format=flowed
>Content-Transfer-Encoding: 8BIT
>
>Hi there
>
>I am working on documenting PyPy (the project) as a showcase of agile 
>development. In order to be able to do this I would love to get some 
>thoughts and reflections from you who are working on /following PyPy and 
>the question is of course - how agile are we?
>
>Here is some short notes on success factors of agile approaches (from an 
>eworkshop in 2002 - Cockburn, Beck etc, 
>http://fc-md.umd.edu/projects/Agile/Summary/SummaryPF.htm):
>
>-------------------------------------------------------------------------
>In general, the group agreed that the following are the success factors 
>for agile development:
>
>§         Negotiation: If people are willing to keep talking and learning,
> 	  you are, almost by definition, agile.
>
>§         Ability to continuously learn
>
>§         Responsibly responding to change.
>
>§         Environment where rapid communication is enabled.
>
>§         Team reasonably in charge of its own destiny (being allowed to
> 	  succeed).
>
>§         People are valued over other factors
>
>§         The team needs to be more than just able, it needs to actually
>           succeed. There needs to be a support network for each
> 	  individual in the
> 	  team to make a contribution however small.
>------------------------------------------------------------------------
>
>How does these factors apply to PyPy and this community? Are we doing 
>other things that is not mentioned here that is working well for us? Thin
>gs we could do better?
>
>Your responses will be part of documentation about PyPy/agile dev 
>(sprints) that will be distributed to the EU, Universities, various 
>companies and other Open Source projects who have stated a clear interest
> 
>in the PyPy showcase.....
>
>If you feel that answering this email doesnt really fit the purpose of 
>this mailinglist - please answer to me specifically.
>
>Thank you for your contribution!
>
>Cheers
>Bea
>
>
>Beatrice Düring			Change Maker
>Tel: 031- 7750940		Järntorget 3
>Mobil: 0734- 22 89 06		413 04 Göteborg
>E-post: bea at changemaker.nu	www.changemaker.nu
>
> 	"Alla dessa måsten och alldaglighet.
> 	Allt detta som binder vår verklighet
> 	i bojor av skam och rep utav tvång.
> 	Alla dessa kedjor som binder vår sång.
> 	Jag skall slita dem alla i små, små stycken
> 	och möjligtvis av resterna göra mig smycken."
> 							- hemlig
>
>--8323328-2105496072-1127852452=:25960
>Content-Type: text/plain; charset="us-ascii"
>MIME-Version: 1.0
>Content-Transfer-Encoding: 7bit
>Content-Disposition: inline
>
>_______________________________________________
>pypy-dev at codespeak.net
>http://codespeak.net/mailman/listinfo/pypy-dev
>--8323328-2105496072-1127852452=:25960--



More information about the Pypy-dev mailing list