<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.uabgrid.uab.edu/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cmbellah%40uab.edu</id>
	<title>Cheaha - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.uabgrid.uab.edu/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cmbellah%40uab.edu"/>
	<link rel="alternate" type="text/html" href="https://docs.uabgrid.uab.edu/wiki/Special:Contributions/Cmbellah@uab.edu"/>
	<updated>2026-04-28T21:20:00Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.38.2</generator>
	<entry>
		<id>https://docs.uabgrid.uab.edu/w/index.php?title=AgileProgramming/xp&amp;diff=1706</id>
		<title>AgileProgramming/xp</title>
		<link rel="alternate" type="text/html" href="https://docs.uabgrid.uab.edu/w/index.php?title=AgileProgramming/xp&amp;diff=1706"/>
		<updated>2008-10-28T15:25:48Z</updated>

		<summary type="html">&lt;p&gt;Cmbellah@uab.edu: /* EXTREME PROGRAMMING */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
== [http://en.wikipedia.org/wiki/Agile_software_development AGILE METHODOLOGY] ==&lt;br /&gt;
&lt;br /&gt;
=== What is Agile Methodology? ===&lt;br /&gt;
 &lt;br /&gt;
* Group of software development methodologies&lt;br /&gt;
* Project management process&lt;br /&gt;
* Set of engineering best practices&lt;br /&gt;
* Business approach&lt;br /&gt;
&lt;br /&gt;
Agile methodology aims to deliver high quality software which meets the customer's needs and company goals rapidly.&lt;br /&gt;
&lt;br /&gt;
=== History ===&lt;br /&gt;
&lt;br /&gt;
* Seventeen professionals, consisting of experts in programming, CTO's, founders of software consulting firms such as Martin Fowler – ThoughtWorks, Dave Thomas,  Andrew Hunt (co-authors of The Pragmatic Programmers), Ron Jeffries – propietor of [http://www.xprogramming.com XProgramming.com] and others, got together on February 11-13, 2001 at the Snowbird Ski Resort in Utah &lt;br /&gt;
* The Snowbird meet also consisted of representatives from some of the existing software methodologies such as Extreme Programming, Adaptive Software Development, Crystal, and SCRUM&lt;br /&gt;
* Their agenda was to develop  a 'lightweight'  process as an alternative to documentation driven, heavyweight software development processes (Waterfall, Cowboy coding)&lt;br /&gt;
* Result of the Snowbird meet – [http://www.agilemanifesto.org The Agile Manifesto] and the [http://www.agilealliance.com/home Agile Alliance]&lt;br /&gt;
* Agile Manifesto values&lt;br /&gt;
** '''Individuals and interactions''' over processes and tools &lt;br /&gt;
** '''Working software''' over comprehensive documentation &lt;br /&gt;
** '''Customer collaboration''' over contract negotiation &lt;br /&gt;
** '''Responding to change''' over following a plan&lt;br /&gt;
&lt;br /&gt;
=== What are Agile Manifesto practices? ===&lt;br /&gt;
&lt;br /&gt;
* Customer satisfaction by rapid, continuous delivery of useful software&lt;br /&gt;
* Working software is delivered frequently (weeks rather than months)&lt;br /&gt;
* Working software is the principal measure of progress&lt;br /&gt;
* Even late changes in requirements are welcomed&lt;br /&gt;
* Close, daily cooperation between business people and developers&lt;br /&gt;
* Face-to-face conversation is the best form of communication (Co-location)&lt;br /&gt;
* Projects are built around motivated individuals, who should be trusted&lt;br /&gt;
* Continuous attention to technical excellence and good design&lt;br /&gt;
* Simplicity&lt;br /&gt;
* Self-organizing teams&lt;br /&gt;
* Regular adaptation to changing circumstances&lt;br /&gt;
&lt;br /&gt;
=== What are existing Agile Methodologies? ===&lt;br /&gt;
&lt;br /&gt;
* Extreme Programming&lt;br /&gt;
* Scrum&lt;br /&gt;
* Crystal Clear&lt;br /&gt;
* Feature Driven Development&lt;br /&gt;
* Dynamic Systems Development Method (DSDM)&lt;br /&gt;
&lt;br /&gt;
== EXTREME PROGRAMMING ==&lt;br /&gt;
&lt;br /&gt;
Extreme programming is a deliberate and disciplined approach to software development.   Previously successful and effective methods have been emphasized to the “extreme,” while unproductive activities have been reduced as much as possible. &lt;br /&gt;
&lt;br /&gt;
'''How to begin with XP?'''   Start by striving for user involvement.   Always have user presence within the development team. Put tests in place.  The better tests you have, the faster and more effectively you will move.  Include refactoring, which lets you begin with simple designs and grow them as needed.  Pair programming provides built-in reviews and learning, and can help you spread the XP practices within a team.  Pairs are switched often.&lt;br /&gt;
&lt;br /&gt;
'''Stand up meeting''' every morning is used to communicate problems, solutions, and promote team focus. Everyone stands up in a circle to avoid long discussions.  Each person states what they did yesterday, what they plan to do today, and what, if anything, is holding them up.&lt;br /&gt;
&lt;br /&gt;
'''User stories''' – &lt;br /&gt;
* Written by the customer, focus on customer needs&lt;br /&gt;
* Cards are moved around to create release plan.&lt;br /&gt;
* About three sentences of text.&lt;br /&gt;
* Used to create time estimates for release planning meeting.&lt;br /&gt;
* Used instead of big requirements document. &lt;br /&gt;
* Drive the creation of acceptance tests&lt;br /&gt;
* How much development time to implement a story?  Longer than 3 weeks means you need    to break the story down further. Less than 1 week and you are at too detailed a level, combine some stories. &lt;br /&gt;
&lt;br /&gt;
'''Release planning meeting''' creates release plan laying out overall project.    &lt;br /&gt;
&lt;br /&gt;
'''Release plan''' is used to create iteration plans for each iteration.   Release often - small releases to customer.&lt;br /&gt;
&lt;br /&gt;
'''Iteration planning meeting''' at the beginning of each iteration.  Individual iterations are planned in detail just before each iteration begins and not in advance. &lt;br /&gt;
&lt;br /&gt;
Each '''iteration''' is 1-3 weeks long.&lt;br /&gt;
&lt;br /&gt;
Use '''CRC cards''' (Class, Responsibilities, and Collaboration) for design sessions, with everyone moving the cards around. Forces us away from procedure-oriented toward object-oriented. &lt;br /&gt;
&lt;br /&gt;
A '''spike solution''' is a very simple program to explore potential solutions. Build a system which only addresses the problem under examination.  Expect to throw it away.&lt;br /&gt;
&lt;br /&gt;
'''Unit tests''' are created early and each class is tested.  &lt;br /&gt;
&lt;br /&gt;
'''Acceptance tests''' verify that the user story has been correctly implemented.  &lt;br /&gt;
&lt;br /&gt;
The '''rules must be followed''' until the team has changed them. All  developers know exactly what to expect from each other, and having a set of rules is the only way to set these expectations.  At meetings, talk about what is working and what is not, and fix XP.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
http://www.xprogramming.com/xpmag/whatisxp.htm#test&lt;br /&gt;
&lt;br /&gt;
http://extremeprogramming.org&lt;br /&gt;
&lt;br /&gt;
http://extremeprogramming.org/map/project.html - Clickable diagram of XP components&lt;br /&gt;
&lt;br /&gt;
http://www.xp123.com/xplor/xp9912/index.shtml&lt;br /&gt;
&lt;br /&gt;
http://www.xp123.com/xplor/xp0206a/index.shtml  - Metaphors for XP components&lt;/div&gt;</summary>
		<author><name>Cmbellah@uab.edu</name></author>
	</entry>
	<entry>
		<id>https://docs.uabgrid.uab.edu/w/index.php?title=AgileProgramming/xp&amp;diff=1705</id>
		<title>AgileProgramming/xp</title>
		<link rel="alternate" type="text/html" href="https://docs.uabgrid.uab.edu/w/index.php?title=AgileProgramming/xp&amp;diff=1705"/>
		<updated>2008-10-28T15:24:30Z</updated>

		<summary type="html">&lt;p&gt;Cmbellah@uab.edu: /* EXTREME PROGRAMMING */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
== [http://en.wikipedia.org/wiki/Agile_software_development AGILE METHODOLOGY] ==&lt;br /&gt;
&lt;br /&gt;
=== What is Agile Methodology? ===&lt;br /&gt;
 &lt;br /&gt;
* Group of software development methodologies&lt;br /&gt;
* Project management process&lt;br /&gt;
* Set of engineering best practices&lt;br /&gt;
* Business approach&lt;br /&gt;
&lt;br /&gt;
Agile methodology aims to deliver high quality software which meets the customer's needs and company goals rapidly.&lt;br /&gt;
&lt;br /&gt;
=== History ===&lt;br /&gt;
&lt;br /&gt;
* Seventeen professionals, consisting of experts in programming, CTO's, founders of software consulting firms such as Martin Fowler – ThoughtWorks, Dave Thomas,  Andrew Hunt (co-authors of The Pragmatic Programmers), Ron Jeffries – propietor of [http://www.xprogramming.com XProgramming.com] and others, got together on February 11-13, 2001 at the Snowbird Ski Resort in Utah &lt;br /&gt;
* The Snowbird meet also consisted of representatives from some of the existing software methodologies such as Extreme Programming, Adaptive Software Development, Crystal, and SCRUM&lt;br /&gt;
* Their agenda was to develop  a 'lightweight'  process as an alternative to documentation driven, heavyweight software development processes (Waterfall, Cowboy coding)&lt;br /&gt;
* Result of the Snowbird meet – [http://www.agilemanifesto.org The Agile Manifesto] and the [http://www.agilealliance.com/home Agile Alliance]&lt;br /&gt;
* Agile Manifesto values&lt;br /&gt;
** '''Individuals and interactions''' over processes and tools &lt;br /&gt;
** '''Working software''' over comprehensive documentation &lt;br /&gt;
** '''Customer collaboration''' over contract negotiation &lt;br /&gt;
** '''Responding to change''' over following a plan&lt;br /&gt;
&lt;br /&gt;
=== What are Agile Manifesto practices? ===&lt;br /&gt;
&lt;br /&gt;
* Customer satisfaction by rapid, continuous delivery of useful software&lt;br /&gt;
* Working software is delivered frequently (weeks rather than months)&lt;br /&gt;
* Working software is the principal measure of progress&lt;br /&gt;
* Even late changes in requirements are welcomed&lt;br /&gt;
* Close, daily cooperation between business people and developers&lt;br /&gt;
* Face-to-face conversation is the best form of communication (Co-location)&lt;br /&gt;
* Projects are built around motivated individuals, who should be trusted&lt;br /&gt;
* Continuous attention to technical excellence and good design&lt;br /&gt;
* Simplicity&lt;br /&gt;
* Self-organizing teams&lt;br /&gt;
* Regular adaptation to changing circumstances&lt;br /&gt;
&lt;br /&gt;
=== What are existing Agile Methodologies? ===&lt;br /&gt;
&lt;br /&gt;
* Extreme Programming&lt;br /&gt;
* Scrum&lt;br /&gt;
* Crystal Clear&lt;br /&gt;
* Feature Driven Development&lt;br /&gt;
* Dynamic Systems Development Method (DSDM)&lt;br /&gt;
&lt;br /&gt;
== EXTREME PROGRAMMING ==&lt;br /&gt;
&lt;br /&gt;
Extreme programming is a deliberate and disciplined approach to software development.   Previously successful and effective methods have been emphasized to the “extreme,” while unproductive activities have been reduced as much as possible. &lt;br /&gt;
&lt;br /&gt;
'''How to begin with XP?'''   Start by striving for user involvement.   Always have user presence within the development team. Put tests in place.  The better tests you have, the faster and more effectively you will move.  Include refactoring, which lets you begin with simple designs and grow them as needed.  Pair programming provides built-in reviews and learning, and can help you spread the XP practices within a team.  Pairs are switched often.&lt;br /&gt;
&lt;br /&gt;
'''Stand up meeting''' every morning is used to communicate problems, solutions, and promote team focus. Everyone stands up in a circle to avoid long discussions.  Each person states what they did yesterday, what they plan to do today, and what, if anything, is holding them up.&lt;br /&gt;
&lt;br /&gt;
'''User stories''' – &lt;br /&gt;
* Written by the customer, focus on customer needs&lt;br /&gt;
* Cards are moved around to create release plan.&lt;br /&gt;
* About three sentences of text.&lt;br /&gt;
* Used to create time estimates for release planning meeting.&lt;br /&gt;
* Used instead of big requirements document. &lt;br /&gt;
* Drive the creation of acceptance tests&lt;br /&gt;
* How much development time to implement a story?  Longer than 3 weeks means you need    to break the story down further. Less than 1 week and you are at too detailed a level, combine some stories. &lt;br /&gt;
&lt;br /&gt;
'''Release planning meeting''' creates release plan laying out overall project.    &lt;br /&gt;
&lt;br /&gt;
'''Release plan''' is used to create iteration plans for each iteration.   Release often - small releases to customer.&lt;br /&gt;
&lt;br /&gt;
'''Iteration planning meeting''' at the beginning of each iteration.  Individual iterations are planned in detail just before each iteration begins and not in advance. &lt;br /&gt;
&lt;br /&gt;
Each '''iteration''' is 1-3 weeks long.&lt;br /&gt;
&lt;br /&gt;
Use '''CRC cards''' for design sessions.&lt;br /&gt;
&lt;br /&gt;
A '''spike solution''' is a very simple program to explore potential solutions. Build a system which only addresses the problem under examination.  Expect to throw it away.&lt;br /&gt;
&lt;br /&gt;
'''Unit tests''' are created early and each class is tested.  &lt;br /&gt;
&lt;br /&gt;
'''Acceptance tests''' verify that the user story has been correctly implemented.  &lt;br /&gt;
&lt;br /&gt;
The '''rules must be followed''' until the team has changed them. All  developers know exactly what to expect from each other, and having a set of rules is the only way to set these expectations.  At meetings, talk about what is working and what is not, and fix XP.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
http://www.xprogramming.com/xpmag/whatisxp.htm#test&lt;br /&gt;
&lt;br /&gt;
http://extremeprogramming.org&lt;br /&gt;
&lt;br /&gt;
http://extremeprogramming.org/map/project.html - Clickable diagram of XP components&lt;br /&gt;
&lt;br /&gt;
http://www.xp123.com/xplor/xp9912/index.shtml&lt;br /&gt;
&lt;br /&gt;
http://www.xp123.com/xplor/xp0206a/index.shtml  - Metaphors for XP components&lt;/div&gt;</summary>
		<author><name>Cmbellah@uab.edu</name></author>
	</entry>
	<entry>
		<id>https://docs.uabgrid.uab.edu/w/index.php?title=AgileProgramming/xp&amp;diff=1696</id>
		<title>AgileProgramming/xp</title>
		<link rel="alternate" type="text/html" href="https://docs.uabgrid.uab.edu/w/index.php?title=AgileProgramming/xp&amp;diff=1696"/>
		<updated>2008-10-27T19:33:55Z</updated>

		<summary type="html">&lt;p&gt;Cmbellah@uab.edu: /* EXTREME PROGRAMMING */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
== AGILE METHODOLOGY ==&lt;br /&gt;
&lt;br /&gt;
=== What is Agile Methodology? ===&lt;br /&gt;
 &lt;br /&gt;
 [http://en.wikipedia.org/wiki/Agile_software_development]&lt;br /&gt;
 * Group of software development methodologies&lt;br /&gt;
 * Project management process&lt;br /&gt;
 * Set of engineering best practices&lt;br /&gt;
 * Business approach&lt;br /&gt;
&lt;br /&gt;
Agile methodology aims to deliver high quality software which meets the customer's needs and company goals rapidly.&lt;br /&gt;
&lt;br /&gt;
=== History ===&lt;br /&gt;
&lt;br /&gt;
 * Seventeen professionals, consisting of experts in programming, CTO's, founders of software consulting firms such as Martin Fowler – ThoughtWorks , Dave Thomas,  Andrew Hunt (co-authors of The Pragmatic Programmers), Ron Jeffries – propietor of Xprogramming.com and others, got together on February 11-13, 2001 at the Snowbird Ski Resort in Utah    &lt;br /&gt;
 * The agenda was to develop  a 'lightweight'  process as an alternative to documentation driven, heavyweight software development processes (Waterfall, Cowboy coding)&lt;br /&gt;
 * The Snowbird meet consisted of representatives from some of the existing software methodologies such as Extreme Programming, Adaptive Software Development, Crystal, and SCRUM&lt;br /&gt;
 * Result of the Snowbird meet – The Agile Manifesto[http://www.agilemanifesto.org] and the Agile Alliance[http://www.agilealliance.com/home]&lt;br /&gt;
 * Agile Manifesto values&lt;br /&gt;
 ** '''Individuals and interactions''' over processes and tools &lt;br /&gt;
 ** '''Working software''' over comprehensive documentation &lt;br /&gt;
 ** '''Customer collaboration''' over contract negotiation &lt;br /&gt;
 ** '''Responding to change''' over following a plan&lt;br /&gt;
&lt;br /&gt;
=== What are Agile Manifesto practices? ===&lt;br /&gt;
&lt;br /&gt;
 * Customer satisfaction by rapid, continuous delivery of useful software&lt;br /&gt;
 * Working software is delivered frequently (weeks rather than months)&lt;br /&gt;
 * Working software is the principal measure of progress&lt;br /&gt;
 * Even late changes in requirements are welcomed&lt;br /&gt;
 * Close, daily cooperation between business people and developers&lt;br /&gt;
 * Face-to-face conversation is the best form of communication (Co-location)&lt;br /&gt;
 * Projects are built around motivated individuals, who should be trusted&lt;br /&gt;
 * Continuous attention to technical excellence and good design&lt;br /&gt;
 * Simplicity&lt;br /&gt;
 * Self-organizing teams&lt;br /&gt;
 * Regular adaptation to changing circumstances&lt;br /&gt;
&lt;br /&gt;
=== What are existing Agile Methodologies? ===&lt;br /&gt;
&lt;br /&gt;
 * Extreme Programming&lt;br /&gt;
 * Scrum&lt;br /&gt;
 * Crystal Clear&lt;br /&gt;
 * Feature Driven Development&lt;br /&gt;
 * Dynamic Systems Development Method (DSDM)&lt;br /&gt;
&lt;br /&gt;
== EXTREME PROGRAMMING ==&lt;br /&gt;
&lt;br /&gt;
Extreme programming is a deliberate and disciplined approach to software development.   Previously successful and effective methods have been emphasized to the “extreme,” while unproductive activities have been reduced as much as possible. &lt;br /&gt;
&lt;br /&gt;
'''How to begin with XP?'''   Start by striving for user involvement.   Always have user presence within the development team. Put tests in place.  The better tests you have, the faster and more effectively you will move.  Include refactoring, which lets you begin with simple designs and grow them as needed.  Pair programming provides built-in reviews and learning, and can help you spread the XP practices within a team.  Pairs are switched often.&lt;br /&gt;
&lt;br /&gt;
'''Stand up meeting''' every morning is used to communicate problems, solutions, and promote team focus. Everyone stands up in a circle to avoid long discussions.  Each person states what they did yesterday, what they plan to do today, and what, if anything, is holding them up.&lt;br /&gt;
&lt;br /&gt;
'''User stories''' – &lt;br /&gt;
* Written by the customer, focus on customer needs&lt;br /&gt;
* Cards are moved around to create release plan.&lt;br /&gt;
* About three sentences of text.&lt;br /&gt;
* Used to create time estimates for release planning meeting.&lt;br /&gt;
* Used instead of big requirements document. &lt;br /&gt;
* Drive the creation of acceptance tests&lt;br /&gt;
* How much development time to implement a story?  Longer than 3 weeks means you need    to break the story down further. Less than 1 week and you are at too detailed a level, combine some stories. &lt;br /&gt;
&lt;br /&gt;
'''Release planning meeting''' creates release plan laying out overall project.    &lt;br /&gt;
&lt;br /&gt;
'''Release plan''' is used to create iteration plans for each iteration.   Release often - small releases to customer.&lt;br /&gt;
&lt;br /&gt;
'''Iteration planning meeting''' at the beginning of each iteration.  Individual iterations are planned in detail just before each iteration begins and not in advance. &lt;br /&gt;
&lt;br /&gt;
Each '''iteration''' is 1-3 weeks long.&lt;br /&gt;
&lt;br /&gt;
'''Unit tests''' are created early and each class is tested.  &lt;br /&gt;
&lt;br /&gt;
'''Acceptance tests''' verify that the user story has been correctly implemented.  &lt;br /&gt;
&lt;br /&gt;
The '''rules must be followed''' until the team has changed them. All  developers know exactly what to expect from each other, and having a set of rules is the only way to set these expectations.  At meetings, talk about what is working and what is not, and fix XP.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
{{reflist|2}}&lt;br /&gt;
http://www.xprogramming.com/xpmag/whatisxp.htm#test&lt;br /&gt;
&lt;br /&gt;
http://extremeprogramming.org&lt;br /&gt;
&lt;br /&gt;
http://extremeprogramming.org/map/project.html - Clickable diagram of XP components&lt;br /&gt;
&lt;br /&gt;
http://www.xp123.com/xplor/xp9912/index.shtml&lt;br /&gt;
&lt;br /&gt;
http://www.xp123.com/xplor/xp0206a/index.shtml  - Metaphors for XP components&lt;/div&gt;</summary>
		<author><name>Cmbellah@uab.edu</name></author>
	</entry>
	<entry>
		<id>https://docs.uabgrid.uab.edu/w/index.php?title=AgileProgramming/xp&amp;diff=1695</id>
		<title>AgileProgramming/xp</title>
		<link rel="alternate" type="text/html" href="https://docs.uabgrid.uab.edu/w/index.php?title=AgileProgramming/xp&amp;diff=1695"/>
		<updated>2008-10-27T19:32:10Z</updated>

		<summary type="html">&lt;p&gt;Cmbellah@uab.edu: /* EXTREME PROGRAMMING */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
== AGILE METHODOLOGY ==&lt;br /&gt;
&lt;br /&gt;
=== What is Agile Methodology? ===&lt;br /&gt;
 &lt;br /&gt;
 [http://en.wikipedia.org/wiki/Agile_software_development]&lt;br /&gt;
 * Group of software development methodologies&lt;br /&gt;
 * Project management process&lt;br /&gt;
 * Set of engineering best practices&lt;br /&gt;
 * Business approach&lt;br /&gt;
&lt;br /&gt;
Agile methodology aims to deliver high quality software which meets the customer's needs and company goals rapidly.&lt;br /&gt;
&lt;br /&gt;
=== History ===&lt;br /&gt;
&lt;br /&gt;
 * Seventeen professionals, consisting of experts in programming, CTO's, founders of software consulting firms such as Martin Fowler – ThoughtWorks , Dave Thomas,  Andrew Hunt (co-authors of The Pragmatic Programmers), Ron Jeffries – propietor of Xprogramming.com and others, got together on February 11-13, 2001 at the Snowbird Ski Resort in Utah    &lt;br /&gt;
 * The agenda was to develop  a 'lightweight'  process as an alternative to documentation driven, heavyweight software development processes (Waterfall, Cowboy coding)&lt;br /&gt;
 * The Snowbird meet consisted of representatives from some of the existing software methodologies such as Extreme Programming, Adaptive Software Development, Crystal, and SCRUM&lt;br /&gt;
 * Result of the Snowbird meet – The Agile Manifesto[http://www.agilemanifesto.org] and the Agile Alliance[http://www.agilealliance.com/home]&lt;br /&gt;
 * Agile Manifesto values&lt;br /&gt;
 ** '''Individuals and interactions''' over processes and tools &lt;br /&gt;
 ** '''Working software''' over comprehensive documentation &lt;br /&gt;
 ** '''Customer collaboration''' over contract negotiation &lt;br /&gt;
 ** '''Responding to change''' over following a plan&lt;br /&gt;
&lt;br /&gt;
=== What are Agile Manifesto practices? ===&lt;br /&gt;
&lt;br /&gt;
 * Customer satisfaction by rapid, continuous delivery of useful software&lt;br /&gt;
 * Working software is delivered frequently (weeks rather than months)&lt;br /&gt;
 * Working software is the principal measure of progress&lt;br /&gt;
 * Even late changes in requirements are welcomed&lt;br /&gt;
 * Close, daily cooperation between business people and developers&lt;br /&gt;
 * Face-to-face conversation is the best form of communication (Co-location)&lt;br /&gt;
 * Projects are built around motivated individuals, who should be trusted&lt;br /&gt;
 * Continuous attention to technical excellence and good design&lt;br /&gt;
 * Simplicity&lt;br /&gt;
 * Self-organizing teams&lt;br /&gt;
 * Regular adaptation to changing circumstances&lt;br /&gt;
&lt;br /&gt;
=== What are existing Agile Methodologies? ===&lt;br /&gt;
&lt;br /&gt;
 * Extreme Programming&lt;br /&gt;
 * Scrum&lt;br /&gt;
 * Crystal Clear&lt;br /&gt;
 * Feature Driven Development&lt;br /&gt;
 * Dynamic Systems Development Method (DSDM)&lt;br /&gt;
&lt;br /&gt;
== EXTREME PROGRAMMING ==&lt;br /&gt;
&lt;br /&gt;
Extreme programming is a deliberate and disciplined approach to software development.   Previously successful and effective methods have been emphasized to the “extreme,” while unproductive activities have been reduced as much as possible. &lt;br /&gt;
&lt;br /&gt;
'''How to begin with XP?'''   Start by striving for user involvement.   Always have user presence within the development team. Put tests in place.  The better tests you have, the faster and more effectively you will move.  Include refactoring, which lets you begin with simple designs and grow them as needed.  Pair programming provides built-in reviews and learning, and can help you spread the XP practices within a team.  Pairs are switched often.&lt;br /&gt;
&lt;br /&gt;
'''Stand up meeting''' every morning is used to communicate problems, solutions, and promote team focus. Everyone stands up in a circle to avoid long discussions.  Each person states what they did yesterday, what they plan to do today, and what, if anything, is holding them up.&lt;br /&gt;
'''&lt;br /&gt;
User stories''' – &lt;br /&gt;
* Written by the customer, focus on customer needs&lt;br /&gt;
* Cards are moved around to create release plan.&lt;br /&gt;
* About three sentences of text.&lt;br /&gt;
* Used to create time estimates for release planning meeting.&lt;br /&gt;
* Used instead of big requirements document. &lt;br /&gt;
* Drive the creation of acceptance tests&lt;br /&gt;
* How much development time to implement a story?  Longer than 3 weeks means you need    to break the story down further. Less than 1 week and you are at too detailed a level, combine some stories. &lt;br /&gt;
'''&lt;br /&gt;
Release planning meeting''' creates release plan laying out overall project.    &lt;br /&gt;
&lt;br /&gt;
'''Release plan''' is used to create iteration plans for each iteration.   Release often - small releases to customer.&lt;br /&gt;
&lt;br /&gt;
'''Iteration planning mtg''' at the beginning of each iteration.  Individual iterations are planned in detail just before each iteration begins and not in advance. &lt;br /&gt;
&lt;br /&gt;
Each '''iteration''' is 1-3 weeks long.&lt;br /&gt;
'''&lt;br /&gt;
Unit tests''' are created early and each class is tested.  &lt;br /&gt;
'''&lt;br /&gt;
Acceptance tests''' verify that the user story has been correctly implemented.  &lt;br /&gt;
&lt;br /&gt;
The '''rules must be followed''' until the team has changed them. All  developers know exactly what to expect from each other, and having a set of rules is the only way to set these expectations.  At meetings, talk about what is working and what is not, and fix XP.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
{{reflist|2}}&lt;br /&gt;
http://www.xprogramming.com/xpmag/whatisxp.htm#test&lt;br /&gt;
&lt;br /&gt;
http://extremeprogramming.org&lt;br /&gt;
&lt;br /&gt;
http://extremeprogramming.org/map/project.html - Clickable diagram of XP components&lt;br /&gt;
&lt;br /&gt;
http://www.xp123.com/xplor/xp9912/index.shtml&lt;br /&gt;
&lt;br /&gt;
http://www.xp123.com/xplor/xp0206a/index.shtml  - Metaphors for XP components&lt;/div&gt;</summary>
		<author><name>Cmbellah@uab.edu</name></author>
	</entry>
	<entry>
		<id>https://docs.uabgrid.uab.edu/w/index.php?title=AgileProgramming/xp&amp;diff=1694</id>
		<title>AgileProgramming/xp</title>
		<link rel="alternate" type="text/html" href="https://docs.uabgrid.uab.edu/w/index.php?title=AgileProgramming/xp&amp;diff=1694"/>
		<updated>2008-10-27T19:29:10Z</updated>

		<summary type="html">&lt;p&gt;Cmbellah@uab.edu: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
== AGILE METHODOLOGY ==&lt;br /&gt;
&lt;br /&gt;
=== What is Agile Methodology? ===&lt;br /&gt;
 &lt;br /&gt;
 [http://en.wikipedia.org/wiki/Agile_software_development]&lt;br /&gt;
 * Group of software development methodologies&lt;br /&gt;
 * Project management process&lt;br /&gt;
 * Set of engineering best practices&lt;br /&gt;
 * Business approach&lt;br /&gt;
&lt;br /&gt;
Agile methodology aims to deliver high quality software which meets the customer's needs and company goals rapidly.&lt;br /&gt;
&lt;br /&gt;
=== History ===&lt;br /&gt;
&lt;br /&gt;
 * Seventeen professionals, consisting of experts in programming, CTO's, founders of software consulting firms such as Martin Fowler – ThoughtWorks , Dave Thomas,  Andrew Hunt (co-authors of The Pragmatic Programmers), Ron Jeffries – propietor of Xprogramming.com and others, got together on February 11-13, 2001 at the Snowbird Ski Resort in Utah    &lt;br /&gt;
 * The agenda was to develop  a 'lightweight'  process as an alternative to documentation driven, heavyweight software development processes (Waterfall, Cowboy coding)&lt;br /&gt;
 * The Snowbird meet consisted of representatives from some of the existing software methodologies such as Extreme Programming, Adaptive Software Development, Crystal, and SCRUM&lt;br /&gt;
 * Result of the Snowbird meet – The Agile Manifesto[http://www.agilemanifesto.org] and the Agile Alliance[http://www.agilealliance.com/home]&lt;br /&gt;
 * Agile Manifesto values&lt;br /&gt;
 ** '''Individuals and interactions''' over processes and tools &lt;br /&gt;
 ** '''Working software''' over comprehensive documentation &lt;br /&gt;
 ** '''Customer collaboration''' over contract negotiation &lt;br /&gt;
 ** '''Responding to change''' over following a plan&lt;br /&gt;
&lt;br /&gt;
=== What are Agile Manifesto practices? ===&lt;br /&gt;
&lt;br /&gt;
 * Customer satisfaction by rapid, continuous delivery of useful software&lt;br /&gt;
 * Working software is delivered frequently (weeks rather than months)&lt;br /&gt;
 * Working software is the principal measure of progress&lt;br /&gt;
 * Even late changes in requirements are welcomed&lt;br /&gt;
 * Close, daily cooperation between business people and developers&lt;br /&gt;
 * Face-to-face conversation is the best form of communication (Co-location)&lt;br /&gt;
 * Projects are built around motivated individuals, who should be trusted&lt;br /&gt;
 * Continuous attention to technical excellence and good design&lt;br /&gt;
 * Simplicity&lt;br /&gt;
 * Self-organizing teams&lt;br /&gt;
 * Regular adaptation to changing circumstances&lt;br /&gt;
&lt;br /&gt;
=== What are existing Agile Methodologies? ===&lt;br /&gt;
&lt;br /&gt;
 * Extreme Programming&lt;br /&gt;
 * Scrum&lt;br /&gt;
 * Crystal Clear&lt;br /&gt;
 * Feature Driven Development&lt;br /&gt;
 * Dynamic Systems Development Method (DSDM)&lt;br /&gt;
&lt;br /&gt;
== EXTREME PROGRAMMING ==&lt;br /&gt;
&lt;br /&gt;
Extreme programming is a deliberate and disciplined approach to software development.   Previously successful and effective methods have been emphasized to the “extreme,” while unproductive activities have been reduced as much as possible. &lt;br /&gt;
&lt;br /&gt;
'''How to begin with XP?'''   Start by striving for user involvement.   Always have user presence with the development team. Put tests in place.  The better tests you have, the faster and more effectively you will move.  Include refactoring, which lets you begin with simple designs and grow them as needed.  Pair programming provides built-in reviews and learning, and can help you spread the XP practices within a team.  Pairs are switched often.&lt;br /&gt;
&lt;br /&gt;
'''Stand up meeting''' every morning is used to communicate problems, solutions, and promote team focus. Everyone stands up in a circle to avoid long discussions.  Each person states what they did yesterday, what they plan to do today, and what, if anything, is holding them up.&lt;br /&gt;
'''&lt;br /&gt;
User stories''' – &lt;br /&gt;
* Written by the customer, focus on customer needs&lt;br /&gt;
* Cards are moved around to create release plan.&lt;br /&gt;
* About three sentences of text.&lt;br /&gt;
* Used to create time estimates for release planning meeting.&lt;br /&gt;
* Used instead of big requirements document. &lt;br /&gt;
* Drive the creation of acceptance tests&lt;br /&gt;
* How much development time to implement a story?  Longer than 3 weeks means you need    to break the story down further. Less than 1 week and you are at too detailed a level, combine some stories. &lt;br /&gt;
'''&lt;br /&gt;
Release planning meeting''' creates release plan laying out overall project.    &lt;br /&gt;
&lt;br /&gt;
'''Release plan''' is used to create iteration plans for each iteration.   Release often - small releases to customer.&lt;br /&gt;
&lt;br /&gt;
'''Iteration planning mtg''' at the beginning of each iteration.  Individual iterations are planned in detail just before each iteration begins and not in advance. &lt;br /&gt;
&lt;br /&gt;
Each '''iteration''' is 1-3 weeks long.&lt;br /&gt;
'''&lt;br /&gt;
Unit tests''' are created early and each class is tested.  &lt;br /&gt;
'''&lt;br /&gt;
Acceptance tests''' verify that the user story has been correctly implemented.  &lt;br /&gt;
&lt;br /&gt;
The '''rules must be followed''' until the team has changed them. All  developers know exactly what to expect from each other, and having a set of rules is the only way to set these expectations.  At meetings, talk about what is working and what is not, and fix XP.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
{{reflist|2}}&lt;br /&gt;
http://www.xprogramming.com/xpmag/whatisxp.htm#test&lt;br /&gt;
&lt;br /&gt;
http://extremeprogramming.org&lt;br /&gt;
&lt;br /&gt;
http://extremeprogramming.org/map/project.html - Clickable diagram of XP components&lt;br /&gt;
&lt;br /&gt;
http://www.xp123.com/xplor/xp9912/index.shtml&lt;br /&gt;
&lt;br /&gt;
http://www.xp123.com/xplor/xp0206a/index.shtml  - Metaphors for XP components&lt;/div&gt;</summary>
		<author><name>Cmbellah@uab.edu</name></author>
	</entry>
	<entry>
		<id>https://docs.uabgrid.uab.edu/w/index.php?title=AgileProgramming/xp&amp;diff=1693</id>
		<title>AgileProgramming/xp</title>
		<link rel="alternate" type="text/html" href="https://docs.uabgrid.uab.edu/w/index.php?title=AgileProgramming/xp&amp;diff=1693"/>
		<updated>2008-10-27T19:28:25Z</updated>

		<summary type="html">&lt;p&gt;Cmbellah@uab.edu: /* EXTREME PROGRAMMING */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
== AGILE METHODOLOGY ==&lt;br /&gt;
&lt;br /&gt;
=== What is Agile Methodology? ===&lt;br /&gt;
 &lt;br /&gt;
 [http://en.wikipedia.org/wiki/Agile_software_development]&lt;br /&gt;
 * Group of software development methodologies&lt;br /&gt;
 * Project management process&lt;br /&gt;
 * Set of engineering best practices&lt;br /&gt;
 * Business approach&lt;br /&gt;
&lt;br /&gt;
Agile methodology aims to deliver high quality software which meets the customer's needs and company goals rapidly.&lt;br /&gt;
&lt;br /&gt;
=== History ===&lt;br /&gt;
&lt;br /&gt;
 * Seventeen professionals, consisting of experts in programming, CTO's, founders of software consulting firms such as Martin Fowler – ThoughtWorks , Dave Thomas,  Andrew Hunt (co-authors of The Pragmatic Programmers), Ron Jeffries – propietor of Xprogramming.com and others, got together on February 11-13, 2001 at the Snowbird Ski Resort in Utah    &lt;br /&gt;
 * The agenda was to develop  a 'lightweight'  process as an alternative to documentation driven, heavyweight software development processes (Waterfall, Cowboy coding)&lt;br /&gt;
 * The Snowbird meet consisted of representatives from some of the existing software methodologies such as Extreme Programming, Adaptive Software Development, Crystal, and SCRUM&lt;br /&gt;
 * Result of the Snowbird meet – The Agile Manifesto[http://www.agilemanifesto.org] and the Agile Alliance[http://www.agilealliance.com/home]&lt;br /&gt;
 * Agile Manifesto values&lt;br /&gt;
 ** '''Individuals and interactions''' over processes and tools &lt;br /&gt;
 ** '''Working software''' over comprehensive documentation &lt;br /&gt;
 ** '''Customer collaboration''' over contract negotiation &lt;br /&gt;
 ** '''Responding to change''' over following a plan&lt;br /&gt;
&lt;br /&gt;
=== What are Agile Manifesto practices? ===&lt;br /&gt;
&lt;br /&gt;
 * Customer satisfaction by rapid, continuous delivery of useful software&lt;br /&gt;
 * Working software is delivered frequently (weeks rather than months)&lt;br /&gt;
 * Working software is the principal measure of progress&lt;br /&gt;
 * Even late changes in requirements are welcomed&lt;br /&gt;
 * Close, daily cooperation between business people and developers&lt;br /&gt;
 * Face-to-face conversation is the best form of communication (Co-location)&lt;br /&gt;
 * Projects are built around motivated individuals, who should be trusted&lt;br /&gt;
 * Continuous attention to technical excellence and good design&lt;br /&gt;
 * Simplicity&lt;br /&gt;
 * Self-organizing teams&lt;br /&gt;
 * Regular adaptation to changing circumstances&lt;br /&gt;
&lt;br /&gt;
=== What are existing Agile Methodologies? ===&lt;br /&gt;
&lt;br /&gt;
 * Extreme Programming&lt;br /&gt;
 * Scrum&lt;br /&gt;
 * Crystal Clear&lt;br /&gt;
 * Feature Driven Development&lt;br /&gt;
 * Dynamic Systems Development Method (DSDM)&lt;br /&gt;
&lt;br /&gt;
== EXTREME PROGRAMMING ==&lt;br /&gt;
&lt;br /&gt;
Extreme programming is a deliberate and disciplined approach to software development.   Previously successful and effective methods have been emphasized to the “extreme,” while unproductive activities have been reduced as much as possible. &lt;br /&gt;
&lt;br /&gt;
'''How to begin with XP?'''   Start by striving for user involvement.   Always have user presence with the development team. Put tests in place.  The better tests you have, the faster and more effectively you will move.  Include refactoring, which lets you begin with simple designs and grow them as needed.  Pair programming provides built-in reviews and learning, and can help you spread the XP practices within a team.  Pairs are switched often.&lt;br /&gt;
&lt;br /&gt;
'''Stand up meeting''' every morning is used to communicate problems, solutions, and promote team focus. Everyone stands up in a circle to avoid long discussions.  Each person states what they did yesterday, what they plan to do today, and what, if anything, is holding them up.&lt;br /&gt;
'''&lt;br /&gt;
User stories''' – &lt;br /&gt;
* Written by the customer, focus on customer needs&lt;br /&gt;
* Cards are moved around to create release plan.&lt;br /&gt;
* About three sentences of text.&lt;br /&gt;
* Used to create time estimates for release planning meeting.&lt;br /&gt;
* Used instead of big requirements document. &lt;br /&gt;
* Drive the creation of acceptance tests&lt;br /&gt;
* How much development time to implement a story?  Longer than 3 weeks means you need    to break the story down further. Less than 1 week and you are at too detailed a level, combine some stories. &lt;br /&gt;
'''&lt;br /&gt;
Release planning meeting''' creates release plan laying out overall project.    &lt;br /&gt;
&lt;br /&gt;
'''Release plan''' is used to create iteration plans for each iteration.   Release often - small releases to customer.&lt;br /&gt;
&lt;br /&gt;
'''Iteration planning mtg''' at the beginning of each iteration.  Individual iterations are planned in detail just before each iteration begins and not in advance. &lt;br /&gt;
&lt;br /&gt;
Each '''iteration''' is 1-3 weeks long.&lt;br /&gt;
'''&lt;br /&gt;
Unit tests''' are created early and each class is tested.  &lt;br /&gt;
'''&lt;br /&gt;
Acceptance tests''' verify that the user story has been correctly implemented.  &lt;br /&gt;
&lt;br /&gt;
The '''rules must be followed''' until the team has changed them. All  developers know exactly what to expect from each other, and having a set of rules is the only way to set these expectations.  At meetings, talk about what is working and what is not, and fix XP.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
{{reflist|2}}&lt;/div&gt;</summary>
		<author><name>Cmbellah@uab.edu</name></author>
	</entry>
	<entry>
		<id>https://docs.uabgrid.uab.edu/w/index.php?title=AgileProgramming/xp&amp;diff=1692</id>
		<title>AgileProgramming/xp</title>
		<link rel="alternate" type="text/html" href="https://docs.uabgrid.uab.edu/w/index.php?title=AgileProgramming/xp&amp;diff=1692"/>
		<updated>2008-10-27T19:26:14Z</updated>

		<summary type="html">&lt;p&gt;Cmbellah@uab.edu: /* EXTREME PROGRAMMING */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
== AGILE METHODOLOGY ==&lt;br /&gt;
&lt;br /&gt;
=== What is Agile Methodology? ===&lt;br /&gt;
 &lt;br /&gt;
 [http://en.wikipedia.org/wiki/Agile_software_development]&lt;br /&gt;
 * Group of software development methodologies&lt;br /&gt;
 * Project management process&lt;br /&gt;
 * Set of engineering best practices&lt;br /&gt;
 * Business approach&lt;br /&gt;
&lt;br /&gt;
Agile methodology aims to deliver high quality software which meets the customer's needs and company goals rapidly.&lt;br /&gt;
&lt;br /&gt;
=== History ===&lt;br /&gt;
&lt;br /&gt;
 * Seventeen professionals, consisting of experts in programming, CTO's, founders of software consulting firms such as Martin Fowler – ThoughtWorks , Dave Thomas,  Andrew Hunt (co-authors of The Pragmatic Programmers), Ron Jeffries – propietor of Xprogramming.com and others, got together on February 11-13, 2001 at the Snowbird Ski Resort in Utah    &lt;br /&gt;
 * The agenda was to develop  a 'lightweight'  process as an alternative to documentation driven, heavyweight software development processes (Waterfall, Cowboy coding)&lt;br /&gt;
 * The Snowbird meet consisted of representatives from some of the existing software methodologies such as Extreme Programming, Adaptive Software Development, Crystal, and SCRUM&lt;br /&gt;
 * Result of the Snowbird meet – The Agile Manifesto[http://www.agilemanifesto.org] and the Agile Alliance[http://www.agilealliance.com/home]&lt;br /&gt;
 * Agile Manifesto values&lt;br /&gt;
 ** '''Individuals and interactions''' over processes and tools &lt;br /&gt;
 ** '''Working software''' over comprehensive documentation &lt;br /&gt;
 ** '''Customer collaboration''' over contract negotiation &lt;br /&gt;
 ** '''Responding to change''' over following a plan&lt;br /&gt;
&lt;br /&gt;
=== What are Agile Manifesto practices? ===&lt;br /&gt;
&lt;br /&gt;
 * Customer satisfaction by rapid, continuous delivery of useful software&lt;br /&gt;
 * Working software is delivered frequently (weeks rather than months)&lt;br /&gt;
 * Working software is the principal measure of progress&lt;br /&gt;
 * Even late changes in requirements are welcomed&lt;br /&gt;
 * Close, daily cooperation between business people and developers&lt;br /&gt;
 * Face-to-face conversation is the best form of communication (Co-location)&lt;br /&gt;
 * Projects are built around motivated individuals, who should be trusted&lt;br /&gt;
 * Continuous attention to technical excellence and good design&lt;br /&gt;
 * Simplicity&lt;br /&gt;
 * Self-organizing teams&lt;br /&gt;
 * Regular adaptation to changing circumstances&lt;br /&gt;
&lt;br /&gt;
=== What are existing Agile Methodologies? ===&lt;br /&gt;
&lt;br /&gt;
 * Extreme Programming&lt;br /&gt;
 * Scrum&lt;br /&gt;
 * Crystal Clear&lt;br /&gt;
 * Feature Driven Development&lt;br /&gt;
 * Dynamic Systems Development Method (DSDM)&lt;br /&gt;
&lt;br /&gt;
== EXTREME PROGRAMMING ==&lt;br /&gt;
&lt;br /&gt;
Extreme programming is a deliberate and disciplined approach to software development.   Previously successful and effective methods have been emphasized to the “extreme,” while unproductive activities have been reduced as much as possible. &lt;br /&gt;
&lt;br /&gt;
'''How to begin with XP?'''   Start by striving for user involvement.   Always have user presence with the development team. Put tests in place.  The better tests you have, the faster and more effectively you will move.  Include refactoring, which lets you begin with simple designs and grow them as needed.  Pair programming provides built-in reviews and learning, and can help you spread the XP practices within a team.  Pairs are switched often.&lt;br /&gt;
&lt;br /&gt;
'''Stand up meeting''' every morning is used to communicate problems, solutions, and promote team focus. Everyone stands up in a circle to avoid long discussions.  Each person states what they did yesterday, what they plan to do today, and what, if anything, is holding them up.&lt;br /&gt;
'''&lt;br /&gt;
User stories''' – &lt;br /&gt;
  Written by the customer, focus on customer needs&lt;br /&gt;
  Cards are moved around to create release plan.&lt;br /&gt;
  About three sentences of text.&lt;br /&gt;
  Used to create time estimates for release planning meeting.&lt;br /&gt;
  Used instead of big requirements document. &lt;br /&gt;
  Drive the creation of acceptance tests&lt;br /&gt;
  How much development time to implement a story?  Longer than 3 weeks means you need    to break the story down further. Less than 1 week and you are at too detailed a level, combine some stories. &lt;br /&gt;
'''&lt;br /&gt;
Release planning meeting''' creates release plan laying out overall project.    &lt;br /&gt;
&lt;br /&gt;
'''Release plan''' is used to create iteration plans for each iteration.   Release often - small releases to customer.&lt;br /&gt;
&lt;br /&gt;
'''Iteration planning mtg''' at the beginning of each iteration.  Individual iterations are planned in detail just before each iteration begins and not in advance. &lt;br /&gt;
&lt;br /&gt;
Each '''iteration''' is 1-3 weeks long.&lt;br /&gt;
'''&lt;br /&gt;
Unit tests''' are created early and each class is tested.  &lt;br /&gt;
'''&lt;br /&gt;
Acceptance tests''' verify that the user story has been correctly implemented.  &lt;br /&gt;
&lt;br /&gt;
The '''rules must be followed''' until the team has changed them. All  developers know exactly what to expect from each other, and having a set of rules is the only way to set these expectations.  At meetings, talk about what is working and what is not, and fix XP.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
{{reflist|2}}&lt;/div&gt;</summary>
		<author><name>Cmbellah@uab.edu</name></author>
	</entry>
	<entry>
		<id>https://docs.uabgrid.uab.edu/w/index.php?title=AgileProgramming/xp&amp;diff=1691</id>
		<title>AgileProgramming/xp</title>
		<link rel="alternate" type="text/html" href="https://docs.uabgrid.uab.edu/w/index.php?title=AgileProgramming/xp&amp;diff=1691"/>
		<updated>2008-10-27T19:25:45Z</updated>

		<summary type="html">&lt;p&gt;Cmbellah@uab.edu: /* EXTREME PROGRAMMING */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
== AGILE METHODOLOGY ==&lt;br /&gt;
&lt;br /&gt;
=== What is Agile Methodology? ===&lt;br /&gt;
 &lt;br /&gt;
 [http://en.wikipedia.org/wiki/Agile_software_development]&lt;br /&gt;
 * Group of software development methodologies&lt;br /&gt;
 * Project management process&lt;br /&gt;
 * Set of engineering best practices&lt;br /&gt;
 * Business approach&lt;br /&gt;
&lt;br /&gt;
Agile methodology aims to deliver high quality software which meets the customer's needs and company goals rapidly.&lt;br /&gt;
&lt;br /&gt;
=== History ===&lt;br /&gt;
&lt;br /&gt;
 * Seventeen professionals, consisting of experts in programming, CTO's, founders of software consulting firms such as Martin Fowler – ThoughtWorks , Dave Thomas,  Andrew Hunt (co-authors of The Pragmatic Programmers), Ron Jeffries – propietor of Xprogramming.com and others, got together on February 11-13, 2001 at the Snowbird Ski Resort in Utah    &lt;br /&gt;
 * The agenda was to develop  a 'lightweight'  process as an alternative to documentation driven, heavyweight software development processes (Waterfall, Cowboy coding)&lt;br /&gt;
 * The Snowbird meet consisted of representatives from some of the existing software methodologies such as Extreme Programming, Adaptive Software Development, Crystal, and SCRUM&lt;br /&gt;
 * Result of the Snowbird meet – The Agile Manifesto[http://www.agilemanifesto.org] and the Agile Alliance[http://www.agilealliance.com/home]&lt;br /&gt;
 * Agile Manifesto values&lt;br /&gt;
 ** '''Individuals and interactions''' over processes and tools &lt;br /&gt;
 ** '''Working software''' over comprehensive documentation &lt;br /&gt;
 ** '''Customer collaboration''' over contract negotiation &lt;br /&gt;
 ** '''Responding to change''' over following a plan&lt;br /&gt;
&lt;br /&gt;
=== What are Agile Manifesto practices? ===&lt;br /&gt;
&lt;br /&gt;
 * Customer satisfaction by rapid, continuous delivery of useful software&lt;br /&gt;
 * Working software is delivered frequently (weeks rather than months)&lt;br /&gt;
 * Working software is the principal measure of progress&lt;br /&gt;
 * Even late changes in requirements are welcomed&lt;br /&gt;
 * Close, daily cooperation between business people and developers&lt;br /&gt;
 * Face-to-face conversation is the best form of communication (Co-location)&lt;br /&gt;
 * Projects are built around motivated individuals, who should be trusted&lt;br /&gt;
 * Continuous attention to technical excellence and good design&lt;br /&gt;
 * Simplicity&lt;br /&gt;
 * Self-organizing teams&lt;br /&gt;
 * Regular adaptation to changing circumstances&lt;br /&gt;
&lt;br /&gt;
=== What are existing Agile Methodologies? ===&lt;br /&gt;
&lt;br /&gt;
 * Extreme Programming&lt;br /&gt;
 * Scrum&lt;br /&gt;
 * Crystal Clear&lt;br /&gt;
 * Feature Driven Development&lt;br /&gt;
 * Dynamic Systems Development Method (DSDM)&lt;br /&gt;
&lt;br /&gt;
== EXTREME PROGRAMMING ==&lt;br /&gt;
&lt;br /&gt;
Extreme programming is a deliberate and disciplined approach to software development.   Previously successful and effective methods have been emphasized to the “extreme,” while unproductive activities have been reduced as much as possible. &lt;br /&gt;
&lt;br /&gt;
'''How to begin with XP?'''   Start by striving for user involvement.   Always have user presence with the development team. Put tests in place.  The better tests you have, the faster and more effectively you will move.  Include refactoring, which lets you begin with simple designs and grow them as needed.  Pair programming provides built-in reviews and learning, and can help you spread the XP practices within a team.  Pairs are switched often.&lt;br /&gt;
&lt;br /&gt;
'''Stand up meeting''' every morning is used to communicate problems, solutions, and promote team focus. Everyone stands up in a circle to avoid long discussions.  Each person states what they did yesterday, what they plan to do today, and what, if anything, is holding them up.&lt;br /&gt;
'''&lt;br /&gt;
User stories''' – &lt;br /&gt;
Written by the customer, focus on customer needs&lt;br /&gt;
Cards are moved around to create release plan.&lt;br /&gt;
About three sentences of text.&lt;br /&gt;
Used to create time estimates for release planning meeting.&lt;br /&gt;
Used instead of big requirements document. &lt;br /&gt;
Drive the creation of acceptance tests&lt;br /&gt;
How much development time to implement a story?  Longer than 3 weeks means you need    to break the story down further. Less than 1 week and you are at too detailed a level, combine some stories. &lt;br /&gt;
'''&lt;br /&gt;
Release planning meeting''' creates release plan laying out overall project.    &lt;br /&gt;
&lt;br /&gt;
'''Release plan''' is used to create iteration plans for each iteration.   Release often - small releases to customer.&lt;br /&gt;
&lt;br /&gt;
'''Iteration planning mtg''' at the beginning of each iteration.  Individual iterations are planned in detail just before each iteration begins and not in advance. &lt;br /&gt;
&lt;br /&gt;
Each '''iteration''' is 1-3 weeks long.&lt;br /&gt;
'''&lt;br /&gt;
Unit tests''' are created early and each class is tested.  &lt;br /&gt;
'''&lt;br /&gt;
Acceptance tests''' verify that the user story has been correctly implemented.  &lt;br /&gt;
&lt;br /&gt;
The '''rules must be followed''' until the team has changed them. All  developers know exactly what to expect from each other, and having a set of rules is the only way to set these expectations.  At meetings, talk about what is working and what is not, and fix XP.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
{{reflist|2}}&lt;/div&gt;</summary>
		<author><name>Cmbellah@uab.edu</name></author>
	</entry>
	<entry>
		<id>https://docs.uabgrid.uab.edu/w/index.php?title=@lab_Wiki&amp;diff=1685</id>
		<title>@lab Wiki</title>
		<link rel="alternate" type="text/html" href="https://docs.uabgrid.uab.edu/w/index.php?title=@lab_Wiki&amp;diff=1685"/>
		<updated>2008-10-27T14:24:52Z</updated>

		<summary type="html">&lt;p&gt;Cmbellah@uab.edu: /* Emerging Docs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Supporting Local VO  Rosources =&lt;br /&gt;
&lt;br /&gt;
The @lab contributes many of it's own resources to the VO.  These pages will help document the configuration and management of those resources.&lt;br /&gt;
&lt;br /&gt;
* [[VO Web Servers]]&lt;br /&gt;
&lt;br /&gt;
= Drupal CMS =&lt;br /&gt;
&lt;br /&gt;
The Drupal CMS is a flexible web development platform that enables construction of all manner of web sites, in addition to its support for website-in-a-box configurations. &lt;br /&gt;
&lt;br /&gt;
While Drupal is powerful it has it's limitations.  One of it's biggest drawbacks is backwards compatibility.  It's worth reading the Drupal team's [http://drupal.org/node/65922 stance on backward compatibility] and the [http://drupal.org/upgrade/tutorial-introduction Drupal Upgrade Guide] for a broader perspective on this. &lt;br /&gt;
&lt;br /&gt;
The project takes the approach that they want to be free to adopt the latest practices without retaining the the weight of legacy code interfaces. They reserve the right to change interfaces between releases (and most often do). Drupal '''won't''' break data between releases, though and '''will''' provide an upgrade path for the core modules.&lt;br /&gt;
&lt;br /&gt;
These restrictions mostly affect Drupal extensions.  In otherwords the world for extension developers is one of constant change, making the utility of casual extensions questionable. Themes fall under this catagory, somewhat, so using a theme abstraction layer (Xtemplate, PHPTemplate) is advisable.&lt;br /&gt;
&lt;br /&gt;
The impact of this approach is limited on UABgrid because Drupal is simply a  stand-alone application.  Rather than use many of the extensions available for Drupal, our system framework is based on intagration across applications.  This makes the internal interfaces of Drupal less critical.  We can build on the core functionality and focus our efforts, if necessary, on a limited set of extensions that are critical to our operations.&lt;br /&gt;
&lt;br /&gt;
At some point, Drupal (and many other CMSes) will hopefully gain an stable interface similar to the approach taken by other operating systems.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
Drupal mainly requires PHP and a relational database.  The specific requirements can be found on their site: [http://drupal.org/requirements].  Of interest is their transition from PHP4 to PHP5 as this impacts what version run on specific Linux releases using vendor-supplied packages.&lt;br /&gt;
&lt;br /&gt;
== Upgrading Drupal ==&lt;br /&gt;
&lt;br /&gt;
Important -- before starting, please read the [http://drupal.org/upgrade/tutorial-introduction Drupal Upgrade Guide].&lt;br /&gt;
&lt;br /&gt;
The @lab drupal site has aged significantly. It's not been updated since 4.3.x.  In order to upgrade to the latest release in the 4.x line (4.7.6 as of this writing) all intermediate version update.php scripts need to be applied to the database. This is pretty easy to do.  It just requires that you install the intermediate releases, configure them to point at the database, and step through the update.php scripts.&lt;br /&gt;
&lt;br /&gt;
Links to older versions of drupal are not too hard to find, at least back to 4.5.  The basic URL structure for the release page is http://drupal.org/drupal-x.x.x and the download file is http://drupal.org/files/projects/drupal-x.x.x.tar.gz.  Before the 4.5.0 release, the release pages don't have well-known page names, seems Google is the best option here, just look for drupal-x.x.x, where the x's are the vesion number. The file structure changes, but it's still guessable, just replace &amp;quot;tar.gz&amp;quot; with &amp;quot;tgz&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
For our upgrade path, the relevant release pages and download links are:&lt;br /&gt;
* [http://drupal.org/drupal-4.7.6 Drupal 4.7.6] - http://drupal.org/files/projects/drupal-4.7.6.tar.gz&lt;br /&gt;
* [http://drupal.org/drupal-4.5.0 Drupal 4.6.0] - http://drupal.org/files/projects/drupal-4.6.0.tar.gz&lt;br /&gt;
* [http://drupal.org/drupal-4.5.0 Drupal 4.5.0] - http://drupal.org/files/projects/drupal-4.5.0.tar.gz&lt;br /&gt;
* [http://drupal.org/node/6853 Drupal 4.4.0] - http://drupal.org/drupal/drupal-4.4.0.tgz  (note the release note and download link structure changes)&lt;br /&gt;
&lt;br /&gt;
Some additional important notes for upgrading can be found on the drupal site http://drupal.org/upgrade/&lt;br /&gt;
&lt;br /&gt;
'''UPDATE''' - the @lab drupal install was already at 4.4.0 as evidenced by the CHANGES.txt file, so that instance isn't needed. [[User:Jpr@uab.edu|Jpr@uab.edu]] 17:21, 19 July 2007 (CDT)&lt;br /&gt;
&lt;br /&gt;
== Configuring instances for upgrade ==&lt;br /&gt;
&lt;br /&gt;
The 4.4 and 4.5 release still use the includes/conf.php file. After that it switches to the site/default/settings.php approach. They all use the $db_url and $base_url configuration values, though so it should be easy to just plug in the original site values. The $base_url is optional in 4.7.6.&lt;br /&gt;
&lt;br /&gt;
Perl script to change config across many versions for upgrading:&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  #!/usr/bin/perl -w&lt;br /&gt;
  &lt;br /&gt;
  $sitedb = $ARGV[0];&lt;br /&gt;
  $siteurl = $ARGV[1];&lt;br /&gt;
  &lt;br /&gt;
  while (&amp;lt;STDIN&amp;gt;) {&lt;br /&gt;
   s/([\&amp;quot;\']).*([\'\&amp;quot;])/$1$sitedb$2/ if ( /^\$db_url =/ );&lt;br /&gt;
   s/([\&amp;quot;\']).*([\'\&amp;quot;])/$1$siteurl$2/ if ( /^\$base_url =/ );&lt;br /&gt;
   print;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
Name the above script &amp;quot;setsite.pl&amp;quot; and run it as follows:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 # cd to top-level of multi-drupal site dir&lt;br /&gt;
 for file in `grep -rl '^\$db_url =' *`&lt;br /&gt;
 do&lt;br /&gt;
    webpath=`echo $file | cut -d / -f 1`&lt;br /&gt;
    ./setsite.pl mysql://dbuser:dbpass@localhost/dbname \&lt;br /&gt;
        http://host/$webpath &amp;lt; $file &amp;gt; $file.new&lt;br /&gt;
    mv $file.new $file&lt;br /&gt;
 done&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Performing the Upgrade ==&lt;br /&gt;
&lt;br /&gt;
The upgrade is performed on a version-by-version basis. After running the above config scripts, go to the version-based URL and invoke the 'update.php' script.  You'll need to turn of the auth access check at the start of this file (manually) in order to allow non-auth'd access to the script. This is OK only if you're doing this is an isolalated env protected from outsiders.&lt;br /&gt;
&lt;br /&gt;
=== 4.4.0 to 4.5.0 ===&lt;br /&gt;
&lt;br /&gt;
In order to prepare for later upgrades (specifically the 4.6.0 one which changes some core abstractions), you need to log into the existing 4.4.0 site and change to the default blue marine theme and disable non-core modules.  &lt;br /&gt;
&lt;br /&gt;
For the @lab site we don't have our bluemarine theme anymore.  It's been replaced with a variant of Xtemplate.   We can wait till after the 4.5.0 update to switch to bluemarine from the out-of-box 4.5.0 upgrade install.  &lt;br /&gt;
&lt;br /&gt;
The non-core themes need to be turned off now though because they won't be there in the out-of-box code used for the upgrades.&lt;br /&gt;
&lt;br /&gt;
 update system set status = 0 where type='module' and  name not in (&lt;br /&gt;
    'admin', 'aggregator' ,'archive' ,'block' ,'blog' ,'blogapi' ,'book' ,&lt;br /&gt;
    'comment' ,'drupal' ,'filter' ,'forum' ,'help' ,'legacy' ,'locale' ,&lt;br /&gt;
    'menu' ,'node' ,'page' ,'path' ,'ping' ,'poll' ,'profile' ,'queue' ,&lt;br /&gt;
    'search' ,'statistics' ,'story' ,'system' ,'taxonomy' ,'throttle' ,&lt;br /&gt;
    'tracker' ,'upload' ,'user', 'watchdog' );&lt;br /&gt;
&lt;br /&gt;
Make sure your $base_url is set correctly in the config file. This depends on how you're invoking the update.php script. Keep this in mind if you are ssh-tunneling to the dev server from a remote location.&lt;br /&gt;
&lt;br /&gt;
The 4.4.0 update.php script runs smoothly without error.&lt;br /&gt;
&lt;br /&gt;
=== 4.5.0 to 4.6.0 ===&lt;br /&gt;
&lt;br /&gt;
This is a more involved update due to some changes in architecture.  See the [http://drupal.org/node/30699 update instructions on the drupal site] for details.  We basically follow the steps except that the modules were turned off earlier and the bluemarine theme was enabled after the 4.5.0 upgrade.&lt;br /&gt;
&lt;br /&gt;
Before running the update.php script there are a couple of data errors that need to be corrected.  The  2004-11-07 update changes the sessions table  to avoid duplicates (ALTER TABLE sessions ADD PRIMARY KEY sid (sid)).  This will cause update.php to fail.  The easiest thing is just to delete existing session.&lt;br /&gt;
&lt;br /&gt;
  delete from sessions;&lt;br /&gt;
&lt;br /&gt;
The term_node two-column table is updated in the 2005-03-21 update to use both columns in a key to avoid duplicates (ALTER TABLE term_node ADD PRIMARY KEY (tid,nid)).  There may be many duplicates and has to be fixed manually.  You can check if you'll be affected by this by runnin this sql statement in a mysql client:&lt;br /&gt;
&lt;br /&gt;
  select nid, tid, count(1) as num&lt;br /&gt;
           from term_node&lt;br /&gt;
           group by nid,tid&lt;br /&gt;
           having num &amp;gt; 1&lt;br /&gt;
           order by num;&lt;br /&gt;
&lt;br /&gt;
The following script should take care of it.  Just call it something like fix_term_node.php and invoke it before update.php:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 // Connecting, selecting database&lt;br /&gt;
 $link = mysql_connect('dbhost', 'dbname', 'dbpass')&lt;br /&gt;
    or die('Could not connect: ' . mysql_error());&lt;br /&gt;
 echo 'Connected successfully&amp;lt;nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/nowiki&amp;gt;';&lt;br /&gt;
 mysql_select_db('dbname') or die('Could not select database');&lt;br /&gt;
 &lt;br /&gt;
 // Get the entries with duplacates, run this query manually to sanity check count below&lt;br /&gt;
 $query = &amp;quot;select nid, tid, count(1) as num&lt;br /&gt;
           from term_node&lt;br /&gt;
           group by nid,tid&lt;br /&gt;
           having num &amp;gt; 1&lt;br /&gt;
           order by num&amp;quot;;&lt;br /&gt;
 $result = mysql_query($query) or die('Query failed: ' . mysql_error());&lt;br /&gt;
 &lt;br /&gt;
 if (mysql_num_rows($result) == 0) {&lt;br /&gt;
      echo &amp;quot;No rows found, nothing to do so am exiting&amp;quot;;&lt;br /&gt;
      exit;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // Putting results in array elliminates the duplicates&lt;br /&gt;
 while ($row = mysql_fetch_assoc($result)) {&lt;br /&gt;
      $t[$row[&amp;quot;nid&amp;quot;]] = $row[&amp;quot;tid&amp;quot;];&lt;br /&gt;
      $count++;&lt;br /&gt;
 }&lt;br /&gt;
 print &amp;quot;Target replace: $count&amp;lt;nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;quot;;&lt;br /&gt;
 // Comment this out when your ready&lt;br /&gt;
 //exit();&lt;br /&gt;
 &lt;br /&gt;
 // Step through the now unique entries and clean up the db&lt;br /&gt;
 foreach ($t as $nid =&amp;gt; $tid) {&lt;br /&gt;
      $delnode = &amp;quot;delete from term_node where tid = $tid and nid = $nid&amp;quot;;&lt;br /&gt;
      $insnode = &amp;quot;insert into term_node (tid, nid) values ($tid, $nid)&amp;quot;;&lt;br /&gt;
      #print &amp;quot;$delnode&amp;lt;nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;quot;;&lt;br /&gt;
      #print &amp;quot;$insnode&amp;lt;nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;quot;;&lt;br /&gt;
      $result = mysql_query($delnode) or die('Query failed ($delnode): ' . mysql_error());&lt;br /&gt;
      $result = mysql_query($insnode) or die('Query failed ($insnode): ' . mysql_error());&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // Closing connection&lt;br /&gt;
 mysql_close($link);&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4.6.0 to 4.7.6 ===&lt;br /&gt;
&lt;br /&gt;
There are several significant [http://drupal.org/node/57649 changes between 4.6.0 and 4.7.x highlighted on the Drupal site].  The biggest concern is about the $base_url and the impact of re-rooting a site on relative URLs in the site data.  Will let that be as it is for now an monitor the impact.&lt;br /&gt;
&lt;br /&gt;
There were problems upgrading from 4.6.0 to 4.7.6.  The upgrade broke at the 4.7.0 boundary.  Upgrade to 4.6.6 first, the last 4.6.6 release prior to 4.7.0, and the go to 4.7.0 directly.  After that upgrade to 4.7.6.   See [http://drupal.org/node/109659#comment-256251 comment posted to this issue discussion at drupal.org].&lt;br /&gt;
&lt;br /&gt;
=== Theme Upgrade ===&lt;br /&gt;
&lt;br /&gt;
The atlabit xtemplate based theme was upgraded from 4.4.0 site instance to the 4.7.6 site instance.  The upgrade requires installing the [http://drupal.org/project/xtemplate xtemplate theme engine] for 4.7.6 since it was dropped from core at 4.7.0.  &lt;br /&gt;
&lt;br /&gt;
The basic upgrade wasn't too difficult. After the xtemplate engine is install in the themes/engines subfolder the atlabit tree was copied in place.  The theme was enabled through the admin ui and it came up OK except for the header.  The logo was missing and so where the secondary and primary links.  The logo was easily fixed by correcting the xtemplate.xtmpl file which had the path coded in it.  The primary and secondary links were lost from the variable table and had to be manually moved forward from 4.4.0 to 4.7.6 db.  This didn't cause them to appear, though.  &lt;br /&gt;
&lt;br /&gt;
Rather than debug the problem, their data was just directly placed in the xtemplate.xtmpl file for atlabit.  The real solution is to migrate the theme to the phptemplate engine instead, so we didn't want to invest the time on heavy debugging.&lt;br /&gt;
&lt;br /&gt;
== Post Upgrade Notes ==&lt;br /&gt;
&lt;br /&gt;
Having completed the @lab site upgrade to a reasonably functional state, the http://lab.ac.uab.edu site has been re-enabled.  This was done but defining a namebased vhost for just the ip hosting the atlab, it's possible to [http://httpd.apache.org/docs/2.0/vhosts/name-based.html mix and match name-based and ip-based vhosts] as long as you're dealing with distinct ip addresses.  The working dir for the upgrade was copied over to the document root for the atlab vhost.  Only the xtemplate.css file had to be changed to record the path differnce for the header background.&lt;br /&gt;
&lt;br /&gt;
=== Open Issues ===&lt;br /&gt;
&lt;br /&gt;
Open issues remain but the site is function.&lt;br /&gt;
&lt;br /&gt;
* Filters still need to be installed to support the phpwiki formatting on many posts.&lt;br /&gt;
* Some paths for urls in the content sections were converted by the 4.7.0 upgrade to use the working dir of the upgrade.  These need to be identified and fixed.&lt;br /&gt;
* Subpages that were originally on the site may still need to be restored.&lt;br /&gt;
&lt;br /&gt;
=== Problems ===&lt;br /&gt;
&lt;br /&gt;
==== PHP maximum execute time exceeded ====&lt;br /&gt;
There have been some problems with the @lab site since the upgrade.  On July 27, 2007 the server's kernel dumped, a fully patched CentOS4 line system.  The postmortum seems to indicate a slow process leaking of httpd due to a PHP timeout limit being exceeded when querying the database:&lt;br /&gt;
&lt;br /&gt;
 PHP Fatal error:  Maximum execution time of 30 seconds exceeded in /var/www/vhosts/atlab/includes/database.mysql.inc on line 105&lt;br /&gt;
&lt;br /&gt;
This seems to leave and httpd process hanging, or hanging around, and then the httpd parent spawns a replacement to keep the pool at 10.  Over time these processes fill up the system and the out of memory (resources) crash results.  There was only the one crash, but this makes sense as the cause.  It seems to be triggered by search engines crawling the site.  At first i thought search.uab.edu was causing the problem but it seems all search engines will hit on it eventually.&lt;br /&gt;
&lt;br /&gt;
I've tried a few things to overcome this problem.  There is a [http://dev.mysql.com/doc/refman/4.1/en/slow-query-log.html log_slow_queries option] for mysqld that will record queries lasting longer the 10 seconds but there was never a query logged eventhough the above error reoccurred.&lt;br /&gt;
&lt;br /&gt;
I found that the search index feature in Drupal was at 0% so I ran cron.php until it was fully indexed at 100% but the problem still remained.  Stepping through the cron.php revealed there is a data error in the variables table and reports an error with [http://us2.php.net/unserialize PHP's unserialize() function]:&lt;br /&gt;
&lt;br /&gt;
  PHP Notice:  unserialize(): Error at offset 2 of 725 bytes in /var/www/vhosts/atlab/includes/bootstrap.inc on line 244, referer: http://www.google.com/&lt;br /&gt;
  PHP Notice:  unserialize(): Error at offset 2 of 172 bytes in /var/www/vhosts/atlab/includes/bootstrap.inc on line 244, referer: http://www.google.com/&lt;br /&gt;
R  PHP Notice:  unserialize(): Error at offset 149 of 149 bytes in /var/www/vhosts/atlab/includes/bootstrap.inc on line 244, referer: http://www.google.com/&lt;br /&gt;
&lt;br /&gt;
The unserialize error presents itself predictably at cron.php runs and has some precident in a [http://drupal.org/node/49694 Drupal bug][http://drupal.org/node/157882 and image module issues].&lt;br /&gt;
&lt;br /&gt;
The robots.txt file requests that /search not be followed, but I'm not sure if that's the path they're entering from.  Unfortunately the error is not accompanied by any useful debugging info, except the generic line number of the database wrapper script, i.e. no query or URL is logged.&lt;br /&gt;
&lt;br /&gt;
The search feature for anonymous users (crawlers) has been turned off in the Drupal config for now to see if that avoids the problem and, therefore, isolates it to the search of the site and might imply complex internal data gathering.  This would be similar to a problem experienced in ConnoteaCode when search engines stepped through the /tag tree.&lt;br /&gt;
&lt;br /&gt;
= System Configuration Notes =&lt;br /&gt;
&lt;br /&gt;
== Getting Firefox to use Java on openSUSE 10.2 ==&lt;br /&gt;
&lt;br /&gt;
Ensure Firefox can support Java as a plugin requires that you install Sun Java (1.5 preferred) via YaST.  Be sure and include the -plugin RPM, that's the one that contains the critical part.&lt;br /&gt;
&lt;br /&gt;
After the YaST install completes run the following set of commands:&lt;br /&gt;
&lt;br /&gt;
 cd /usr/lib/firefox/plugins&lt;br /&gt;
 ln -s /usr/lib/jvm/java-1.5.0-sun-1.5.0_update8/jre/plugin/i386/ns7/libjavaplugin_oji.so .&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
&lt;br /&gt;
* [http://www.suseforums.net/index.php?showtopic=36347 Manually installing the JRE]&lt;br /&gt;
&lt;br /&gt;
= Emerging Docs =&lt;br /&gt;
&lt;br /&gt;
[[UABgridBootCamp]]&lt;br /&gt;
&lt;br /&gt;
[[AgileProgramming/xp]]&lt;/div&gt;</summary>
		<author><name>Cmbellah@uab.edu</name></author>
	</entry>
	<entry>
		<id>https://docs.uabgrid.uab.edu/w/index.php?title=Swift_Notes&amp;diff=1607</id>
		<title>Swift Notes</title>
		<link rel="alternate" type="text/html" href="https://docs.uabgrid.uab.edu/w/index.php?title=Swift_Notes&amp;diff=1607"/>
		<updated>2008-02-11T19:12:43Z</updated>

		<summary type="html">&lt;p&gt;Cmbellah@uab.edu: /* Swift */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Swift ==&lt;br /&gt;
&lt;br /&gt;
* First you need an account created on stage.uabgrid.uab.edu.&lt;br /&gt;
* Connect to stage.uabgrid.uab.edu:&lt;br /&gt;
   ssh stage.uabgrid.uab.edu&lt;br /&gt;
* You need a UABgrid certificate.&lt;br /&gt;
** The link for [http://uabgrid.uab.edu/UABgridCA UABgrid CA] is in [http://docs.uabgrid.uab.edu UABgrid Documentation].&lt;br /&gt;
** Obtain an account on UABgrid first; you will have to log in to get the certificate. &lt;br /&gt;
* From [http://uabgrid.uab.edu/UABgridCA UABgrid CA], go to &amp;quot;Manage Your UABgrid User Certificate.&amp;quot;  &lt;br /&gt;
* Download the user key and certificate. Save them to Desktop as userkey.pem and usercert.pem. &lt;br /&gt;
* Make a .globus directory on stage and copy the files to it:&lt;br /&gt;
  mkdir .globus&lt;br /&gt;
  mv Desktop/user* .globus&lt;br /&gt;
  ls -lc .globus&lt;br /&gt;
  cd .globus &lt;br /&gt;
  chmod 400 userkey.pem&lt;br /&gt;
  cd $HOME&lt;br /&gt;
* Connect to UABgrid&lt;br /&gt;
  grid-proxy-init&lt;br /&gt;
* This will bring up a request for your GRID passphrase.  Enter the passphrase that was used when the private key was created.&lt;br /&gt;
* The [http://www.ci.uchicago.edu/swift Swift website] contains an excellent tutorial on scripting with Swift.&lt;/div&gt;</summary>
		<author><name>Cmbellah@uab.edu</name></author>
	</entry>
	<entry>
		<id>https://docs.uabgrid.uab.edu/w/index.php?title=Swift_Notes&amp;diff=1606</id>
		<title>Swift Notes</title>
		<link rel="alternate" type="text/html" href="https://docs.uabgrid.uab.edu/w/index.php?title=Swift_Notes&amp;diff=1606"/>
		<updated>2008-02-11T17:11:42Z</updated>

		<summary type="html">&lt;p&gt;Cmbellah@uab.edu: /* Swift */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Swift ==&lt;br /&gt;
&lt;br /&gt;
* Create account for user on stage.uabgrid.uab.edu.&lt;br /&gt;
* User can connect to stage.uabgrid.uab.edu:&lt;br /&gt;
   ssh stage.uabgrid.uab.edu&lt;br /&gt;
* You will need a UABgrid certificate&lt;br /&gt;
** The link for [http://uabgrid.uab.edu/UABgridCA UABgrid CA] is in [http://docs.uabgrid.uab.edu UABgrid Documentation].&lt;br /&gt;
** Obtain an account on UABgrid first; you will have to log in to get the certificate. &lt;br /&gt;
* From [http://uabgrid.uab.edu/UABgridCA UABgrid CA], go to &amp;quot;Manage Your UABgrid User Certificate.&amp;quot;  &lt;br /&gt;
* Download the user key and certificate. Save them to Desktop as userkey.pem and usercert.pem. &lt;br /&gt;
* Put the files into .globus and copy .globus to stage:&lt;br /&gt;
  mkdir .globus&lt;br /&gt;
  mv Desktop/user* .globus&lt;br /&gt;
  ls -lc .globus&lt;br /&gt;
  cd .globus &lt;br /&gt;
  chmod 400 userkey.pem&lt;br /&gt;
  cd $HOME&lt;br /&gt;
* Connect to UABgrid&lt;br /&gt;
  grid-proxy-init&lt;br /&gt;
* This will bring up a request for your GRID passphrase.  Enter the passphrase that was used when the private key was created.&lt;br /&gt;
* The [http://www.ci.uchicago.edu/swift Swift website] contains an excellent tutorial on scripting with Swift.&lt;/div&gt;</summary>
		<author><name>Cmbellah@uab.edu</name></author>
	</entry>
	<entry>
		<id>https://docs.uabgrid.uab.edu/w/index.php?title=UABgrid_Documentation&amp;diff=1605</id>
		<title>UABgrid Documentation</title>
		<link rel="alternate" type="text/html" href="https://docs.uabgrid.uab.edu/w/index.php?title=UABgrid_Documentation&amp;diff=1605"/>
		<updated>2008-02-11T17:10:02Z</updated>

		<summary type="html">&lt;p&gt;Cmbellah@uab.edu: /* Topics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;big&amp;gt;'''Welcome to UABgrid Documentation'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the home for all UABgrid documentation.  The documentation is implemented as a wiki to make it easier to construct and easier to accept contributions.  If you see a topic that interests you please feel to get involved.  If you don't see a topic that you feel should be covered, please jump in and create the page. &lt;br /&gt;
&lt;br /&gt;
In order to edit the documentation, you'll need to click on the &amp;quot;Login with UABgrid&amp;quot; link in the upper right.  Only that link will allow you to login in. It is not possible to log in using the other link.&lt;br /&gt;
&lt;br /&gt;
If you experience any problems with UABgrid or see problems with the way this wiki is operating, please [http://webapp.lab.ac.uab.edu/projects/uabgrid/newticket file a bug report].  UABgrid is still considered beta and there are many improvements ahead, your problem reports are appreciated.&lt;br /&gt;
&lt;br /&gt;
== Topics ==&lt;br /&gt;
&lt;br /&gt;
Note: we're in the early stages of building the documentation, so don't worry too much about where a topic should go.  Just add a Wiki link to the list below, save the page, open the link you just created and start typing.  We can better organize our topics as the content evolves.&lt;br /&gt;
&lt;br /&gt;
* [[InCommonUABgrid| UABgrid InCommon Operating Policies]] - draft operating policies for UABgrid &amp;lt;nowiki&amp;gt;InCommon&amp;lt;/nowiki&amp;gt; membership&lt;br /&gt;
* [[UABgrid MetaData]] - Metadata to configure SAML interfaces&lt;br /&gt;
* [[UABgrid Clusters]] - description of clusters on the grid, features, and policies&lt;br /&gt;
* [http://uabgrid.uab.edu/UABgridCA UABgrid CA] - you will need a certificate from the UABgrid CA in order to execute workflows on UABgrid. You will need to be registered with UABgrid before you can be issued a certificate. Please [http://vo.uabgrid.uab.edu/sympa/loginrequest/home/ register here].&lt;br /&gt;
* [[UABgrid Apps|Resources and Applications]] - hardware and software found on UABgrid&lt;br /&gt;
* [[UABgrid FAQ| UABgrid FAQ]]&lt;br /&gt;
* [[UAB Cyberinfrastructure|UAB Cyberinfrastructure]]&lt;br /&gt;
* [[UABgridBootCamp|UABgrid BootCamp]] - material for the launch of UABgrid2 on September 11, 2007&lt;br /&gt;
* [[UABgrid VO|UABgrid VO wikis]]&lt;br /&gt;
* [[UABgrid Jobs|Running Jobs on UABgrid]]&lt;br /&gt;
* [[System Types|UABgrid System Types]] - information of the different type of systems that are found on UABgrid.&lt;br /&gt;
* [[IdentityPrimer]] - An introduction to the concepts of identity on UABgrid&lt;br /&gt;
* [[UABgridWelcome]]&lt;br /&gt;
* [[Swift Notes]] - Notes on using Swift scripting for UABgrid.&lt;br /&gt;
&lt;br /&gt;
== Wiki Help ==&lt;br /&gt;
&lt;br /&gt;
For information about [http://www.mediawiki.org MediaWiki], the software that supports the UABgrid documention, please see the following helpful references.&lt;br /&gt;
&lt;br /&gt;
* [http://meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software.&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:Configuration_settings Configuration settings list]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:FAQ MediaWiki FAQ]&lt;br /&gt;
* [http://mail.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]&lt;/div&gt;</summary>
		<author><name>Cmbellah@uab.edu</name></author>
	</entry>
	<entry>
		<id>https://docs.uabgrid.uab.edu/w/index.php?title=Swift_Notes&amp;diff=1604</id>
		<title>Swift Notes</title>
		<link rel="alternate" type="text/html" href="https://docs.uabgrid.uab.edu/w/index.php?title=Swift_Notes&amp;diff=1604"/>
		<updated>2008-02-11T17:02:56Z</updated>

		<summary type="html">&lt;p&gt;Cmbellah@uab.edu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Swift ==&lt;br /&gt;
&lt;br /&gt;
* Create account for user on stage.uabgrid.uab.edu.&lt;br /&gt;
* User can connect to stage.uabgrid.uab.edu:&lt;br /&gt;
   ssh stage.uabgrid.uab.edu&lt;br /&gt;
* You will need a UABgrid certificate&lt;br /&gt;
** The link for [http://uabgrid.uab.edu/UABgridCA UABgrid CA] is in [http://docs.uabgrid.uab.edu UABgrid Documentation].&lt;br /&gt;
** Obtain an account on UABgrid first; you will have to log in to get the certificate. &lt;br /&gt;
* From [http://uabgrid.uab.edu/UABgridCA UABgrid CA], go to &amp;quot;Manage Your UABgrid User Certificate.&amp;quot;  &lt;br /&gt;
* Download the user key and certificate. Save them to Desktop as userkey.pem and usercert.pem. &lt;br /&gt;
* Put the files into .globus and copy .globus to stage:&lt;br /&gt;
  mkdir .globus&lt;br /&gt;
  mv Desktop/user* .globus&lt;br /&gt;
  ls -lc .globus&lt;br /&gt;
  cd .globus &lt;br /&gt;
  chmod 400 userkey.pem&lt;br /&gt;
  cd $HOME&lt;br /&gt;
* Connect to UABgrid&lt;br /&gt;
  grid-proxy-init&lt;br /&gt;
*This will bring up a request for your GRID passphrase.  Enter the passphrase that was used when the private key was created.&lt;/div&gt;</summary>
		<author><name>Cmbellah@uab.edu</name></author>
	</entry>
	<entry>
		<id>https://docs.uabgrid.uab.edu/w/index.php?title=UABgrid_Documentation&amp;diff=1603</id>
		<title>UABgrid Documentation</title>
		<link rel="alternate" type="text/html" href="https://docs.uabgrid.uab.edu/w/index.php?title=UABgrid_Documentation&amp;diff=1603"/>
		<updated>2008-02-11T16:06:32Z</updated>

		<summary type="html">&lt;p&gt;Cmbellah@uab.edu: /* Topics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;big&amp;gt;'''Welcome to UABgrid Documentation'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the home for all UABgrid documentation.  The documentation is implemented as a wiki to make it easier to construct and easier to accept contributions.  If you see a topic that interests you please feel to get involved.  If you don't see a topic that you feel should be covered, please jump in and create the page. &lt;br /&gt;
&lt;br /&gt;
In order to edit the documentation, you'll need to click on the &amp;quot;Login with UABgrid&amp;quot; link in the upper right.  Only that link will allow you to login in. It is not possible to log in using the other link.&lt;br /&gt;
&lt;br /&gt;
If you experience any problems with UABgrid or see problems with the way this wiki is operating, please [http://webapp.lab.ac.uab.edu/projects/uabgrid/newticket file a bug report].  UABgrid is still considered beta and there are many improvements ahead, your problem reports are appreciated.&lt;br /&gt;
&lt;br /&gt;
== Topics ==&lt;br /&gt;
&lt;br /&gt;
Note: we're in the early stages of building the documentation, so don't worry too much about where a topic should go.  Just add a Wiki link to the list below, save the page, open the link you just created and start typing.  We can better organize our topics as the content evolves.&lt;br /&gt;
&lt;br /&gt;
* [[InCommonUABgrid| UABgrid InCommon Operating Policies]] - draft operating policies for UABgrid &amp;lt;nowiki&amp;gt;InCommon&amp;lt;/nowiki&amp;gt; membership&lt;br /&gt;
* [[UABgrid MetaData]] - Metadata to configure SAML interfaces&lt;br /&gt;
* [[UABgrid Clusters]] - description of clusters on the grid, features, and policies&lt;br /&gt;
* [http://uabgrid.uab.edu/UABgridCA UABgrid CA] - you will need a certificate from the UABgrid CA in order to execute workflows on UABgrid. You will need to be registered with UABgrid before you can be issued a certificate. Please [http://vo.uabgrid.uab.edu/sympa/loginrequest/home/ register here].&lt;br /&gt;
* [[UABgrid Apps|Resources and Applications]] - hardware and software found on UABgrid&lt;br /&gt;
* [[UABgrid FAQ| UABgrid FAQ]]&lt;br /&gt;
* [[UAB Cyberinfrastructure|UAB Cyberinfrastructure]]&lt;br /&gt;
* [[UABgridBootCamp|UABgrid BootCamp]] - material for the launch of UABgrid2 on September 11, 2007&lt;br /&gt;
* [[UABgrid VO|UABgrid VO wikis]]&lt;br /&gt;
* [[UABgrid Jobs|Running Jobs on UABgrid]]&lt;br /&gt;
* [[System Types|UABgrid System Types]] - information of the different type of systems that are found on UABgrid.&lt;br /&gt;
* [[IdentityPrimer]] - An introduction to the concepts of identity on UABgrid&lt;br /&gt;
* [[UABgridWelcome]]&lt;br /&gt;
&lt;br /&gt;
== Wiki Help ==&lt;br /&gt;
&lt;br /&gt;
For information about [http://www.mediawiki.org MediaWiki], the software that supports the UABgrid documention, please see the following helpful references.&lt;br /&gt;
&lt;br /&gt;
* [http://meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software.&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:Configuration_settings Configuration settings list]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:FAQ MediaWiki FAQ]&lt;br /&gt;
* [http://mail.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]&lt;/div&gt;</summary>
		<author><name>Cmbellah@uab.edu</name></author>
	</entry>
	<entry>
		<id>https://docs.uabgrid.uab.edu/w/index.php?title=UABgrid_Documentation&amp;diff=1602</id>
		<title>UABgrid Documentation</title>
		<link rel="alternate" type="text/html" href="https://docs.uabgrid.uab.edu/w/index.php?title=UABgrid_Documentation&amp;diff=1602"/>
		<updated>2008-02-11T15:58:15Z</updated>

		<summary type="html">&lt;p&gt;Cmbellah@uab.edu: /* Topics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;big&amp;gt;'''Welcome to UABgrid Documentation'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the home for all UABgrid documentation.  The documentation is implemented as a wiki to make it easier to construct and easier to accept contributions.  If you see a topic that interests you please feel to get involved.  If you don't see a topic that you feel should be covered, please jump in and create the page. &lt;br /&gt;
&lt;br /&gt;
In order to edit the documentation, you'll need to click on the &amp;quot;Login with UABgrid&amp;quot; link in the upper right.  Only that link will allow you to login in. It is not possible to log in using the other link.&lt;br /&gt;
&lt;br /&gt;
If you experience any problems with UABgrid or see problems with the way this wiki is operating, please [http://webapp.lab.ac.uab.edu/projects/uabgrid/newticket file a bug report].  UABgrid is still considered beta and there are many improvements ahead, your problem reports are appreciated.&lt;br /&gt;
&lt;br /&gt;
== Topics ==&lt;br /&gt;
&lt;br /&gt;
Note: we're in the early stages of building the documentation, so don't worry too much about where a topic should go.  Just add a Wiki link to the list below, save the page, open the link you just created and start typing.  We can better organize our topics as the content evolves.&lt;br /&gt;
&lt;br /&gt;
* [[InCommonUABgrid| UABgrid InCommon Operating Policies]] - draft operating policies for UABgrid &amp;lt;nowiki&amp;gt;InCommon&amp;lt;/nowiki&amp;gt; membership&lt;br /&gt;
* [[UABgrid MetaData]] - Metadata to configure SAML interfaces&lt;br /&gt;
* [[UABgrid Clusters]] - description of clusters on the grid, features, and policies&lt;br /&gt;
* [http://uabgrid.uab.edu/UABgridCA UABgrid CA] - you will need a certificate from the UABgrid CA in order to execute workflows on UABgrid. You will need to be registered with UABgrid before you can be issued a certificate. Please [http://vo.uabgrid.uab.edu/sympa/loginrequest/home/ register here].&lt;br /&gt;
* [[UABgrid Apps|Resources and Applications]] - hardware and software found on UABgrid&lt;br /&gt;
* [[UABgrid FAQ| UABgrid FAQ]]&lt;br /&gt;
* [[UAB Cyberinfrastructure|UAB Cyberinfrastructure]]&lt;br /&gt;
* [[UABgridBootCamp|UABgrid BootCamp]] - material for the launch of UABgrid2 on September 11, 2007&lt;br /&gt;
* [[UABgrid VO|UABgrid VO wikis]]&lt;br /&gt;
* [[UABgrid Jobs|Running Jobs on UABgrid]]&lt;br /&gt;
* [[System Types|UABgrid System Types]] - information of the different type of systems that are found on UABgrid.&lt;br /&gt;
* [[IdentityPrimer]] - An introduction to the concepts of identity on UABgrid&lt;br /&gt;
* [[UABgridWelcome]]&lt;br /&gt;
* [[SwiftNotes]] - notes about using Swift&lt;br /&gt;
&lt;br /&gt;
== Wiki Help ==&lt;br /&gt;
&lt;br /&gt;
For information about [http://www.mediawiki.org MediaWiki], the software that supports the UABgrid documention, please see the following helpful references.&lt;br /&gt;
&lt;br /&gt;
* [http://meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software.&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:Configuration_settings Configuration settings list]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:FAQ MediaWiki FAQ]&lt;br /&gt;
* [http://mail.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]&lt;/div&gt;</summary>
		<author><name>Cmbellah@uab.edu</name></author>
	</entry>
</feed>