<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.thinkulum.net/w/index.php?action=history&amp;feed=atom&amp;title=Software_Development%2FSoftware_Development_Methodology</id>
	<title>Software Development/Software Development Methodology - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.thinkulum.net/w/index.php?action=history&amp;feed=atom&amp;title=Software_Development%2FSoftware_Development_Methodology"/>
	<link rel="alternate" type="text/html" href="https://www.thinkulum.net/w/index.php?title=Software_Development/Software_Development_Methodology&amp;action=history"/>
	<updated>2026-04-09T14:12:59Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://www.thinkulum.net/w/index.php?title=Software_Development/Software_Development_Methodology&amp;diff=373&amp;oldid=prev</id>
		<title>Andy Culbertson: Added the article.</title>
		<link rel="alternate" type="text/html" href="https://www.thinkulum.net/w/index.php?title=Software_Development/Software_Development_Methodology&amp;diff=373&amp;oldid=prev"/>
		<updated>2019-02-22T04:56:55Z</updated>

		<summary type="html">&lt;p&gt;Added the article.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;I'll start with some general principles that direct my thinking about software development in general. These are the ideas behind agile development practices. [https://www.agilealliance.org/agile101/ Agile software development] is a paradigm that was created to answer waterfall development, the approach of planning all the features of a piece of software in advance, an effort that often ends up wasted because the customer's needs change in the middle of the project, so the software has to be redesigned.&lt;br /&gt;
&lt;br /&gt;
So agile development was intended to prevent overplanning. But using any development methodology will help prevent the opposite problem, which is a complete ''lack'' of structure and discipline. This results in a code organization scheme called a [http://www.laputan.org/mud/ big ball of mud]. I don't think my programs were complete mud, but the fact that I was the only one seeing or using my code let me get by with a lot of slacking. Slacking does keep you from working too hard, but it fails to prevent other kinds of problems. Agile software development seems like a good middle ground.&lt;br /&gt;
&lt;br /&gt;
Agile development encompasses a lot of principles and practices, and it has a lot of varieties, but for me at this point, its most important practices are incremental development, test-driven development, and refactoring.&lt;br /&gt;
&lt;br /&gt;
* [[../Iterative and Incremental Development/]]&lt;br /&gt;
* [[../Test-First Programming/]]&lt;br /&gt;
* [[../Refactoring/]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming]]&lt;br /&gt;
[[Category:Essays]]&lt;br /&gt;
[[Category:Developing]]&lt;/div&gt;</summary>
		<author><name>Andy Culbertson</name></author>
	</entry>
</feed>