<?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>Radu Poenaru &#187; Agile and Ruby Lab</title>
	<atom:link href="http://www.radupoenaru.com/category/media-informatics/agile-and-ruby-lab/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.radupoenaru.com</link>
	<description>CTO, Software engineer and Team leader</description>
	<lastBuildDate>Mon, 26 Jul 2010 19:52:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>GPS vs aGPS vs WiFi vs GSM localization</title>
		<link>http://www.radupoenaru.com/gps-vs-agps-vs-wifi-vs-gsm-localization/</link>
		<comments>http://www.radupoenaru.com/gps-vs-agps-vs-wifi-vs-gsm-localization/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 22:22:00 +0000</pubDate>
		<dc:creator>Radu Poenaru</dc:creator>
				<category><![CDATA[Agile and Ruby Lab]]></category>
		<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[RWTH Aachen]]></category>

		<guid isPermaLink="false">http://www.radupoenaru.com/gps-vs-agps-vs-wifi-vs-gsm-localization/</guid>
		<description><![CDATA[No method is perfect – GPS needs clear sky, aGPS improves this but still needs some satellites to be seen, GSM works like a charm if you have lots of antennas but falls dramatically if you’re in a remote place and WiFi positioning is good in cities, but absolutely lacks in remote zones. Only the composition of all can cover all the situations encountered in a normal life – crowded city when going to work and big, empty spaces when going to mountains to relax.<p>Post from: <a href="http://www.radupoenaru.com">Radu Poenaru's Weblog</a><br/><br/><a href="http://www.radupoenaru.com/gps-vs-agps-vs-wifi-vs-gsm-localization/">GPS vs aGPS vs WiFi vs GSM localization</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Each method presented has its strengths and weaknesses. None of these is the perfect positioning system, yet they all can collaborate in order to give the estimated position of a user.</p>
<p><a class="cboxelement" href="http://www.radupoenaru.com/wp-content/uploads/2009/08/GPS.jpg" rel="lightbox[775]"><img width="240" height="192" border="0" align="left" style="border-width: 0px; margin: 10px 10px 10px 0px; display: inline;" title="GPS - satellites launched for our safety" alt="GPS - satellites launched for our safety" src="http://www.radupoenaru.com/wp-content/uploads/2009/08/GPS_thumb.jpg" /> </a></p>
<p>GPS, the veteran of the group, has a plethora of satellites at its disposal, offering almost anywhere in the world a precision in meters. The devices which implement this technology are small enough to be inserted even in phones, smart enough to do their job or even more by tracking many satellites in the same time and eating less power, affording the usage of this service for hours in a row. But it needs clear sight to the sky in order to see at least 3 satellites and needs quite a long time in this busy era to get a clear position and be able to pinpoint the location on a map.</p>
<p><span id="more-784"></span></p>
<p><a href="http://www.radupoenaru.com/wp-content/uploads/2009/08/a_gps.png"><img width="132" height="137" border="0" align="left" style="border-width: 0px; margin: 10px 25px 10px 0px; display: inline;" title="aGPS- using the satellites and ground bases for better and faster localisation " alt="aGPS- using the satellites and ground bases for better and faster localisation " src="http://www.radupoenaru.com/wp-content/uploads/2009/08/a_gps_thumb.png" /></a> Its child, the aGPS helps by relying not only on satellites but also on GSM towers, locating and triangulating them too. Knowing their location, the power of the emitted signal, the user can be easily triangulated. Especially useful in crowded cities, where many GSM antennas are installed removes the need for a clear sky. Thus, it allows even in places surrounded by tall buildings to have a good enough precision while locating the position on the map.</p>
<p><a href="http://www.radupoenaru.com/wp-content/uploads/2009/08/gsm_positioning.jpg"><img width="190" height="188" border="0" align="left" style="border-width: 0px; margin: 10px 10px 10px 0px; display: inline;" title="GSM Positioning - less accurate, but highly available in urban areas" alt="GSM Positioning - less accurate, but highly available in urban areas" src="http://www.radupoenaru.com/wp-content/uploads/2009/08/gsm_positioning_thumb.jpg" /></a> The GSM positioning system continues the movement of the positioning technologies from the sky to ground bases by replacing completely the satellites from the picture. In developed countries there are a lot of GSM towers in urban areas. This is added to the fact that this technology doesn&rsquo;t eat more power in phones. Since the phone knows by default how to measure and get the tower&rsquo;s id, there is just a software issue to get the ids, match them to a table with geographical positions and triangulate based on the strength of signal the user&rsquo;s position. But if you&rsquo;re in a remote area, like in mountains, where there are few emitters the quality of location falls dramatically.</p>
<p><a href="http://www.radupoenaru.com/wp-content/uploads/2009/08/wifi_loc.jpg"><img width="120" height="120" border="0" align="left" style="border-width: 0px; margin: 10px 10px 10px 0px; display: inline;" title="WiFi helps for positioning sometimes with high rate of precision" alt="WiFi helps for positioning sometimes with high rate of precision" src="http://www.radupoenaru.com/wp-content/uploads/2009/08/wifi_loc_thumb.jpg" /></a> Wifi, on the other hand, is a newborn technology created out of the people need to communicate. Internet access is getting cheaper and cheaper, being for some business a nice feature to offer. Especially the large fast foods chains offer free wireless Internet access, but also people with enough bandwidth offer this for free. And given the fact that in the big cities these hotspots are countless, some smart guys invented a positioning system based on tracking these hotspots location, offering sometimes a comparable precision in comparison with the classic &ndash; the GPS system.</p>
<p>Bottom line, no method is perfect &ndash; GPS needs clear sky, aGPS improves this but still needs some satellites to be seen, GSM works like a charm if you have lots of antennas but falls dramatically if you&rsquo;re in a remote place and WiFi positioning is good in cities, but absolutely lacks in remote zones. Only the composition of all can cover all the situations encountered in a normal life &ndash; crowded city when going to work and big, empty spaces when going to mountains to relax.</p>
<p><strong>Note</strong>: This is an excerpt from my work during <a href="http://sewiki.iai.uni-bonn.de/teaching/labs/xp/2009b/start">Agile Lab and Seminar in Fall 2009</a>(besides the images whom are taken from internet)</p>
<p>Post from: <a href="http://www.radupoenaru.com">Radu Poenaru's Weblog</a><br/><br/><a href="http://www.radupoenaru.com/gps-vs-agps-vs-wifi-vs-gsm-localization/">GPS vs aGPS vs WiFi vs GSM localization</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.radupoenaru.com/gps-vs-agps-vs-wifi-vs-gsm-localization/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>GPS &#8211; Global positioning system</title>
		<link>http://www.radupoenaru.com/gps-global-positioning-system/</link>
		<comments>http://www.radupoenaru.com/gps-global-positioning-system/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 10:06:00 +0000</pubDate>
		<dc:creator>Radu Poenaru</dc:creator>
				<category><![CDATA[Agile and Ruby Lab]]></category>
		<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[RWTH Aachen]]></category>

		<guid isPermaLink="false">http://www.radupoenaru.com/gps-global-positioning-system/</guid>
		<description><![CDATA[GPS is the oldest one from the frameworks available to the large audience. It isn't the first positioning system, but it is the one with the most success and longevity. It started as a military project in 1957. Because of the cold war, once the Russians sent to space the first man-made satellite, a team of scientists started monitoring its radio transmissions. The crucial discovery was that, because of the Doppler Effect, the signal transmitted frequency increases as the satellite approached, and lowers as it continued moved away from them.<p>Post from: <a href="http://www.radupoenaru.com">Radu Poenaru's Weblog</a><br/><br/><a href="http://www.radupoenaru.com/gps-global-positioning-system/">GPS &ndash; Global positioning system</a></p>
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.radupoenaru.com/wp-content/uploads/2009/08/GPS.jpg"><img width="240" height="192" border="0" align="left" src="http://www.radupoenaru.com/wp-content/uploads/2009/08/GPS_thumb.jpg" alt="GPS- watching the sky for our safety" title="GPS- watching the sky for our safety" style="border-width: 0px; margin: 10px 10px 10px 0px; display: inline;" /></a> GPS is the oldest one from the frameworks available to the large audience. It isn&#8217;t the first positioning system, but it is the one with the most success and longevity. It started as a military project in 1957. Because of the cold war, once the Russians sent to space the first man-made satellite, a team of scientists started monitoring its radio transmissions. The crucial discovery was that, because of the Doppler Effect, the signal transmitted frequency increases as the satellite approached, and lowers as it continued moved away from them. This added to the fact that they knew their exact location on the globe, the logical conclusion was that one could pinpoint where the satellite was along its orbit by measuring the Doppler distortion.</p>
<p><span id="more-775"></span></p>
<p>Since then lots of GPS signal emitting satellites were launched, now the entire surface of the Earth being covered by them. Since 1983, it became also available to civilians, but with lower precision (but still 50 m were quite good for that time) and higher times for getting the current position.</p>
<p>The mechanism of its functioning is simple: you need three satellites to get your precise position in the device line of sight, unobstructed for entire period of measurement, or four if you want also the elevation. The device receives high precision clock signals (atomic clock precision) in order to measure the delay of the wave between the satellites and earth. Then, using triangulation, the location can be pinpointed on the Earth surface by doing some math calculus. The entire process takes few minutes in a device start and less if the device is readjusting the location.</p>
<p>Since its creation, it was used in all domains: aviation for getting to the correct location, help and rescue for climbers and excursionists which missed their path in mountains, sea navigation and now more and more for city navigation. Since the receivers became so miniaturized that they can be easily fit into smart phones, one can use it to get to a newly recommended cafe or theatre without having to carry with it the map of the city.</p>
<p>The recording devices that use GPS can be split into three categories:</p>
<p>1. Data loggers &ndash; log data as it arrives and here we can include almost all devices with user interface, no matter that this device is a cell phone or a standalone device. They simply receive the GPS signal, record it and show it to the user.</p>
<p>2. Data pushers &ndash; the kind of devices using for tracking logistic fleet in realtime- they read the GPS data but instead of only show it to the user, they also send it via GSM connections or radio to a central location where it is processed. Then the data is analyzed and the merchandise path to the client can be optimized.</p>
<p>3. Data pullers &ndash; almost the same as the pushers, but instead of sending by their own at specific intervals data to the central location, these ones can be queried as needed. One of the most important usages is placing one of these devices inside of a valuable device and if stolen it can send its position once queried for it.</p>
<p>The main drawback of this technology is the fact that it requires clear line of sight to at least three satellites. In crowded urban areas or in mountains, this is a luxury. New technologies help minimizing these facts, like Assisted GPS which relies also on GSM towers to get its location done.</p>
<p><strong>Note</strong>: This is an excerpt from my work during <a href="http://sewiki.iai.uni-bonn.de/teaching/labs/xp/2009b/start">Agile Lab and Seminar in Fall 2009</a></p>
<p>Post from: <a href="http://www.radupoenaru.com">Radu Poenaru's Weblog</a><br/><br/><a href="http://www.radupoenaru.com/gps-global-positioning-system/">GPS &ndash; Global positioning system</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.radupoenaru.com/gps-global-positioning-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SCRUM</title>
		<link>http://www.radupoenaru.com/scrum/</link>
		<comments>http://www.radupoenaru.com/scrum/#comments</comments>
		<pubDate>Sun, 23 Aug 2009 21:59:00 +0000</pubDate>
		<dc:creator>Radu Poenaru</dc:creator>
				<category><![CDATA[Agile and Ruby Lab]]></category>
		<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[RWTH Aachen]]></category>

		<guid isPermaLink="false">http://www.radupoenaru.com/scrum/</guid>
		<description><![CDATA[Scrum is one of Agile processes that use incremental framework for developing complex software and managing new products so it is considered more like a framework in which you can employ various processes.<p>Post from: <a href="http://www.radupoenaru.com">Radu Poenaru's Weblog</a><br/><br/><a href="http://www.radupoenaru.com/scrum/">SCRUM</a></p>
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.radupoenaru.com/wp-content/uploads/2009/08/Scrum_process.png"><img width="240" height="120" border="0" align="left" src="http://www.radupoenaru.com/wp-content/uploads/2009/08/Scrum_process_thumb.png" alt="Scrum process - during an iteration, the customer might change its idea." title="Scrum process - during an iteration, the customer might change its idea." style="border-width: 0px; margin: 10px 40px 10px 0px; display: inline;" /></a> What is SCRUM ?</p>
<ul>
<li>one of Agile processes</li>
<li>use incremental framework for developing complex software</li>
<li>managing new products</li>
<li>considered more like a framework in which you can employ various processes and techniques</li>
<li>Key principle: during a project the customers can change their minds</li>
</ul>
<p><font color="#eeeeee">Manages complex processes by:</font></p>
<ul>
<li>Transparency
<ul>
<li>The outcome of the product should be visible to the manager who is managing the outcomes. Also each process that affect the outcome of the product also should been visible to the managers.</li>
</ul>
</li>
<li>Inspection
<ul>
<li>Various aspects of the process must be frequently inspected regularly so that quality of work and peoples can be seen.</li>
</ul>
</li>
<li>Adaptation
<ul>
<li>If the inspection process find outs some process are outside the scope of the product or the outcomes will be unacceptable, then the inspector should response quickly and adjusts the process or data being used in the process.</li>
</ul>
</li>
</ul>
<p><span id="more-770"></span></p>
<p>The partners in this process are:</p>
<ul>
<li>Product Owner (Also known as chickens)
<ul>
<li>is responsible for the communicating version of the product.</li>
</ul>
</li>
<li>Scrum Master
<ul>
<li>Scrum manager provide cooperation between the product owner and team.</li>
</ul>
</li>
<li>Team (Also known as pigs)
<ul>
<li>It&rsquo;s the team which performs work or sprint- usually there are many teams working on their sprints and each team consist of 5 to 9 cross-functional members.</li>
</ul>
</li>
</ul>
<p><font color="#eeeeee">Main SCRUM terms:</font></p>
<ol>
<li>The Sprint
<ul>
<li>Sprint is one iteration. Project is dived into small workable sprints which take 2 to 4 week durations, no change to the sprint backlog</li>
</ul>
</li>
<li>The Backlog
<ul>
<li>list of requirement from product owner based on their priorities &#8211; after every sprint, backlogs are updated.</li>
</ul>
</li>
<li>The Sprint Backlog
<ul>
<li>the information how this sprint going to be implemented- process/features are broken down in to small tasks (6 to 8 hours) for teams.</li>
</ul>
</li>
<li>The Time Boxing
<ul>
<li>Everything in scrum is time-boxed &#8211; It&rsquo;s about release planning meeting, sprint planning meeting, sprint review and daily scrum meetings.</li>
</ul>
</li>
<li>The Daily Meeting/Scrum
<ul>
<li>also called as &quot;the daily standup&ldquo; &#8211; 15 minutes and all peoples are welcome to join but only the teams (pigs) are allowed to speak. This meeting has only 3 questions to answer
<ul>
<li>What you done yesterday?</li>
<li>What you will do today?</li>
<li>Do you have issues which are stopping you doing this job?</li>
</ul>
</li>
</ul>
</li>
</ol>
<p><font color="#eeeeee">This is a good example of pattern that started from Software industry going towards the other industries &ndash; as opposed to <a href="http://www.radupoenaru.com/agile-roots-toyota-production-system/">Toyota Production System</a>:</font></p>
<ul>
<li>first applied to software development</li>
<li>but then successfully used in big industries</li>
<li>now it used for developing any kind of product.</li>
<li>the best part of SCRUM as compared to other agile process that it introduces the idea of real world progress of a project not just the best guess on unknown information.</li>
</ul>
<p><strong>Note</strong>: This is an excerpt from my work during <a href="http://sewiki.iai.uni-bonn.de/teaching/labs/xp/2009b/start">Agile Lab and Seminar in Fall 2009</a></p>
<p>Post from: <a href="http://www.radupoenaru.com">Radu Poenaru's Weblog</a><br/><br/><a href="http://www.radupoenaru.com/scrum/">SCRUM</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.radupoenaru.com/scrum/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Agile vs Waterfall</title>
		<link>http://www.radupoenaru.com/agile-vs-waterfall/</link>
		<comments>http://www.radupoenaru.com/agile-vs-waterfall/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 21:40:00 +0000</pubDate>
		<dc:creator>Radu Poenaru</dc:creator>
				<category><![CDATA[Agile and Ruby Lab]]></category>
		<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[RWTH Aachen]]></category>

		<guid isPermaLink="false">http://www.radupoenaru.com/agile-vs-waterfall/</guid>
		<description><![CDATA[The software as industry relies more on reusability and on site modifications. If a programmer finds a piece of code, of course respecting the intellectual property, can easily adapt it to his project. This approach is called adaptive, because these methods focus on adapting quickly to changing realities – no customer knows from the start exactly what he needs from the start.<p>Post from: <a href="http://www.radupoenaru.com">Radu Poenaru's Weblog</a><br/><br/><a href="http://www.radupoenaru.com/agile-vs-waterfall/">Agile vs Waterfall</a></p>
]]></description>
			<content:encoded><![CDATA[<table width="100%" cellspacing="0" cellpadding="5" border="0">
<tbody>
<tr>
<td>
<p>Waterfall model:</p>
<ul>
<li>Predictive model</li>
<li>Optimized for a single purpose</li>
<li>Hard to change</li>
</ul>
</td>
<td>
<p>eXtreme Programming</p>
<ul>
<li>Reusability</li>
<li>Easy to change direction</li>
<li>But no idea of next 6 months</li>
</ul>
</td>
</tr>
<tr>
<td><a href="http://www.radupoenaru.com/wp-content/uploads/2009/08/Waterfall_model.svg.png"><img width="316" height="224" border="0" align="left" src="http://www.radupoenaru.com/wp-content/uploads/2009/08/Waterfall_model.svg_thumb.png" alt="Waterfall model - only one shot to get the customer's idea." title="Waterfall model - only one shot to get the customer's idea." style="border-width: 0px; margin: 10px 0px; display: inline;" /></a></td>
<td><a href="http://www.radupoenaru.com/wp-content/uploads/2009/08/Xploop2.png"><img width="240" height="240" border="0" align="left" src="http://www.radupoenaru.com/wp-content/uploads/2009/08/Xploop2_thumb.png" alt="Xp loop, converging to a perfect product" title="Xp loop, converging to a perfect product" style="border-width: 0px; margin: 10px 0px; display: inline;" /></a></td>
</tr>
</tbody>
</table>
<p><span id="more-765"></span></p>
<p>Because the software industry is so different than any other, the development model used prior of creating agile methodology was taken from the engineering disciplines, such as civil or mechanical engineering. Those disciplines put a lot of emphasis on planning before you build because the resources are very expensive and cannot be wasted because of bad synchronization or different physical characteristics like calibers, by example. The planning style is a predictive method that focuses on planning the future in detail. A team that uses these predictive techniques can report precisely what features and tasks are scheduled, both their order and length, for the entire time span of the development process. Predictive teams are very difficult to redirect after the client needs. The plan is typically optimized for the original destination and changing direction can cause completed work to be thrown away and done over differently. These teams will often institute a change control board to ensure that only the most valuable changes are considered.</p>
<p>Opposed to this, the software as industry relies more on reusability and on site modifications. If a programmer finds a piece of code, of course respecting the intellectual property, can easily adapt it to his project. This approach is called adaptive, because these methods focus on adapting quickly to changing realities &ndash; no customer knows from the start exactly what he needs from the start. When the needs of a project change, an adaptive team changes the specifications as well. But this comes with a drawback; because an adaptive team will not be able to describe exactly what will happen in the future, it will precisely know only the current step, the next one depending on the user feedback. Thus, adaptive team knows exactly what tasks are being done next iteration, has an idea about the overall project, but only which features are planned for next month. But if asked about a future release, let&rsquo;s say six months from now, an adaptive team may only be able to report the mission statement for the release, or a statement of expected value vs. cost.</p>
<p>Post from: <a href="http://www.radupoenaru.com">Radu Poenaru's Weblog</a><br/><br/><a href="http://www.radupoenaru.com/agile-vs-waterfall/">Agile vs Waterfall</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.radupoenaru.com/agile-vs-waterfall/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Agile roots: Toyota Production System</title>
		<link>http://www.radupoenaru.com/agile-roots-toyota-production-system/</link>
		<comments>http://www.radupoenaru.com/agile-roots-toyota-production-system/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 21:14:00 +0000</pubDate>
		<dc:creator>Radu Poenaru</dc:creator>
				<category><![CDATA[Agile and Ruby Lab]]></category>
		<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[RWTH Aachen]]></category>

		<guid isPermaLink="false">http://www.radupoenaru.com/agile-roots-toyota-production-system/</guid>
		<description><![CDATA[This methodology and set of principles has the root in the Toyota company. After the Second World War, the Japan and its companies were almost ruined both physical and financial. To recover the economy, they had to rethink all the processes of production in order to maximize their efficiency.<p>Post from: <a href="http://www.radupoenaru.com">Radu Poenaru's Weblog</a><br/><br/><a href="http://www.radupoenaru.com/agile-roots-toyota-production-system/">Agile roots: Toyota Production System</a></p>
]]></description>
			<content:encoded><![CDATA[<p><a class="cboxelement" href="http://www.radupoenaru.com/wp-content/uploads/2009/08/balancing.png" rel="lightbox[755]"><img width="156" height="156" border="0" align="left" style="border-width: 0px; margin: 10px 0px; display: inline;" title="Agile methodology - converging fast to a perfect product." alt="Agile methodology - converging fast to a perfect product." src="http://www.radupoenaru.com/wp-content/uploads/2009/08/balancing_thumb.png" /> </a></p>
<p>This methodology and set of principles has the root in the company with the same name. After the Second World War, the Japan and its companies were almost ruined both physical and financial. To recover the economy, they had to rethink all the processes of production in order to maximize their efficiency. This was required because not only that they lack financial resources, but even the loans that they could do as a country came with big price. In Toyota Company, a smart man called Taiichi Ohno, created a new way to build cars, focusing on creating as many quality products possible with limited amount of resources.</p>
<p><span id="more-759"></span></p>
<p>The three principles that guided the rebirth of Toyota and other Japanese companies were:</p>
<p>1. Build only what is needed &ndash; literally, they strived to build only products for which they knew that a customer exists. There was no room for additional expenses with storage and building stocks of merchandises, thus only the products quickly convertible in money survived. Also the quality of them assured that they were solvable.</p>
<p>2. Eliminate anything that doesn&rsquo;t add value &ndash; meaning that the product should be really useful to the customer, but also more usable than the one of the competition &ndash; assuring that the entire production is sold fast, thus improving also the flow of money in the Japan&rsquo;s almost ruined economy.</p>
<p>3. Stop if something goes wrong &ndash; this is almost a sum of above principles, ensuring once again that only quality products are built. In any process there can be faults, but if stopped when they are minor, by the first worker who noticed the defect, a lot of time and resources can be saved. This is the base principle of zero-defect production, based on a quick feedback of wrong action rather than the late confirmation that an error occurred somewhere along a long line of production.</p>
<p>Besides respecting and caring for budget and products, the Toyota Production System also settled in work environments a set of values, creating a philosophy of work, which:</p>
<p>&middot; respects those engaged in the work</p>
<p>&middot; strives for full utilization of workers&rsquo; capabilities</p>
<p>&middot; places authority and responsibility for the work with those doing it, enabling any worker to stop the entire line of production if he knew about a defect.</p>
<p>These principles thrived in Japan, as we all know now, after more than 50 years, bringing it to the top of the biggest economies in the world. Almost all companies soon adopted these principles who were tested by Toyota, becoming the usual way to conduct a business in this country. Very surprising, they weren&rsquo;t very appreciated in other areas until 1980. These ideas were so well implemented in Japan&rsquo;s industry, that their almost destroyed industry became the main producer of cars, expanding throughout the world. Even more, during the oil crisis in 1975, they quickly adjust their production to new demands that prove again that Ohno&rsquo;s principles aren&rsquo;t obsolete and don&rsquo;t depend only on the theory behind, but more on the people that implements it.</p>
<p>The Toyota Production System entered into the largest economy, USA, late in 1980 as a tiny idea and later in 1990 they actually started to think seriously about it. The pioneers in this area were James Womack, Daniel Jones and Daniel Roos in the book &ldquo;The Machine that Changed the World&rdquo; published in 1990 and by Womack and Jones in the sequel &ldquo;Lean Thinking&rdquo; in 1996. They coined the term &ldquo;Lean Thinking&rdquo;, depicting a set of five principles, more general and not limited to industry, but to all enterprises independent of field of activity, as follows:</p>
<p>&middot; Specify value</p>
<p>&middot; Identify the value stream &ndash; line up activities which contribute value, eliminate those which add no value</p>
<p>&middot; Create the conditions for value to flow smoothly through the stream</p>
<p>&middot; Have the customer pull value from the stream</p>
<p>&middot; Pursue perfection &ndash; work on improving the responsiveness of the production system to the customer demand for value</p>
<p>These principles didn&rsquo;t remain only as ideas, but were quickly adopted by the economy and also fundament a new base for research, in the newly founded Lean Enterprise Research Centre in Wales, England, where it became an instrument of researching, documenting and spreading the lean techniques for improving the work processes.</p>
<p><strong>Note</strong>: This is an excerpt from my work during <a href="http://sewiki.iai.uni-bonn.de/teaching/labs/xp/2009b/start">Agile Lab and Seminar in Fall 2009</a></p>
<p>Post from: <a href="http://www.radupoenaru.com">Radu Poenaru's Weblog</a><br/><br/><a href="http://www.radupoenaru.com/agile-roots-toyota-production-system/">Agile roots: Toyota Production System</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.radupoenaru.com/agile-roots-toyota-production-system/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Agile &#8211; techniques, principles and methodology</title>
		<link>http://www.radupoenaru.com/agile-techniques-principles-and-methodology/</link>
		<comments>http://www.radupoenaru.com/agile-techniques-principles-and-methodology/#comments</comments>
		<pubDate>Sun, 16 Aug 2009 21:00:00 +0000</pubDate>
		<dc:creator>Radu Poenaru</dc:creator>
				<category><![CDATA[Agile and Ruby Lab]]></category>
		<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[RWTH Aachen]]></category>

		<guid isPermaLink="false">http://www.radupoenaru.com/agile-techniques-principles-and-methodology/</guid>
		<description><![CDATA[Agile methods are a family of development processes, not a single approach to software development. It represents the ways of creating software in a lighter, faster, more people-centric way. The base of this is the Agile Manifesto, widely regarded as the canonical definition of agile development and accompanying agile principles.<p>Post from: <a href="http://www.radupoenaru.com">Radu Poenaru's Weblog</a><br/><br/><a href="http://www.radupoenaru.com/agile-techniques-principles-and-methodology/">Agile &ndash; techniques, principles and methodology</a></p>
]]></description>
			<content:encoded><![CDATA[<p><a rel="lightbox[755]" href="http://www.radupoenaru.com/wp-content/uploads/2009/08/balancing.png" title="Agile lab" class="cboxelement"><img width="156" height="156" border="0" align="left" src="http://www.radupoenaru.com/wp-content/uploads/2009/08/balancing_thumb.png" alt="Agile technique, principles and methodology - converging to a perfect product." title="Agile technique, principles and methodology - converging to a perfect product." style="border-width: 0px; margin: 10px 0px; display: inline;" /> </a></p>
<p>Because the software industry is so different than any other, the development model used prior of creating agile methodology was taken from the engineering disciplines, such as civil or mechanical engineering. Those disciplines put a lot of emphasis on planning before you build because the resources are very expensive and cannot be wasted because of bad synchronization or different physical characteristics like calibers, by example. The planning style is a predictive method that focuses on planning the future in detail. A team that uses these predictive techniques can report precisely what features and tasks are scheduled, both their order and length, for the entire time span of the development process. Predictive teams are very difficult to redirect after the client needs. The plan is typically optimized for the original destination and changing direction can cause completed work to be thrown away and done over differently. These teams will often institute a change control board to ensure that only the most valuable changes are considered.</p>
<p><span id="more-757"></span></p>
<p>Opposed to this, the software as industry relies more on reusability and on site modifications. If a programmer finds a piece of code, of course respecting the intellectual property, can easily adapt it to his project. This approach is called adaptive, because these methods focus on adapting quickly to changing realities &ndash; no customer knows from the start exactly what he needs from the start. When the needs of a project change, an adaptive team changes the specifications as well. But this comes with a drawback; because an adaptive team will not be able to describe exactly what will happen in the future, it will precisely know only the current step, the next one depending on the user feedback. Thus, adaptive team knows exactly what tasks are being done next iteration, has an idea about the overall project, but only which features are planned for next month. But if asked about a future release, let&rsquo;s say six months from now, an adaptive team may only be able to report the mission statement for the release, or a statement of expected value vs. cost.</p>
<p>Agile methods are a family of development processes, not a single approach to software development. It represents the ways of creating software in a lighter, faster, more people-centric way. The base of this is the Agile Manifesto, widely regarded as the canonical definition of agile development and accompanying agile principles. The Agile Manifesto states that:</p>
<ul>
<li><b>Individuals and interactions</b> over processes and tools</li>
<li><b>Working software</b> over comprehensive documentation</li>
<li><b>Customer collaboration</b> over contract negotiation</li>
<li><b>Responding to change</b> over following a plan</li>
</ul>
<p>As methodology, agile development tries to push the development process to the user intended direction, providing many opportunities to assess the direction of a project throughout its lifecycle. This is achieved through iterations of work and at whom end teams must present a finished piece of code, usually a piece of shippable code. Because of this repetition of small chunks of work, as well as the functional product they yield, agile methodology can be described as &ldquo;iterative&rdquo; and &ldquo;incremental.&rdquo; As opposite, in waterfall approach, development teams have only one chance to get right each aspect of a project. Even more, in an agile paradigm, each and every one stage of development like requirements, design just to mention two of them, is continually revisited throughout the project lifecycle. Because of the short periods between reevaluations, usually couple of weeks, when the team stops and re-evaluates the direction of a project, there&rsquo;s always time to redirect it in the correct direction.</p>
<p>The results approach to development greatly reduces both software product development costs and time to reach the market. In other methodologies, there&rsquo;s a dead time associated with creating complex specifications while development team is in a code writing pause. Agile teams, on the other hand, can gather requirements at the same time they&rsquo;re implementing them, so this process can&rsquo;t really impede a team from making progress. And because a team&rsquo;s work cycle is limited to few weeks, it gives stakeholders recurring opportunities to recalibrate releases for success in the real world. In essence, it could be said that the agile development methodology helps companies build the right product.</p>
<p>This combination of features is an attractive option for stakeholders and developers alike. In the end, the development agile methodology preserves a product&rsquo;s critical market relevance and ensures a team&rsquo;s work doesn&rsquo;t wind up on a shelf, never released.</p>
<p><strong>Note</strong>: This is an excerpt from my work during <a href="http://sewiki.iai.uni-bonn.de/teaching/labs/xp/2009b/start">Agile Lab and Seminar in Fall 2009</a></p>
<p>Post from: <a href="http://www.radupoenaru.com">Radu Poenaru's Weblog</a><br/><br/><a href="http://www.radupoenaru.com/agile-techniques-principles-and-methodology/">Agile &ndash; techniques, principles and methodology</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.radupoenaru.com/agile-techniques-principles-and-methodology/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Agile Lab &#8211; Coining the Agile techniques</title>
		<link>http://www.radupoenaru.com/agile-lab-coining-the-agile-techniques/</link>
		<comments>http://www.radupoenaru.com/agile-lab-coining-the-agile-techniques/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 20:54:00 +0000</pubDate>
		<dc:creator>Radu Poenaru</dc:creator>
				<category><![CDATA[Agile and Ruby Lab]]></category>
		<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[RWTH Aachen]]></category>

		<guid isPermaLink="false">http://www.radupoenaru.com/agile-lab-coining-the-agile-techniques/</guid>
		<description><![CDATA[The roots of agile programming as we know it can be traced back to 2001. At Snowbird ski resort in the Wasatch Mountains of Utah, a group of seventeen people met have fun, but also to find common ground on a issue that was too much discussed but no result can be achieved.They were adepts of Extreme Programming, SCRUM, DSDM, Adaptive Software Development, Crystal, Feature-Driven Development, Pragmatic Programming and other agile techniques, joined together by the need for an alternative to documentation driven, heavyweight software development processes.<p>Post from: <a href="http://www.radupoenaru.com">Radu Poenaru's Weblog</a><br/><br/><a href="http://www.radupoenaru.com/agile-lab-coining-the-agile-techniques/">Agile Lab &#8211; Coining the Agile techniques</a></p>
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.radupoenaru.com/wp-content/uploads/2009/08/balancing.png"><img width="156" height="156" border="0" align="left" src="http://www.radupoenaru.com/wp-content/uploads/2009/08/balancing_thumb.png" alt="Agile techniques- converging to a perfect product" title="Agile techniques- converging to a perfect product" style="border-width: 0px; margin: 10px 0px; display: inline;" /></a>The roots of agile programming as we know it can be traced back to 2001. At Snowbird ski resort in the Wasatch Mountains of Utah, a group of seventeen people met have fun, but also to find common ground on a issue that was too much discussed but no result can be achieved. They were the leaders of different currents of improving software creation techniques. They were adepts of Extreme Programming, SCRUM, DSDM, Adaptive Software Development, Crystal, Feature-Driven Development, Pragmatic Programming and other agile techniques, joined together by the need for an alternative to documentation driven, heavyweight software development processes.</p>
<p><span id="more-755"></span></p>
<p>All enumerated methodologies of software creation have the common ground of recalibrating themselves and their result, the code, will be crafter to the user&rsquo;s desire by asking for input on each stage of project evolution. These recalibrations occur after the user evaluates the product, creates a feedback and sets the next iteration goals. This is also known as sprint or iteration. The sprint is organized into three parts: code creation, user review and setting new goals. At the end of every sprint, the team presents a functional module or piece of software to the user responsible with this for review. This emphasis is on creating a shippable product and also ensures that the software engineers from that team don&rsquo;t get overwhelmed with a huge amount of requirements. The sprint has a specific length and this can either be set in the first place or can be adjusted later, depending on the team members personal skills or the load with tasks.</p>
<p>Because sprints repeat and the resulting code continually grows in functionality, this style of programming &ndash; Agile &ndash; is described as &ldquo;iterative&rdquo; and &ldquo;incremental.&rdquo; Comparing with the waterfall model, the development teams have just a single shot at getting each part of a project right. Usually, the longer and complex the project is, the farther will be the product to desired functionalities. This is happening not because of bad programmers, nor bad specifications, but because the lack of feedback. Fortunately, the Agile style not only asks, but enforces the process of getting the final user or Product Owner feedback.</p>
<p>With the advantage that teams can gather requirements while coding, the process of creating, maintaining and rewriting them is greatly reduced. Thus the customer will not be bored too much with them and fewer errors can be slipped into this process &ndash; bored people are more prone to errors. The agile team can focus on smaller tasks, delivering quality and almost bug-free and also having all the time the good feeling of making progress. While agile teams develop within the short, repeatable work cycles, the owners or users have all the time the opportunity to look at the results, test them and ensure that the product being created really matches the customers&rsquo; need. Bottom line, we can conclude that agile programming helps companies build products their customers want.</p>
<p><strong>Note</strong>: This is an excerpt from my work during <a href="http://sewiki.iai.uni-bonn.de/teaching/labs/xp/2009b/start">Agile Lab and Seminar in Fall 2009</a></p>
<p>Post from: <a href="http://www.radupoenaru.com">Radu Poenaru's Weblog</a><br/><br/><a href="http://www.radupoenaru.com/agile-lab-coining-the-agile-techniques/">Agile Lab &#8211; Coining the Agile techniques</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.radupoenaru.com/agile-lab-coining-the-agile-techniques/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ruby on Rails &amp; Agile development</title>
		<link>http://www.radupoenaru.com/ruby-on-rails-agile-development/</link>
		<comments>http://www.radupoenaru.com/ruby-on-rails-agile-development/#comments</comments>
		<pubDate>Wed, 06 May 2009 21:05:01 +0000</pubDate>
		<dc:creator>Radu Poenaru</dc:creator>
				<category><![CDATA[Agile and Ruby Lab]]></category>
		<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[BIT]]></category>
		<category><![CDATA[Lab]]></category>
		<category><![CDATA[Media Informatics]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[RWTH Aachen]]></category>
		<category><![CDATA[Usability principles]]></category>
		<category><![CDATA[User experience]]></category>

		<guid isPermaLink="false">http://www.radupoenaru.com/ruby-on-rails-agile-development/</guid>
		<description><![CDATA[&#160;&#160; Starting from the Fall of 2002 a close collaboration begin between the RWTH Aachen University, University of Bonn, the Fraunhofer Institute Centre Birlinghoven Castle IZB and the University of Applied Sciences Bonn Rhein-Sieg . They joined forces to establish the Bonn-Aachen International Center for Information Technology (B-IT) who, as a collaboration, ranked the first<p>Post from: <a href="http://www.radupoenaru.com">Radu Poenaru's Weblog</a><br/><br/><a href="http://www.radupoenaru.com/ruby-on-rails-agile-development/">Ruby on Rails &amp; Agile development</a></p>
]]></description>
			<content:encoded><![CDATA[<p>&nbsp;&nbsp;</p>
<p><a target="_blank" href="http://rubyonrails.org/" title="Ruby on Rails website"><img width="103" height="122" border="0" align="left" src="http://www.radupoenaru.com/wp-content/uploads/2009/05/ruby.jpg" alt="Ruby" title="Ruby" style="border: 0px none ; margin: 0px 20px 20px 0px; display: inline;" /></a>Starting from the Fall of 2002 a close collaboration begin between the <a href="http://www.rwth-aachen.de/go/id/bdz/">RWTH Aachen University</a>, <a href="http://www1.uni-bonn.de/startseite/jsp/index.jsp?lang=en">University of Bonn</a>, the <a href="http://www.izb.fraunhofer.de">Fraunhofer Institute Centre Birlinghoven Castle IZB</a> and the <a href="http://www.fh-bonn-rhein-sieg.de/Home-lang-en.html">University of Applied Sciences Bonn Rhein-Sieg</a> . They joined forces to establish the <a href="http://www.b-it-center.de">Bonn-Aachen International Center for Information Technology (B-IT)</a> who, as a collaboration, <a target="_blank" href="http://translate.google.com/translate?prev=hp&amp;hl=en&amp;js=n&amp;u=http%3A%2F%2Fwww.firmenpresse.de%2Fpressinfo85186.html%0D%0A&amp;sl=de&amp;tl=en">ranked the first university in Computer Science</a> in Germany, above Technical University of Munich and the University of Karlsruhe.</p>
<p>As for now, I study in <a target="_blank" href="http://mi.b-it-center.de/" title="Media Informatics master held by RWTH Aachen">Media Informatics</a> master held by <a target="_blank" href="http://www.rwth-aachen.de" title="Rheinisch-Westfaelische Technische Hochschule Aachen">RWTH Aachen</a> university joint Master with <a target="_blank" href="http://www1.uni-bonn.de/startseite/jsp/index.jsp?lang=en" title="Bonn &ndash; a Mecca for Mathematics">University of Bonn</a>.</p>
<p>I just got the confirmation that I will be enrolled into Agile&nbsp; lab and study the Agile development techniques along with Ruby on Rails and mobile programming.<span id="more-425"></span></p>
<p>I have high expectations from this lab, which is composed from 2 parts : seminar and the actual laboratory hours. In seminar we will study different aspects of Ruby on Rails programming, each of the attending students have to prepare at least two different subjects to present to their colleagues. I strongly believe that I will enjoy these, especially that I am a web developer and I really enjoy to learn cutting edge technologies.</p>
<p>In the practical (lab) part, we will have to develop a mobile web application. This is very challenging because of the devices who imposes restrictions &ndash; as general, but also as a particular device &ndash; some of them know how to render only JPEG, others know also PNG. Some use MID files for music, other use MP3 or even know to play MPG movies. Different capabilities, different user experiences, different programming for each device. Or not? This I will discover as the time will go by.</p>
<p>So you, all my readers, can expect to find here a lot of articles regarding the stuff I will learn. I will try to present it from a newbie point of view (which will not be hard because in Ruby I&rsquo;m really beginner) and explain in depth the technologies and the principles which are the presented the lab.</p>
<p>Post from: <a href="http://www.radupoenaru.com">Radu Poenaru's Weblog</a><br/><br/><a href="http://www.radupoenaru.com/ruby-on-rails-agile-development/">Ruby on Rails &amp; Agile development</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.radupoenaru.com/ruby-on-rails-agile-development/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
