<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ljhaywar</id>
	<title>Expertiza_Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ljhaywar"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Ljhaywar"/>
	<updated>2026-09-17T23:56:19Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=10354</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=10354"/>
		<updated>2007-11-29T03:15:05Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* The Agile Debate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html Waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and the [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes].&lt;br /&gt;
&lt;br /&gt;
===When are Plan-Driven Methods Most Appropriate?===&lt;br /&gt;
&lt;br /&gt;
Plan-driven methods are most appropriate when software is highly critical and the requirements can be determined to be stable at the beginning of the project.&lt;br /&gt;
&lt;br /&gt;
As Barry Boehm explains, &amp;quot;Plan-driven methods work best when developers can determine the requirements in advance...and when the requirements remain relatively stable...This emphasis is vital for stable, safety-critical embedded software.&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes agile methodology as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Agile methods are a subset of iterative and evolutionary methods (Larman, 2004; Larman and Basili, June 2003) and are based on iterative enhancement (Basili and Turner, 1975) and opportunistic development processes (Curtis, 1989). In all iterative products, each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test (Larman, 2004).&amp;quot;[1]&lt;br /&gt;
&lt;br /&gt;
Agile methodology encompasses several different processes including [http://www.extremeprogramming.org/ Extreme Programming], [http://agile.csc.ncsu.edu/crystal.html Crystal], [http://agile.csc.ncsu.edu/scrum.html Scrum], and [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development].&lt;br /&gt;
&lt;br /&gt;
===When are Agile Methods Most Appropriate?===&lt;br /&gt;
&lt;br /&gt;
Agile methodology evolved in the mid-1990s as software development teams began to notice that the rate of change of requirements was far larger than the rate of change allowed by the the current methodologies.  Agile methodology is most appropriate when customers are unable to express the requirements upfront and when change in requirements in highly probable. [5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Plan-Driven Methodology==&lt;br /&gt;
&lt;br /&gt;
Since Plan-Driven Methodology encompasses several different processes, the following are general benefits common to all.  For more specific and elaborated benefits, look into the individual processes ([http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html Waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes]).  &lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Thorough documentation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Detailed plans, workflow, roles, responsibilities, and work product descriptions&amp;quot; [2]&lt;br /&gt;
* &amp;quot;On-going risk management&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Focus on verification and validation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Predictability, stability, and high assurance&amp;quot; [3]&lt;br /&gt;
* Attractive methodology for highly critical systems [4]&lt;br /&gt;
* Allows for stable requirements [5]&lt;br /&gt;
* Good for large teams and requirements [5]&lt;br /&gt;
* Primary objective is &amp;quot;high assurance&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Agile Methodology==&lt;br /&gt;
&lt;br /&gt;
Since Agile Methodology encompasses several different processes, the following are general benefits common to all.  For more specific and elaborated benefits, look into the individual processes ([http://www.extremeprogramming.org/ Extreme Programming], [http://agile.csc.ncsu.edu/crystal.html Crystal], [http://agile.csc.ncsu.edu/scrum.html Scrum], and [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development]).&lt;br /&gt;
&lt;br /&gt;
* Allows for changing requirements [1]&lt;br /&gt;
* Delivers working software frequently [1]&lt;br /&gt;
* Encourages interaction between business people and developers [1]&lt;br /&gt;
* Requires teams to regularly evaluate how to become more effective and modify accordingly [1]&lt;br /&gt;
* &amp;quot;Higher customer satisfaction, lower defect rates, faster development times&amp;quot; [3]&lt;br /&gt;
* Refactoring is inexpensive [5]&lt;br /&gt;
* Good for small teams and requirements [5]&lt;br /&gt;
* Primary objective is &amp;quot;rapid value&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Can Agile Development Actually Produce a Robust Design?==&lt;br /&gt;
Yes!  Microsoft, a well known industry leader in software development, is migrating towards a more agile methodology.  This paper describes how Microsoft has become more successful by becoming more agile.  They are shifting to a view that bugs are unacceptable, and, therefore, the development process should be more flexible.  [http://portal.acm.org/citation.cfm?id=1062473&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=8022253&amp;amp;CFTOKEN=18011744 Journey of enlightenment: the evolution of development at Microsoft]&lt;br /&gt;
&lt;br /&gt;
In 2002, eighteen Agile experts got together to discuss the pros and cons of Agile methodology.  They made the following conclusion about using Agile methodology to create reliable and safety-critical projects:&lt;br /&gt;
&amp;quot;Reliable and safety-critical projects can be conducted using Agile Methods. The key is that performance requirements are made explicit early, and proper levels of testing are planned. It is easier to address critical issues using Agile Methods since the customer gives requirements, makes important things explicit early and provides continual input.&amp;quot; [http://www.lib.ncsu.edu:2097/content/54rr5mbq291rc5cy/ Taken from Empirical Findings in Agile Methods]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What Methodology Is Best?==&lt;br /&gt;
&lt;br /&gt;
While some will argue strongly for one methodology or the other, many software engineering teams are migrating to a hybrid methodology.  Barry Beohm and Richard Turner suggest five critical dimensions when determining which methodology to use:  size, criticality, dynamism, personnel, and culture [3].&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Both agile and plan-driven methods have a home ground of project characteristics in which each clearly works best, and where the other will have difficulties.  Hybrid approaches that combine both methods are feasible and necessary for projects that combine a mix of agile and plan-driven home ground characteristics.&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
For a fantastic spider-like diagram of how to choose the methodology best for your team, view Dr. Laurie Williams' slides: [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Choosing Your Software Development Process: Agile or Plan-driven?].  Slide #4 allows you to chart where your team lies in the five critical dimensions and determine whether plan-driven, agile, or a hybrid is best for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Suggested Links==&lt;br /&gt;
* [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html Waterfall]&lt;br /&gt;
* [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes]&lt;br /&gt;
* [http://www.extremeprogramming.org/ Extreme Programming]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/crystal.html Crystal]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/scrum.html Scrum]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development]&lt;br /&gt;
* [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Choosing Your Software Development Process: Agile or Plan-driven?]&lt;br /&gt;
* [http://portal.acm.org/citation.cfm?id=1062473&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=8022253&amp;amp;CFTOKEN=18011744 Journey of enlightenment: the evolution of development at Microsoft]&lt;br /&gt;
* [http://www.lib.ncsu.edu:2097/content/54rr5mbq291rc5cy/ Taken from Empirical Findings in Agile Methods]&lt;br /&gt;
* [http://www.agilealliance.org/ Agile Alliance]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* [1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;br /&gt;
* [2] [http://agile.csc.ncsu.edu/SEMaterials/PlanDriven.pdf A Survey of Plan-Driven Development Methodologies]&lt;br /&gt;
* [3] [http://portal.acm.org/citation.cfm?id=999485&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=43700200&amp;amp;CFTOKEN=87947446 Balancing Agility and Discipline: Evaluating and Integrating Agile and Plan-Driven Methods ]&lt;br /&gt;
* [4] [http://www.agilealliance.org/system/article/file/923/file.pdf Agile and Plan-Driven Methods Oil and Water?]&lt;br /&gt;
* [5] [http://www2.umassd.edu/swpi/xp/papers/r1064.pdf Get Ready for Agile Methods, with Care]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=10352</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=10352"/>
		<updated>2007-11-29T03:07:15Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* The Agile Debate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html Waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and the [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes].&lt;br /&gt;
&lt;br /&gt;
===When are Plan-Driven Methods Most Appropriate?===&lt;br /&gt;
&lt;br /&gt;
Plan-driven methods are most appropriate when software is highly critical and the requirements can be determined to be stable at the beginning of the project.&lt;br /&gt;
&lt;br /&gt;
As Barry Boehm explains, &amp;quot;Plan-driven methods work best when developers can determine the requirements in advance...and when the requirements remain relatively stable...This emphasis is vital for stable, safety-critical embedded software.&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes agile methodology as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Agile methods are a subset of iterative and evolutionary methods (Larman, 2004; Larman and Basili, June 2003) and are based on iterative enhancement (Basili and Turner, 1975) and opportunistic development processes (Curtis, 1989). In all iterative products, each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test (Larman, 2004).&amp;quot;[1]&lt;br /&gt;
&lt;br /&gt;
Agile methodology encompasses several different processes including [http://www.extremeprogramming.org/ Extreme Programming], [http://agile.csc.ncsu.edu/crystal.html Crystal], [http://agile.csc.ncsu.edu/scrum.html Scrum], and [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development].&lt;br /&gt;
&lt;br /&gt;
===When are Agile Methods Most Appropriate?===&lt;br /&gt;
&lt;br /&gt;
Agile methodology evolved in the mid-1990s as software development teams began to notice that the rate of change of requirements was far larger than the rate of change allowed by the the current methodologies.  Agile methodology is most appropriate when customers are unable to express the requirements upfront and when change in requirements in highly probable. [5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Plan-Driven Methodology==&lt;br /&gt;
&lt;br /&gt;
Since Plan-Driven Methodology encompasses several different processes, the following are general benefits common to all.  For more specific and elaborated benefits, look into the individual processes ([http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html Waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes]).  &lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Thorough documentation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Detailed plans, workflow, roles, responsibilities, and work product descriptions&amp;quot; [2]&lt;br /&gt;
* &amp;quot;On-going risk management&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Focus on verification and validation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Predictability, stability, and high assurance&amp;quot; [3]&lt;br /&gt;
* Attractive methodology for highly critical systems [4]&lt;br /&gt;
* Allows for stable requirements [5]&lt;br /&gt;
* Good for large teams and requirements [5]&lt;br /&gt;
* Primary objective is &amp;quot;high assurance&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Agile Methodology==&lt;br /&gt;
&lt;br /&gt;
Since Agile Methodology encompasses several different processes, the following are general benefits common to all.  For more specific and elaborated benefits, look into the individual processes ([http://www.extremeprogramming.org/ Extreme Programming], [http://agile.csc.ncsu.edu/crystal.html Crystal], [http://agile.csc.ncsu.edu/scrum.html Scrum], and [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development]).&lt;br /&gt;
&lt;br /&gt;
* Allows for changing requirements [1]&lt;br /&gt;
* Delivers working software frequently [1]&lt;br /&gt;
* Encourages interaction between business people and developers [1]&lt;br /&gt;
* Requires teams to regularly evaluate how to become more effective and modify accordingly [1]&lt;br /&gt;
* &amp;quot;Higher customer satisfaction, lower defect rates, faster development times&amp;quot; [3]&lt;br /&gt;
* Refactoring is inexpensive [5]&lt;br /&gt;
* Good for small teams and requirements [5]&lt;br /&gt;
* Primary objective is &amp;quot;rapid value&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Can Agile Development Actually Produce a Robust Design?==&lt;br /&gt;
Yes!  Microsoft, a well known industry leader in software development, is migrating towards a more agile methodology.  This paper describes how Microsoft has become more successful by becoming more agile.  They are shifting to a view that bugs are unacceptable, and, therefore, the development process should be more flexible.  [http://portal.acm.org/citation.cfm?id=1062473&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=8022253&amp;amp;CFTOKEN=18011744 Journey of enlightenment: the evolution of development at Microsoft]&lt;br /&gt;
&lt;br /&gt;
In 2002, eighteen Agile experts got together to discuss the pros and cons of Agile methodology.  They made the following conclusion about using Agile methodology to create reliable and safety-critical projects:&lt;br /&gt;
&amp;quot;Reliable and safety-critical projects can be conducted using Agile Methods. The key is that performance requirements are made explicit early, and proper levels of testing are planned. It is easier to address critical issues using Agile Methods since the customer gives requirements, makes important things explicit early and provides continual input.&amp;quot; [http://www.lib.ncsu.edu:2097/content/54rr5mbq291rc5cy/ Taken from Empirical Findings in Agile Methods]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What Methodology Is Best?==&lt;br /&gt;
&lt;br /&gt;
While some will argue strongly for one methodology or the other, many software engineering teams are migrating to a hybrid methodology.  Barry Beohm and Richard Turner suggest five critical dimensions when determining which methodology to use:  size, criticality, dynamism, personnel, and culture [3].&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Both agile and plan-driven methods have a home ground of project characteristics in which each clearly works best, and where the other will have difficulties.  Hybrid approaches that combine both methods are feasible and necessary for projects that combine a mix of agile and plan-driven home ground characteristics.&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
For a fantastic spider-like diagram of how to choose the methodology best for your team, view Dr. Laurie Williams' slides: [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Choosing Your Software Development Process: Agile or Plan-driven?].  Slide #4 allows you to chart where your team lies in the five critical dimensions and determine whether plan-driven, agile, or a hybrid is best for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Suggested Links==&lt;br /&gt;
* [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html Waterfall]&lt;br /&gt;
* [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes]&lt;br /&gt;
* [http://www.extremeprogramming.org/ Extreme Programming]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/crystal.html Crystal]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/scrum.html Scrum]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development]&lt;br /&gt;
* [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Choosing Your Software Development Process: Agile or Plan-driven?]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* [1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;br /&gt;
* [2] [http://agile.csc.ncsu.edu/SEMaterials/PlanDriven.pdf A Survey of Plan-Driven Development Methodologies]&lt;br /&gt;
* [3] [http://portal.acm.org/citation.cfm?id=999485&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=43700200&amp;amp;CFTOKEN=87947446 Balancing Agility and Discipline: Evaluating and Integrating Agile and Plan-Driven Methods ]&lt;br /&gt;
* [4] [http://www.agilealliance.org/system/article/file/923/file.pdf Agile and Plan-Driven Methods Oil and Water?]&lt;br /&gt;
* [5] [http://www2.umassd.edu/swpi/xp/papers/r1064.pdf Get Ready for Agile Methods, with Care]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=10291</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=10291"/>
		<updated>2007-11-29T01:18:57Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* Can Agile Development Actually Produce a Robust Design? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html Waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and the [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes].&lt;br /&gt;
&lt;br /&gt;
===When are Plan-Driven Methods Most Appropriate?===&lt;br /&gt;
&lt;br /&gt;
Plan-driven methods are most appropriate when software is highly critical and the requirements can be determined to be stable at the beginning of the project.&lt;br /&gt;
&lt;br /&gt;
As Barry Boehm explains, &amp;quot;Plan-driven methods work best when developers can determine the requirements in advance...and when the requirements remain relatively stable...This emphasis is vital for stable, safety-critical embedded software.&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes agile methodology as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Agile methods are a subset of iterative and evolutionary methods (Larman, 2004; Larman and Basili, June 2003) and are based on iterative enhancement (Basili and Turner, 1975) and opportunistic development processes (Curtis, 1989). In all iterative products, each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test (Larman, 2004).&amp;quot;[1]&lt;br /&gt;
&lt;br /&gt;
Agile methodology encompasses several different processes including [http://www.extremeprogramming.org/ Extreme Programming], [http://agile.csc.ncsu.edu/crystal.html Crystal], [http://agile.csc.ncsu.edu/scrum.html Scrum], and [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development].&lt;br /&gt;
&lt;br /&gt;
===When are Agile Methods Most Appropriate?===&lt;br /&gt;
&lt;br /&gt;
Agile methodology evolved in the mid-1990s as software development teams began to notice that the rate of change of requirements was far larger than the rate of change allowed by the the current methodologies.  Agile methodology is most appropriate when customers are unable to express the requirements upfront and when change in requirements in highly probable. [5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Plan-Driven Methodology==&lt;br /&gt;
&lt;br /&gt;
Since Plan-Driven Methodology encompasses several different processes, the following are general benefits common to all.  For more specific and elaborated benefits, look into the individual processes ([http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html Waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes]).  &lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Thorough documentation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Detailed plans, workflow, roles, responsibilities, and work product descriptions&amp;quot; [2]&lt;br /&gt;
* &amp;quot;On-going risk management&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Focus on verification and validation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Predictability, stability, and high assurance&amp;quot; [3]&lt;br /&gt;
* Attractive methodology for highly critical systems [4]&lt;br /&gt;
* Allows for stable requirements [5]&lt;br /&gt;
* Good for large teams and requirements [5]&lt;br /&gt;
* Primary objective is &amp;quot;high assurance&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Agile Methodology==&lt;br /&gt;
&lt;br /&gt;
Since Agile Methodology encompasses several different processes, the following are general benefits common to all.  For more specific and elaborated benefits, look into the individual processes ([http://www.extremeprogramming.org/ Extreme Programming], [http://agile.csc.ncsu.edu/crystal.html Crystal], [http://agile.csc.ncsu.edu/scrum.html Scrum], and [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development]).&lt;br /&gt;
&lt;br /&gt;
* Allows for changing requirements [1]&lt;br /&gt;
* Delivers working software frequently [1]&lt;br /&gt;
* Encourages interaction between business people and developers [1]&lt;br /&gt;
* Requires teams to regularly evaluate how to become more effective and modify accordingly [1]&lt;br /&gt;
* &amp;quot;Higher customer satisfaction, lower defect rates, faster development times&amp;quot; [3]&lt;br /&gt;
* Refactoring is inexpensive [5]&lt;br /&gt;
* Good for small teams and requirements [5]&lt;br /&gt;
* Primary objective is &amp;quot;rapid value&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Can Agile Development Actually Produce a Robust Design?==&lt;br /&gt;
Yes!  Microsoft, a well known industry leader in software development, is migrating towards a more agile methodology.  This paper describes how Microsoft has become more successful by becoming more agile.  They are shifting to a view that bugs are unacceptable, and, therefore, the development process should be more flexible.  [http://portal.acm.org/citation.cfm?id=1062473&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=8022253&amp;amp;CFTOKEN=18011744 Journey of enlightenment: the evolution of development at Microsoft]&lt;br /&gt;
&lt;br /&gt;
http://portal.acm.org/citation.cfm?id=604255&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=8022253&amp;amp;CFTOKEN=18011744&lt;br /&gt;
&lt;br /&gt;
http://portal.acm.org/citation.cfm?id=1030005&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=8022253&amp;amp;CFTOKEN=18011744&lt;br /&gt;
&lt;br /&gt;
==What Methodology Is Best?==&lt;br /&gt;
&lt;br /&gt;
While some will argue strongly for one methodology or the other, many software engineering teams are migrating to a hybrid methodology.  Barry Beohm and Richard Turner suggest five critical dimensions when determining which methodology to use:  size, criticality, dynamism, personnel, and culture [3].&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Both agile and plan-driven methods have a home ground of project characteristics in which each clearly works best, and where the other will have difficulties.  Hybrid approaches that combine both methods are feasible and necessary for projects that combine a mix of agile and plan-driven home ground characteristics.&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
For a fantastic spider-like diagram of how to choose the methodology best for your team, view Dr. Laurie Williams' slides: [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Choosing Your Software Development Process: Agile or Plan-driven?].  Slide #4 allows you to chart where your team lies in the five critical dimensions and determine whether plan-driven, agile, or a hybrid is best for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Suggested Links==&lt;br /&gt;
* [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html Waterfall]&lt;br /&gt;
* [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes]&lt;br /&gt;
* [http://www.extremeprogramming.org/ Extreme Programming]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/crystal.html Crystal]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/scrum.html Scrum]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development]&lt;br /&gt;
* [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Choosing Your Software Development Process: Agile or Plan-driven?]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* [1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;br /&gt;
* [2] [http://agile.csc.ncsu.edu/SEMaterials/PlanDriven.pdf A Survey of Plan-Driven Development Methodologies]&lt;br /&gt;
* [3] [http://portal.acm.org/citation.cfm?id=999485&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=43700200&amp;amp;CFTOKEN=87947446 Balancing Agility and Discipline: Evaluating and Integrating Agile and Plan-Driven Methods ]&lt;br /&gt;
* [4] [http://www.agilealliance.org/system/article/file/923/file.pdf Agile and Plan-Driven Methods Oil and Water?]&lt;br /&gt;
* [5] [http://www2.umassd.edu/swpi/xp/papers/r1064.pdf Get Ready for Agile Methods, with Care]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=10289</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=10289"/>
		<updated>2007-11-29T01:17:58Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* The Agile Debate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html Waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and the [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes].&lt;br /&gt;
&lt;br /&gt;
===When are Plan-Driven Methods Most Appropriate?===&lt;br /&gt;
&lt;br /&gt;
Plan-driven methods are most appropriate when software is highly critical and the requirements can be determined to be stable at the beginning of the project.&lt;br /&gt;
&lt;br /&gt;
As Barry Boehm explains, &amp;quot;Plan-driven methods work best when developers can determine the requirements in advance...and when the requirements remain relatively stable...This emphasis is vital for stable, safety-critical embedded software.&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes agile methodology as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Agile methods are a subset of iterative and evolutionary methods (Larman, 2004; Larman and Basili, June 2003) and are based on iterative enhancement (Basili and Turner, 1975) and opportunistic development processes (Curtis, 1989). In all iterative products, each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test (Larman, 2004).&amp;quot;[1]&lt;br /&gt;
&lt;br /&gt;
Agile methodology encompasses several different processes including [http://www.extremeprogramming.org/ Extreme Programming], [http://agile.csc.ncsu.edu/crystal.html Crystal], [http://agile.csc.ncsu.edu/scrum.html Scrum], and [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development].&lt;br /&gt;
&lt;br /&gt;
===When are Agile Methods Most Appropriate?===&lt;br /&gt;
&lt;br /&gt;
Agile methodology evolved in the mid-1990s as software development teams began to notice that the rate of change of requirements was far larger than the rate of change allowed by the the current methodologies.  Agile methodology is most appropriate when customers are unable to express the requirements upfront and when change in requirements in highly probable. [5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Plan-Driven Methodology==&lt;br /&gt;
&lt;br /&gt;
Since Plan-Driven Methodology encompasses several different processes, the following are general benefits common to all.  For more specific and elaborated benefits, look into the individual processes ([http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html Waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes]).  &lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Thorough documentation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Detailed plans, workflow, roles, responsibilities, and work product descriptions&amp;quot; [2]&lt;br /&gt;
* &amp;quot;On-going risk management&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Focus on verification and validation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Predictability, stability, and high assurance&amp;quot; [3]&lt;br /&gt;
* Attractive methodology for highly critical systems [4]&lt;br /&gt;
* Allows for stable requirements [5]&lt;br /&gt;
* Good for large teams and requirements [5]&lt;br /&gt;
* Primary objective is &amp;quot;high assurance&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Agile Methodology==&lt;br /&gt;
&lt;br /&gt;
Since Agile Methodology encompasses several different processes, the following are general benefits common to all.  For more specific and elaborated benefits, look into the individual processes ([http://www.extremeprogramming.org/ Extreme Programming], [http://agile.csc.ncsu.edu/crystal.html Crystal], [http://agile.csc.ncsu.edu/scrum.html Scrum], and [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development]).&lt;br /&gt;
&lt;br /&gt;
* Allows for changing requirements [1]&lt;br /&gt;
* Delivers working software frequently [1]&lt;br /&gt;
* Encourages interaction between business people and developers [1]&lt;br /&gt;
* Requires teams to regularly evaluate how to become more effective and modify accordingly [1]&lt;br /&gt;
* &amp;quot;Higher customer satisfaction, lower defect rates, faster development times&amp;quot; [3]&lt;br /&gt;
* Refactoring is inexpensive [5]&lt;br /&gt;
* Good for small teams and requirements [5]&lt;br /&gt;
* Primary objective is &amp;quot;rapid value&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Can Agile Development Actually Produce a Robust Design?==&lt;br /&gt;
Yes!  Microsoft, a well known industry leader in software development, is migrating towards a more agile methodology.  This paper describes how Microsoft has become more successful by becoming more agile.  They are shifting to a view that bugs are unacceptable and therefore the development process should be more flexible.  http://portal.acm.org/citation.cfm?id=1062473&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=8022253&amp;amp;CFTOKEN=18011744&lt;br /&gt;
&lt;br /&gt;
http://portal.acm.org/citation.cfm?id=604255&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=8022253&amp;amp;CFTOKEN=18011744&lt;br /&gt;
&lt;br /&gt;
http://portal.acm.org/citation.cfm?id=1030005&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=8022253&amp;amp;CFTOKEN=18011744&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What Methodology Is Best?==&lt;br /&gt;
&lt;br /&gt;
While some will argue strongly for one methodology or the other, many software engineering teams are migrating to a hybrid methodology.  Barry Beohm and Richard Turner suggest five critical dimensions when determining which methodology to use:  size, criticality, dynamism, personnel, and culture [3].&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Both agile and plan-driven methods have a home ground of project characteristics in which each clearly works best, and where the other will have difficulties.  Hybrid approaches that combine both methods are feasible and necessary for projects that combine a mix of agile and plan-driven home ground characteristics.&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
For a fantastic spider-like diagram of how to choose the methodology best for your team, view Dr. Laurie Williams' slides: [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Choosing Your Software Development Process: Agile or Plan-driven?].  Slide #4 allows you to chart where your team lies in the five critical dimensions and determine whether plan-driven, agile, or a hybrid is best for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Suggested Links==&lt;br /&gt;
* [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html Waterfall]&lt;br /&gt;
* [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes]&lt;br /&gt;
* [http://www.extremeprogramming.org/ Extreme Programming]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/crystal.html Crystal]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/scrum.html Scrum]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development]&lt;br /&gt;
* [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Choosing Your Software Development Process: Agile or Plan-driven?]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* [1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;br /&gt;
* [2] [http://agile.csc.ncsu.edu/SEMaterials/PlanDriven.pdf A Survey of Plan-Driven Development Methodologies]&lt;br /&gt;
* [3] [http://portal.acm.org/citation.cfm?id=999485&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=43700200&amp;amp;CFTOKEN=87947446 Balancing Agility and Discipline: Evaluating and Integrating Agile and Plan-Driven Methods ]&lt;br /&gt;
* [4] [http://www.agilealliance.org/system/article/file/923/file.pdf Agile and Plan-Driven Methods Oil and Water?]&lt;br /&gt;
* [5] [http://www2.umassd.edu/swpi/xp/papers/r1064.pdf Get Ready for Agile Methods, with Care]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=10255</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=10255"/>
		<updated>2007-11-29T00:14:00Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* The Agile Debate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html Waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and the [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes].&lt;br /&gt;
&lt;br /&gt;
===When are Plan-Driven Methods Most Appropriate?===&lt;br /&gt;
&lt;br /&gt;
Plan-driven methods are most appropriate when software is highly critical and the requirements can be determined to be stable at the beginning of the project.&lt;br /&gt;
&lt;br /&gt;
As Barry Boehm explains, &amp;quot;Plan-driven methods work best when developers can determine the requirements in advance...and when the requirements remain relatively stable...This emphasis is vital for stable, safety-critical embedded software.&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes agile methodology as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Agile methods are a subset of iterative and evolutionary methods (Larman, 2004; Larman and Basili, June 2003) and are based on iterative enhancement (Basili and Turner, 1975) and opportunistic development processes (Curtis, 1989). In all iterative products, each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test (Larman, 2004).&amp;quot;[1]&lt;br /&gt;
&lt;br /&gt;
Agile methodology encompasses several different processes including [http://www.extremeprogramming.org/ Extreme Programming], [http://agile.csc.ncsu.edu/crystal.html Crystal], [http://agile.csc.ncsu.edu/scrum.html Scrum], and [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development].&lt;br /&gt;
&lt;br /&gt;
===When are Agile Methods Most Appropriate?===&lt;br /&gt;
&lt;br /&gt;
Agile methodology evolved in the mid-1990s as software development teams began to notice that the rate of change of requirements was far larger than the rate of change allowed by the the current methodologies.  Agile methodology is most appropriate when customers are unable to express the requirements upfront and when change in requirements in highly probable. [5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Plan-Driven Methodology==&lt;br /&gt;
&lt;br /&gt;
Since Plan-Driven Methodology encompasses several different processes, the following are general benefits common to all.  For more specific and elaborated benefits, look into the individual processes ([http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html Waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes]).  &lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Thorough documentation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Detailed plans, workflow, roles, responsibilities, and work product descriptions&amp;quot; [2]&lt;br /&gt;
* &amp;quot;On-going risk management&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Focus on verification and validation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Predictability, stability, and high assurance&amp;quot; [3]&lt;br /&gt;
* Attractive methodology for highly critical systems [4]&lt;br /&gt;
* Allows for stable requirements [5]&lt;br /&gt;
* Good for large teams and requirements [5]&lt;br /&gt;
* Primary objective is &amp;quot;high assurance&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Agile Methodology==&lt;br /&gt;
&lt;br /&gt;
Since Agile Methodology encompasses several different processes, the following are general benefits common to all.  For more specific and elaborated benefits, look into the individual processes ([http://www.extremeprogramming.org/ Extreme Programming], [http://agile.csc.ncsu.edu/crystal.html Crystal], [http://agile.csc.ncsu.edu/scrum.html Scrum], and [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development]).&lt;br /&gt;
&lt;br /&gt;
* Allows for changing requirements [1]&lt;br /&gt;
* Delivers working software frequently [1]&lt;br /&gt;
* Encourages interaction between business people and developers [1]&lt;br /&gt;
* Requires teams to regularly evaluate how to become more effective and modify accordingly [1]&lt;br /&gt;
* &amp;quot;Higher customer satisfaction, lower defect rates, faster development times&amp;quot; [3]&lt;br /&gt;
* Refactoring is inexpensive [5]&lt;br /&gt;
* Good for small teams and requirements [5]&lt;br /&gt;
* Primary objective is &amp;quot;rapid value&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Can Agile Development Actually Produce a Robust Design?==&lt;br /&gt;
Yes!  Microsoft, a well known industry leader in software development, is migrating towards a more agile methodology.  This paper describes how Microsoft has become more successful by becoming more agile.  http://portal.acm.org/citation.cfm?id=1062473&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=8022253&amp;amp;CFTOKEN=18011744&lt;br /&gt;
&lt;br /&gt;
http://portal.acm.org/citation.cfm?id=604255&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=8022253&amp;amp;CFTOKEN=18011744&lt;br /&gt;
&lt;br /&gt;
http://portal.acm.org/citation.cfm?id=1030005&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=8022253&amp;amp;CFTOKEN=18011744&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What Methodology Is Best?==&lt;br /&gt;
&lt;br /&gt;
While some will argue strongly for one methodology or the other, many software engineering teams are migrating to a hybrid methodology.  Barry Beohm and Richard Turner suggest five critical dimensions when determining which methodology to use:  size, criticality, dynamism, personnel, and culture [3].&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Both agile and plan-driven methods have a home ground of project characteristics in which each clearly works best, and where the other will have difficulties.  Hybrid approaches that combine both methods are feasible and necessary for projects that combine a mix of agile and plan-driven home ground characteristics.&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
For a fantastic spider-like diagram of how to choose the methodology best for your team, view Dr. Laurie Williams' slides: [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Choosing Your Software Development Process: Agile or Plan-driven?].  Slide #4 allows you to chart where your team lies in the five critical dimensions and determine whether plan-driven, agile, or a hybrid is best for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Suggested Links==&lt;br /&gt;
* [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html Waterfall]&lt;br /&gt;
* [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes]&lt;br /&gt;
* [http://www.extremeprogramming.org/ Extreme Programming]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/crystal.html Crystal]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/scrum.html Scrum]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development]&lt;br /&gt;
* [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Choosing Your Software Development Process: Agile or Plan-driven?]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* [1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;br /&gt;
* [2] [http://agile.csc.ncsu.edu/SEMaterials/PlanDriven.pdf A Survey of Plan-Driven Development Methodologies]&lt;br /&gt;
* [3] [http://portal.acm.org/citation.cfm?id=999485&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=43700200&amp;amp;CFTOKEN=87947446 Balancing Agility and Discipline: Evaluating and Integrating Agile and Plan-Driven Methods ]&lt;br /&gt;
* [4] [http://www.agilealliance.org/system/article/file/923/file.pdf Agile and Plan-Driven Methods Oil and Water?]&lt;br /&gt;
* [5] [http://www2.umassd.edu/swpi/xp/papers/r1064.pdf Get Ready for Agile Methods, with Care]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=10111</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=10111"/>
		<updated>2007-11-28T20:12:18Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* The Agile Debate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html Waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and the [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes].&lt;br /&gt;
&lt;br /&gt;
===When are Plan-Driven Methods Most Appropriate?===&lt;br /&gt;
&lt;br /&gt;
Plan-driven methods are most appropriate when software is highly critical and the requirements can be determined to be stable at the beginning of the project.&lt;br /&gt;
&lt;br /&gt;
As Barry Boehm explains, &amp;quot;Plan-driven methods work best when developers can determine the requirements in advance...and when the requirements remain relatively stable...This emphasis is vital for stable, safety-critical embedded software.&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes agile methodology as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Agile methods are a subset of iterative and evolutionary methods (Larman, 2004; Larman and Basili, June 2003) and are based on iterative enhancement (Basili and Turner, 1975) and opportunistic development processes (Curtis, 1989). In all iterative products, each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test (Larman, 2004).&amp;quot;[1]&lt;br /&gt;
&lt;br /&gt;
Agile methodology encompasses several different processes including [http://www.extremeprogramming.org/ Extreme Programming], [http://agile.csc.ncsu.edu/crystal.html Crystal], [http://agile.csc.ncsu.edu/scrum.html Scrum], and [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development].&lt;br /&gt;
&lt;br /&gt;
===When are Agile Methods Most Appropriate?===&lt;br /&gt;
&lt;br /&gt;
Agile methodology evolved in the mid-1990s as software development teams began to notice that the rate of change of requirements was far larger than the rate of change allowed by the the current methodologies.  Agile methodology is most appropriate when customers are unable to express the requirements upfront and when change in requirements in highly probable. [5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Plan-Driven Methodology==&lt;br /&gt;
&lt;br /&gt;
Since Plan-Driven Methodology encompasses several different processes, the following are general benefits common to all.  For more specific and elaborated benefits, look into the individual processes ([http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html Waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes]).  &lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Thorough documentation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Detailed plans, workflow, roles, responsibilities, and work product descriptions&amp;quot; [2]&lt;br /&gt;
* &amp;quot;On-going risk management&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Focus on verification and validation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Predictability, stability, and high assurance&amp;quot; [3]&lt;br /&gt;
* Attractive methodology for highly critical systems [4]&lt;br /&gt;
* Allows for stable requirements [5]&lt;br /&gt;
* Good for large teams and requirements [5]&lt;br /&gt;
* Primary objective is &amp;quot;high assurance&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Agile Methodology==&lt;br /&gt;
&lt;br /&gt;
Since Agile Methodology encompasses several different processes, the following are general benefits common to all.  For more specific and elaborated benefits, look into the individual processes ([http://www.extremeprogramming.org/ Extreme Programming], [http://agile.csc.ncsu.edu/crystal.html Crystal], [http://agile.csc.ncsu.edu/scrum.html Scrum], and [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development]).&lt;br /&gt;
&lt;br /&gt;
* Allows for changing requirements [1]&lt;br /&gt;
* Delivers working software frequently [1]&lt;br /&gt;
* Encourages interaction between business people and developers [1]&lt;br /&gt;
* Requires teams to regularly evaluate how to become more effective and modify accordingly [1]&lt;br /&gt;
* &amp;quot;Higher customer satisfaction, lower defect rates, faster development times&amp;quot; [3]&lt;br /&gt;
* Refactoring is inexpensive [5]&lt;br /&gt;
* Good for small teams and requirements [5]&lt;br /&gt;
* Primary objective is &amp;quot;rapid value&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Can Agile Development Actually Produce a Robust Design?==&lt;br /&gt;
Yes.  http://portal.acm.org/citation.cfm?id=604255&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=8022253&amp;amp;CFTOKEN=18011744&lt;br /&gt;
http://portal.acm.org/citation.cfm?id=1062473&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=8022253&amp;amp;CFTOKEN=18011744&lt;br /&gt;
http://portal.acm.org/citation.cfm?id=1030005&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=8022253&amp;amp;CFTOKEN=18011744&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What Methodology Is Best?==&lt;br /&gt;
&lt;br /&gt;
While some will argue strongly for one methodology or the other, many software engineering teams are migrating to a hybrid methodology.  Barry Beohm and Richard Turner suggest five critical dimensions when determining which methodology to use:  size, criticality, dynamism, personnel, and culture [3].&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Both agile and plan-driven methods have a home ground of project characteristics in which each clearly works best, and where the other will have difficulties.  Hybrid approaches that combine both methods are feasible and necessary for projects that combine a mix of agile and plan-driven home ground characteristics.&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
For a fantastic spider-like diagram of how to choose the methodology best for your team, view Dr. Laurie Williams' slides: [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Choosing Your Software Development Process: Agile or Plan-driven?].  Slide #4 allows you to chart where your team lies in the five critical dimensions and determine whether plan-driven, agile, or a hybrid is best for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Suggested Links==&lt;br /&gt;
* [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html Waterfall]&lt;br /&gt;
* [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes]&lt;br /&gt;
* [http://www.extremeprogramming.org/ Extreme Programming]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/crystal.html Crystal]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/scrum.html Scrum]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development]&lt;br /&gt;
* [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Choosing Your Software Development Process: Agile or Plan-driven?]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* [1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;br /&gt;
* [2] [http://agile.csc.ncsu.edu/SEMaterials/PlanDriven.pdf A Survey of Plan-Driven Development Methodologies]&lt;br /&gt;
* [3] [http://portal.acm.org/citation.cfm?id=999485&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=43700200&amp;amp;CFTOKEN=87947446 Balancing Agility and Discipline: Evaluating and Integrating Agile and Plan-Driven Methods ]&lt;br /&gt;
* [4] [http://www.agilealliance.org/system/article/file/923/file.pdf Agile and Plan-Driven Methods Oil and Water?]&lt;br /&gt;
* [5] [http://www2.umassd.edu/swpi/xp/papers/r1064.pdf Get Ready for Agile Methods, with Care]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=10109</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=10109"/>
		<updated>2007-11-28T20:11:14Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* The Agile Debate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and the [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes].&lt;br /&gt;
&lt;br /&gt;
===When are Plan-Driven Methods Most Appropriate?===&lt;br /&gt;
&lt;br /&gt;
Plan-driven methods are most appropriate when software is highly critical and the requirements can be determined to be stable at the beginning of the project.&lt;br /&gt;
&lt;br /&gt;
As Barry Boehm explains, &amp;quot;Plan-driven methods work best when developers can determine the requirements in advance...and when the requirements remain relatively stable...This emphasis is vital for stable, safety-critical embedded software.&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes agile methodology as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Agile methods are a subset of iterative and evolutionary methods (Larman, 2004; Larman and Basili, June 2003) and are based on iterative enhancement (Basili and Turner, 1975) and opportunistic development processes (Curtis, 1989). In all iterative products, each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test (Larman, 2004).&amp;quot;[1]&lt;br /&gt;
&lt;br /&gt;
Agile methodology encompasses several different processes including [http://www.extremeprogramming.org/ Extreme Programming], [http://agile.csc.ncsu.edu/crystal.html Crystal], [http://agile.csc.ncsu.edu/scrum.html Scrum], and [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development].&lt;br /&gt;
&lt;br /&gt;
===When are Agile Methods Most Appropriate?===&lt;br /&gt;
&lt;br /&gt;
Agile methodology evolved in the mid-1990s as software development teams began to notice that the rate of change of requirements was far larger than the rate of change allowed by the the current methodologies.  Agile methodology is most appropriate when customers are unable to express the requirements upfront and when change in requirements in highly probable. [5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Plan-Driven Methodology==&lt;br /&gt;
&lt;br /&gt;
Since Plan-Driven Methodology encompasses several different processes, the following are general benefits common to all.  For more specific and elaborated benefits, look into the individual processes ([http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes]).  &lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Thorough documentation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Detailed plans, workflow, roles, responsibilities, and work product descriptions&amp;quot; [2]&lt;br /&gt;
* &amp;quot;On-going risk management&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Focus on verification and validation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Predictability, stability, and high assurance&amp;quot; [3]&lt;br /&gt;
* Attractive methodology for highly critical systems [4]&lt;br /&gt;
* Allows for stable requirements [5]&lt;br /&gt;
* Good for large teams and requirements [5]&lt;br /&gt;
* Primary objective is &amp;quot;high assurance&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Agile Methodology==&lt;br /&gt;
&lt;br /&gt;
Since Agile Methodology encompasses several different processes, the following are general benefits common to all.  For more specific and elaborated benefits, look into the individual processes ([http://www.extremeprogramming.org/ Extreme Programming], [http://agile.csc.ncsu.edu/crystal.html Crystal], [http://agile.csc.ncsu.edu/scrum.html Scrum], and [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development]).&lt;br /&gt;
&lt;br /&gt;
* Allows for changing requirements [1]&lt;br /&gt;
* Delivers working software frequently [1]&lt;br /&gt;
* Encourages interaction between business people and developers [1]&lt;br /&gt;
* Requires teams to regularly evaluate how to become more effective and modify accordingly [1]&lt;br /&gt;
* &amp;quot;Higher customer satisfaction, lower defect rates, faster development times&amp;quot; [3]&lt;br /&gt;
* Refactoring is inexpensive [5]&lt;br /&gt;
* Good for small teams and requirements [5]&lt;br /&gt;
* Primary objective is &amp;quot;rapid value&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Can Agile Development Actually Produce a Robust Design?==&lt;br /&gt;
Yes.  http://portal.acm.org/citation.cfm?id=604255&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=8022253&amp;amp;CFTOKEN=18011744&lt;br /&gt;
http://portal.acm.org/citation.cfm?id=1062473&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=8022253&amp;amp;CFTOKEN=18011744&lt;br /&gt;
http://portal.acm.org/citation.cfm?id=1030005&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=8022253&amp;amp;CFTOKEN=18011744&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What Methodology Is Best?==&lt;br /&gt;
&lt;br /&gt;
While some will argue strongly for one methodology or the other, many software engineering teams are migrating to a hybrid methodology.  Barry Beohm and Richard Turner suggest five critical dimensions when determining which methodology to use:  size, criticality, dynamism, personnel, and culture [3].&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Both agile and plan-driven methods have a home ground of project characteristics in which each clearly works best, and where the other will have difficulties.  Hybrid approaches that combine both methods are feasible and necessary for projects that combine a mix of agile and plan-driven home ground characteristics.&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
For a fantastic spider-like diagram of how to choose the methodology best for your team, view Dr. Laurie Williams' slides: [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Choosing Your Software Development Process: Agile or Plan-driven?].  Slide #4 allows you to chart where your team lies in the five critical dimensions and determine whether plan-driven, agile, or a hybrid is best for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Suggested Links==&lt;br /&gt;
* [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html Waterfall]&lt;br /&gt;
* [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes]&lt;br /&gt;
* [http://www.extremeprogramming.org/ Extreme Programming]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/crystal.html Crystal]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/scrum.html Scrum]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development]&lt;br /&gt;
* [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Choosing Your Software Development Process: Agile or Plan-driven?]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* [1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;br /&gt;
* [2] [http://agile.csc.ncsu.edu/SEMaterials/PlanDriven.pdf A Survey of Plan-Driven Development Methodologies]&lt;br /&gt;
* [3] [http://portal.acm.org/citation.cfm?id=999485&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=43700200&amp;amp;CFTOKEN=87947446 Balancing Agility and Discipline: Evaluating and Integrating Agile and Plan-Driven Methods ]&lt;br /&gt;
* [4] [http://www.agilealliance.org/system/article/file/923/file.pdf Agile and Plan-Driven Methods Oil and Water?]&lt;br /&gt;
* [5] [http://www2.umassd.edu/swpi/xp/papers/r1064.pdf Get Ready for Agile Methods, with Care]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=10107</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=10107"/>
		<updated>2007-11-28T20:04:23Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* When are Plan-Driven Methods Most Appropriate? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and the [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes].&lt;br /&gt;
&lt;br /&gt;
===When are Plan-Driven Methods Most Appropriate?===&lt;br /&gt;
&lt;br /&gt;
Plan-driven methods are most appropriate when software is highly critical and the requirements can be determined to be stable at the beginning of the project.&lt;br /&gt;
&lt;br /&gt;
As Barry Boehm explains, &amp;quot;Plan-driven methods work best when developers can determine the requirements in advance...and when the requirements remain relatively stable...This emphasis is vital for stable, safety-critical embedded software.&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes agile methodology as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Agile methods are a subset of iterative and evolutionary methods (Larman, 2004; Larman and Basili, June 2003) and are based on iterative enhancement (Basili and Turner, 1975) and opportunistic development processes (Curtis, 1989). In all iterative products, each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test (Larman, 2004).&amp;quot;[1]&lt;br /&gt;
&lt;br /&gt;
Agile methodology encompasses several different processes including [http://www.extremeprogramming.org/ Extreme Programming], [http://agile.csc.ncsu.edu/crystal.html Crystal], [http://agile.csc.ncsu.edu/scrum.html Scrum], and [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Plan-Driven Methodology==&lt;br /&gt;
&lt;br /&gt;
Since Plan-Driven Methodology encompasses several different processes, the following are general benefits common to all.  For more specific and elaborated benefits, look into the individual processes ([http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes]).  &lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Thorough documentation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Detailed plans, workflow, roles, responsibilities, and work product descriptions&amp;quot; [2]&lt;br /&gt;
* &amp;quot;On-going risk management&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Focus on verification and validation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Predictability, stability, and high assurance&amp;quot; [3]&lt;br /&gt;
* Attractive methodology for highly critical systems [4]&lt;br /&gt;
* Allows for stable requirements [5]&lt;br /&gt;
* Good for large teams and requirements [5]&lt;br /&gt;
* Primary objective is &amp;quot;high assurance&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Agile Methodology==&lt;br /&gt;
&lt;br /&gt;
* Allows for changing requirements [1]&lt;br /&gt;
* Delivers working software frequently [1]&lt;br /&gt;
* Encourages interaction between business people and developers [1]&lt;br /&gt;
* Requires teams to regularly evaluate how to become more effective and modify accordingly [1]&lt;br /&gt;
* &amp;quot;Higher customer satisfaction, lower defect rates, faster development times&amp;quot; [3]&lt;br /&gt;
* Refactoring is inexpensive [5]&lt;br /&gt;
* Good for small teams and requirements [5]&lt;br /&gt;
* Primary objective is &amp;quot;rapid value&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Can Agile Development Actually Produce a Robust Design?==&lt;br /&gt;
Yes.  http://portal.acm.org/citation.cfm?id=604255&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=8022253&amp;amp;CFTOKEN=18011744&lt;br /&gt;
http://portal.acm.org/citation.cfm?id=1062473&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=8022253&amp;amp;CFTOKEN=18011744&lt;br /&gt;
http://portal.acm.org/citation.cfm?id=1030005&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=8022253&amp;amp;CFTOKEN=18011744&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What Methodology Is Best?==&lt;br /&gt;
&lt;br /&gt;
While some will argue strongly for one methodology or the other, many software engineering teams are migrating to a hybrid methodology.  Barry Beohm and Richard Turner suggest five critical dimensions when determining which methodology to use:  size, criticality, dynamism, personnel, and culture [3].&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Both agile and plan-driven methods have a home ground of project characteristics in which each clearly works best, and where the other will have difficulties.  Hybrid approaches that combine both methods are feasible and necessary for projects that combine a mix of agile and plan-driven home ground characteristics.&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
For a fantastic spider-like diagram of how to choose the methodology best for your team, view Dr. Laurie Williams' slides: [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Choosing Your Software Development Process: Agile or Plan-driven?].  Slide #4 allows you to chart where your team lies in the five critical dimensions and determine whether plan-driven, agile, or a hybrid is best for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Suggested Links==&lt;br /&gt;
* [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html Waterfall]&lt;br /&gt;
* [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes]&lt;br /&gt;
* [http://www.extremeprogramming.org/ Extreme Programming]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/crystal.html Crystal]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/scrum.html Scrum]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development]&lt;br /&gt;
* [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Choosing Your Software Development Process: Agile or Plan-driven?]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* [1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;br /&gt;
* [2] [http://agile.csc.ncsu.edu/SEMaterials/PlanDriven.pdf A Survey of Plan-Driven Development Methodologies]&lt;br /&gt;
* [3] [http://portal.acm.org/citation.cfm?id=999485&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=43700200&amp;amp;CFTOKEN=87947446 Balancing Agility and Discipline: Evaluating and Integrating Agile and Plan-Driven Methods ]&lt;br /&gt;
* [4] [http://www.agilealliance.org/system/article/file/923/file.pdf Agile and Plan-Driven Methods Oil and Water?]&lt;br /&gt;
* [5] [www2.umassd.edu/swpi/xp/papers/r1064.pdf Get Ready for Agile Methods, with Care]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=10106</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=10106"/>
		<updated>2007-11-28T20:04:08Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* What is Plan-Driven Methodology? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and the [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes].&lt;br /&gt;
&lt;br /&gt;
===When are Plan-Driven Methods Most Appropriate?===&lt;br /&gt;
&lt;br /&gt;
Plan-driven methods are most appropriate when software is highly critical and the requirements can be determined to be stable at the beginning of the project.&lt;br /&gt;
&lt;br /&gt;
As Barry Boehm explains,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Plan-driven methods work best when developers can determine the requirements in advance...and when the requirements remain relatively stable...This emphasis is vital for stable, safety-critical embedded software.&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes agile methodology as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Agile methods are a subset of iterative and evolutionary methods (Larman, 2004; Larman and Basili, June 2003) and are based on iterative enhancement (Basili and Turner, 1975) and opportunistic development processes (Curtis, 1989). In all iterative products, each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test (Larman, 2004).&amp;quot;[1]&lt;br /&gt;
&lt;br /&gt;
Agile methodology encompasses several different processes including [http://www.extremeprogramming.org/ Extreme Programming], [http://agile.csc.ncsu.edu/crystal.html Crystal], [http://agile.csc.ncsu.edu/scrum.html Scrum], and [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Plan-Driven Methodology==&lt;br /&gt;
&lt;br /&gt;
Since Plan-Driven Methodology encompasses several different processes, the following are general benefits common to all.  For more specific and elaborated benefits, look into the individual processes ([http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes]).  &lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Thorough documentation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Detailed plans, workflow, roles, responsibilities, and work product descriptions&amp;quot; [2]&lt;br /&gt;
* &amp;quot;On-going risk management&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Focus on verification and validation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Predictability, stability, and high assurance&amp;quot; [3]&lt;br /&gt;
* Attractive methodology for highly critical systems [4]&lt;br /&gt;
* Allows for stable requirements [5]&lt;br /&gt;
* Good for large teams and requirements [5]&lt;br /&gt;
* Primary objective is &amp;quot;high assurance&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Agile Methodology==&lt;br /&gt;
&lt;br /&gt;
* Allows for changing requirements [1]&lt;br /&gt;
* Delivers working software frequently [1]&lt;br /&gt;
* Encourages interaction between business people and developers [1]&lt;br /&gt;
* Requires teams to regularly evaluate how to become more effective and modify accordingly [1]&lt;br /&gt;
* &amp;quot;Higher customer satisfaction, lower defect rates, faster development times&amp;quot; [3]&lt;br /&gt;
* Refactoring is inexpensive [5]&lt;br /&gt;
* Good for small teams and requirements [5]&lt;br /&gt;
* Primary objective is &amp;quot;rapid value&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Can Agile Development Actually Produce a Robust Design?==&lt;br /&gt;
Yes.  http://portal.acm.org/citation.cfm?id=604255&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=8022253&amp;amp;CFTOKEN=18011744&lt;br /&gt;
http://portal.acm.org/citation.cfm?id=1062473&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=8022253&amp;amp;CFTOKEN=18011744&lt;br /&gt;
http://portal.acm.org/citation.cfm?id=1030005&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=8022253&amp;amp;CFTOKEN=18011744&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What Methodology Is Best?==&lt;br /&gt;
&lt;br /&gt;
While some will argue strongly for one methodology or the other, many software engineering teams are migrating to a hybrid methodology.  Barry Beohm and Richard Turner suggest five critical dimensions when determining which methodology to use:  size, criticality, dynamism, personnel, and culture [3].&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Both agile and plan-driven methods have a home ground of project characteristics in which each clearly works best, and where the other will have difficulties.  Hybrid approaches that combine both methods are feasible and necessary for projects that combine a mix of agile and plan-driven home ground characteristics.&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
For a fantastic spider-like diagram of how to choose the methodology best for your team, view Dr. Laurie Williams' slides: [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Choosing Your Software Development Process: Agile or Plan-driven?].  Slide #4 allows you to chart where your team lies in the five critical dimensions and determine whether plan-driven, agile, or a hybrid is best for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Suggested Links==&lt;br /&gt;
* [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html Waterfall]&lt;br /&gt;
* [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes]&lt;br /&gt;
* [http://www.extremeprogramming.org/ Extreme Programming]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/crystal.html Crystal]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/scrum.html Scrum]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development]&lt;br /&gt;
* [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Choosing Your Software Development Process: Agile or Plan-driven?]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* [1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;br /&gt;
* [2] [http://agile.csc.ncsu.edu/SEMaterials/PlanDriven.pdf A Survey of Plan-Driven Development Methodologies]&lt;br /&gt;
* [3] [http://portal.acm.org/citation.cfm?id=999485&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=43700200&amp;amp;CFTOKEN=87947446 Balancing Agility and Discipline: Evaluating and Integrating Agile and Plan-Driven Methods ]&lt;br /&gt;
* [4] [http://www.agilealliance.org/system/article/file/923/file.pdf Agile and Plan-Driven Methods Oil and Water?]&lt;br /&gt;
* [5] [www2.umassd.edu/swpi/xp/papers/r1064.pdf Get Ready for Agile Methods, with Care]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=10105</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=10105"/>
		<updated>2007-11-28T20:03:25Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* The Agile Debate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and the [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes].&lt;br /&gt;
&lt;br /&gt;
===When are Plan-Driven Methods Most Appropriate?===&lt;br /&gt;
&lt;br /&gt;
Plan-driven methods are most appropriate when software is highly critical and the requirements can be determined to be stable at the beginning of the project.&lt;br /&gt;
&lt;br /&gt;
As Barry Boehm explains,&lt;br /&gt;
&amp;quot;Plan-driven methods work best when developers can determine the requirements in advance...and when the requirements remain relatively stable...This emphasis is vital for stable, safety-critical embedded software.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes agile methodology as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Agile methods are a subset of iterative and evolutionary methods (Larman, 2004; Larman and Basili, June 2003) and are based on iterative enhancement (Basili and Turner, 1975) and opportunistic development processes (Curtis, 1989). In all iterative products, each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test (Larman, 2004).&amp;quot;[1]&lt;br /&gt;
&lt;br /&gt;
Agile methodology encompasses several different processes including [http://www.extremeprogramming.org/ Extreme Programming], [http://agile.csc.ncsu.edu/crystal.html Crystal], [http://agile.csc.ncsu.edu/scrum.html Scrum], and [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Plan-Driven Methodology==&lt;br /&gt;
&lt;br /&gt;
Since Plan-Driven Methodology encompasses several different processes, the following are general benefits common to all.  For more specific and elaborated benefits, look into the individual processes ([http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes]).  &lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Thorough documentation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Detailed plans, workflow, roles, responsibilities, and work product descriptions&amp;quot; [2]&lt;br /&gt;
* &amp;quot;On-going risk management&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Focus on verification and validation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Predictability, stability, and high assurance&amp;quot; [3]&lt;br /&gt;
* Attractive methodology for highly critical systems [4]&lt;br /&gt;
* Allows for stable requirements [5]&lt;br /&gt;
* Good for large teams and requirements [5]&lt;br /&gt;
* Primary objective is &amp;quot;high assurance&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Agile Methodology==&lt;br /&gt;
&lt;br /&gt;
* Allows for changing requirements [1]&lt;br /&gt;
* Delivers working software frequently [1]&lt;br /&gt;
* Encourages interaction between business people and developers [1]&lt;br /&gt;
* Requires teams to regularly evaluate how to become more effective and modify accordingly [1]&lt;br /&gt;
* &amp;quot;Higher customer satisfaction, lower defect rates, faster development times&amp;quot; [3]&lt;br /&gt;
* Refactoring is inexpensive [5]&lt;br /&gt;
* Good for small teams and requirements [5]&lt;br /&gt;
* Primary objective is &amp;quot;rapid value&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Can Agile Development Actually Produce a Robust Design?==&lt;br /&gt;
Yes.  http://portal.acm.org/citation.cfm?id=604255&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=8022253&amp;amp;CFTOKEN=18011744&lt;br /&gt;
http://portal.acm.org/citation.cfm?id=1062473&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=8022253&amp;amp;CFTOKEN=18011744&lt;br /&gt;
http://portal.acm.org/citation.cfm?id=1030005&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=8022253&amp;amp;CFTOKEN=18011744&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What Methodology Is Best?==&lt;br /&gt;
&lt;br /&gt;
While some will argue strongly for one methodology or the other, many software engineering teams are migrating to a hybrid methodology.  Barry Beohm and Richard Turner suggest five critical dimensions when determining which methodology to use:  size, criticality, dynamism, personnel, and culture [3].&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Both agile and plan-driven methods have a home ground of project characteristics in which each clearly works best, and where the other will have difficulties.  Hybrid approaches that combine both methods are feasible and necessary for projects that combine a mix of agile and plan-driven home ground characteristics.&amp;quot; [5]&lt;br /&gt;
&lt;br /&gt;
For a fantastic spider-like diagram of how to choose the methodology best for your team, view Dr. Laurie Williams' slides: [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Choosing Your Software Development Process: Agile or Plan-driven?].  Slide #4 allows you to chart where your team lies in the five critical dimensions and determine whether plan-driven, agile, or a hybrid is best for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Suggested Links==&lt;br /&gt;
* [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html Waterfall]&lt;br /&gt;
* [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes]&lt;br /&gt;
* [http://www.extremeprogramming.org/ Extreme Programming]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/crystal.html Crystal]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/scrum.html Scrum]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development]&lt;br /&gt;
* [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Choosing Your Software Development Process: Agile or Plan-driven?]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* [1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;br /&gt;
* [2] [http://agile.csc.ncsu.edu/SEMaterials/PlanDriven.pdf A Survey of Plan-Driven Development Methodologies]&lt;br /&gt;
* [3] [http://portal.acm.org/citation.cfm?id=999485&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=43700200&amp;amp;CFTOKEN=87947446 Balancing Agility and Discipline: Evaluating and Integrating Agile and Plan-Driven Methods ]&lt;br /&gt;
* [4] [http://www.agilealliance.org/system/article/file/923/file.pdf Agile and Plan-Driven Methods Oil and Water?]&lt;br /&gt;
* [5] [www2.umassd.edu/swpi/xp/papers/r1064.pdf Get Ready for Agile Methods, with Care]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=10092</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=10092"/>
		<updated>2007-11-28T18:54:47Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* Can Agile Development Actually Produce a Robust Design? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and the [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes agile methodology as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Agile methods are a subset of iterative and evolutionary methods (Larman, 2004; Larman and Basili, June 2003) and are based on iterative enhancement (Basili and Turner, 1975) and opportunistic development processes (Curtis, 1989). In all iterative products, each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test (Larman, 2004).&amp;quot;[1]&lt;br /&gt;
&lt;br /&gt;
Agile methodology encompasses several different processes including [http://www.extremeprogramming.org/ Extreme Programming], [http://agile.csc.ncsu.edu/crystal.html Crystal], [http://agile.csc.ncsu.edu/scrum.html Scrum], and [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Plan-Driven Methodology==&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Thorough documentation&amp;quot; [2].  &lt;br /&gt;
* &amp;quot;Detailed plans, workflow, roles, responsibilities, and work product descriptions&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Focus on verification and validation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Predictability, stability, and high assurance&amp;quot; [3]&lt;br /&gt;
* Attractive methodology for highly critical systems [4]&lt;br /&gt;
&lt;br /&gt;
==Benefits of Agile Methodology==&lt;br /&gt;
&lt;br /&gt;
* Allows for changing requirements [1]&lt;br /&gt;
* Delivers working software frequently [1]&lt;br /&gt;
* Encourages interaction between business people and developers [1]&lt;br /&gt;
* Requires teams to regularly evaluate how to become more effective and modify accordingly [1]&lt;br /&gt;
* &amp;quot;Higher customer satisfaction, lower defect rates, faster development times&amp;quot; [3]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Can Agile Development Actually Produce a Robust Design?==&lt;br /&gt;
Yes.  http://portal.acm.org/citation.cfm?id=604255&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=8022253&amp;amp;CFTOKEN=18011744&lt;br /&gt;
http://portal.acm.org/citation.cfm?id=1062473&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=8022253&amp;amp;CFTOKEN=18011744&lt;br /&gt;
http://portal.acm.org/citation.cfm?id=1030005&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=8022253&amp;amp;CFTOKEN=18011744&lt;br /&gt;
&lt;br /&gt;
==What Methodology Is Best?==&lt;br /&gt;
&lt;br /&gt;
While some will argue strongly for one methodology or the other, many software engineering teams are migrating to a combination methodology.  Barry Beohm and Richard Turner suggest five critical dimensions when determining which methodology to use:  size, criticality, dynamism, personnel, and culture [3].&lt;br /&gt;
&lt;br /&gt;
For a fantastic spider-like diagram of how to choose the methodology best for your team, view Dr. Laurie Williams' slides: [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Choosing Your Software Development Process: Agile or Plan-driven?].  Slide #4 allows you to chart where your team lies in the five critical dimensions and determine whether plan-driven, agile, or a hybrid is best for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Suggested Links==&lt;br /&gt;
* [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html Waterfall]&lt;br /&gt;
* [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes]&lt;br /&gt;
* [http://www.extremeprogramming.org/ Extreme Programming]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/crystal.html Crystal]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/scrum.html Scrum]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development]&lt;br /&gt;
* [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Choosing Your Software Development Process: Agile or Plan-driven?]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* [1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;br /&gt;
* [2] [http://agile.csc.ncsu.edu/SEMaterials/PlanDriven.pdf A Survey of Plan-Driven Development Methodologies]&lt;br /&gt;
* [3] [http://portal.acm.org/citation.cfm?id=999485&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=43700200&amp;amp;CFTOKEN=87947446 Balancing Agility and Discipline: Evaluating and Integrating Agile and Plan-Driven Methods ]&lt;br /&gt;
* [4] [http://www.agilealliance.org/system/article/file/923/file.pdf Agile and Plan-Driven Methods Oil and Water?]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=10089</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=10089"/>
		<updated>2007-11-28T18:52:42Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* Can Agile Development Actually Produce a Robust Design? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and the [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes agile methodology as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Agile methods are a subset of iterative and evolutionary methods (Larman, 2004; Larman and Basili, June 2003) and are based on iterative enhancement (Basili and Turner, 1975) and opportunistic development processes (Curtis, 1989). In all iterative products, each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test (Larman, 2004).&amp;quot;[1]&lt;br /&gt;
&lt;br /&gt;
Agile methodology encompasses several different processes including [http://www.extremeprogramming.org/ Extreme Programming], [http://agile.csc.ncsu.edu/crystal.html Crystal], [http://agile.csc.ncsu.edu/scrum.html Scrum], and [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Plan-Driven Methodology==&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Thorough documentation&amp;quot; [2].  &lt;br /&gt;
* &amp;quot;Detailed plans, workflow, roles, responsibilities, and work product descriptions&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Focus on verification and validation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Predictability, stability, and high assurance&amp;quot; [3]&lt;br /&gt;
* Attractive methodology for highly critical systems [4]&lt;br /&gt;
&lt;br /&gt;
==Benefits of Agile Methodology==&lt;br /&gt;
&lt;br /&gt;
* Allows for changing requirements [1]&lt;br /&gt;
* Delivers working software frequently [1]&lt;br /&gt;
* Encourages interaction between business people and developers [1]&lt;br /&gt;
* Requires teams to regularly evaluate how to become more effective and modify accordingly [1]&lt;br /&gt;
* &amp;quot;Higher customer satisfaction, lower defect rates, faster development times&amp;quot; [3]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Can Agile Development Actually Produce a Robust Design?==&lt;br /&gt;
Yes.  http://portal.acm.org/citation.cfm?id=604255&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=8022253&amp;amp;CFTOKEN=18011744&lt;br /&gt;
http://portal.acm.org/citation.cfm?id=1062473&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=8022253&amp;amp;CFTOKEN=18011744&lt;br /&gt;
&lt;br /&gt;
==What Methodology Is Best?==&lt;br /&gt;
&lt;br /&gt;
While some will argue strongly for one methodology or the other, many software engineering teams are migrating to a combination methodology.  Barry Beohm and Richard Turner suggest five critical dimensions when determining which methodology to use:  size, criticality, dynamism, personnel, and culture [3].&lt;br /&gt;
&lt;br /&gt;
For a fantastic spider-like diagram of how to choose the methodology best for your team, view Dr. Laurie Williams' slides: [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Choosing Your Software Development Process: Agile or Plan-driven?].  Slide #4 allows you to chart where your team lies in the five critical dimensions and determine whether plan-driven, agile, or a hybrid is best for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Suggested Links==&lt;br /&gt;
* [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html Waterfall]&lt;br /&gt;
* [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes]&lt;br /&gt;
* [http://www.extremeprogramming.org/ Extreme Programming]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/crystal.html Crystal]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/scrum.html Scrum]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development]&lt;br /&gt;
* [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Choosing Your Software Development Process: Agile or Plan-driven?]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* [1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;br /&gt;
* [2] [http://agile.csc.ncsu.edu/SEMaterials/PlanDriven.pdf A Survey of Plan-Driven Development Methodologies]&lt;br /&gt;
* [3] [http://portal.acm.org/citation.cfm?id=999485&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=43700200&amp;amp;CFTOKEN=87947446 Balancing Agility and Discipline: Evaluating and Integrating Agile and Plan-Driven Methods ]&lt;br /&gt;
* [4] [http://www.agilealliance.org/system/article/file/923/file.pdf Agile and Plan-Driven Methods Oil and Water?]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=10084</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=10084"/>
		<updated>2007-11-28T18:36:46Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* The Agile Debate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and the [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes agile methodology as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Agile methods are a subset of iterative and evolutionary methods (Larman, 2004; Larman and Basili, June 2003) and are based on iterative enhancement (Basili and Turner, 1975) and opportunistic development processes (Curtis, 1989). In all iterative products, each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test (Larman, 2004).&amp;quot;[1]&lt;br /&gt;
&lt;br /&gt;
Agile methodology encompasses several different processes including [http://www.extremeprogramming.org/ Extreme Programming], [http://agile.csc.ncsu.edu/crystal.html Crystal], [http://agile.csc.ncsu.edu/scrum.html Scrum], and [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Plan-Driven Methodology==&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Thorough documentation&amp;quot; [2].  &lt;br /&gt;
* &amp;quot;Detailed plans, workflow, roles, responsibilities, and work product descriptions&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Focus on verification and validation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Predictability, stability, and high assurance&amp;quot; [3]&lt;br /&gt;
* Attractive methodology for highly critical systems [4]&lt;br /&gt;
&lt;br /&gt;
==Benefits of Agile Methodology==&lt;br /&gt;
&lt;br /&gt;
* Allows for changing requirements [1]&lt;br /&gt;
* Delivers working software frequently [1]&lt;br /&gt;
* Encourages interaction between business people and developers [1]&lt;br /&gt;
* Requires teams to regularly evaluate how to become more effective and modify accordingly [1]&lt;br /&gt;
* &amp;quot;Higher customer satisfaction, lower defect rates, faster development times&amp;quot; [3]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Can Agile Development Actually Produce a Robust Design?==&lt;br /&gt;
Yes.  http://portal.acm.org/citation.cfm?id=604255&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=8022253&amp;amp;CFTOKEN=18011744&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What Methodology Is Best?==&lt;br /&gt;
&lt;br /&gt;
While some will argue strongly for one methodology or the other, many software engineering teams are migrating to a combination methodology.  Barry Beohm and Richard Turner suggest five critical dimensions when determining which methodology to use:  size, criticality, dynamism, personnel, and culture [3].&lt;br /&gt;
&lt;br /&gt;
For a fantastic spider-like diagram of how to choose the methodology best for your team, view Dr. Laurie Williams' slides: [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Choosing Your Software Development Process: Agile or Plan-driven?].  Slide #4 allows you to chart where your team lies in the five critical dimensions and determine whether plan-driven, agile, or a hybrid is best for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Suggested Links==&lt;br /&gt;
* [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html Waterfall]&lt;br /&gt;
* [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes]&lt;br /&gt;
* [http://www.extremeprogramming.org/ Extreme Programming]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/crystal.html Crystal]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/scrum.html Scrum]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development]&lt;br /&gt;
* [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Choosing Your Software Development Process: Agile or Plan-driven?]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* [1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;br /&gt;
* [2] [http://agile.csc.ncsu.edu/SEMaterials/PlanDriven.pdf A Survey of Plan-Driven Development Methodologies]&lt;br /&gt;
* [3] [http://portal.acm.org/citation.cfm?id=999485&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=43700200&amp;amp;CFTOKEN=87947446 Balancing Agility and Discipline: Evaluating and Integrating Agile and Plan-Driven Methods ]&lt;br /&gt;
* [4] [http://www.agilealliance.org/system/article/file/923/file.pdf Agile and Plan-Driven Methods Oil and Water?]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9896</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9896"/>
		<updated>2007-11-27T04:59:56Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* The Agile Debate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and the [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes agile methodology as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Agile methods are a subset of iterative and evolutionary methods (Larman, 2004; Larman and Basili, June 2003) and are based on iterative enhancement (Basili and Turner, 1975) and opportunistic development processes (Curtis, 1989). In all iterative products, each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test (Larman, 2004).&amp;quot;[1]&lt;br /&gt;
&lt;br /&gt;
Agile methodology encompasses several different processes including [http://www.extremeprogramming.org/ Extreme Programming], [http://agile.csc.ncsu.edu/crystal.html Crystal], [http://agile.csc.ncsu.edu/scrum.html Scrum], and [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Plan-Driven Methodology==&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Thorough documentation&amp;quot; [2].  &lt;br /&gt;
* &amp;quot;Detailed plans, workflow, roles, responsibilities, and work product descriptions&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Focus on verification and validation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Predictability, stability, and high assurance&amp;quot; [3]&lt;br /&gt;
* Attractive methodology for highly critical systems [4]&lt;br /&gt;
&lt;br /&gt;
==Benefits of Agile Methodology==&lt;br /&gt;
&lt;br /&gt;
* Allows for changing requirements [1]&lt;br /&gt;
* Delivers working software frequently [1]&lt;br /&gt;
* Encourages interaction between business people and developers [1]&lt;br /&gt;
* Requires teams to regularly evaluate how to become more effective and modify accordingly [1]&lt;br /&gt;
* &amp;quot;Higher customer satisfaction, lower defect rates, faster development times&amp;quot; [3]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What Methodology Is Best?==&lt;br /&gt;
&lt;br /&gt;
While some will argue strongly for one methodology or the other, many software engineering teams are migrating to a combination methodology.  Barry Beohm and Richard Turner suggest five critical dimensions when determining which methodology to use:  size, criticality, dynamism, personnel, and culture [3].&lt;br /&gt;
&lt;br /&gt;
For a fantastic spider-like diagram of how to choose the methodology best for your team, view Dr. Laurie Williams' slides: [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Choosing Your Software Development Process: Agile or Plan-driven?].  Slide #4 allows you to chart where your team lies in the five critical dimensions and determine whether plan-driven, agile, or a hybrid is best for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Suggested Links==&lt;br /&gt;
* [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html Waterfall]&lt;br /&gt;
* [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes]&lt;br /&gt;
* [http://www.extremeprogramming.org/ Extreme Programming]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/crystal.html Crystal]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/scrum.html Scrum]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development]&lt;br /&gt;
* [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Choosing Your Software Development Process: Agile or Plan-driven?]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* [1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;br /&gt;
* [2] [http://agile.csc.ncsu.edu/SEMaterials/PlanDriven.pdf A Survey of Plan-Driven Development Methodologies]&lt;br /&gt;
* [3] [http://portal.acm.org/citation.cfm?id=999485&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=43700200&amp;amp;CFTOKEN=87947446 Balancing Agility and Discipline: Evaluating and Integrating Agile and Plan-Driven Methods ]&lt;br /&gt;
* [4] [http://www.agilealliance.org/system/article/file/923/file.pdf Agile and Plan-Driven Methods Oil and Water?]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9894</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9894"/>
		<updated>2007-11-27T04:58:50Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* Benefits of Plan-Driven Methodology */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and the [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes agile methodology as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Agile methods are a subset of iterative and evolutionary methods (Larman, 2004; Larman and Basili, June 2003) and are based on iterative enhancement (Basili and Turner, 1975) and opportunistic development processes (Curtis, 1989). In all iterative products, each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test (Larman, 2004).&amp;quot;[1]&lt;br /&gt;
&lt;br /&gt;
Agile methodology encompasses several different processes including [http://www.extremeprogramming.org/ Extreme Programming], [http://agile.csc.ncsu.edu/crystal.html Crystal], [http://agile.csc.ncsu.edu/scrum.html Scrum], and [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Plan-Driven Methodology==&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Thorough documentation&amp;quot; [2].  &lt;br /&gt;
* &amp;quot;Detailed plans, workflow, roles, responsibilities, and work product descriptions&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Focus on verification and validation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Predictability, stability, and high assurance&amp;quot; [3]&lt;br /&gt;
* Attractive methodology for highly critical systems [4]&lt;br /&gt;
&lt;br /&gt;
==Benefits of Agile Methodology==&lt;br /&gt;
&lt;br /&gt;
* Allows for changing requirements [1]&lt;br /&gt;
* Delivers working software frequently [1]&lt;br /&gt;
* Encourages interaction between business people and developers [1]&lt;br /&gt;
* Requires teams to regularly evaluate how to become more effective and modify accordingly [1]&lt;br /&gt;
* &amp;quot;Higher customer satisfaction, lower defect rates, faster development times&amp;quot; [3]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What Methodology Is Best?==&lt;br /&gt;
&lt;br /&gt;
While some will argue strongly for one methodology or the other, many software engineering teams are migrating to a combination methodology.  Barry Beohm and Richard Turner suggest five critical dimensions when determining which methodology to use:  size, criticality, dynamism, personnel, and culture [3].&lt;br /&gt;
&lt;br /&gt;
For a fantastic spider-like diagram of how to choose the methodology best for your team, view Dr. Laurie Williams' slides: [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Choosing Your Software Development Process: Agile or Plan-driven?].  Slide #4 allows you to chart where your team lies in the five critical dimensions and determine whether plan-driven, agile, or a hybrid is best for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Suggested Links==&lt;br /&gt;
* [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html Waterfall]&lt;br /&gt;
* [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes]&lt;br /&gt;
* [http://www.extremeprogramming.org/ Extreme Programming]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/crystal.html Crystal]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/scrum.html Scrum]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development]&lt;br /&gt;
* [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Choosing Your Software Development Process: Agile or Plan-driven?]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* [1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;br /&gt;
* [2] [http://agile.csc.ncsu.edu/SEMaterials/PlanDriven.pdf A Survey of Plan-Driven Development Methodologies]&lt;br /&gt;
* [3] [http://portal.acm.org/citation.cfm?id=999485&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=43700200&amp;amp;CFTOKEN=87947446 Balancing Agility and Discipline: Evaluating and Integrating Agile and Plan-Driven Methods ]&lt;br /&gt;
* [4] [http://www.agilealliance.org/system/article/file/923/file.pdf Agile and Plan-Driven Methods Oil and Water?]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9892</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9892"/>
		<updated>2007-11-27T04:54:42Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* Suggested Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and the [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes agile methodology as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Agile methods are a subset of iterative and evolutionary methods (Larman, 2004; Larman and Basili, June 2003) and are based on iterative enhancement (Basili and Turner, 1975) and opportunistic development processes (Curtis, 1989). In all iterative products, each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test (Larman, 2004).&amp;quot;[1]&lt;br /&gt;
&lt;br /&gt;
Agile methodology encompasses several different processes including [http://www.extremeprogramming.org/ Extreme Programming], [http://agile.csc.ncsu.edu/crystal.html Crystal], [http://agile.csc.ncsu.edu/scrum.html Scrum], and [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Plan-Driven Methodology==&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Thorough documentation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Detailed plans, workflow, roles, responsibilities, and work product descriptions&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Focus on verification and validation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Predictability, stability, and high assurance&amp;quot; [3]&lt;br /&gt;
* Attractive methodology for highly critical systems [4]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Agile Methodology==&lt;br /&gt;
&lt;br /&gt;
* Allows for changing requirements [1]&lt;br /&gt;
* Delivers working software frequently [1]&lt;br /&gt;
* Encourages interaction between business people and developers [1]&lt;br /&gt;
* Requires teams to regularly evaluate how to become more effective and modify accordingly [1]&lt;br /&gt;
* &amp;quot;Higher customer satisfaction, lower defect rates, faster development times&amp;quot; [3]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What Methodology Is Best?==&lt;br /&gt;
&lt;br /&gt;
While some will argue strongly for one methodology or the other, many software engineering teams are migrating to a combination methodology.  Barry Beohm and Richard Turner suggest five critical dimensions when determining which methodology to use:  size, criticality, dynamism, personnel, and culture [3].&lt;br /&gt;
&lt;br /&gt;
For a fantastic spider-like diagram of how to choose the methodology best for your team, view Dr. Laurie Williams' slides: [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Choosing Your Software Development Process: Agile or Plan-driven?].  Slide #4 allows you to chart where your team lies in the five critical dimensions and determine whether plan-driven, agile, or a hybrid is best for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Suggested Links==&lt;br /&gt;
* [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html Waterfall]&lt;br /&gt;
* [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes]&lt;br /&gt;
* [http://www.extremeprogramming.org/ Extreme Programming]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/crystal.html Crystal]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/scrum.html Scrum]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development]&lt;br /&gt;
* [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Choosing Your Software Development Process: Agile or Plan-driven?]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* [1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;br /&gt;
* [2] [http://agile.csc.ncsu.edu/SEMaterials/PlanDriven.pdf A Survey of Plan-Driven Development Methodologies]&lt;br /&gt;
* [3] [http://portal.acm.org/citation.cfm?id=999485&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=43700200&amp;amp;CFTOKEN=87947446 Balancing Agility and Discipline: Evaluating and Integrating Agile and Plan-Driven Methods ]&lt;br /&gt;
* [4] [http://www.agilealliance.org/system/article/file/923/file.pdf Agile and Plan-Driven Methods Oil and Water?]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9891</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9891"/>
		<updated>2007-11-27T04:54:18Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* The Agile Debate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and the [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes agile methodology as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Agile methods are a subset of iterative and evolutionary methods (Larman, 2004; Larman and Basili, June 2003) and are based on iterative enhancement (Basili and Turner, 1975) and opportunistic development processes (Curtis, 1989). In all iterative products, each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test (Larman, 2004).&amp;quot;[1]&lt;br /&gt;
&lt;br /&gt;
Agile methodology encompasses several different processes including [http://www.extremeprogramming.org/ Extreme Programming], [http://agile.csc.ncsu.edu/crystal.html Crystal], [http://agile.csc.ncsu.edu/scrum.html Scrum], and [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Plan-Driven Methodology==&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Thorough documentation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Detailed plans, workflow, roles, responsibilities, and work product descriptions&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Focus on verification and validation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Predictability, stability, and high assurance&amp;quot; [3]&lt;br /&gt;
* Attractive methodology for highly critical systems [4]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Agile Methodology==&lt;br /&gt;
&lt;br /&gt;
* Allows for changing requirements [1]&lt;br /&gt;
* Delivers working software frequently [1]&lt;br /&gt;
* Encourages interaction between business people and developers [1]&lt;br /&gt;
* Requires teams to regularly evaluate how to become more effective and modify accordingly [1]&lt;br /&gt;
* &amp;quot;Higher customer satisfaction, lower defect rates, faster development times&amp;quot; [3]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What Methodology Is Best?==&lt;br /&gt;
&lt;br /&gt;
While some will argue strongly for one methodology or the other, many software engineering teams are migrating to a combination methodology.  Barry Beohm and Richard Turner suggest five critical dimensions when determining which methodology to use:  size, criticality, dynamism, personnel, and culture [3].&lt;br /&gt;
&lt;br /&gt;
For a fantastic spider-like diagram of how to choose the methodology best for your team, view Dr. Laurie Williams' slides: [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Choosing Your Software Development Process: Agile or Plan-driven?].  Slide #4 allows you to chart where your team lies in the five critical dimensions and determine whether plan-driven, agile, or a hybrid is best for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Suggested Links==&lt;br /&gt;
* [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html waterfall]&lt;br /&gt;
* [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes]&lt;br /&gt;
* [http://www.extremeprogramming.org/ Extreme Programming]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/crystal.html Crystal], [http://agile.csc.ncsu.edu/scrum.html Scrum]&lt;br /&gt;
* [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development]&lt;br /&gt;
* [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Choosing Your Software Development Process: Agile or Plan-driven?]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* [1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;br /&gt;
* [2] [http://agile.csc.ncsu.edu/SEMaterials/PlanDriven.pdf A Survey of Plan-Driven Development Methodologies]&lt;br /&gt;
* [3] [http://portal.acm.org/citation.cfm?id=999485&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=43700200&amp;amp;CFTOKEN=87947446 Balancing Agility and Discipline: Evaluating and Integrating Agile and Plan-Driven Methods ]&lt;br /&gt;
* [4] [http://www.agilealliance.org/system/article/file/923/file.pdf Agile and Plan-Driven Methods Oil and Water?]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9845</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9845"/>
		<updated>2007-11-26T18:42:07Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* The Agile Debate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and the [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes agile methodology as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Agile methods are a subset of iterative and evolutionary methods (Larman, 2004; Larman and Basili, June 2003) and are based on iterative enhancement (Basili and Turner, 1975) and opportunistic development processes (Curtis, 1989). In all iterative products, each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test (Larman, 2004).&amp;quot;[1]&lt;br /&gt;
&lt;br /&gt;
Agile methodology encompasses several different processes including [http://www.extremeprogramming.org/ Extreme Programming], [http://agile.csc.ncsu.edu/crystal.html Crystal], [http://agile.csc.ncsu.edu/scrum.html Scrum], and [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Plan-Driven Methodology==&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Thorough documentation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Detailed plans, workflow, roles, responsibilities, and work product descriptions&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Focus on verification and validation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Predictability, stability, and high assurance&amp;quot; [3]&lt;br /&gt;
* Attractive methodology for highly critical systems [4]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Agile Methodology==&lt;br /&gt;
&lt;br /&gt;
* Allows for changing requirements [1]&lt;br /&gt;
* Delivers working software frequently [1]&lt;br /&gt;
* Encourages interaction between business people and developers [1]&lt;br /&gt;
* Requires teams to regularly evaluate how to become more effective and modify accordingly [1]&lt;br /&gt;
* &amp;quot;Higher customer satisfaction, lower defect rates, faster development times&amp;quot; [3]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What Methodology Is Best?==&lt;br /&gt;
&lt;br /&gt;
While some will argue strongly for one methodology or the other, many software engineering teams are migrating to a combination methodology.  Barry Beohm and Richard Turner suggest five critical dimensions when determining which methodology to use:  size, criticality, dynamism, personnel, and culture [3].&lt;br /&gt;
&lt;br /&gt;
For a fantastic spider-like diagram of how to choose the methodology best for your team, view Dr. Laurie Williams' slides: [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Choosing Your Software Development Process: Agile or Plan-driven?].  Slide #4 allows you to chart where your team lies in the five critical dimensions and determine whether plan-driven, agile, or a hybrid is best for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* [1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;br /&gt;
* [2] [http://agile.csc.ncsu.edu/SEMaterials/PlanDriven.pdf A Survey of Plan-Driven Development Methodologies]&lt;br /&gt;
* [3] [http://portal.acm.org/citation.cfm?id=999485&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=43700200&amp;amp;CFTOKEN=87947446 Balancing Agility and Discipline: Evaluating and Integrating Agile and Plan-Driven Methods ]&lt;br /&gt;
* [4] [http://www.agilealliance.org/system/article/file/923/file.pdf Agile and Plan-Driven Methods Oil and Water?]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9364</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9364"/>
		<updated>2007-11-19T17:37:43Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* The Agile Debate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and the [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes agile methodoly as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Agile methods are a subset of iterative and evolutionary methods (Larman, 2004; Larman and Basili, June 2003) and are based on iterative enhancement (Basili and Turner, 1975) and opportunistic development processes (Curtis, 1989). In all iterative products, each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test (Larman, 2004).&amp;quot;[1]&lt;br /&gt;
&lt;br /&gt;
Agile methodology encompasses several different processes including [http://www.extremeprogramming.org/ Extreme Programming], [http://agile.csc.ncsu.edu/crystal.html Crystal], [http://agile.csc.ncsu.edu/scrum.html Scrum], and [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Plan-Driven Methodology==&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Thorough documentation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Detailed plans, workflow, roles, responsibilities, and work product descriptions&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Focus on verification and validation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Predictability, stability, and high assurance&amp;quot; [3]&lt;br /&gt;
* Attractive methodology for highly critical systems [4]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Agile Methedology==&lt;br /&gt;
&lt;br /&gt;
* Allows for changing requirements [1]&lt;br /&gt;
* Delivers working software frequently [1]&lt;br /&gt;
* Encourages interaction between business people and developers [1]&lt;br /&gt;
* Requires teams to regularly evaluate how to become more effective and modify accordingly [1]&lt;br /&gt;
* &amp;quot;Higher customer satisfaction, lower defect rates, faster development times&amp;quot; [3]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What Methodology Is Best?==&lt;br /&gt;
&lt;br /&gt;
While some will argue strongly for one methodology or the other, many software engineering teams are migrating to a combination methodology.  Barry Beohm and Richard Turner suggest five critical dimensions when determining which methodology to use:  size, criticality, dynamism, personnel, and culture [3].&lt;br /&gt;
&lt;br /&gt;
For a fantastic spider-like diagram of how to choose the methodology best for your team, view Dr. Laurie Williams' slides: [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Choosing Your Software Development Process: Agile or Plan-driven?].  Slide #4 allows you to chart where your team lies in the five critical dimensions and determine whether plan-driven, agile, or a hybrid is best for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* [1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;br /&gt;
* [2] [http://agile.csc.ncsu.edu/SEMaterials/PlanDriven.pdf A Survey of Plan-Driven Development Methodologies]&lt;br /&gt;
* [3] [http://portal.acm.org/citation.cfm?id=999485&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=43700200&amp;amp;CFTOKEN=87947446 Balancing Agility and Discipline: Evaluating and Integrating Agile and Plan-Driven Methods ]&lt;br /&gt;
* [4] [http://www.agilealliance.org/system/article/file/923/file.pdf Agile and Plan-Driven Methods Oil and Water?]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9363</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9363"/>
		<updated>2007-11-19T17:35:28Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* The Agile Debate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and the [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes agile methodoly as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Agile methods are a subset of iterative and evolutionary methods (Larman, 2004; Larman and Basili, June 2003) and are based on iterative enhancement (Basili and Turner, 1975) and opportunistic development processes (Curtis, 1989). In all iterative products, each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test (Larman, 2004).&amp;quot;[1]&lt;br /&gt;
&lt;br /&gt;
Agile methodology encompasses several different processes including [http://www.extremeprogramming.org/ Extreme Programming], [http://agile.csc.ncsu.edu/crystal.html Crystal], [http://agile.csc.ncsu.edu/scrum.html Scrum], and [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Plan-Driven Methodology==&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Thorough documentation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Detailed plans, workflow, roles, responsibilities, and work product descriptions&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Focus on verification and validation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Predictability, stability, and high assurance&amp;quot; [3]&lt;br /&gt;
* Attractive methodology for highly critical systems [4]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Agile Methedology==&lt;br /&gt;
&lt;br /&gt;
* Allows for changing requirements [1]&lt;br /&gt;
* Delivers working software frequently [1]&lt;br /&gt;
* Encourages interaction between business people and developers [1]&lt;br /&gt;
* Requires teams to regularly evaluate how to become more effective and modify accordingly [1]&lt;br /&gt;
* &amp;quot;Higher customer satisfaction, lower defect rates, faster development times&amp;quot; [3]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What Methodology Is Best?==&lt;br /&gt;
&lt;br /&gt;
While some will argue strongly for one methodology or the other, many software engineering teams are migrating to a combination methodology.  Barry Beohm and Richard Turner suggest five critical dimensions when determining which methodology to use:  size, criticality, dynamism, personnel, and culture [3].&lt;br /&gt;
&lt;br /&gt;
For a fantastic spider-like diagram of how to choose the methodology best for your team, view Dr. Laurie Williams' slides: [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Choosing Your Software Development Process: Agile or Plan-driven?].  Slide #4 allows you to chart where your team lies in the five critical dimensions and determine whether plan-driven, agile, or a hybrid is best for you.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* [1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;br /&gt;
* [2] [http://agile.csc.ncsu.edu/SEMaterials/PlanDriven.pdf A Survey of Plan-Driven Development Methodologies]&lt;br /&gt;
* [3] [http://portal.acm.org/citation.cfm?id=999485&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=43700200&amp;amp;CFTOKEN=87947446 Balancing Agility and Discipline: Evaluating and Integrating Agile and Plan-Driven Methods ]&lt;br /&gt;
* [4] [http://www.agilealliance.org/system/article/file/923/file.pdf Agile and Plan-Driven Methods Oil and Water?]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9357</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9357"/>
		<updated>2007-11-19T17:32:49Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* What Methodology Is Best? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and the [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes agile methodoly as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Agile methods are a subset of iterative and evolutionary methods (Larman, 2004; Larman and Basili, June 2003) and are based on iterative enhancement (Basili and Turner, 1975) and opportunistic development processes (Curtis, 1989). In all iterative products, each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test (Larman, 2004).&amp;quot;[1]&lt;br /&gt;
&lt;br /&gt;
Agile methodology encompasses several different processes including [http://www.extremeprogramming.org/ Extreme Programming], [http://agile.csc.ncsu.edu/crystal.html Crystal], [http://agile.csc.ncsu.edu/scrum.html Scrum], and [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Plan-Driven Methodology==&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Thorough documentation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Detailed plans, workflow, roles, responsibilities, and work product descriptions&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Focus on verification and validation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Predictability, stability, and high assurance&amp;quot; [3]&lt;br /&gt;
* Attractive methodology for highly critical systems [4]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Agile Methedology==&lt;br /&gt;
&lt;br /&gt;
* Allows for changing requirements [1]&lt;br /&gt;
* Delivers working software frequently [1]&lt;br /&gt;
* Encourages interaction between business people and developers [1]&lt;br /&gt;
* Requires teams to regularly evaluate how to become more effective and modify accordingly [1]&lt;br /&gt;
* &amp;quot;Higher customer satisfaction, lower defect rates, faster development times&amp;quot; [3]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What Methodology Is Best?==&lt;br /&gt;
&lt;br /&gt;
While some will argue strongly for one methodology or the other, many software engineering teams are migrating to a combination methodology.  Barry Beohm and Richard Turner suggest five critical dimensions when determining which methodology to use:  size, criticality, dynamism, personnel, and culture [3].&lt;br /&gt;
&lt;br /&gt;
For a fantastic spider-like diagram of how to choose the methodology best for your team, view [http://courses.ncsu.edu/csc326/lec/001/lectures/ChooseProcess.pdf Dr. Laurie Williams' slides: Choosing Your Software Development &lt;br /&gt;
Process:  Agile or Plan-driven?].  Slide #4 allows you to chart where your team lies in the five critical dimensions and determine whether plan-driven, agile, or a hybrid is best for you.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* [1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;br /&gt;
* [2] [http://agile.csc.ncsu.edu/SEMaterials/PlanDriven.pdf A Survey of Plan-Driven Development Methodologies]&lt;br /&gt;
* [3] [http://portal.acm.org/citation.cfm?id=999485&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=43700200&amp;amp;CFTOKEN=87947446 Balancing Agility and Discipline: Evaluating and Integrating Agile and Plan-Driven Methods ]&lt;br /&gt;
* [4] [http://www.agilealliance.org/system/article/file/923/file.pdf Agile and Plan-Driven Methods Oil and Water?]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9049</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9049"/>
		<updated>2007-11-18T23:33:34Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* The Agile Debate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and the [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes agile methodoly as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Agile methods are a subset of iterative and evolutionary methods (Larman, 2004; Larman and Basili, June 2003) and are based on iterative enhancement (Basili and Turner, 1975) and opportunistic development processes (Curtis, 1989). In all iterative products, each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test (Larman, 2004).&amp;quot;[1]&lt;br /&gt;
&lt;br /&gt;
Agile methodology encompasses several different processes including [http://www.extremeprogramming.org/ Extreme Programming], [http://agile.csc.ncsu.edu/crystal.html Crystal], [http://agile.csc.ncsu.edu/scrum.html Scrum], and [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Plan-Driven Methodology==&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Thorough documentation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Detailed plans, workflow, roles, responsibilities, and work product descriptions&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Focus on verification and validation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Predictability, stability, and high assurance&amp;quot; [3]&lt;br /&gt;
* Attractive methodology for highly critical systems [4]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Agile Methedology==&lt;br /&gt;
&lt;br /&gt;
* Allows for changing requirements [1]&lt;br /&gt;
* Delivers working software frequently [1]&lt;br /&gt;
* Encourages interaction between business people and developers [1]&lt;br /&gt;
* Requires teams to regularly evaluate how to become more effective and modify accordingly [1]&lt;br /&gt;
* &amp;quot;Higher customer satisfaction, lower defect rates, faster development times&amp;quot; [3]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What Methodology Is Best?==&lt;br /&gt;
&lt;br /&gt;
While some will argue strongly for one methodology or the other, many software engineering teams are migrating to a combination methodology.  Barry Beohm and Richard Turner suggest five critical dimensions when determining which methodology to use:  size, criticality, dynamism, personnel, and culture [3].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* [1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;br /&gt;
* [2] [http://agile.csc.ncsu.edu/SEMaterials/PlanDriven.pdf A Survey of Plan-Driven Development Methodologies]&lt;br /&gt;
* [3] [http://portal.acm.org/citation.cfm?id=999485&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=43700200&amp;amp;CFTOKEN=87947446 Balancing Agility and Discipline: Evaluating and Integrating Agile and Plan-Driven Methods ]&lt;br /&gt;
* [4] [http://www.agilealliance.org/system/article/file/923/file.pdf Agile and Plan-Driven Methods Oil and Water?]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9040</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9040"/>
		<updated>2007-11-18T23:23:12Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and the [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes agile methodoly as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Agile methods are a subset of iterative and evolutionary methods (Larman, 2004; Larman and Basili, June 2003) and are based on iterative enhancement (Basili and Turner, 1975) and opportunistic development processes (Curtis, 1989). In all iterative products, each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test (Larman, 2004).&amp;quot;[1]&lt;br /&gt;
&lt;br /&gt;
Agile methodology encompasses several different processes including [http://www.extremeprogramming.org/ Extreme Programming], [http://agile.csc.ncsu.edu/crystal.html Crystal], [http://agile.csc.ncsu.edu/scrum.html Scrum], and [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Plan-Driven Methodology==&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Thorough documentation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Detailed plans, workflow, roles, responsibilities, and work product descriptions&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Focus on verification and validation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Predictability, stability, and high assurance&amp;quot; [3]&lt;br /&gt;
* Attractive methodology for highly critical systems [4]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Agile Methedology==&lt;br /&gt;
&lt;br /&gt;
* Allows for changing requirements [1]&lt;br /&gt;
* Delivers working software frequently [1]&lt;br /&gt;
* Encourages interaction between business people and developers [1]&lt;br /&gt;
* Requires teams to regularly evaluate how to become more effective and modify accordingly [1]&lt;br /&gt;
* &amp;quot;Higher customer satisfaction, lower defect rates, faster development times&amp;quot; [3]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* [1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;br /&gt;
* [2] [http://agile.csc.ncsu.edu/SEMaterials/PlanDriven.pdf A Survey of Plan-Driven Development Methodologies]&lt;br /&gt;
* [3] [http://portal.acm.org/citation.cfm?id=999485&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=43700200&amp;amp;CFTOKEN=87947446 Balancing Agility and Discipline: Evaluating and Integrating Agile and Plan-Driven Methods ]&lt;br /&gt;
* [4] [http://www.agilealliance.org/system/article/file/923/file.pdf Agile and Plan-Driven Methods Oil and Water?]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9039</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9039"/>
		<updated>2007-11-18T23:23:01Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and the [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes agile methodoly as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Agile methods are a subset of iterative and evolutionary methods (Larman, 2004; Larman and Basili, June 2003) and are based on iterative enhancement (Basili and Turner, 1975) and opportunistic development processes (Curtis, 1989). In all iterative products, each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test (Larman, 2004).&amp;quot;[1]&lt;br /&gt;
&lt;br /&gt;
Agile methodology encompasses several different processes including [http://www.extremeprogramming.org/ Extreme Programming], [http://agile.csc.ncsu.edu/crystal.html Crystal], [http://agile.csc.ncsu.edu/scrum.html Scrum], and [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Plan-Driven Methodology==&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Thorough documentation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Detailed plans, workflow, roles, responsibilities, and work product descriptions&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Focus on verification and validation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Predictability, stability, and high assurance&amp;quot; [3]&lt;br /&gt;
* Attractive methodology for highly critical systems [4]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Agile Methedology==&lt;br /&gt;
&lt;br /&gt;
* Allows for changing requirements [1]&lt;br /&gt;
* Delivers working software frequently [1]&lt;br /&gt;
* Encourages interaction between business people and developers [1]&lt;br /&gt;
* Requires teams to regularly evaluate how to become more effective and modify accordingly [1]&lt;br /&gt;
* &amp;quot;Higher customer satisfaction, lower defect rates, faster development times&amp;quot; [3]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* [1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;br /&gt;
* [2] [http://agile.csc.ncsu.edu/SEMaterials/PlanDriven.pdf A Survey of Plan-Driven Development Methodologies]&lt;br /&gt;
* [3] [http://portal.acm.org/citation.cfm?id=999485&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=43700200&amp;amp;CFTOKEN=87947446 Balancing Agility and Discipline: Evaluating and Integrating Agile and Plan-Driven Methods ]&lt;br /&gt;
* [4] [www.agilealliance.org/system/article/file/923/file.pdf Agile and Plan-Driven Methods Oil and Water?]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9037</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9037"/>
		<updated>2007-11-18T23:21:00Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* The Agile Debate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and the [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes agile methodoly as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Agile methods are a subset of iterative and evolutionary methods (Larman, 2004; Larman and Basili, June 2003) and are based on iterative enhancement (Basili and Turner, 1975) and opportunistic development processes (Curtis, 1989). In all iterative products, each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test (Larman, 2004).&amp;quot;[1]&lt;br /&gt;
&lt;br /&gt;
Agile methodology encompasses several different processes including [http://www.extremeprogramming.org/ Extreme Programming], [http://agile.csc.ncsu.edu/crystal.html Crystal], [http://agile.csc.ncsu.edu/scrum.html Scrum], and [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Plan-Driven Methodology==&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Thorough documentation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Detailed plans, workflow, roles, responsibilities, and work product descriptions&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Focus on verification and validation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Predictability, stability, and high assurance&amp;quot; [3]&lt;br /&gt;
* Attractive methodology for highly critical systems [4]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Agile Methedology==&lt;br /&gt;
&lt;br /&gt;
* Allows for changing requirements [1]&lt;br /&gt;
* Delivers working software frequently [1]&lt;br /&gt;
* Encourages interaction between business people and developers [1]&lt;br /&gt;
* Requires teams to regularly evaluate how to become more effective and modify accordingly [1]&lt;br /&gt;
* &amp;quot;Higher customer satisfaction, lower defect rates, faster development times&amp;quot; [3]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* [1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;br /&gt;
* [2] [http://agile.csc.ncsu.edu/SEMaterials/PlanDriven.pdf A Survey of Plan-Driven Development Methodologies]&lt;br /&gt;
* [3] [http://portal.acm.org/citation.cfm?id=999485&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=43700200&amp;amp;CFTOKEN=87947446 Balancing Agility and Discipline: Evaluating and Integrating Agile and Plan-Driven Methods ]&lt;br /&gt;
* [4] [www.agilealliance.org/system/article/file/923/file.pdf Agile and Plan-Driven Methods &lt;br /&gt;
Oil and Water?]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9036</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9036"/>
		<updated>2007-11-18T23:20:36Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and the [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes agile methodoly as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Agile methods are a subset of iterative and evolutionary methods (Larman, 2004; Larman and Basili, June 2003) and are based on iterative enhancement (Basili and Turner, 1975) and opportunistic development processes (Curtis, 1989). In all iterative products, each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test (Larman, 2004).&amp;quot;[1]&lt;br /&gt;
&lt;br /&gt;
Agile methodology encompasses several different processes including [http://www.extremeprogramming.org/ Extreme Programming], [http://agile.csc.ncsu.edu/crystal.html Crystal], [http://agile.csc.ncsu.edu/scrum.html Scrum], and [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Plan-Driven Methodology==&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Thorough documentation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Detailed plans, workflow, roles, responsibilities, and work product descriptions&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Focus on verification and validation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Predictability, stability, and high assurance&amp;quot; [3]&lt;br /&gt;
* Attractive methodology for highly critical systems [4]&lt;br /&gt;
&lt;br /&gt;
==Benefits of Agile Methedology==&lt;br /&gt;
&lt;br /&gt;
* Allows for changing requirements [1]&lt;br /&gt;
* Delivers working software frequently [1]&lt;br /&gt;
* Encourages interaction between business people and developers [1]&lt;br /&gt;
* Requires teams to regularly evaluate how to become more effective and modify accordingly [1]&lt;br /&gt;
* &amp;quot;Higher customer satisfaction, lower defect rates, faster development times&amp;quot; [3]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* [1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;br /&gt;
* [2] [http://agile.csc.ncsu.edu/SEMaterials/PlanDriven.pdf A Survey of Plan-Driven Development Methodologies]&lt;br /&gt;
* [3] [http://portal.acm.org/citation.cfm?id=999485&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=43700200&amp;amp;CFTOKEN=87947446 Balancing Agility and Discipline: Evaluating and Integrating Agile and Plan-Driven Methods ]&lt;br /&gt;
* [4] [www.agilealliance.org/system/article/file/923/file.pdf Agile and Plan-Driven Methods &lt;br /&gt;
Oil and Water?]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9033</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9033"/>
		<updated>2007-11-18T23:19:53Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* Benefits of Plan-Driven Methodology */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and the [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes agile methodoly as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Agile methods are a subset of iterative and evolutionary methods (Larman, 2004; Larman and Basili, June 2003) and are based on iterative enhancement (Basili and Turner, 1975) and opportunistic development processes (Curtis, 1989). In all iterative products, each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test (Larman, 2004).&amp;quot;[1]&lt;br /&gt;
&lt;br /&gt;
Agile methodology encompasses several different processes including [http://www.extremeprogramming.org/ Extreme Programming], [http://agile.csc.ncsu.edu/crystal.html Crystal], [http://agile.csc.ncsu.edu/scrum.html Scrum], and [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Plan-Driven Methodology==&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Thorough documentation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Detailed plans, workflow, roles, responsibilities, and work product descriptions&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Focus on verification and validation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Predictability, stability, and high assurance&amp;quot; [3]&lt;br /&gt;
* Attractive methodology for highly critical systems [4]&lt;br /&gt;
&lt;br /&gt;
==Benefits of Agile Methedology==&lt;br /&gt;
&lt;br /&gt;
* Allows for changing requirements [1]&lt;br /&gt;
* Delivers working software frequently [1]&lt;br /&gt;
* Encourages interaction between business people and developers [1]&lt;br /&gt;
* Requires teams to regularly evaluate how to become more effective and modify accordingly [1]&lt;br /&gt;
* &amp;quot;Higher customer satisfaction, lower defect rates, faster development times&amp;quot; [3]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* [1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;br /&gt;
* [2] [http://agile.csc.ncsu.edu/SEMaterials/PlanDriven.pdf A Survey of Plan-Driven Development Methodologies]&lt;br /&gt;
* [3] [http://portal.acm.org/citation.cfm?id=999485&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=43700200&amp;amp;CFTOKEN=87947446 Balancing Agility and Discipline: Evaluating and Integrating Agile and Plan-Driven Methods ]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9028</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9028"/>
		<updated>2007-11-18T23:16:38Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* The Agile Debate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and the [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes agile methodoly as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Agile methods are a subset of iterative and evolutionary methods (Larman, 2004; Larman and Basili, June 2003) and are based on iterative enhancement (Basili and Turner, 1975) and opportunistic development processes (Curtis, 1989). In all iterative products, each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test (Larman, 2004).&amp;quot;[1]&lt;br /&gt;
&lt;br /&gt;
Agile methodology encompasses several different processes including [http://www.extremeprogramming.org/ Extreme Programming], [http://agile.csc.ncsu.edu/crystal.html Crystal], [http://agile.csc.ncsu.edu/scrum.html Scrum], and [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Plan-Driven Methodology==&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Thorough documentation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Detailed plans, workflow, roles, responsibilities, and work product descriptions&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Focus on verification and validation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Predictability, stability, and high assurance&amp;quot; [3]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Agile Methedology==&lt;br /&gt;
&lt;br /&gt;
* Allows for changing requirements [1]&lt;br /&gt;
* Delivers working software frequently [1]&lt;br /&gt;
* Encourages interaction between business people and developers [1]&lt;br /&gt;
* Requires teams to regularly evaluate how to become more effective and modify accordingly [1]&lt;br /&gt;
* &amp;quot;Higher customer satisfaction, lower defect rates, faster development times&amp;quot; [3]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* [1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;br /&gt;
* [2] [http://agile.csc.ncsu.edu/SEMaterials/PlanDriven.pdf A Survey of Plan-Driven Development Methodologies]&lt;br /&gt;
* [3] [http://portal.acm.org/citation.cfm?id=999485&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=43700200&amp;amp;CFTOKEN=87947446 Balancing Agility and Discipline: Evaluating and Integrating Agile and Plan-Driven Methods ]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9027</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9027"/>
		<updated>2007-11-18T23:15:50Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* The Agile Debate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and the [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes].&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes agile methodoly as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Agile methods are a subset of iterative and evolutionary methods (Larman, 2004; Larman and Basili, June 2003) and are based on iterative enhancement (Basili and Turner, 1975) and opportunistic development processes (Curtis, 1989). In all iterative products, each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test (Larman, 2004).&amp;quot;[1]&lt;br /&gt;
&lt;br /&gt;
Agile methodology encompasses several different processes including [http://www.extremeprogramming.org/ Extreme Programming], [http://agile.csc.ncsu.edu/crystal.html Crystal], [http://agile.csc.ncsu.edu/scrum.html Scrum], and [http://agile.csc.ncsu.edu/fdd.html Feature Driven Development].&lt;br /&gt;
&lt;br /&gt;
==Benefits of Plan-Driven Methodology==&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Thorough documentation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Detailed plans, workflow, roles, responsibilities, and work product descriptions&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Focus on verification and validation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Predictability, stability, and high assurance&amp;quot; [3]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Agile Methedology==&lt;br /&gt;
&lt;br /&gt;
* Allows for changing requirements [1]&lt;br /&gt;
* Delivers working software frequently [1]&lt;br /&gt;
* Encourages interaction between business people and developers [1]&lt;br /&gt;
* Requires teams to regularly evaluate how to become more effective and modify accordingly [1]&lt;br /&gt;
* &amp;quot;Higher customer satisfaction, lower defect rates, faster development times&amp;quot; [3]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* [1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;br /&gt;
* [2] [http://agile.csc.ncsu.edu/SEMaterials/PlanDriven.pdf A Survey of Plan-Driven Development Methodologies]&lt;br /&gt;
* [3] [http://portal.acm.org/citation.cfm?id=999485&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=43700200&amp;amp;CFTOKEN=87947446 Balancing Agility and Discipline: Evaluating and Integrating Agile and Plan-Driven Methods ]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9020</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9020"/>
		<updated>2007-11-18T23:08:50Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* The Agile Debate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including [http://courses.cs.vt.edu/~csonline/SE/Lessons/Waterfall/index.html waterfall], [http://www.sei.cmu.edu/tsp/psp.html Personal Software Process], and the [http://en.wikipedia.org/wiki/Rational_Unified_Process Rational Unified Processes].&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes agile methodoly as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Agile methods are a subset of iterative and evolutionary methods (Larman, 2004; Larman and Basili, June 2003) and are based on iterative enhancement (Basili and Turner, 1975) and opportunistic development processes (Curtis, 1989). In all iterative products, each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test (Larman, 2004).&amp;quot;[1]&lt;br /&gt;
&lt;br /&gt;
==Benefits of Plan-Driven Methodology==&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Thorough documentation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Detailed plans, workflow, roles, responsibilities, and work product descriptions&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Focus on verification and validation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Predictability, stability, and high assurance&amp;quot; [3]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Agile Methedology==&lt;br /&gt;
&lt;br /&gt;
* Allows for changing requirements [1]&lt;br /&gt;
* Delivers working software frequently [1]&lt;br /&gt;
* Encourages interaction between business people and developers [1]&lt;br /&gt;
* Requires teams to regularly evaluate how to become more effective and modify accordingly [1]&lt;br /&gt;
* &amp;quot;Higher customer satisfaction, lower defect rates, faster development times&amp;quot; [3]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* [1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;br /&gt;
* [2] [http://agile.csc.ncsu.edu/SEMaterials/PlanDriven.pdf A Survey of Plan-Driven Development Methodologies]&lt;br /&gt;
* [3] [http://portal.acm.org/citation.cfm?id=999485&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=43700200&amp;amp;CFTOKEN=87947446 Balancing Agility and Discipline: Evaluating and Integrating Agile and Plan-Driven Methods ]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9014</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9014"/>
		<updated>2007-11-18T22:53:48Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including waterfall, Personal Software Process, and the Rational Unified Processes.&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes agile methodoly as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Agile methods are a subset of iterative and evolutionary methods (Larman, 2004; Larman and Basili, June 2003) and are based on iterative enhancement (Basili and Turner, 1975) and opportunistic development processes (Curtis, 1989). In all iterative products, each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test (Larman, 2004).&amp;quot;[1]&lt;br /&gt;
&lt;br /&gt;
==Benefits of Plan-Driven Methodology==&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Thorough documentation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Detailed plans, workflow, roles, responsibilities, and work product descriptions&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Focus on verification and validation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Predictability, stability, and high assurance&amp;quot; [3]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Agile Methedology==&lt;br /&gt;
&lt;br /&gt;
* Allows for changing requirements [1]&lt;br /&gt;
* Delivers working software frequently [1]&lt;br /&gt;
* Encourages interaction between business people and developers [1]&lt;br /&gt;
* Requires teams to regularly evaluate how to become more effective and modify accordingly [1]&lt;br /&gt;
* &amp;quot;Higher customer satisfaction, lower defect rates, faster development times&amp;quot; [3]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* [1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;br /&gt;
* [2] [http://agile.csc.ncsu.edu/SEMaterials/PlanDriven.pdf A Survey of Plan-Driven Development Methodologies]&lt;br /&gt;
* [3] [http://portal.acm.org/citation.cfm?id=999485&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=43700200&amp;amp;CFTOKEN=87947446 Balancing Agility and Discipline: Evaluating and Integrating Agile and Plan-Driven Methods ]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9013</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9013"/>
		<updated>2007-11-18T22:53:19Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* The Agile Debate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including waterfall, Personal Software Process, and the Rational Unified Processes.&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes agile methodoly as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Agile methods are a subset of iterative and evolutionary methods (Larman, 2004; Larman and Basili, June 2003) and are based on iterative enhancement (Basili and Turner, 1975) and opportunistic development processes (Curtis, 1989). In all iterative products, each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test (Larman, 2004).&amp;quot;[1]&lt;br /&gt;
&lt;br /&gt;
==Benefits of Plan-Driven Methodology==&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Thorough documentation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Detailed plans, workflow, roles, responsibilities, and work product descriptions&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Focus on verification and validation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Predictability, stability, and high assurance&amp;quot; [3]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Benefits of Agile Methedology==&lt;br /&gt;
&lt;br /&gt;
* Allows for changing requirements [1]&lt;br /&gt;
* Delivers working software frequently [1]&lt;br /&gt;
* Encourages interaction between business people and developers [1]&lt;br /&gt;
* Requires teams to regularly evaluate how to become more effective and modify accordingly [1]&lt;br /&gt;
* &amp;quot;Higher customer satisfaction, lower defect rates, faster development times&amp;quot; [3]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
[1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;br /&gt;
[2] [http://agile.csc.ncsu.edu/SEMaterials/PlanDriven.pdf A Survey of Plan-Driven Development Methodologies]&lt;br /&gt;
[3] [http://portal.acm.org/citation.cfm?id=999485&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=43700200&amp;amp;CFTOKEN=87947446 Balancing Agility and Discipline: Evaluating and Integrating Agile and Plan-Driven Methods ]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9010</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9010"/>
		<updated>2007-11-18T22:42:58Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including waterfall, Personal Software Process, and the Rational Unified Processes.&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes agile methodoly as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Agile methods are a subset of iterative and evolutionary methods (Larman, 2004; Larman and Basili, June 2003) and are based on iterative enhancement (Basili and Turner, 1975) and opportunistic development processes (Curtis, 1989). In all iterative products, each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test (Larman, 2004).&amp;quot;[1]&lt;br /&gt;
&lt;br /&gt;
==Benefits of Plan-Driven Methodology==&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Thorough documentation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Detailed plans, workflow, roles, responsibilities, and work product descriptions&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Focus on verification and validation&amp;quot; [2]&lt;br /&gt;
&lt;br /&gt;
==Benefits of Agile Methedology==&lt;br /&gt;
&lt;br /&gt;
* Allows for changing requirements [1]&lt;br /&gt;
* Delivers working software frequently [1]&lt;br /&gt;
* Encourages interaction between business people and developers [1]&lt;br /&gt;
* Requires teams to regularly evaluate how to become more effective and modify accordingly [1]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
[1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;br /&gt;
[2] [http://agile.csc.ncsu.edu/SEMaterials/PlanDriven.pdf A Survey of Plan-Driven Development Methodologies]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9009</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9009"/>
		<updated>2007-11-18T22:39:31Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* Benefits of Plan-Driven Methodology */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including waterfall, Personal Software Process, and the Rational Unified Processes.&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes agile methodoly as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Agile methods are a subset of iterative and evolutionary methods (Larman, 2004; Larman and Basili, June 2003) and are based on iterative enhancement (Basili and Turner, 1975) and opportunistic development processes (Curtis, 1989). In all iterative products, each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test (Larman, 2004).&amp;quot;[1]&lt;br /&gt;
&lt;br /&gt;
==Benefits of Plan-Driven Methodology==&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Thorough documentation&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Detailed plans, workflow, roles, responsibilities, and work product descriptions&amp;quot; [2]&lt;br /&gt;
* &amp;quot;Focus on verification and validation&amp;quot; [2]&lt;br /&gt;
&lt;br /&gt;
==Benefits of Agile Methedology==&lt;br /&gt;
&lt;br /&gt;
* Allows for changing requirements [1]&lt;br /&gt;
* Delivers working software frequently [1]&lt;br /&gt;
* Encourages interaction between business people and developers [1]&lt;br /&gt;
* Requires teams to regularly evaluate how to become more effective and modify accordingly [1]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
[1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9007</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9007"/>
		<updated>2007-11-18T22:33:31Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* The Agile Debate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including waterfall, Personal Software Process, and the Rational Unified Processes.&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes agile methodoly as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Agile methods are a subset of iterative and evolutionary methods (Larman, 2004; Larman and Basili, June 2003) and are based on iterative enhancement (Basili and Turner, 1975) and opportunistic development processes (Curtis, 1989). In all iterative products, each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test (Larman, 2004).&amp;quot;[1]&lt;br /&gt;
&lt;br /&gt;
==Benefits of Plan-Driven Methodology==&lt;br /&gt;
&lt;br /&gt;
==Benefits of Agile Methedology==&lt;br /&gt;
&lt;br /&gt;
* Allows for changing requirements [1]&lt;br /&gt;
* Delivers working software frequently [1]&lt;br /&gt;
* Encourages interaction between business people and developers [1]&lt;br /&gt;
* Requires teams to regularly evaluate how to become more effective and modify accordingly [1]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
[1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9004</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9004"/>
		<updated>2007-11-18T22:31:00Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* What is Plan-Driven Methodology? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including waterfall, Personal Software Process, and the Rational Unified Processes.&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes agile methodoly as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Agile methods are a subset of iterative and evolutionary methods (Larman, 2004; Larman and Basili, June 2003) and are based on iterative enhancement (Basili and Turner, 1975) and opportunistic development processes (Curtis, 1989). In all iterative products, each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test (Larman, 2004).&amp;quot;[1]&lt;br /&gt;
&lt;br /&gt;
==Benefits of Plan-Driven Methodology==&lt;br /&gt;
&lt;br /&gt;
==Benefits of Agile Methedology==&lt;br /&gt;
&lt;br /&gt;
-Allows for changing requirements [1]&lt;br /&gt;
-Delivers working software frequently [1]&lt;br /&gt;
-Encourages interaction between business people and developers [1]&lt;br /&gt;
-Requires teams to regularly evaluate how to become more effective and modify accordingly [1]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
[1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9002</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=9002"/>
		<updated>2007-11-18T22:28:54Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* What is Agile Methodology? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including waterfall, Personal Software Process, and the Rational Unified Processes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes agile methodoly as:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Agile methods are a subset of iterative and evolutionary methods (Larman, 2004; Larman and Basili, June 2003) and are based on iterative enhancement (Basili and Turner, 1975) and opportunistic development processes (Curtis, 1989). In all iterative products, each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test (Larman, 2004).&amp;quot;[1]&lt;br /&gt;
&lt;br /&gt;
==Benefits of Plan-Driven Methodology==&lt;br /&gt;
&lt;br /&gt;
==Benefits of Agile Methedology==&lt;br /&gt;
&lt;br /&gt;
-Allows for changing requirements [1]&lt;br /&gt;
-Delivers working software frequently [1]&lt;br /&gt;
-Encourages interaction between business people and developers [1]&lt;br /&gt;
-Requires teams to regularly evaluate how to become more effective and modify accordingly [1]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
[1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=8992</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=8992"/>
		<updated>2007-11-18T22:12:22Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* The Agile Debate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan-Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Plan-driven methodology encompasses several different processes including waterfall, Personal Software Process, and the Rational Unified Processes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
[1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=8989</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=8989"/>
		<updated>2007-11-18T22:07:40Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* The Agile Debate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Plan Driven Methodology?==&lt;br /&gt;
&lt;br /&gt;
Laurie Williams describes Plan-driven methods:&lt;br /&gt;
&amp;lt;box&amp;gt;&amp;quot;Plan-driven methods are those that begin with the solicitation and documentation of a set of requirements that is as complete as possible.  Based on these requirements, one can then formulate a plan of development. Usually, the more complete the requirements, the better the plan.&amp;quot; [1]&amp;lt;/box&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Agile Methodology?==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
[1] [http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf A Survey of Agile Development Methodologies]&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=8985</id>
		<title>CSC/ECE 517 Fall 2007/wiki3 10 ljh</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki3_10_ljh&amp;diff=8985"/>
		<updated>2007-11-18T21:57:17Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The Agile Debate=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki2/3_rl&amp;diff=7956</id>
		<title>CSC/ECE 517 Fall 2007/wiki2/3 rl</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki2/3_rl&amp;diff=7956"/>
		<updated>2007-10-28T21:56:39Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* Best Sites for Model View Controller Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Wiki Topic: Model/view/controller. There are literally hundreds of pages describing MVC on the Web. If someone wants to learn about it, what should (s)he do? Look at the first few hits in Google? I expect we can do better than that. Write a review of the MVC sites on the Web. Which are best for learning about the concept? Which have the most instructive examples? Which are best for explaining how to use the pattern in Ruby and Java? If you choose this topic, you should be sure to peruse at least several dozen sites.'' &lt;br /&gt;
&lt;br /&gt;
== Model View Controller ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Model-view-controller (MVC) is an architectural pattern used in software engineering. In complex computer applications that present a large amount of data to the user, a developer often wishes to separate data (model) and user interface (view) concerns, so that changes to the user interface will not affect data handling, and that the data can be reorganized without changing the user interface. The model-view-controller solves this problem by decoupling data access and business logic from data presentation and user interaction, by introducing an intermediate component: the controller.&amp;quot;  Taken from [http://en.wikipedia.org/wiki/Model-view-controller Wikipedia]&lt;br /&gt;
&lt;br /&gt;
== Best Sites for Learning the Model View Controller Concept ==&lt;br /&gt;
We have compiled a list of the following sites to introduce the Model View Controller concept.  Model View Controller can be applied to a broad range of applications and we hope the following sites will give you insight into this pattern.&lt;br /&gt;
&lt;br /&gt;
#[http://java.sun.com/blueprints/patterns/MVC-detailed.html http://java.sun.com/blueprints/patterns/MVC-detailed.html] : This is a very brief introduction to the MVC concept, ideal if you are in a hurry :). I really like the illustration they used, it delimits the responsibilities of the components very well.  Discusses a few Java and web technologies, but no prior knowledge of these is necessary.&lt;br /&gt;
#[http://ootips.org/mvc-pattern.html http://ootips.org/mvc-pattern.html] : Nicely written introduction; however, it has ascii-art diagrams.&lt;br /&gt;
#[http://www.oreillynet.com/onjava/blog/2003/07/new_way_to_learn_mvc_view_a_si.html http://www.oreillynet.com/onjava/blog/2003/07/new_way_to_learn_mvc_view_a_si.html] : The most innovative way to learn about MVC, through a song. Yes you heard it right, I would recommend this to everyone just because of the hilarious lyrics. Enjoy!  (Be sure to press &amp;quot;Listen&amp;quot; and not the &amp;quot;Download this song&amp;quot; link.)&lt;br /&gt;
#[http://www.adobe.com/devnet/flash/articles/mv_controller.html http://www.adobe.com/devnet/flash/articles/mv_controller.html] : A fantastic article that details the three components of MVC, benefits of the pattern, how the classes of MVC communicate, and class responsibilities.&lt;br /&gt;
#[http://www.perlmonks.org/?node_id=402070 http://www.perlmonks.org/?node_id=402070] : An easy introduction to MVC with a handy sequence diagram example.&lt;br /&gt;
&lt;br /&gt;
== Best Sites for Model View Controller Examples ==&lt;br /&gt;
Sometimes seeing a few examples can be really helpful, so here they are:&lt;br /&gt;
&lt;br /&gt;
#[http://www.enode.com/x/markup/tutorial/mvc.html http://www.enode.com/x/markup/tutorial/mvc.html] : This is an awesome introduction to the concept. Short, sweet and to the point explained with the help of a contrived spinner example. This site does not give many details but is really good to get you started.&lt;br /&gt;
#[http://csis.pace.edu/~bergin/mvc/mvcgui.html http://csis.pace.edu/~bergin/mvc/mvcgui.html] : This article is written very well. It gives a detailed example of a temperature gauge, complete with source code in Java. I especially like it when the author explains how the components are interconnected.  It really helps in understanding the communication between the model, view and controller, as introduced in many of the MVC concept websites above.&lt;br /&gt;
#[http://www.caucho.com/articles/jsp_templates.xtp http://www.caucho.com/articles/jsp_templates.xtp] : An extremely detailed example of how to build a simple guestbook in JSP using the MVC pattern.&lt;br /&gt;
#[http://www.informit.com/guides/content.aspx?g=java&amp;amp;seqNum=117&amp;amp;rl=1 http://www.informit.com/guides/content.aspx?g=java&amp;amp;seqNum=117&amp;amp;rl=1] : Complete code example using Servlets as the controller, JSP files as the view, and JavaBeans as the model.&lt;br /&gt;
&lt;br /&gt;
== Best Sites for How to Use the Pattern in Ruby and Java==&lt;br /&gt;
Ruby on Rails has built-in support for Model View Controller.  In fact, it is impossible to write a Rails application without following the pattern.  The Ruby links below provide an introduction to writing rails applications and they each have a section dedicated to MVC.  &lt;br /&gt;
#[http://www-128.ibm.com/developerworks/linux/library/l-rubyrails/ http://www-128.ibm.com/developerworks/linux/library/l-rubyrails/] : This article gives the details on how to utilize the built-in features of Ruby on Rails to create a web application using MVC.&lt;br /&gt;
#[http://rails.homelinux.org/ http://rails.homelinux.org/] : Four Days on Rails is a 40 page pdf that takes you through learning the basics of rails.  It includes both a description and code example for the model, view, and controller.&lt;br /&gt;
&lt;br /&gt;
However, since Java does not have built-in support for Model View Controller, you must design your Java applications keeping MVC in mind.  The following links detail the steps required.&lt;br /&gt;
#[http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/app-arch/app-arch5.html http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/app-arch/app-arch5.html] : This is the design document for the pet store sample that comes built-in with Java EE. It goes into a lot of detail about how the MVC was used to design this sample. This page provides an excellent resource to understand the benefits of using patterns while working on a project's architecture. It bridges the gap between the theoretical concepts of the pattern and its practical implementations.&lt;br /&gt;
#[http://cristobal.baray.com/indiana/projects/mvc.html http://cristobal.baray.com/indiana/projects/mvc.html] : A detailed introduction to the use of MVC with a Java view point which spans several pages, complete with source code. Warning: This site throws many pop ups, so keep your pop up blocker handy.&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki2/3_rl&amp;diff=7955</id>
		<title>CSC/ECE 517 Fall 2007/wiki2/3 rl</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki2/3_rl&amp;diff=7955"/>
		<updated>2007-10-28T21:56:25Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* Best Sites for How to Use the Pattern in Ruby and Java */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Wiki Topic: Model/view/controller. There are literally hundreds of pages describing MVC on the Web. If someone wants to learn about it, what should (s)he do? Look at the first few hits in Google? I expect we can do better than that. Write a review of the MVC sites on the Web. Which are best for learning about the concept? Which have the most instructive examples? Which are best for explaining how to use the pattern in Ruby and Java? If you choose this topic, you should be sure to peruse at least several dozen sites.'' &lt;br /&gt;
&lt;br /&gt;
== Model View Controller ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Model-view-controller (MVC) is an architectural pattern used in software engineering. In complex computer applications that present a large amount of data to the user, a developer often wishes to separate data (model) and user interface (view) concerns, so that changes to the user interface will not affect data handling, and that the data can be reorganized without changing the user interface. The model-view-controller solves this problem by decoupling data access and business logic from data presentation and user interaction, by introducing an intermediate component: the controller.&amp;quot;  Taken from [http://en.wikipedia.org/wiki/Model-view-controller Wikipedia]&lt;br /&gt;
&lt;br /&gt;
== Best Sites for Learning the Model View Controller Concept ==&lt;br /&gt;
We have compiled a list of the following sites to introduce the Model View Controller concept.  Model View Controller can be applied to a broad range of applications and we hope the following sites will give you insight into this pattern.&lt;br /&gt;
&lt;br /&gt;
#[http://java.sun.com/blueprints/patterns/MVC-detailed.html http://java.sun.com/blueprints/patterns/MVC-detailed.html] : This is a very brief introduction to the MVC concept, ideal if you are in a hurry :). I really like the illustration they used, it delimits the responsibilities of the components very well.  Discusses a few Java and web technologies, but no prior knowledge of these is necessary.&lt;br /&gt;
#[http://ootips.org/mvc-pattern.html http://ootips.org/mvc-pattern.html] : Nicely written introduction; however, it has ascii-art diagrams.&lt;br /&gt;
#[http://www.oreillynet.com/onjava/blog/2003/07/new_way_to_learn_mvc_view_a_si.html http://www.oreillynet.com/onjava/blog/2003/07/new_way_to_learn_mvc_view_a_si.html] : The most innovative way to learn about MVC, through a song. Yes you heard it right, I would recommend this to everyone just because of the hilarious lyrics. Enjoy!  (Be sure to press &amp;quot;Listen&amp;quot; and not the &amp;quot;Download this song&amp;quot; link.)&lt;br /&gt;
#[http://www.adobe.com/devnet/flash/articles/mv_controller.html http://www.adobe.com/devnet/flash/articles/mv_controller.html] : A fantastic article that details the three components of MVC, benefits of the pattern, how the classes of MVC communicate, and class responsibilities.&lt;br /&gt;
#[http://www.perlmonks.org/?node_id=402070 http://www.perlmonks.org/?node_id=402070] : An easy introduction to MVC with a handy sequence diagram example.&lt;br /&gt;
&lt;br /&gt;
== Best Sites for Model View Controller Examples ==&lt;br /&gt;
Sometimes seeing a few examples can be really helpful.  So here they are:&lt;br /&gt;
&lt;br /&gt;
#[http://www.enode.com/x/markup/tutorial/mvc.html http://www.enode.com/x/markup/tutorial/mvc.html] : This is an awesome introduction to the concept. Short, sweet and to the point explained with the help of a contrived spinner example. This site does not give many details but is really good to get you started.&lt;br /&gt;
#[http://csis.pace.edu/~bergin/mvc/mvcgui.html http://csis.pace.edu/~bergin/mvc/mvcgui.html] : This article is written very well. It gives a detailed example of a temperature gauge, complete with source code in Java. I especially like it when the author explains how the components are interconnected.  It really helps in understanding the communication between the model, view and controller, as introduced in many of the MVC concept websites above.&lt;br /&gt;
#[http://www.caucho.com/articles/jsp_templates.xtp http://www.caucho.com/articles/jsp_templates.xtp] : An extremely detailed example of how to build a simple guestbook in JSP using the MVC pattern.&lt;br /&gt;
#[http://www.informit.com/guides/content.aspx?g=java&amp;amp;seqNum=117&amp;amp;rl=1 http://www.informit.com/guides/content.aspx?g=java&amp;amp;seqNum=117&amp;amp;rl=1] : Complete code example using Servlets as the controller, JSP files as the view, and JavaBeans as the model.&lt;br /&gt;
&lt;br /&gt;
== Best Sites for How to Use the Pattern in Ruby and Java==&lt;br /&gt;
Ruby on Rails has built-in support for Model View Controller.  In fact, it is impossible to write a Rails application without following the pattern.  The Ruby links below provide an introduction to writing rails applications and they each have a section dedicated to MVC.  &lt;br /&gt;
#[http://www-128.ibm.com/developerworks/linux/library/l-rubyrails/ http://www-128.ibm.com/developerworks/linux/library/l-rubyrails/] : This article gives the details on how to utilize the built-in features of Ruby on Rails to create a web application using MVC.&lt;br /&gt;
#[http://rails.homelinux.org/ http://rails.homelinux.org/] : Four Days on Rails is a 40 page pdf that takes you through learning the basics of rails.  It includes both a description and code example for the model, view, and controller.&lt;br /&gt;
&lt;br /&gt;
However, since Java does not have built-in support for Model View Controller, you must design your Java applications keeping MVC in mind.  The following links detail the steps required.&lt;br /&gt;
#[http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/app-arch/app-arch5.html http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/app-arch/app-arch5.html] : This is the design document for the pet store sample that comes built-in with Java EE. It goes into a lot of detail about how the MVC was used to design this sample. This page provides an excellent resource to understand the benefits of using patterns while working on a project's architecture. It bridges the gap between the theoretical concepts of the pattern and its practical implementations.&lt;br /&gt;
#[http://cristobal.baray.com/indiana/projects/mvc.html http://cristobal.baray.com/indiana/projects/mvc.html] : A detailed introduction to the use of MVC with a Java view point which spans several pages, complete with source code. Warning: This site throws many pop ups, so keep your pop up blocker handy.&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki2/3_rl&amp;diff=7954</id>
		<title>CSC/ECE 517 Fall 2007/wiki2/3 rl</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki2/3_rl&amp;diff=7954"/>
		<updated>2007-10-28T21:55:25Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* Best Sites for How to Use the Pattern in Ruby and Java */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Wiki Topic: Model/view/controller. There are literally hundreds of pages describing MVC on the Web. If someone wants to learn about it, what should (s)he do? Look at the first few hits in Google? I expect we can do better than that. Write a review of the MVC sites on the Web. Which are best for learning about the concept? Which have the most instructive examples? Which are best for explaining how to use the pattern in Ruby and Java? If you choose this topic, you should be sure to peruse at least several dozen sites.'' &lt;br /&gt;
&lt;br /&gt;
== Model View Controller ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Model-view-controller (MVC) is an architectural pattern used in software engineering. In complex computer applications that present a large amount of data to the user, a developer often wishes to separate data (model) and user interface (view) concerns, so that changes to the user interface will not affect data handling, and that the data can be reorganized without changing the user interface. The model-view-controller solves this problem by decoupling data access and business logic from data presentation and user interaction, by introducing an intermediate component: the controller.&amp;quot;  Taken from [http://en.wikipedia.org/wiki/Model-view-controller Wikipedia]&lt;br /&gt;
&lt;br /&gt;
== Best Sites for Learning the Model View Controller Concept ==&lt;br /&gt;
We have compiled a list of the following sites to introduce the Model View Controller concept.  Model View Controller can be applied to a broad range of applications and we hope the following sites will give you insight into this pattern.&lt;br /&gt;
&lt;br /&gt;
#[http://java.sun.com/blueprints/patterns/MVC-detailed.html http://java.sun.com/blueprints/patterns/MVC-detailed.html] : This is a very brief introduction to the MVC concept, ideal if you are in a hurry :). I really like the illustration they used, it delimits the responsibilities of the components very well.  Discusses a few Java and web technologies, but no prior knowledge of these is necessary.&lt;br /&gt;
#[http://ootips.org/mvc-pattern.html http://ootips.org/mvc-pattern.html] : Nicely written introduction; however, it has ascii-art diagrams.&lt;br /&gt;
#[http://www.oreillynet.com/onjava/blog/2003/07/new_way_to_learn_mvc_view_a_si.html http://www.oreillynet.com/onjava/blog/2003/07/new_way_to_learn_mvc_view_a_si.html] : The most innovative way to learn about MVC, through a song. Yes you heard it right, I would recommend this to everyone just because of the hilarious lyrics. Enjoy!  (Be sure to press &amp;quot;Listen&amp;quot; and not the &amp;quot;Download this song&amp;quot; link.)&lt;br /&gt;
#[http://www.adobe.com/devnet/flash/articles/mv_controller.html http://www.adobe.com/devnet/flash/articles/mv_controller.html] : A fantastic article that details the three components of MVC, benefits of the pattern, how the classes of MVC communicate, and class responsibilities.&lt;br /&gt;
#[http://www.perlmonks.org/?node_id=402070 http://www.perlmonks.org/?node_id=402070] : An easy introduction to MVC with a handy sequence diagram example.&lt;br /&gt;
&lt;br /&gt;
== Best Sites for Model View Controller Examples ==&lt;br /&gt;
Sometimes seeing a few examples can be really helpful.  So here they are:&lt;br /&gt;
&lt;br /&gt;
#[http://www.enode.com/x/markup/tutorial/mvc.html http://www.enode.com/x/markup/tutorial/mvc.html] : This is an awesome introduction to the concept. Short, sweet and to the point explained with the help of a contrived spinner example. This site does not give many details but is really good to get you started.&lt;br /&gt;
#[http://csis.pace.edu/~bergin/mvc/mvcgui.html http://csis.pace.edu/~bergin/mvc/mvcgui.html] : This article is written very well. It gives a detailed example of a temperature gauge, complete with source code in Java. I especially like it when the author explains how the components are interconnected.  It really helps in understanding the communication between the model, view and controller, as introduced in many of the MVC concept websites above.&lt;br /&gt;
#[http://www.caucho.com/articles/jsp_templates.xtp http://www.caucho.com/articles/jsp_templates.xtp] : An extremely detailed example of how to build a simple guestbook in JSP using the MVC pattern.&lt;br /&gt;
#[http://www.informit.com/guides/content.aspx?g=java&amp;amp;seqNum=117&amp;amp;rl=1 http://www.informit.com/guides/content.aspx?g=java&amp;amp;seqNum=117&amp;amp;rl=1] : Complete code example using Servlets as the controller, JSP files as the view, and JavaBeans as the model.&lt;br /&gt;
&lt;br /&gt;
== Best Sites for How to Use the Pattern in Ruby and Java==&lt;br /&gt;
Ruby on Rails has built-in support for Model View Controller.  In fact, it is impossible to write a Rails application without following the pattern.  The Ruby links below are introductions to writing rails applications that have a section dedicated to MVC.  &lt;br /&gt;
#[http://www-128.ibm.com/developerworks/linux/library/l-rubyrails/ http://www-128.ibm.com/developerworks/linux/library/l-rubyrails/] : This article gives the details on how to utilize the built-in features of Ruby on Rails to create a web application using MVC.&lt;br /&gt;
#[http://rails.homelinux.org/ http://rails.homelinux.org/] : Four Days on Rails is a 40 page pdf that takes you through learning the basics of rails.  It includes both a description and code example for the model, view, and controller.&lt;br /&gt;
&lt;br /&gt;
However, since Java does not have built-in support for Model View Controller, you must design your Java applications keeping MVC in mind.  The following links detail the steps required.&lt;br /&gt;
#[http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/app-arch/app-arch5.html http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/app-arch/app-arch5.html] : This is the design document for the pet store sample that comes built-in with Java EE. It goes into a lot of detail about how the MVC was used to design this sample. This page provides an excellent resource to understand the benefits of using patterns while working on a project's architecture. It bridges the gap between the theoretical concepts of the pattern and its practical implementations.&lt;br /&gt;
#[http://cristobal.baray.com/indiana/projects/mvc.html http://cristobal.baray.com/indiana/projects/mvc.html] : A detailed introduction to the use of MVC with a Java view point which spans several pages, complete with source code. Warning: This site throws many pop ups, so keep your pop up blocker handy.&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki2/3_rl&amp;diff=7953</id>
		<title>CSC/ECE 517 Fall 2007/wiki2/3 rl</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki2/3_rl&amp;diff=7953"/>
		<updated>2007-10-28T21:47:47Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* Best Sites for Model View Controller Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Wiki Topic: Model/view/controller. There are literally hundreds of pages describing MVC on the Web. If someone wants to learn about it, what should (s)he do? Look at the first few hits in Google? I expect we can do better than that. Write a review of the MVC sites on the Web. Which are best for learning about the concept? Which have the most instructive examples? Which are best for explaining how to use the pattern in Ruby and Java? If you choose this topic, you should be sure to peruse at least several dozen sites.'' &lt;br /&gt;
&lt;br /&gt;
== Model View Controller ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Model-view-controller (MVC) is an architectural pattern used in software engineering. In complex computer applications that present a large amount of data to the user, a developer often wishes to separate data (model) and user interface (view) concerns, so that changes to the user interface will not affect data handling, and that the data can be reorganized without changing the user interface. The model-view-controller solves this problem by decoupling data access and business logic from data presentation and user interaction, by introducing an intermediate component: the controller.&amp;quot;  Taken from [http://en.wikipedia.org/wiki/Model-view-controller Wikipedia]&lt;br /&gt;
&lt;br /&gt;
== Best Sites for Learning the Model View Controller Concept ==&lt;br /&gt;
We have compiled a list of the following sites to introduce the Model View Controller concept.  Model View Controller can be applied to a broad range of applications and we hope the following sites will give you insight into this pattern.&lt;br /&gt;
&lt;br /&gt;
#[http://java.sun.com/blueprints/patterns/MVC-detailed.html http://java.sun.com/blueprints/patterns/MVC-detailed.html] : This is a very brief introduction to the MVC concept, ideal if you are in a hurry :). I really like the illustration they used, it delimits the responsibilities of the components very well.  Discusses a few Java and web technologies, but no prior knowledge of these is necessary.&lt;br /&gt;
#[http://ootips.org/mvc-pattern.html http://ootips.org/mvc-pattern.html] : Nicely written introduction; however, it has ascii-art diagrams.&lt;br /&gt;
#[http://www.oreillynet.com/onjava/blog/2003/07/new_way_to_learn_mvc_view_a_si.html http://www.oreillynet.com/onjava/blog/2003/07/new_way_to_learn_mvc_view_a_si.html] : The most innovative way to learn about MVC, through a song. Yes you heard it right, I would recommend this to everyone just because of the hilarious lyrics. Enjoy!  (Be sure to press &amp;quot;Listen&amp;quot; and not the &amp;quot;Download this song&amp;quot; link.)&lt;br /&gt;
#[http://www.adobe.com/devnet/flash/articles/mv_controller.html http://www.adobe.com/devnet/flash/articles/mv_controller.html] : A fantastic article that details the three components of MVC, benefits of the pattern, how the classes of MVC communicate, and class responsibilities.&lt;br /&gt;
#[http://www.perlmonks.org/?node_id=402070 http://www.perlmonks.org/?node_id=402070] : An easy introduction to MVC with a handy sequence diagram example.&lt;br /&gt;
&lt;br /&gt;
== Best Sites for Model View Controller Examples ==&lt;br /&gt;
Sometimes seeing a few examples can be really helpful.  So here they are:&lt;br /&gt;
&lt;br /&gt;
#[http://www.enode.com/x/markup/tutorial/mvc.html http://www.enode.com/x/markup/tutorial/mvc.html] : This is an awesome introduction to the concept. Short, sweet and to the point explained with the help of a contrived spinner example. This site does not give many details but is really good to get you started.&lt;br /&gt;
#[http://csis.pace.edu/~bergin/mvc/mvcgui.html http://csis.pace.edu/~bergin/mvc/mvcgui.html] : This article is written very well. It gives a detailed example of a temperature gauge, complete with source code in Java. I especially like it when the author explains how the components are interconnected.  It really helps in understanding the communication between the model, view and controller, as introduced in many of the MVC concept websites above.&lt;br /&gt;
#[http://www.caucho.com/articles/jsp_templates.xtp http://www.caucho.com/articles/jsp_templates.xtp] : An extremely detailed example of how to build a simple guestbook in JSP using the MVC pattern.&lt;br /&gt;
#[http://www.informit.com/guides/content.aspx?g=java&amp;amp;seqNum=117&amp;amp;rl=1 http://www.informit.com/guides/content.aspx?g=java&amp;amp;seqNum=117&amp;amp;rl=1] : Complete code example using Servlets as the controller, JSP files as the view, and JavaBeans as the model.&lt;br /&gt;
&lt;br /&gt;
== Best Sites for How to Use the Pattern in Ruby and Java ==&lt;br /&gt;
#[http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/app-arch/app-arch5.html http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/app-arch/app-arch5.html] : This is the design document for the pet store sample that comes built-in with Java EE. It goes into a lot of detail about how the MVC was used to design this sample. This page provides an excellent resource to understand the benefits of using patterns while working on a project's architecture. It bridges the gap between the theoretical concepts of the pattern and its practical implementations.&lt;br /&gt;
#[http://cristobal.baray.com/indiana/projects/mvc.html http://cristobal.baray.com/indiana/projects/mvc.html] : A detailed introduction to the use of MVC with a Java view point which spans several pages, complete with source code. Warning: This site throws many pop ups, so keep your pop up blocker handy.&lt;br /&gt;
#[http://www-128.ibm.com/developerworks/linux/library/l-rubyrails/ http://www-128.ibm.com/developerworks/linux/library/l-rubyrails/] : This article gives the details on how to utilize the built-in features of Ruby on Rails to create a web application using MVC.&lt;br /&gt;
#[http://rails.homelinux.org/ http://rails.homelinux.org/] : Four Days on Rails is a 40 page pdf that takes you through learning the basics of rails.  It includes both a description and code example for the model, view, and controller.&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki2/3_rl&amp;diff=7951</id>
		<title>CSC/ECE 517 Fall 2007/wiki2/3 rl</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki2/3_rl&amp;diff=7951"/>
		<updated>2007-10-28T21:46:51Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* Best Sites for Learning the Model View Controller Concept */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Wiki Topic: Model/view/controller. There are literally hundreds of pages describing MVC on the Web. If someone wants to learn about it, what should (s)he do? Look at the first few hits in Google? I expect we can do better than that. Write a review of the MVC sites on the Web. Which are best for learning about the concept? Which have the most instructive examples? Which are best for explaining how to use the pattern in Ruby and Java? If you choose this topic, you should be sure to peruse at least several dozen sites.'' &lt;br /&gt;
&lt;br /&gt;
== Model View Controller ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Model-view-controller (MVC) is an architectural pattern used in software engineering. In complex computer applications that present a large amount of data to the user, a developer often wishes to separate data (model) and user interface (view) concerns, so that changes to the user interface will not affect data handling, and that the data can be reorganized without changing the user interface. The model-view-controller solves this problem by decoupling data access and business logic from data presentation and user interaction, by introducing an intermediate component: the controller.&amp;quot;  Taken from [http://en.wikipedia.org/wiki/Model-view-controller Wikipedia]&lt;br /&gt;
&lt;br /&gt;
== Best Sites for Learning the Model View Controller Concept ==&lt;br /&gt;
We have compiled a list of the following sites to introduce the Model View Controller concept.  Model View Controller can be applied to a broad range of applications and we hope the following sites will give you insight into this pattern.&lt;br /&gt;
&lt;br /&gt;
#[http://java.sun.com/blueprints/patterns/MVC-detailed.html http://java.sun.com/blueprints/patterns/MVC-detailed.html] : This is a very brief introduction to the MVC concept, ideal if you are in a hurry :). I really like the illustration they used, it delimits the responsibilities of the components very well.  Discusses a few Java and web technologies, but no prior knowledge of these is necessary.&lt;br /&gt;
#[http://ootips.org/mvc-pattern.html http://ootips.org/mvc-pattern.html] : Nicely written introduction; however, it has ascii-art diagrams.&lt;br /&gt;
#[http://www.oreillynet.com/onjava/blog/2003/07/new_way_to_learn_mvc_view_a_si.html http://www.oreillynet.com/onjava/blog/2003/07/new_way_to_learn_mvc_view_a_si.html] : The most innovative way to learn about MVC, through a song. Yes you heard it right, I would recommend this to everyone just because of the hilarious lyrics. Enjoy!  (Be sure to press &amp;quot;Listen&amp;quot; and not the &amp;quot;Download this song&amp;quot; link.)&lt;br /&gt;
#[http://www.adobe.com/devnet/flash/articles/mv_controller.html http://www.adobe.com/devnet/flash/articles/mv_controller.html] : A fantastic article that details the three components of MVC, benefits of the pattern, how the classes of MVC communicate, and class responsibilities.&lt;br /&gt;
#[http://www.perlmonks.org/?node_id=402070 http://www.perlmonks.org/?node_id=402070] : An easy introduction to MVC with a handy sequence diagram example.&lt;br /&gt;
&lt;br /&gt;
== Best Sites for Model View Controller Examples ==&lt;br /&gt;
#[http://www.enode.com/x/markup/tutorial/mvc.html http://www.enode.com/x/markup/tutorial/mvc.html] : This is an awesome introduction to the concept. Short, sweet and to the point explained with the help of a contrived spinner example. This site does not give many details but is really good to get you started.&lt;br /&gt;
#[http://csis.pace.edu/~bergin/mvc/mvcgui.html http://csis.pace.edu/~bergin/mvc/mvcgui.html] : This article is written very well. It gives a detailed example of a temperature gauge, complete with source code in Java. I especially like it when the author explains how the components are interconnected.  It really helps in understanding the communication between the model, view and controller, as introduced in many of the MVC concept websites above.&lt;br /&gt;
#[http://www.caucho.com/articles/jsp_templates.xtp http://www.caucho.com/articles/jsp_templates.xtp] : An extremely detailed example of how to build a simple guestbook in JSP using the MVC pattern.&lt;br /&gt;
#[http://www.informit.com/guides/content.aspx?g=java&amp;amp;seqNum=117&amp;amp;rl=1 http://www.informit.com/guides/content.aspx?g=java&amp;amp;seqNum=117&amp;amp;rl=1] : Complete code example using Servlets as the controller, JSP files as the view, and JavaBeans as the model.&lt;br /&gt;
&lt;br /&gt;
== Best Sites for How to Use the Pattern in Ruby and Java ==&lt;br /&gt;
#[http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/app-arch/app-arch5.html http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/app-arch/app-arch5.html] : This is the design document for the pet store sample that comes built-in with Java EE. It goes into a lot of detail about how the MVC was used to design this sample. This page provides an excellent resource to understand the benefits of using patterns while working on a project's architecture. It bridges the gap between the theoretical concepts of the pattern and its practical implementations.&lt;br /&gt;
#[http://cristobal.baray.com/indiana/projects/mvc.html http://cristobal.baray.com/indiana/projects/mvc.html] : A detailed introduction to the use of MVC with a Java view point which spans several pages, complete with source code. Warning: This site throws many pop ups, so keep your pop up blocker handy.&lt;br /&gt;
#[http://www-128.ibm.com/developerworks/linux/library/l-rubyrails/ http://www-128.ibm.com/developerworks/linux/library/l-rubyrails/] : This article gives the details on how to utilize the built-in features of Ruby on Rails to create a web application using MVC.&lt;br /&gt;
#[http://rails.homelinux.org/ http://rails.homelinux.org/] : Four Days on Rails is a 40 page pdf that takes you through learning the basics of rails.  It includes both a description and code example for the model, view, and controller.&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki2/3_rl&amp;diff=7947</id>
		<title>CSC/ECE 517 Fall 2007/wiki2/3 rl</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki2/3_rl&amp;diff=7947"/>
		<updated>2007-10-28T21:44:09Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* Best Sites for Learning the Model View Controller Concept */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Wiki Topic: Model/view/controller. There are literally hundreds of pages describing MVC on the Web. If someone wants to learn about it, what should (s)he do? Look at the first few hits in Google? I expect we can do better than that. Write a review of the MVC sites on the Web. Which are best for learning about the concept? Which have the most instructive examples? Which are best for explaining how to use the pattern in Ruby and Java? If you choose this topic, you should be sure to peruse at least several dozen sites.'' &lt;br /&gt;
&lt;br /&gt;
== Model View Controller ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Model-view-controller (MVC) is an architectural pattern used in software engineering. In complex computer applications that present a large amount of data to the user, a developer often wishes to separate data (model) and user interface (view) concerns, so that changes to the user interface will not affect data handling, and that the data can be reorganized without changing the user interface. The model-view-controller solves this problem by decoupling data access and business logic from data presentation and user interaction, by introducing an intermediate component: the controller.&amp;quot;  Taken from [http://en.wikipedia.org/wiki/Model-view-controller Wikipedia]&lt;br /&gt;
&lt;br /&gt;
== Best Sites for Learning the Model View Controller Concept ==&lt;br /&gt;
#[http://java.sun.com/blueprints/patterns/MVC-detailed.html http://java.sun.com/blueprints/patterns/MVC-detailed.html] : This is a very brief introduction to the MVC concept, ideal if you are in a hurry :). I really like the illustration they used, it delimits the responsibilities of the components very well.  Discusses a few Java and web technologies, but no prior knowledge of these is necessary.&lt;br /&gt;
#[http://ootips.org/mvc-pattern.html http://ootips.org/mvc-pattern.html] : Nicely written introduction; however, it has ascii-art diagrams.&lt;br /&gt;
#[http://www.oreillynet.com/onjava/blog/2003/07/new_way_to_learn_mvc_view_a_si.html http://www.oreillynet.com/onjava/blog/2003/07/new_way_to_learn_mvc_view_a_si.html] : The most innovative way to learn about MVC, through a song. Yes you heard it right, I would recommend this to everyone just because of the hilarious lyrics. Enjoy!  (Be sure to press &amp;quot;Listen&amp;quot; and not the &amp;quot;Download this song&amp;quot; link.)&lt;br /&gt;
#[http://www.adobe.com/devnet/flash/articles/mv_controller.html http://www.adobe.com/devnet/flash/articles/mv_controller.html] : A fantastic article that details the three components of MVC, benefits of the pattern, how the classes of MVC communicate, and class responsibilities.&lt;br /&gt;
#[http://www.perlmonks.org/?node_id=402070 http://www.perlmonks.org/?node_id=402070] : An easy introduction to MVC with a handy sequence diagram example.&lt;br /&gt;
&lt;br /&gt;
== Best Sites for Model View Controller Examples ==&lt;br /&gt;
#[http://www.enode.com/x/markup/tutorial/mvc.html http://www.enode.com/x/markup/tutorial/mvc.html] : This is an awesome introduction to the concept. Short, sweet and to the point explained with the help of a contrived spinner example. This site does not give many details but is really good to get you started.&lt;br /&gt;
#[http://csis.pace.edu/~bergin/mvc/mvcgui.html http://csis.pace.edu/~bergin/mvc/mvcgui.html] : This article is written very well. It gives a detailed example of a temperature gauge, complete with source code in Java. I especially like it when the author explains how the components are interconnected.  It really helps in understanding the communication between the model, view and controller, as introduced in many of the MVC concept websites above.&lt;br /&gt;
#[http://www.caucho.com/articles/jsp_templates.xtp http://www.caucho.com/articles/jsp_templates.xtp] : An extremely detailed example of how to build a simple guestbook in JSP using the MVC pattern.&lt;br /&gt;
#[http://www.informit.com/guides/content.aspx?g=java&amp;amp;seqNum=117&amp;amp;rl=1 http://www.informit.com/guides/content.aspx?g=java&amp;amp;seqNum=117&amp;amp;rl=1] : Complete code example using Servlets as the controller, JSP files as the view, and JavaBeans as the model.&lt;br /&gt;
&lt;br /&gt;
== Best Sites for How to Use the Pattern in Ruby and Java ==&lt;br /&gt;
#[http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/app-arch/app-arch5.html http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/app-arch/app-arch5.html] : This is the design document for the pet store sample that comes built-in with Java EE. It goes into a lot of detail about how the MVC was used to design this sample. This page provides an excellent resource to understand the benefits of using patterns while working on a project's architecture. It bridges the gap between the theoretical concepts of the pattern and its practical implementations.&lt;br /&gt;
#[http://cristobal.baray.com/indiana/projects/mvc.html http://cristobal.baray.com/indiana/projects/mvc.html] : A detailed introduction to the use of MVC with a Java view point which spans several pages, complete with source code. Warning: This site throws many pop ups, so keep your pop up blocker handy.&lt;br /&gt;
#[http://www-128.ibm.com/developerworks/linux/library/l-rubyrails/ http://www-128.ibm.com/developerworks/linux/library/l-rubyrails/] : This article gives the details on how to utilize the built-in features of Ruby on Rails to create a web application using MVC.&lt;br /&gt;
#[http://rails.homelinux.org/ http://rails.homelinux.org/] : Four Days on Rails is a 40 page pdf that takes you through learning the basics of rails.  It includes both a description and code example for the model, view, and controller.&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki2/3_rl&amp;diff=7946</id>
		<title>CSC/ECE 517 Fall 2007/wiki2/3 rl</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki2/3_rl&amp;diff=7946"/>
		<updated>2007-10-28T21:43:09Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* Best Sites for Learning the Model View Controller Concept */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Wiki Topic: Model/view/controller. There are literally hundreds of pages describing MVC on the Web. If someone wants to learn about it, what should (s)he do? Look at the first few hits in Google? I expect we can do better than that. Write a review of the MVC sites on the Web. Which are best for learning about the concept? Which have the most instructive examples? Which are best for explaining how to use the pattern in Ruby and Java? If you choose this topic, you should be sure to peruse at least several dozen sites.'' &lt;br /&gt;
&lt;br /&gt;
== Model View Controller ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Model-view-controller (MVC) is an architectural pattern used in software engineering. In complex computer applications that present a large amount of data to the user, a developer often wishes to separate data (model) and user interface (view) concerns, so that changes to the user interface will not affect data handling, and that the data can be reorganized without changing the user interface. The model-view-controller solves this problem by decoupling data access and business logic from data presentation and user interaction, by introducing an intermediate component: the controller.&amp;quot;  Taken from [http://en.wikipedia.org/wiki/Model-view-controller Wikipedia]&lt;br /&gt;
&lt;br /&gt;
== Best Sites for Learning the Model View Controller Concept ==&lt;br /&gt;
#[http://java.sun.com/blueprints/patterns/MVC-detailed.html http://java.sun.com/blueprints/patterns/MVC-detailed.html] : This is a very brief introduction to the MVC concept, ideal if you are in a hurry :). I really like the illustration they used, it delimits the responsibilities of the components very well.  Discusses a few Java and web technologies, but no prior knowledge of these is necessary.&lt;br /&gt;
#[http://ootips.org/mvc-pattern.html http://ootips.org/mvc-pattern.html] : Nicely written introduction; however, it has ascii-art diagrams.&lt;br /&gt;
#[http://www.oreillynet.com/onjava/blog/2003/07/new_way_to_learn_mvc_view_a_si.html http://www.oreillynet.com/onjava/blog/2003/07/new_way_to_learn_mvc_view_a_si.html] : The most innovative way to learn about MVC, through a song. Yes you heard it right, I would recommend this to everyone just because of the hilarious lyrics. Enjoy!&lt;br /&gt;
#[http://www.adobe.com/devnet/flash/articles/mv_controller.html http://www.adobe.com/devnet/flash/articles/mv_controller.html] : A fantastic article that details the three components of MVC, benefits of the pattern, how the classes of MVC communicate, and class responsibilities.&lt;br /&gt;
#[http://www.perlmonks.org/?node_id=402070 http://www.perlmonks.org/?node_id=402070] : An easy introduction to MVC with a handy sequence diagram example.&lt;br /&gt;
&lt;br /&gt;
== Best Sites for Model View Controller Examples ==&lt;br /&gt;
#[http://www.enode.com/x/markup/tutorial/mvc.html http://www.enode.com/x/markup/tutorial/mvc.html] : This is an awesome introduction to the concept. Short, sweet and to the point explained with the help of a contrived spinner example. This site does not give many details but is really good to get you started.&lt;br /&gt;
#[http://csis.pace.edu/~bergin/mvc/mvcgui.html http://csis.pace.edu/~bergin/mvc/mvcgui.html] : This article is written very well. It gives a detailed example of a temperature gauge, complete with source code in Java. I especially like it when the author explains how the components are interconnected.  It really helps in understanding the communication between the model, view and controller, as introduced in many of the MVC concept websites above.&lt;br /&gt;
#[http://www.caucho.com/articles/jsp_templates.xtp http://www.caucho.com/articles/jsp_templates.xtp] : An extremely detailed example of how to build a simple guestbook in JSP using the MVC pattern.&lt;br /&gt;
#[http://www.informit.com/guides/content.aspx?g=java&amp;amp;seqNum=117&amp;amp;rl=1 http://www.informit.com/guides/content.aspx?g=java&amp;amp;seqNum=117&amp;amp;rl=1] : Complete code example using Servlets as the controller, JSP files as the view, and JavaBeans as the model.&lt;br /&gt;
&lt;br /&gt;
== Best Sites for How to Use the Pattern in Ruby and Java ==&lt;br /&gt;
#[http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/app-arch/app-arch5.html http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/app-arch/app-arch5.html] : This is the design document for the pet store sample that comes built-in with Java EE. It goes into a lot of detail about how the MVC was used to design this sample. This page provides an excellent resource to understand the benefits of using patterns while working on a project's architecture. It bridges the gap between the theoretical concepts of the pattern and its practical implementations.&lt;br /&gt;
#[http://cristobal.baray.com/indiana/projects/mvc.html http://cristobal.baray.com/indiana/projects/mvc.html] : A detailed introduction to the use of MVC with a Java view point which spans several pages, complete with source code. Warning: This site throws many pop ups, so keep your pop up blocker handy.&lt;br /&gt;
#[http://www-128.ibm.com/developerworks/linux/library/l-rubyrails/ http://www-128.ibm.com/developerworks/linux/library/l-rubyrails/] : This article gives the details on how to utilize the built-in features of Ruby on Rails to create a web application using MVC.&lt;br /&gt;
#[http://rails.homelinux.org/ http://rails.homelinux.org/] : Four Days on Rails is a 40 page pdf that takes you through learning the basics of rails.  It includes both a description and code example for the model, view, and controller.&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki2/3_rl&amp;diff=7945</id>
		<title>CSC/ECE 517 Fall 2007/wiki2/3 rl</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki2/3_rl&amp;diff=7945"/>
		<updated>2007-10-28T21:38:33Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* Model View Controller */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Wiki Topic: Model/view/controller. There are literally hundreds of pages describing MVC on the Web. If someone wants to learn about it, what should (s)he do? Look at the first few hits in Google? I expect we can do better than that. Write a review of the MVC sites on the Web. Which are best for learning about the concept? Which have the most instructive examples? Which are best for explaining how to use the pattern in Ruby and Java? If you choose this topic, you should be sure to peruse at least several dozen sites.'' &lt;br /&gt;
&lt;br /&gt;
== Model View Controller ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Model-view-controller (MVC) is an architectural pattern used in software engineering. In complex computer applications that present a large amount of data to the user, a developer often wishes to separate data (model) and user interface (view) concerns, so that changes to the user interface will not affect data handling, and that the data can be reorganized without changing the user interface. The model-view-controller solves this problem by decoupling data access and business logic from data presentation and user interaction, by introducing an intermediate component: the controller.&amp;quot;  Taken from [http://en.wikipedia.org/wiki/Model-view-controller Wikipedia]&lt;br /&gt;
&lt;br /&gt;
== Best Sites for Learning the Model View Controller Concept ==&lt;br /&gt;
#[http://java.sun.com/blueprints/patterns/MVC-detailed.html http://java.sun.com/blueprints/patterns/MVC-detailed.html] : This is a very brief introduction to the MVC concept, ideal if you are in a hurry :). I really like the illustration they used, it delimits the responsibilities of the components very well.&lt;br /&gt;
#[http://ootips.org/mvc-pattern.html http://ootips.org/mvc-pattern.html] : Nicely written introduction; however, it has ascii-art diagrams.&lt;br /&gt;
#[http://www.oreillynet.com/onjava/blog/2003/07/new_way_to_learn_mvc_view_a_si.html http://www.oreillynet.com/onjava/blog/2003/07/new_way_to_learn_mvc_view_a_si.html] : The most innovative way to learn about MVC, through a song. Yes you heard it right, I would recommend this to everyone just because of the hilarious lyrics. Enjoy!&lt;br /&gt;
#[http://www.adobe.com/devnet/flash/articles/mv_controller.html http://www.adobe.com/devnet/flash/articles/mv_controller.html] : A fantastic article that details the three components of MVC, benefits of the pattern, how the classes of MVC communicate, and class responsibilities.&lt;br /&gt;
#[http://www.perlmonks.org/?node_id=402070 http://www.perlmonks.org/?node_id=402070] : An easy introduction to MVC with a handy sequence diagram example.&lt;br /&gt;
&lt;br /&gt;
== Best Sites for Model View Controller Examples ==&lt;br /&gt;
#[http://www.enode.com/x/markup/tutorial/mvc.html http://www.enode.com/x/markup/tutorial/mvc.html] : This is an awesome introduction to the concept. Short, sweet and to the point explained with the help of a contrived spinner example. This site does not give many details but is really good to get you started.&lt;br /&gt;
#[http://csis.pace.edu/~bergin/mvc/mvcgui.html http://csis.pace.edu/~bergin/mvc/mvcgui.html] : This article is written very well. It gives a detailed example of a temperature gauge, complete with source code in Java. I especially like it when the author explains how the components are interconnected.  It really helps in understanding the communication between the model, view and controller, as introduced in many of the MVC concept websites above.&lt;br /&gt;
#[http://www.caucho.com/articles/jsp_templates.xtp http://www.caucho.com/articles/jsp_templates.xtp] : An extremely detailed example of how to build a simple guestbook in JSP using the MVC pattern.&lt;br /&gt;
#[http://www.informit.com/guides/content.aspx?g=java&amp;amp;seqNum=117&amp;amp;rl=1 http://www.informit.com/guides/content.aspx?g=java&amp;amp;seqNum=117&amp;amp;rl=1] : Complete code example using Servlets as the controller, JSP files as the view, and JavaBeans as the model.&lt;br /&gt;
&lt;br /&gt;
== Best Sites for How to Use the Pattern in Ruby and Java ==&lt;br /&gt;
#[http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/app-arch/app-arch5.html http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/app-arch/app-arch5.html] : This is the design document for the pet store sample that comes built-in with Java EE. It goes into a lot of detail about how the MVC was used to design this sample. This page provides an excellent resource to understand the benefits of using patterns while working on a project's architecture. It bridges the gap between the theoretical concepts of the pattern and its practical implementations.&lt;br /&gt;
#[http://cristobal.baray.com/indiana/projects/mvc.html http://cristobal.baray.com/indiana/projects/mvc.html] : A detailed introduction to the use of MVC with a Java view point which spans several pages, complete with source code. Warning: This site throws many pop ups, so keep your pop up blocker handy.&lt;br /&gt;
#[http://www-128.ibm.com/developerworks/linux/library/l-rubyrails/ http://www-128.ibm.com/developerworks/linux/library/l-rubyrails/] : This article gives the details on how to utilize the built-in features of Ruby on Rails to create a web application using MVC.&lt;br /&gt;
#[http://rails.homelinux.org/ http://rails.homelinux.org/] : Four Days on Rails is a 40 page pdf that takes you through learning the basics of rails.  It includes both a description and code example for the model, view, and controller.&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki2/3_rl&amp;diff=7014</id>
		<title>CSC/ECE 517 Fall 2007/wiki2/3 rl</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki2/3_rl&amp;diff=7014"/>
		<updated>2007-10-23T22:59:13Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* Best Sites for How to Use the Pattern in Ruby and Java */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Model View Controller ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Model-view-controller (MVC) is an architectural pattern used in software engineering. In complex computer applications that present a large amount of data to the user, a developer often wishes to separate data (model) and user interface (view) concerns, so that changes to the user interface will not affect data handling, and that the data can be reorganized without changing the user interface. The model-view-controller solves this problem by decoupling data access and business logic from data presentation and user interaction, by introducing an intermediate component: the controller.&amp;quot;  Taken from [http://en.wikipedia.org/wiki/Model-view-controller Wikipedia]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Best Sites for Learning the Model View Controller Concept ==&lt;br /&gt;
#[http://java.sun.com/blueprints/patterns/MVC-detailed.html http://java.sun.com/blueprints/patterns/MVC-detailed.html] : This is a very brief introduction to the MVC concept, ideal if you are in a hurry :). I really like the illustration they used, it delimits the responsibilities of the components very well.&lt;br /&gt;
#[http://ootips.org/mvc-pattern.html http://ootips.org/mvc-pattern.html] : Nicely written introduction; however, it has ascii-art diagrams.&lt;br /&gt;
#[http://www.oreillynet.com/onjava/blog/2003/07/new_way_to_learn_mvc_view_a_si.html http://www.oreillynet.com/onjava/blog/2003/07/new_way_to_learn_mvc_view_a_si.html] : The most innovative way to learn about MVC, through a song. Yes you heard it right, I would recommend this to everyone just because of the hilarious lyrics. Enjoy!&lt;br /&gt;
#[http://www.adobe.com/devnet/flash/articles/mv_controller.html http://www.adobe.com/devnet/flash/articles/mv_controller.html] : A fantastic article that details the three components of MVC, benefits of the pattern, how the classes of MVC communicate, and class responsibilities.&lt;br /&gt;
#[http://www.perlmonks.org/?node_id=402070 http://www.perlmonks.org/?node_id=402070] : An easy introduction to MVC with a handy sequence diagram example.&lt;br /&gt;
&lt;br /&gt;
== Best Sites for Model View Controller Examples ==&lt;br /&gt;
#[http://www.enode.com/x/markup/tutorial/mvc.html http://www.enode.com/x/markup/tutorial/mvc.html] : This is an awesome introduction to the concept. Short, sweet and to the point explained with the help of a contrived spinner example. This site does not give many details but is really good to get you started.&lt;br /&gt;
#[http://csis.pace.edu/~bergin/mvc/mvcgui.html http://csis.pace.edu/~bergin/mvc/mvcgui.html] : This article is written very well. It gives a detailed example of a temperature gauge, complete with source code in Java. I especially like it when the author explains how the components are interconnected.  It really helps in understanding the communication between the model, view and controller, as introduced in many of the MVC concept websites above.&lt;br /&gt;
#[http://www.caucho.com/articles/jsp_templates.xtp http://www.caucho.com/articles/jsp_templates.xtp] : An extremely detailed example of how to build a simple guestbook in JSP using the MVC pattern.&lt;br /&gt;
#[http://www.informit.com/guides/content.aspx?g=java&amp;amp;seqNum=117&amp;amp;rl=1 http://www.informit.com/guides/content.aspx?g=java&amp;amp;seqNum=117&amp;amp;rl=1] : Complete code example using Servlets as the controller, JSP files as the view, and JavaBeans as the model.&lt;br /&gt;
&lt;br /&gt;
== Best Sites for How to Use the Pattern in Ruby and Java ==&lt;br /&gt;
#[http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/app-arch/app-arch5.html http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/app-arch/app-arch5.html] : This is the design document for the pet store sample that comes built-in with Java EE. It goes into a lot of detail about how the MVC was used to design this sample. This page provides an excellent resource to understand the benefits of using patterns while working on a project's architecture. It bridges the gap between the theoretical concepts of the pattern and its practical implementations.&lt;br /&gt;
#[http://cristobal.baray.com/indiana/projects/mvc.html http://cristobal.baray.com/indiana/projects/mvc.html] : A detailed introduction to the use of MVC with a Java view point which spans several pages, complete with source code. Warning: This site throws many pop ups, so keep your pop up blocker handy.&lt;br /&gt;
#[http://www-128.ibm.com/developerworks/linux/library/l-rubyrails/ http://www-128.ibm.com/developerworks/linux/library/l-rubyrails/] : This article gives the details on how to utilize the built-in features of Ruby on Rails to create a web application using MVC.&lt;br /&gt;
#[http://rails.homelinux.org/ http://rails.homelinux.org/] : Four Days on Rails is a 40 page pdf that takes you through learning the basics of rails.  It includes both a description and code example for the model, view, and controller.&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki2/3_rl&amp;diff=7012</id>
		<title>CSC/ECE 517 Fall 2007/wiki2/3 rl</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2007/wiki2/3_rl&amp;diff=7012"/>
		<updated>2007-10-23T22:56:18Z</updated>

		<summary type="html">&lt;p&gt;Ljhaywar: /* Best Sites for Model View Controller Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Model View Controller ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Model-view-controller (MVC) is an architectural pattern used in software engineering. In complex computer applications that present a large amount of data to the user, a developer often wishes to separate data (model) and user interface (view) concerns, so that changes to the user interface will not affect data handling, and that the data can be reorganized without changing the user interface. The model-view-controller solves this problem by decoupling data access and business logic from data presentation and user interaction, by introducing an intermediate component: the controller.&amp;quot;  Taken from [http://en.wikipedia.org/wiki/Model-view-controller Wikipedia]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Best Sites for Learning the Model View Controller Concept ==&lt;br /&gt;
#[http://java.sun.com/blueprints/patterns/MVC-detailed.html http://java.sun.com/blueprints/patterns/MVC-detailed.html] : This is a very brief introduction to the MVC concept, ideal if you are in a hurry :). I really like the illustration they used, it delimits the responsibilities of the components very well.&lt;br /&gt;
#[http://ootips.org/mvc-pattern.html http://ootips.org/mvc-pattern.html] : Nicely written introduction; however, it has ascii-art diagrams.&lt;br /&gt;
#[http://www.oreillynet.com/onjava/blog/2003/07/new_way_to_learn_mvc_view_a_si.html http://www.oreillynet.com/onjava/blog/2003/07/new_way_to_learn_mvc_view_a_si.html] : The most innovative way to learn about MVC, through a song. Yes you heard it right, I would recommend this to everyone just because of the hilarious lyrics. Enjoy!&lt;br /&gt;
#[http://www.adobe.com/devnet/flash/articles/mv_controller.html http://www.adobe.com/devnet/flash/articles/mv_controller.html] : A fantastic article that details the three components of MVC, benefits of the pattern, how the classes of MVC communicate, and class responsibilities.&lt;br /&gt;
#[http://www.perlmonks.org/?node_id=402070 http://www.perlmonks.org/?node_id=402070] : An easy introduction to MVC with a handy sequence diagram example.&lt;br /&gt;
&lt;br /&gt;
== Best Sites for Model View Controller Examples ==&lt;br /&gt;
#[http://www.enode.com/x/markup/tutorial/mvc.html http://www.enode.com/x/markup/tutorial/mvc.html] : This is an awesome introduction to the concept. Short, sweet and to the point explained with the help of a contrived spinner example. This site does not give many details but is really good to get you started.&lt;br /&gt;
#[http://csis.pace.edu/~bergin/mvc/mvcgui.html http://csis.pace.edu/~bergin/mvc/mvcgui.html] : This article is written very well. It gives a detailed example of a temperature gauge, complete with source code in Java. I especially like it when the author explains how the components are interconnected.  It really helps in understanding the communication between the model, view and controller, as introduced in many of the MVC concept websites above.&lt;br /&gt;
#[http://www.caucho.com/articles/jsp_templates.xtp http://www.caucho.com/articles/jsp_templates.xtp] : An extremely detailed example of how to build a simple guestbook in JSP using the MVC pattern.&lt;br /&gt;
#[http://www.informit.com/guides/content.aspx?g=java&amp;amp;seqNum=117&amp;amp;rl=1 http://www.informit.com/guides/content.aspx?g=java&amp;amp;seqNum=117&amp;amp;rl=1] : Complete code example using Servlets as the controller, JSP files as the view, and JavaBeans as the model.&lt;br /&gt;
&lt;br /&gt;
== Best Sites for How to Use the Pattern in Ruby and Java ==&lt;br /&gt;
#[http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/app-arch/app-arch5.html http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/app-arch/app-arch5.html] : This is the design document for the pet store sample that come in built with Java EE. It goes into a lot of detail about how the MVC was used to design this sample. This page provides an excellent resource to understand the benefits of using patterns while working on a projects architecture. It bridges the gap between the theoretical concepts of the pattern and its practical implementations.&lt;br /&gt;
#[http://cristobal.baray.com/indiana/projects/mvc.html http://cristobal.baray.com/indiana/projects/mvc.html] : A detailed introduction to the use of MVC with a Java view point which spans several pages, complete with source code. Warning: This site throws many pop ups, so keep your pop up blocker handy.&lt;br /&gt;
#[http://www-128.ibm.com/developerworks/linux/library/l-rubyrails/ http://www-128.ibm.com/developerworks/linux/library/l-rubyrails/] : This article gives the details on how to utilize the built-in features of Ruby on Rails to create a web application using MVC.&lt;br /&gt;
#[http://rails.homelinux.org/ http://rails.homelinux.org/] : Four Days on Rails is a 40 page pdf that takes you through learning the basics of rails.  It includes both a description and code example for the model, view, and controller.&lt;/div&gt;</summary>
		<author><name>Ljhaywar</name></author>
	</entry>
</feed>