<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>software development &#8211; stoimen&#039;s web log</title>
	<atom:link href="/tag/software-development/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description>on web development</description>
	<lastBuildDate>Tue, 13 Feb 2018 08:18:15 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.0.3</generator>
	<item>
		<title>Computer Algorithms: Brute Force String Matching</title>
		<link>/2012/03/27/computer-algorithms-brute-force-string-matching/</link>
		<comments>/2012/03/27/computer-algorithms-brute-force-string-matching/#comments</comments>
		<pubDate>Tue, 27 Mar 2012 07:21:41 +0000</pubDate>
		<dc:creator><![CDATA[Stoimen]]></dc:creator>
				<category><![CDATA[algorithms]]></category>
		<category><![CDATA[Algorithm]]></category>
		<category><![CDATA[Bitap algorithm]]></category>
		<category><![CDATA[Boyer–Moore string search algorithm]]></category>
		<category><![CDATA[brute force algorithms]]></category>
		<category><![CDATA[Computer science]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Mathematics]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[pre-processing]]></category>
		<category><![CDATA[search algorithms]]></category>
		<category><![CDATA[sequential search]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[String]]></category>
		<category><![CDATA[String algorithms]]></category>
		<category><![CDATA[string matching algorithm]]></category>
		<category><![CDATA[String searching algorithm]]></category>
		<category><![CDATA[Technology/Internet]]></category>
		<category><![CDATA[text processing software]]></category>

		<guid isPermaLink="false">/?p=2966</guid>
		<description><![CDATA[Introduction String matching is something crucial for database development and text processing software. Fortunately every modern programming language and library is full of functions for string processing that help us in our everyday work. However is great to understand their principles. String algorithms can be mainly divided into several categories. One of these categories is &#8230; <a href="/2012/03/27/computer-algorithms-brute-force-string-matching/" class="more-link">Continue reading <span class="screen-reader-text">Computer Algorithms: Brute Force String Matching</span> <span class="meta-nav">&#8594;</span></a><div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href="/2012/04/02/computer-algorithms-rabin-karp-string-searching/" rel="bookmark" title="Computer Algorithms: Rabin-Karp String Searching">Computer Algorithms: Rabin-Karp String Searching </a></li>
<li><a href="/2012/04/09/computer-algorithms-morris-pratt-string-searching/" rel="bookmark" title="Computer Algorithms: Morris-Pratt String Searching">Computer Algorithms: Morris-Pratt String Searching </a></li>
<li><a href="/2012/04/17/computer-algorithms-boyer-moore-string-search-and-matching/" rel="bookmark" title="Computer Algorithms: Boyer-Moore String Searching">Computer Algorithms: Boyer-Moore String Searching </a></li>
<li><a href="/2011/08/18/powerful-php-less-known-string-manipulation/" rel="bookmark" title="Powerful PHP: Less Known String Manipulation">Powerful PHP: Less Known String Manipulation </a></li>
</ol>
</div>
]]></description>
				<content:encoded><![CDATA[<h2>Introduction</h2>
<p>String matching is something crucial for database development and text processing software. Fortunately every modern programming language and library is full of functions for string processing that help us in our everyday work. However is great to understand their principles.</p>
<p>String algorithms can be mainly divided into several categories. One of these categories is string matching.</p>
<p>When we come to string matching the most basic approach is what is known as brute force, which means just to check every single character from the text to match against the pattern. In general we have a text and a pattern (most commonly shorter than the text). What we need to do is to answer the question whether this pattern appears into the text.</p>
<h2>Overview</h2>
<p>The principles of brute force string matching are quite simple. We must check for a match between the first characters of the pattern with the first character of the text as on the picture bellow.</p>
<p><figure id="attachment_2977" style="width: 618px" class="wp-caption alignnone"><a href="/wp-content/uploads/2012/03/FirstStepBruteforcestringmatching.png"><img src="/wp-content/uploads/2012/03/FirstStepBruteforcestringmatching.png" alt="First step of brute force string matching" title="First step of brute force string matching" width="618" height="236" class="size-full wp-image-2977" srcset="/wp-content/uploads/2012/03/FirstStepBruteforcestringmatching.png 618w, /wp-content/uploads/2012/03/FirstStepBruteforcestringmatching-300x114.png 300w" sizes="(max-width: 618px) 100vw, 618px" /></a><figcaption class="wp-caption-text">We start by comparing the first characters of the text and the pattern!</figcaption></figure> <span id="more-2966"></span><br />
If they don’t match we move forward the second character of the text. Now we compare the first character of the pattern with the second character of the text. If they don’t match again we move forward until we get a match or until we reach the end of the text. </p>
<figure id="attachment_2982" style="width: 612px" class="wp-caption alignnone"><a href="/wp-content/uploads/2012/03/SecondStepBruteforcestringmatching.png"><img src="/wp-content/uploads/2012/03/SecondStepBruteforcestringmatching.png" alt="Second step of brute force string matching" title="Second step of brute force string matching" width="612" height="241" class="size-full wp-image-2982" srcset="/wp-content/uploads/2012/03/SecondStepBruteforcestringmatching.png 612w, /wp-content/uploads/2012/03/SecondStepBruteforcestringmatching-300x118.png 300w" sizes="(max-width: 612px) 100vw, 612px" /></a><figcaption class="wp-caption-text">Because the first character of the text and the pattern don&#039;t match, we move forward the second character of the text. Now we compare the second character of the text with the first character of the pattern!</figcaption></figure>
<p>In case they match we move forward the second character of the pattern comparing it with the “next” character of the text, as on the picture bellow.</p>
<figure id="attachment_2981" style="width: 617px" class="wp-caption alignnone"><a href="/wp-content/uploads/2012/03/ThirdStepBruteforcestringmatching.png"><img src="/wp-content/uploads/2012/03/ThirdStepBruteforcestringmatching.png" alt="Third step of  brute force string matching" title="Third step of  brute force string matching" width="617" height="235" class="size-full wp-image-2981" srcset="/wp-content/uploads/2012/03/ThirdStepBruteforcestringmatching.png 617w, /wp-content/uploads/2012/03/ThirdStepBruteforcestringmatching-300x114.png 300w" sizes="(max-width: 617px) 100vw, 617px" /></a><figcaption class="wp-caption-text">If case a character from the text match against the first character of the pattern we move forward to the second character of the pattern and the next character of the text!</figcaption></figure>
<p>Just because we have found a match between the first character from the pattern with some character of the text, doesn’t mean that the pattern appears in the text. We must move forward to see whether the full pattern is contained into the text. </p>
<figure id="attachment_2980" style="width: 619px" class="wp-caption alignnone"><a href="/wp-content/uploads/2012/03/MatchBruteforcestringmatching.png"><img src="/wp-content/uploads/2012/03/MatchBruteforcestringmatching.png" alt="Match in brute force string matching" title="Match in brute force string matching" width="619" height="229" class="size-full wp-image-2980" srcset="/wp-content/uploads/2012/03/MatchBruteforcestringmatching.png 619w, /wp-content/uploads/2012/03/MatchBruteforcestringmatching-300x110.png 300w" sizes="(max-width: 619px) 100vw, 619px" /></a><figcaption class="wp-caption-text">The pattern is matched!</figcaption></figure>
<h2>Implementation</h2>
<p>Implementation of brute force string matching is easy and here we can see a short PHP example. The bad news is that naturally this algorithm is quite slow.</p>
<pre lang="PHP">
function sub_string($pattern, $subject) 
{
	$n = strlen($subject);
	$m = strlen($pattern);
	
	for ($i = 0; i < $n-$m; $i++) {
		$j = 0;
		while ($j < $m &#038;&#038; $subject[$i+$j] == $pattern[$j]) {
			$j++;
		}
		if ($j == $m) return $i;
	}
	return -1;
}

echo sub_string('o wo', 'hello world!');

</pre>
<h2>Complexity</h2>
<p>As I said this algorithm is slow. Actually every algorithm that contains “brute force” in its name is slow, but to show how slow is string matching I can say that its complexity is O(n.m). Here <strong>n</strong> is the length of the text, while <strong>m</strong> is the length of the pattern.</p>
<figure id="attachment_2978" style="width: 600px" class="wp-caption alignnone"><a href="/wp-content/uploads/2012/03/BruteForceStringMatchingComplexityChart1.png"><img src="/wp-content/uploads/2012/03/BruteForceStringMatchingComplexityChart1.png" alt="Brute force string matching complexity chart 1" title="Brute force string matching complexity chart 1" width="600" height="371" class="size-full wp-image-2978" srcset="/wp-content/uploads/2012/03/BruteForceStringMatchingComplexityChart1.png 600w, /wp-content/uploads/2012/03/BruteForceStringMatchingComplexityChart1-300x185.png 300w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption class="wp-caption-text">For fixed pattern length of m = 5, we can see that even for relatively short text the time grows quickly!</figcaption></figure>
<p>In case we fix the length of the text and test against variable length of the pattern, again we get rapidly growing function.</p>
<figure id="attachment_2979" style="width: 600px" class="wp-caption alignnone"><a href="/wp-content/uploads/2012/03/BruteForceStringMatchingComplexityChart2.png"><img src="/wp-content/uploads/2012/03/BruteForceStringMatchingComplexityChart2.png" alt="Brute force string matching complexity chart 2" title="Brute force string matching complexity chart 2" width="600" height="371" class="size-full wp-image-2979" srcset="/wp-content/uploads/2012/03/BruteForceStringMatchingComplexityChart2.png 600w, /wp-content/uploads/2012/03/BruteForceStringMatchingComplexityChart2-300x185.png 300w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption class="wp-caption-text"> </figcaption></figure>
<h2>Application</h2>
<p>Brute force string matching can be very ineffective, but it can also be very handy in some cases. Just like the <a href="/2011/11/24/computer-algorithms-sequential-search/" title="Computer Algorithms: Sequential Search">sequential search</a>.</p>
<h3>It can be very useful ...</h3>
<ol>
<li>Doesn't require pre-processing of the text - Indeed if we search the text only once we don't need to pre-process it. Most of the algorithms for string matching need to build an index of the text in order to search quickly. This is great when you've to search more than once into a text, but if you do only once, perhaps (for short texts) brute force matching is great!</li>
<li>Doesn't require additional space - Because brute force matching doesn't need pre-processing it also doesn't require more space, which is one cool feature of this algorithm</li>
<li>Can be quite effective for short texts and patterns</li>
</ol>
<h3>It can be ineffective ...</h3>
<ol>
<li>If we search more than once the text - As I said in the previous section if you perform the search more than once it's perhaps better to use another string matching algorithm that builds an index and it's faster.</li>
<li>It's slow - In general brute force algorithms are slow and brute force matching isn't an exception.</li>
</ol>
<h2>Final Words</h2>
<p>String matching is something very special in software development and it is used in various cases, so every developer must be familiar with this topic.</p>
<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href="/2012/04/02/computer-algorithms-rabin-karp-string-searching/" rel="bookmark" title="Computer Algorithms: Rabin-Karp String Searching">Computer Algorithms: Rabin-Karp String Searching </a></li>
<li><a href="/2012/04/09/computer-algorithms-morris-pratt-string-searching/" rel="bookmark" title="Computer Algorithms: Morris-Pratt String Searching">Computer Algorithms: Morris-Pratt String Searching </a></li>
<li><a href="/2012/04/17/computer-algorithms-boyer-moore-string-search-and-matching/" rel="bookmark" title="Computer Algorithms: Boyer-Moore String Searching">Computer Algorithms: Boyer-Moore String Searching </a></li>
<li><a href="/2011/08/18/powerful-php-less-known-string-manipulation/" rel="bookmark" title="Powerful PHP: Less Known String Manipulation">Powerful PHP: Less Known String Manipulation </a></li>
</ol></p>
</div>
]]></content:encoded>
			<wfw:commentRss>/2012/03/27/computer-algorithms-brute-force-string-matching/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Main Features of the Traditional Software Development Methodologies</title>
		<link>/2011/04/19/main-features-of-the-traditional-software-development-methodologies/</link>
		<comments>/2011/04/19/main-features-of-the-traditional-software-development-methodologies/#comments</comments>
		<pubDate>Tue, 19 Apr 2011 07:39:26 +0000</pubDate>
		<dc:creator><![CDATA[Stoimen]]></dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[John Wiley & Sons Inc]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[methodology]]></category>
		<category><![CDATA[Project management]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[Software development methodology]]></category>
		<category><![CDATA[Software development process]]></category>
		<category><![CDATA[Software engineering]]></category>
		<category><![CDATA[Software prototyping]]></category>
		<category><![CDATA[Systems Development Life Cycle]]></category>
		<category><![CDATA[Technology/Internet]]></category>

		<guid isPermaLink="false">/?p=2307</guid>
		<description><![CDATA[This article is a continuation of my previous post! The stages of analysis and design are the main stages in the traditional approaches. Of course the focus of the whole project is there and therefore the effort at these stages is very important. They are methodology-centric &#8211; this means that the methodology is very extensive &#8230; <a href="/2011/04/19/main-features-of-the-traditional-software-development-methodologies/" class="more-link">Continue reading <span class="screen-reader-text">Main Features of the Traditional Software Development Methodologies</span> <span class="meta-nav">&#8594;</span></a><div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href="/2011/04/15/traditional-software-development-methodologies/" rel="bookmark" title="Traditional Software Development Methodologies">Traditional Software Development Methodologies </a></li>
<li><a href="/2011/04/06/an-introduction-to-the-agile/" rel="bookmark" title="An Introduction to the Agile">An Introduction to the Agile </a></li>
<li><a href="/2010/07/27/are-you-agile/" rel="bookmark" title="Are You Agile?">Are You Agile? </a></li>
<li><a href="/2010/01/08/jquery-vs-pure-javascript/" rel="bookmark" title="jQuery vs. pure JavaScript">jQuery vs. pure JavaScript </a></li>
</ol>
</div>
]]></description>
				<content:encoded><![CDATA[<p><em>This article is a continuation of my previous <a title="Traditional Software Development Methodologies" href="/2011/04/15/traditional-software-development-methodologies/">post</a>!</em></p>
<p>The stages of analysis and design are the main stages in the traditional approaches. Of course the focus of the whole project is there and therefore the effort at these stages is very important. They are methodology-centric &#8211; this means that the methodology is very extensive and the right application of the method is a warranty for a successful project.</p>
<figure id="attachment_2316" style="width: 500px" class="wp-caption aligncenter"><a href="/wp-content/uploads/2011/04/plan.jpg"><img class="size-full wp-image-2316" title="Traditional Software Development Methodologies" src="/wp-content/uploads/2011/04/plan.jpg" alt="Traditional Software Development Methodologies" width="500" height="375" srcset="/wp-content/uploads/2011/04/plan.jpg 500w, /wp-content/uploads/2011/04/plan-300x225.jpg 300w" sizes="(max-width: 500px) 100vw, 500px" /></a><figcaption class="wp-caption-text">The stages of plan and design are the most imporant for the traditional methodologies</figcaption></figure>
<p>It&#8217;s not far from the truth that the methodology is more important factor than the human factor.<span id="more-2307"></span></p>
<p>All these traditional approaches are systematic methods of software development where the building phase always follows the stage of design. Most of the important decisions are made during the stage of design and once the product is well designed the project can be continued with the phase of building &#8211; which is supposed to be very predictable. Thus the stage of building the product only follows the &#8220;perfect&#8221; design of the system.</p>
<figure id="attachment_2317" style="width: 500px" class="wp-caption aligncenter"><a href="/wp-content/uploads/2011/04/brainstorm.jpg"><img class="size-full wp-image-2317" title="Traditional Software Development Methodologies" src="/wp-content/uploads/2011/04/brainstorm.jpg" alt="Traditional Software Development Methodologies" width="500" height="334" srcset="/wp-content/uploads/2011/04/brainstorm.jpg 500w, /wp-content/uploads/2011/04/brainstorm-300x200.jpg 300w" sizes="(max-width: 500px) 100vw, 500px" /></a><figcaption class="wp-caption-text">Most of the important decisions are made during the stage of design and once the product is well designed the project can be continued with the phase of building.</figcaption></figure>
<p>In that scenario we can see two main activities: <strong>design</strong>, which is highly creative activity, it is difficult to predict and needs high qualification, and <strong>build</strong> in other hand, which is simple to predict and doesn&#8217;t need high qualification [1].</p>
<p>All these facts can be summarized into the following conclusions:</p>
<ul>
<li>When building a software product &#8211; the stage of building is a small piece of the whole process.</li>
<li>The stage of &#8220;design&#8221; remains the main part of the software construction process.</li>
<li>It is very difficult to plan and predict processes with high level of creativity.</li>
</ul>
<p>This is why the traditional methodologies of software development are very useful in some and unsuccessful in other types of projects. Because their main feature is the detailed planning and designing phase they are useful when the project is said to be very large and the level of risk is high. Some project that are estimated to last very long is often developed with some traditional methodology [2].</p>
<figure id="attachment_2318" style="width: 339px" class="wp-caption aligncenter"><a href="/wp-content/uploads/2011/04/risk.jpg"><img class="size-full wp-image-2318" title="Traditional Software Development Methodologies" src="/wp-content/uploads/2011/04/risk.jpg" alt="Traditional Software Development Methodologies" width="339" height="450" srcset="/wp-content/uploads/2011/04/risk.jpg 339w, /wp-content/uploads/2011/04/risk-226x300.jpg 226w" sizes="(max-width: 339px) 100vw, 339px" /></a><figcaption class="wp-caption-text">The traditional approaches are useful when the project is said to be very large and the level of risk is high.</figcaption></figure>
<p>The traditional approaches, in general, can be described by their main features as follows:</p>
<ol>
<li>They are relevant when the project is very large and the building team is also very large and not always geographically collocated;</li>
<li>The stage of planning is very detailed;</li>
<li>The documentation is very large and describes all the features of the system;</li>
<li>They are used for projects where the main requirements are defined early and doesn&#8217;t change often;</li>
<li>The phases of analysis, planning, design, build and deploy are consecutive;</li>
</ol>
<p>[1] Fowler M. <a title="Martin Fowler - The New Methodology" href="http://www.martinfowler.com/articles/newMethodology.html" target="_blank">The New Methodology</a>, 2005<br />
[2] Wysocki R. K., McGary R., Effective Project Management, Third Edition, John Wiley &amp; Sons © 2003</p>
<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href="/2011/04/15/traditional-software-development-methodologies/" rel="bookmark" title="Traditional Software Development Methodologies">Traditional Software Development Methodologies </a></li>
<li><a href="/2011/04/06/an-introduction-to-the-agile/" rel="bookmark" title="An Introduction to the Agile">An Introduction to the Agile </a></li>
<li><a href="/2010/07/27/are-you-agile/" rel="bookmark" title="Are You Agile?">Are You Agile? </a></li>
<li><a href="/2010/01/08/jquery-vs-pure-javascript/" rel="bookmark" title="jQuery vs. pure JavaScript">jQuery vs. pure JavaScript </a></li>
</ol></p>
</div>
]]></content:encoded>
			<wfw:commentRss>/2011/04/19/main-features-of-the-traditional-software-development-methodologies/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Traditional Software Development Methodologies</title>
		<link>/2011/04/15/traditional-software-development-methodologies/</link>
		<comments>/2011/04/15/traditional-software-development-methodologies/#comments</comments>
		<pubDate>Fri, 15 Apr 2011 06:54:05 +0000</pubDate>
		<dc:creator><![CDATA[Stoimen]]></dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[Agile software development]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Outside-in software development]]></category>
		<category><![CDATA[Project management]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[Software development methodology]]></category>
		<category><![CDATA[Software development process]]></category>
		<category><![CDATA[Software engineering]]></category>
		<category><![CDATA[software engineers]]></category>
		<category><![CDATA[software industry]]></category>
		<category><![CDATA[software product]]></category>
		<category><![CDATA[Software project management]]></category>
		<category><![CDATA[software sciences]]></category>
		<category><![CDATA[Systems Development Life Cycle]]></category>
		<category><![CDATA[Technology/Internet]]></category>

		<guid isPermaLink="false">/?p=2286</guid>
		<description><![CDATA[One of the main events in the software industry at the beginning of the new century is the appearance of the agile methodologies for software development. Most of the companies today are using these methodologies to manage their projects. They radically changed the landscape of the development methods. The agile methods are based on a &#8230; <a href="/2011/04/15/traditional-software-development-methodologies/" class="more-link">Continue reading <span class="screen-reader-text">Traditional Software Development Methodologies</span> <span class="meta-nav">&#8594;</span></a><div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href="/2011/04/19/main-features-of-the-traditional-software-development-methodologies/" rel="bookmark" title="Main Features of the Traditional Software Development Methodologies">Main Features of the Traditional Software Development Methodologies </a></li>
<li><a href="/2011/04/06/an-introduction-to-the-agile/" rel="bookmark" title="An Introduction to the Agile">An Introduction to the Agile </a></li>
<li><a href="/2010/07/27/are-you-agile/" rel="bookmark" title="Are You Agile?">Are You Agile? </a></li>
<li><a href="/2010/02/12/css-border-radius-vs-images/" rel="bookmark" title="CSS border-radius vs. images!">CSS border-radius vs. images! </a></li>
</ol>
</div>
]]></description>
				<content:encoded><![CDATA[<p>One of the main events in the software industry at the beginning of the new century is the appearance of the agile methodologies for software development. Most of the companies today are using these methodologies to manage their projects. They radically changed the landscape of the development methods.</p>
<figure id="attachment_2294" style="width: 500px" class="wp-caption aligncenter"><a href="/wp-content/uploads/2011/04/team_meeting.jpg"><img class="size-full wp-image-2294 " title="Many companies today are using agile methodologies for software development" src="/wp-content/uploads/2011/04/team_meeting.jpg" alt="Many companies today are using agile methodologies for software development" width="500" height="250" srcset="/wp-content/uploads/2011/04/team_meeting.jpg 500w, /wp-content/uploads/2011/04/team_meeting-300x150.jpg 300w" sizes="(max-width: 500px) 100vw, 500px" /></a><figcaption class="wp-caption-text">Many companies today are using agile methodologies for software development</figcaption></figure>
<p>The agile methods are based on a set of new principals of design and build &#8211; different from the principals used before. However to understand the agile methodologies first of all we need to understand the reason of their appearance. Thus we&#8217;ve to first understand the traditional methods of software development &#8211; their features, their pros and cons, and nevertheless we&#8217;ve to understand their relevance.<span id="more-2286"></span></p>
<h2>Features of the Traditional Methods</h2>
<p>The so called traditional approaches, also known as &#8220;engineering&#8221; approaches, are defined at the very beginning of the software sciences. Of course the software development process need to be controlled somehow. To do so the software engineers came along with the well known engineering methods of controlling the processes. These methods are applying a disciplined approach where the stages of design and build are well predictable. Detailed stages of analysis and design precede the stage of building the software.</p>
<p>These methodologies are well documented and thus are quite complex to apply. Of course this is the main reason when we talk about their disadvantages. One of the main disadvantages is that these traditional methodologies are very bureaucratic. In practice the high level of detail in a methodology leads to a high level of complexity. Actually the work of managing the methodology itself is more than the work on the software product.</p>
<p>to be continued &#8230;</p>
<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href="/2011/04/19/main-features-of-the-traditional-software-development-methodologies/" rel="bookmark" title="Main Features of the Traditional Software Development Methodologies">Main Features of the Traditional Software Development Methodologies </a></li>
<li><a href="/2011/04/06/an-introduction-to-the-agile/" rel="bookmark" title="An Introduction to the Agile">An Introduction to the Agile </a></li>
<li><a href="/2010/07/27/are-you-agile/" rel="bookmark" title="Are You Agile?">Are You Agile? </a></li>
<li><a href="/2010/02/12/css-border-radius-vs-images/" rel="bookmark" title="CSS border-radius vs. images!">CSS border-radius vs. images! </a></li>
</ol></p>
</div>
]]></content:encoded>
			<wfw:commentRss>/2011/04/15/traditional-software-development-methodologies/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>An Introduction to the Agile</title>
		<link>/2011/04/06/an-introduction-to-the-agile/</link>
		<comments>/2011/04/06/an-introduction-to-the-agile/#respond</comments>
		<pubDate>Wed, 06 Apr 2011 08:18:48 +0000</pubDate>
		<dc:creator><![CDATA[Stoimen]]></dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[Agile Modeling]]></category>
		<category><![CDATA[Agile software development]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Project management]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[Software development process]]></category>
		<category><![CDATA[Software engineering]]></category>
		<category><![CDATA[software industry]]></category>
		<category><![CDATA[Software project management]]></category>
		<category><![CDATA[software projects]]></category>
		<category><![CDATA[software sciences]]></category>
		<category><![CDATA[Systems Development Life Cycle]]></category>
		<category><![CDATA[Technology/Internet]]></category>

		<guid isPermaLink="false">/?p=2251</guid>
		<description><![CDATA[Today the number of software projects has grown to an incredible extent. Software products are used practically everywhere and as it seems with the Internet in one hand and the mobile apps markets in other this trend is even more consolidated. &#160; &#160; Typically the software build processes are followed by the processes of controlling &#8230; <a href="/2011/04/06/an-introduction-to-the-agile/" class="more-link">Continue reading <span class="screen-reader-text">An Introduction to the Agile</span> <span class="meta-nav">&#8594;</span></a><div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href="/2011/04/15/traditional-software-development-methodologies/" rel="bookmark" title="Traditional Software Development Methodologies">Traditional Software Development Methodologies </a></li>
<li><a href="/2011/04/19/main-features-of-the-traditional-software-development-methodologies/" rel="bookmark" title="Main Features of the Traditional Software Development Methodologies">Main Features of the Traditional Software Development Methodologies </a></li>
<li><a href="/2010/07/27/are-you-agile/" rel="bookmark" title="Are You Agile?">Are You Agile? </a></li>
<li><a href="/2010/11/16/diving-into-node-js-introduction-and-installation/" rel="bookmark" title="Diving into Node.js &#8211; Introduction &#038; Installation">Diving into Node.js &#8211; Introduction &#038; Installation </a></li>
</ol>
</div>
]]></description>
				<content:encoded><![CDATA[<p>Today the number of software projects has grown to an incredible extent. Software products are used practically everywhere and as it seems with the Internet in one hand and the mobile apps markets in other this trend is even more consolidated.</p>
<p style="text-align: center;">&nbsp;</p>
<figure id="attachment_2269" style="width: 300px" class="wp-caption aligncenter"><a href="/wp-content/uploads/2011/04/agile_ballet_dancer.jpg"><img class="size-full wp-image-2269 " title="Agile Software Development" src="/wp-content/uploads/2011/04/agile_ballet_dancer.jpg" alt="Agility in Software Development" width="300" height="449" srcset="/wp-content/uploads/2011/04/agile_ballet_dancer.jpg 300w, /wp-content/uploads/2011/04/agile_ballet_dancer-200x300.jpg 200w" sizes="(max-width: 300px) 100vw, 300px" /></a><figcaption class="wp-caption-text">The agile methods tend to be more responsive to a highly dynamic software projects. </figcaption></figure>
<p>&nbsp;</p>
<p>Typically the software build processes are followed by the processes of controlling and managing software projects. In the very beginning of the software sciences these were methodologies that relied mainly on a detailed documentation, precise planning and higher degree of control. As it appears in many kind of projects this approach is simply ineffective. Most of those kind of projects are characterized as very dynamic, with many requirement changes that makes them difficult to predict and control with the traditional methods of software development.<span id="more-2251"></span></p>
<p>To answer the necessity of managing such kind of project the software industry came up with some new and radical approaches of managing software projects. Thus in the mid 90&#8217;s appear some of nowadays well known agile methodologies. Developed during the years, many times corrected from their disadvantages and finally defined theoretically in the beginning of the new century now these methodologies are used in a vast majority of the software projects.</p>
<figure id="attachment_2277" style="width: 450px" class="wp-caption aligncenter"><a href="/wp-content/uploads/2011/04/agile-vs-bureaucracy.jpg"><img class="size-full wp-image-2277" title="agile-vs-bureaucracy" src="/wp-content/uploads/2011/04/agile-vs-bureaucracy.jpg" alt="Agile Software Methods vs. Bureaucracy" width="450" height="337" srcset="/wp-content/uploads/2011/04/agile-vs-bureaucracy.jpg 450w, /wp-content/uploads/2011/04/agile-vs-bureaucracy-300x224.jpg 300w" sizes="(max-width: 450px) 100vw, 450px" /></a><figcaption class="wp-caption-text">The agile methodologies are less bureacratic than the traditional approaches, where the documentation must be as detailed as possible.</figcaption></figure>
<p>The agile methodologies differ from the traditional methods by their high adaptivity, low level of bureaucracy and in the same time high level of communication. The client is often involved into the process of software development. His ability to give quick feedback on the team is something very typical to the agile methodologies.</p>
<figure id="attachment_2278" style="width: 450px" class="wp-caption aligncenter"><a href="/wp-content/uploads/2011/04/agile-communication.jpg"><img class="size-full wp-image-2278" title="agile-communication" src="/wp-content/uploads/2011/04/agile-communication.jpg" alt="The communication in the agile methods is encouraged to be face-to-face " width="450" height="324" srcset="/wp-content/uploads/2011/04/agile-communication.jpg 450w, /wp-content/uploads/2011/04/agile-communication-300x216.jpg 300w" sizes="(max-width: 450px) 100vw, 450px" /></a><figcaption class="wp-caption-text">Agile methods emphasize face-to-face communication over written documents. The client is often envolved into the process of software development.</figcaption></figure>
<p>Finally all these features of the agile methodologies helped the industry to manage projects that are highly dynamical.</p>
<p>In a series of posts I decided to share my knowledge about the agile methods beginning with this one. However to understand the necessity of the agile methodologies you need to understand first the characteristics of the traditional, or so called &#8220;engineering&#8221; approaches.</p>
<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href="/2011/04/15/traditional-software-development-methodologies/" rel="bookmark" title="Traditional Software Development Methodologies">Traditional Software Development Methodologies </a></li>
<li><a href="/2011/04/19/main-features-of-the-traditional-software-development-methodologies/" rel="bookmark" title="Main Features of the Traditional Software Development Methodologies">Main Features of the Traditional Software Development Methodologies </a></li>
<li><a href="/2010/07/27/are-you-agile/" rel="bookmark" title="Are You Agile?">Are You Agile? </a></li>
<li><a href="/2010/11/16/diving-into-node-js-introduction-and-installation/" rel="bookmark" title="Diving into Node.js &#8211; Introduction &#038; Installation">Diving into Node.js &#8211; Introduction &#038; Installation </a></li>
</ol></p>
</div>
]]></content:encoded>
			<wfw:commentRss>/2011/04/06/an-introduction-to-the-agile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Are You Agile?</title>
		<link>/2010/07/27/are-you-agile/</link>
		<comments>/2010/07/27/are-you-agile/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 16:54:19 +0000</pubDate>
		<dc:creator><![CDATA[Stoimen]]></dc:creator>
				<category><![CDATA[web development]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[methodologies]]></category>
		<category><![CDATA[poll]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">/?p=1862</guid>
		<description><![CDATA[Agile you are? Perhaps Master Yoda would say that, but it&#8217;s interesting to know what methodology do you use in your work. Any answers will be highly appreciated, so here are some basic questions: Do you follow any software development methodology? Do you use any agile methodology? What is good and what&#8217;s bad? Do you &#8230; <a href="/2010/07/27/are-you-agile/" class="more-link">Continue reading <span class="screen-reader-text">Are You Agile?</span> <span class="meta-nav">&#8594;</span></a><div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href="/2011/04/15/traditional-software-development-methodologies/" rel="bookmark" title="Traditional Software Development Methodologies">Traditional Software Development Methodologies </a></li>
<li><a href="/2011/04/06/an-introduction-to-the-agile/" rel="bookmark" title="An Introduction to the Agile">An Introduction to the Agile </a></li>
<li><a href="/2011/04/19/main-features-of-the-traditional-software-development-methodologies/" rel="bookmark" title="Main Features of the Traditional Software Development Methodologies">Main Features of the Traditional Software Development Methodologies </a></li>
<li><a href="/2010/01/11/what-should-be-optimized-in-one-web-page/" rel="bookmark" title="What should be optimized in one web page?">What should be optimized in one web page? </a></li>
</ol>
</div>
]]></description>
				<content:encoded><![CDATA[<h2>Agile you are?</h2>
<p><a href="/wp-content/uploads/2010/07/agile.jpg"><img class="alignleft size-full wp-image-1869" title="agile" src="/wp-content/uploads/2010/07/agile.jpg" alt="Agile" width="200" height="266" /></a></p>
<p>Perhaps Master Yoda would say that, but it&#8217;s interesting to know what methodology do you use in your work. Any answers will be highly appreciated, so here are some basic questions:</p>
<ol>
<li>Do you follow any software development methodology?</li>
<li>Do you use any agile methodology?</li>
<li>What is good and what&#8217;s bad?</li>
<li>Do you think agile is better than non-agile methodologies?</li>
</ol>
<p>Thanks anybody in advance!</p>
<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href="/2011/04/15/traditional-software-development-methodologies/" rel="bookmark" title="Traditional Software Development Methodologies">Traditional Software Development Methodologies </a></li>
<li><a href="/2011/04/06/an-introduction-to-the-agile/" rel="bookmark" title="An Introduction to the Agile">An Introduction to the Agile </a></li>
<li><a href="/2011/04/19/main-features-of-the-traditional-software-development-methodologies/" rel="bookmark" title="Main Features of the Traditional Software Development Methodologies">Main Features of the Traditional Software Development Methodologies </a></li>
<li><a href="/2010/01/11/what-should-be-optimized-in-one-web-page/" rel="bookmark" title="What should be optimized in one web page?">What should be optimized in one web page? </a></li>
</ol></p>
</div>
]]></content:encoded>
			<wfw:commentRss>/2010/07/27/are-you-agile/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
