<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://logicwiki.co.uk/index.php?action=history&amp;feed=atom&amp;title=Agile</id>
		<title>Agile - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://logicwiki.co.uk/index.php?action=history&amp;feed=atom&amp;title=Agile"/>
		<link rel="alternate" type="text/html" href="https://logicwiki.co.uk/index.php?title=Agile&amp;action=history"/>
		<updated>2026-05-01T10:48:34Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>https://logicwiki.co.uk/index.php?title=Agile&amp;diff=285&amp;oldid=prev</id>
		<title>Dt1nh6: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://logicwiki.co.uk/index.php?title=Agile&amp;diff=285&amp;oldid=prev"/>
				<updated>2016-05-09T13:27:30Z</updated>
		
		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 13:27, 9 May 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan='2' style='text-align: center;' lang='en'&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Dt1nh6</name></author>	</entry>

	<entry>
		<id>https://logicwiki.co.uk/index.php?title=Agile&amp;diff=284&amp;oldid=prev</id>
		<title>Macrop at 13:10, 17 March 2015</title>
		<link rel="alternate" type="text/html" href="https://logicwiki.co.uk/index.php?title=Agile&amp;diff=284&amp;oldid=prev"/>
				<updated>2015-03-17T13:10:44Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:Agile]]&lt;br /&gt;
[[Category:Project Management]]&lt;br /&gt;
&lt;br /&gt;
== What is Agile ==&lt;br /&gt;
* Software evolves over time&lt;br /&gt;
* Adaptive planning, evolutionary development, early delivery&lt;br /&gt;
* Deliver value to the business sooner&lt;br /&gt;
* Flexible response to change&lt;br /&gt;
[[File:Agile.PNG|thumbnail]]&lt;br /&gt;
&lt;br /&gt;
== Agile Manifesto == &lt;br /&gt;
We are uncovering better ways of developing&lt;br /&gt;
software by doing it and helping others do it.&lt;br /&gt;
Through this work we have come to value:&lt;br /&gt;
&lt;br /&gt;
* Individuals and interactions over processes and tools &lt;br /&gt;
* Working software over comprehensive documentation&lt;br /&gt;
* Customer collaboration over contract negotiation.&lt;br /&gt;
* Responding to change over following a plan.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
That is, while there is value in the items on&lt;br /&gt;
the right, we value the items on the left more.&lt;br /&gt;
&lt;br /&gt;
=== Principles ===&lt;br /&gt;
==== Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. ==== &lt;br /&gt;
In a recent workshop, a software development manager questioned the feature or story approach to&lt;br /&gt;
iterative cycle planning. &amp;quot;But aren't requirements specifications and architecture documents important?&amp;quot; he&lt;br /&gt;
asked. &amp;quot;Yes,&amp;quot; Jim replied, &amp;quot;They are important, but we need to understand that '''customers don't care about&lt;br /&gt;
documents, UML diagrams or legacy integration. Customers care about whether or not you're delivering&lt;br /&gt;
working software''' to them every development cycle—some piece of business functionality that proves to&lt;br /&gt;
them that the evolving software application serves their business needs.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Implementing a &amp;quot;customer value&amp;quot; principle is one of those &amp;quot;easier said than done&amp;quot; activities. Traditional&lt;br /&gt;
project management practices assume that achieving a plan equals project success equals demonstrated&lt;br /&gt;
customer value. The volatility associated with today's projects demands that customer value be reevaluated&lt;br /&gt;
frequently, and meeting original project plans may not have much bearing on a project's ultimate success.&lt;br /&gt;
Welcome changing requirements, even late in development. Agile processes harness change for the&lt;br /&gt;
customer's competitive advantage. The growing unpredictability of the future is one of the most&lt;br /&gt;
challenging aspects of the new economy. Turbulence—in both business and technology—causes change,&lt;br /&gt;
which can be viewed either as a threat to be guarded against or as an opportunity to be embraced.&lt;br /&gt;
Rather than resist change, the agile approach strives to accommodate it as easily and efficiently as possible,&lt;br /&gt;
while maintaining an awareness of its consequences. Although most people agree that feedback is important,&lt;br /&gt;
they often ignore the fact that the result of accepted feedback is change. Agile methodologies harness this&lt;br /&gt;
result, because their proponents understand that facilitating change is more effective than attempting to&lt;br /&gt;
prevent it.&lt;br /&gt;
==== Deliver working software frequently, from a couple of weeks to a couple of months, with a preference for the shorter timescale. ====&lt;br /&gt;
For many years, process gurus have been telling everyone to use an incremental&lt;br /&gt;
or iterative style of software development, with multiple deliveries of ever-growing functionality. While the&lt;br /&gt;
practice has grown in use, it's still not predominant; however, it's essential for agile projects. Furthermore,&lt;br /&gt;
we push hard to reduce delivery cycle time.&lt;br /&gt;
However, remember that deliver is not the same as release. The business people may have valid reasons for&lt;br /&gt;
not putting code into production every couple of weeks. We've seen projects that haven't achieved releasable&lt;br /&gt;
functionality for a year or more. But that doesn't exempt them from the rapid cycle of internal deliveries that&lt;br /&gt;
allows everyone to evaluate and learn from the growing product.&lt;br /&gt;
&lt;br /&gt;
==== Business people and developers work together daily throughout the project. ====&lt;br /&gt;
Many folks want to buy software the way they buy a car. They have a list of features in mind, they negotiate a price, and they pay for&lt;br /&gt;
what they asked for. This simple buying model is appealing, but for most software projects, it doesn't work.&lt;br /&gt;
So agile developers respond with a radical change in our concept of the requirements process.&lt;br /&gt;
For a start, we don't expect a detailed set of requirements to be signed off at the beginning of the project;&lt;br /&gt;
rather, we see a high-level view of requirements that is subject to frequent change. Clearly, this is not enough&lt;br /&gt;
to design and code, so the gap is closed with frequent interaction between the business people and the&lt;br /&gt;
developers. The frequency of this contact often surprises people. We put &amp;quot;daily&amp;quot; in the principle to&lt;br /&gt;
emphasize the software customer's continuing commitment to actively take part in, and indeed take joint&lt;br /&gt;
responsibility for, the software project.&lt;br /&gt;
&lt;br /&gt;
==== Build projects around motivated individuals, give them the environment and support they need and trust them to get the job done. ====&lt;br /&gt;
Deploy all the tools, technologies and processes you like, even our agile&lt;br /&gt;
processes, but in the end, it's people who make the difference between success and failure. We realize that&lt;br /&gt;
however hard we work in coming up with process ideas, the best we can hope for is a second-order effect on&lt;br /&gt;
a project. So it's important to maximize that first-order people factor.&lt;br /&gt;
For many people, trust is the hardest thing to give. Decisions must be made by the people who know the&lt;br /&gt;
most about the situation. This means that managers must trust their staff to make the decisions about the&lt;br /&gt;
things they're paid to know about.&lt;br /&gt;
&lt;br /&gt;
==== The most efficient and effective method of conveying information with and within a development team is face-to-face conversation. ====&lt;br /&gt;
&lt;br /&gt;
Inevitably, when discussing agile methodologies, the topic of documentation&lt;br /&gt;
arises. Our opponents appear apoplectic at times, deriding our &amp;quot;lack&amp;quot; of documentation. It's enough to make&lt;br /&gt;
us scream, &amp;quot;the issue is not documentation—the issue is understanding!&amp;quot; Yes, physical documentation has&lt;br /&gt;
heft and substance, but the real measure of success is abstract: Will the people involved gain the&lt;br /&gt;
understanding they need? Many of us are writers, but despite our awards and book sales, we know that&lt;br /&gt;
writing is a difficult and inefficient communication medium. We use it because we have to, but most project&lt;br /&gt;
teams can and should use more direct communication techniques.&lt;br /&gt;
&amp;quot;Tacit knowledge cannot be transferred by getting it out of people's heads and onto paper,&amp;quot; writes Nancy&lt;br /&gt;
Dixon in Common Knowledge (Harvard Business School Press, 2000). &amp;quot;Tacit knowledge can be transferred&lt;br /&gt;
by moving the people who have the knowledge around. The reason is that tacit knowledge is not only the&lt;br /&gt;
facts but the relationships among the facts—that is, how people might combine certain facts to deal with a&lt;br /&gt;
specific situation.&amp;quot; So the distinction between agile and document-centric methodologies is not one of&lt;br /&gt;
extensive documentation versus no documentation; rather a differing concept of the blend of documentation&lt;br /&gt;
and conversation required to elicit understanding.&lt;br /&gt;
&lt;br /&gt;
==== Working software is the primary measure of progress. ====&lt;br /&gt;
Too often, we've seen project teams who don't realize they're in trouble until a short time before delivery. They did the requirements on time, the design on&lt;br /&gt;
time, maybe even the code on time, but testing and integration took much longer than they thought. We favor&lt;br /&gt;
iterative development primarily because it provides milestones that can't be fudged, which imparts an&lt;br /&gt;
accurate measure of the progress and a deeper understanding of the risks involved in any given project. As&lt;br /&gt;
Chet Hendrickson, coauthor of Extreme Programming Installed (Addison-Wesley, 2000), remarks, &amp;quot;If a&lt;br /&gt;
project is going to fail, I'd rather know that after one month than after 15.&amp;quot;&lt;br /&gt;
&amp;quot;Working software is the measure of progress because there's no other way of capturing the subtleties of the&lt;br /&gt;
requirements: Documents and diagrams are too abstract to let the user 'kick the tires,'&amp;quot; says Dave Thomas,&lt;br /&gt;
coauthor of The Pragmatic Programmer (Addison-Wesley, 1999).&lt;br /&gt;
&lt;br /&gt;
==== Agile processes promote sustainable development. ====&lt;br /&gt;
The sponsors, developers and users should be able&lt;br /&gt;
to maintain a constant pace indefinitely. Our industry is characterized by long nights and weekends,&lt;br /&gt;
during which people try to undo the errors of unresponsive planning. Ironically, these long hours don't&lt;br /&gt;
actually lead to greater productivity. Martin and Kent Beck have often recalled working at companies where&lt;br /&gt;
they spent all day removing errors made late the previous night.&lt;br /&gt;
Agility relies upon people who are alert and creative, and can maintain that alertness and creativity for the&lt;br /&gt;
full length of a software development project. Sustainable development means finding a working pace (40 or&lt;br /&gt;
so hours a week) that the team can sustain over time and remain healthy.&lt;br /&gt;
&lt;br /&gt;
==== Continuous attention to technical excellence and good design enhances agility. ====&lt;br /&gt;
 When many people look at agile development, they see reminders of the &amp;quot;quick and dirty&amp;quot; RAD (Rapid Application Development)&lt;br /&gt;
efforts of the last decade. But, while agile development is similar to RAD in terms of speed and flexibility,&lt;br /&gt;
there's a big difference when it comes to technical cleanliness. Agile approaches emphasize quality of design,&lt;br /&gt;
because design quality is essential to maintaining agility.&lt;br /&gt;
One of the tricky aspects, however, is the fact that agile processes assume and encourage the alteration of&lt;br /&gt;
requirements while the code is being written. As such, design cannot be a purely up-front activity to be&lt;br /&gt;
completed before construction. Instead, design is a continuous activity that's performed throughout the&lt;br /&gt;
project. Each and every iteration will have design work.&lt;br /&gt;
The different agile processes emphasize different design styles. FDD has an explicit step at the beginning of&lt;br /&gt;
each iteration in which design is executed, usually graphically with the UML. XP places great emphasis on&lt;br /&gt;
refactoring to allow the design to evolve as development proceeds. But all of these processes borrow from&lt;br /&gt;
each other: FDD uses refactoring as developers revisit earlier design decisions, and XP encourages short&lt;br /&gt;
design sessions before coding tasks. In all cases, the project's design is enhanced continually throughout the&lt;br /&gt;
project.&lt;br /&gt;
&lt;br /&gt;
==== Simplicity—the art of maximizing the amount of work not done—is essential. ====&lt;br /&gt;
Any software development task can be approached with a host of methods. In an agile project, it's particularly important to&lt;br /&gt;
use simple approaches, because they're easier to change. It's easier to add something to a process that's too&lt;br /&gt;
simple than it is to take something away from a process that's too complicated. Hence, there's a strong taste&lt;br /&gt;
of minimalism in all the agile methods. Include only what everybody needs rather than what anybody needs,&lt;br /&gt;
to make it easier for teams to add something that addresses their own particular needs.&lt;br /&gt;
&amp;quot;Simple, clear purpose and principles give rise to complex, intelligent behavior,&amp;quot; says Dee Hock, former&lt;br /&gt;
CEO of Visa International. &amp;quot;Complex rules and regulations give rise to simple, stupid behavior.&amp;quot; No&lt;br /&gt;
methodology can ever address all the complexity of a modern software project. Giving people a simple set of&lt;br /&gt;
rules and encouraging their creativity will produce far better outcomes than imposing complex, rigid&lt;br /&gt;
regulations.&lt;br /&gt;
&lt;br /&gt;
==== The best architectures, requirements and designs emerge from self-organizing teams. ====&lt;br /&gt;
Contrary to what you've heard, form doesn't follow function: Form follows failure. &amp;quot;The form of made things is always subject&lt;br /&gt;
to change in response to their real or perceived shortcomings, their failures to function properly,&amp;quot; writes&lt;br /&gt;
Henry Petroski, civil engineering professor and author of The Evolution of Useful Things (Vintage Books,&lt;br /&gt;
1994). Stuart Brand writes that the &amp;quot;form follows function&amp;quot; idea has misled architects into believing that they&lt;br /&gt;
could predict how buildings would actually be used.&lt;br /&gt;
Petroski's views are similar to one of the two key points of this principle—that the best designs&lt;br /&gt;
(architectures, requirements) emerge from iterative development and use rather than from early plans. The&lt;br /&gt;
second point of the principle is that emergent properties (emergence, a key property of complex systems,&lt;br /&gt;
roughly translates to innovation and creativity in human organizations) are best generated from selforganizing&lt;br /&gt;
teams in which the interactions are high and the process rules are few.&lt;br /&gt;
&lt;br /&gt;
==== At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. ====&lt;br /&gt;
Agile methods are not something you pick and follow slavishly. You may start with&lt;br /&gt;
one of these processes, but we all recognize that we can't come up with the right process for every situation.&lt;br /&gt;
So any agile team must refine and reflect as it goes along, constantly improving its practices in its local&lt;br /&gt;
circumstances.&lt;br /&gt;
Jim has been working with a consulting company to develop an Adaptive Software Development–Extreme&lt;br /&gt;
Programming combination methodology. The first team to use it modified it immediately. Martin has worked&lt;br /&gt;
with a number of teams at ThoughtWorks to tailor Extreme Programming practices to various project&lt;br /&gt;
situations. Trust in people, believing that individual capability and group interaction are key to success&lt;br /&gt;
extends to trusting teams to monitor and improve their own development processes.&lt;br /&gt;
&lt;br /&gt;
=== Toward an Agile Future ===&lt;br /&gt;
Early response to the Agile Manifesto has been gratifying. Several e-mails expressed sentiments such as,&lt;br /&gt;
&amp;quot;My product manager has already posted the Manifesto on her wall.&amp;quot; Many of Martin's colleagues at&lt;br /&gt;
ThoughtWorks have popped in to say how much they shared the values.&lt;br /&gt;
One question that arose immediately was whether or not the Alliance was a precursor to what one conference&lt;br /&gt;
attendee tagged a Unified Lightweight Methodology. Absolutely not! While the group believes that a set of&lt;br /&gt;
common purposes and principles will benefit the users of agile methodologies, we are equally adamant that&lt;br /&gt;
variety and diversity of practices are necessary. When it comes to methodologies, each project is different&lt;br /&gt;
and each project team is different—there's no one-size-fits-all solution.&lt;br /&gt;
What of the future? We can confidently say that we don't know. Agility is all about trusting in one's ability to&lt;br /&gt;
respond to unpredictable events more than trusting in one's ability to plan ahead for them. We also know that&lt;br /&gt;
the personal relationships formed by our collaboration matter far more than the document that we've&lt;br /&gt;
produced. One thing is clear: we've only just started.&lt;/div&gt;</summary>
		<author><name>Macrop</name></author>	</entry>

	</feed>