<?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>Nodeta &#187; Uncategorized</title>
	<atom:link href="http://blog.nodeta.fi/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.nodeta.fi</link>
	<description>on Rails</description>
	<lastBuildDate>Mon, 06 Sep 2010 13:14:58 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>The Mentality of Incrementality</title>
		<link>http://blog.nodeta.fi/2009/10/24/the-mentality-of-incrementality/</link>
		<comments>http://blog.nodeta.fi/2009/10/24/the-mentality-of-incrementality/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 23:24:52 +0000</pubDate>
		<dc:creator>Mikael Roos</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.nodeta.fi/?p=268</guid>
		<description><![CDATA[Photo by ElbridgeGerry
We here at Nodeta work incrementally. We standardly split all of our development efforts into smaller and smaller increments in order to better grasp what is planned, what is achieved and how well the two match. We do small things to get big things done.
When you&#8217;re making a piece of software, the first [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin: 0 0 1em 1em;"><img class="size-medium wp-image-274" title="Backspace is your friend" src="http://blog.nodeta.fi/wp-content/uploads/2009/10/800px-Backspace-300x225.jpg" alt="Photo by ElbridgeGerry" width="300" height="225" /><br /><em style="display: block; text-align: right; font-size: 90%;">Photo by ElbridgeGerry</em></div>
<p>We here at Nodeta work incrementally. We standardly split all of our development efforts into smaller and smaller increments in order to better grasp what is planned, what is achieved and how well the two match. We do small things to get big things done.</p>
<p>When you&#8217;re making a piece of software, the first version usually sucks. It doesn&#8217;t matter, if you whipped the software up in an afternoon, or if you spent thousands of man months to develop it from point Nothing to point Done, it&#8217;s gonna suck. Instead, you need to do it in small increments, and then you need to throw most of those increments away and do them again. The bigger the increment is, the more likely it is that it will be made of suck, and you&#8217;ll need to do it again.</p>
<p>You need to start with minimal features, then build. Test your ideas early with real users when possible and use that feedback to re-create.</p>
<p>In a personal sense, it&#8217;s not always so simple to adopt the concept of incrementality to your work process. Many would like to have their handiwork done, polished, framed and fixated before showing it to anyone.</p>
<h2>Team members and incrementality</h2>
<p>In Scrum, stories (which group smaller tasks in a single sprint) are given acceptance criteria, so that it&#8217;s easy to check how well the story has been completed or implemented. You can use these following criteria to either test your team or potential members for their abilities to work incrementally.</p>
<p><strong>You, as a <em>software developer</em></strong>, need to realize that your code is not valuable in itself, it is only valuable in what it can do, and if what it does is not useful that week, it has no value. No matter how long you pondered to find the best and most beautiful solution to the problem you had. Not even if your code flows down the misty meadows like a clear and concise natural language, if it is not a part of a proven feature, it&#8217;s worthless. You need to remove it and move on. Move to the next piece of code. You need to start feeling good about your ability to produce good code, and not about your code itself. Code proudly with the backspace!</p>
<p><strong>You, as a <em>manager</em></strong>, need to understand that your funky new features are worthless if the previous features haven&#8217;t been proven good by testing them with actual customers and actual users. Features have no inherent value. If you have a feature that reaks, you need to kill it fast and hop on the do-over train. You also need to appreciate the value of incremental development, and mold the day-to-day working environment to support it.</p>
<p><strong>You, as a <em>product owner</em></strong>, need to be able to plan well often and in variable scopes. Any project should have a road map, on what is sometimes called &#8216;epic level&#8217;. That means you take the contents of the project and try to define them in as broad as terms possible, without restricting development paths. Then you need to be able to chop these epic features up into pieces with the team, and prioritize, prioritize, prioritize.</p>
<h2>Special feature</h2>
<p>In software development, there are no manufacturing costs. That&#8217;s why do-overs are not only possible but smart. Incrementality is a special feature of software development, and one of the reasons why any comparisons to, say, construction development, lead to horrendous distortions of the truth. Think about it, if you could start building your house by simply setting up the planned facade and if you could then change it without material costs, wouldn&#8217;t you do it like that? Of course you would.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nodeta.fi/2009/10/24/the-mentality-of-incrementality/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>APIdock in Textmate</title>
		<link>http://blog.nodeta.fi/2009/02/23/apidock-in-textmate/</link>
		<comments>http://blog.nodeta.fi/2009/02/23/apidock-in-textmate/#comments</comments>
		<pubDate>Mon, 23 Feb 2009 17:21:16 +0000</pubDate>
		<dc:creator>Mikael Roos</dc:creator>
				<category><![CDATA[APIdock]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Rails-doc]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.nodeta.fi/?p=77</guid>
		<description><![CDATA[
First came Vim, and next Gaizka added APIdock integration to Emacs. Now perhaps the biggest favorite of most Ruby and Rails developers, myself included: Textmate! Courtesy of one of Nodeta&#8217;s own, Ville Lautanala aka Lautis, you can get the Textmate bundles with APIdock goodness for Ruby and Rails from github with just a couple of [...]]]></description>
			<content:encoded><![CDATA[<p><a href='http://blog.nodeta.fi/wp-content/uploads/2009/02/textmate-bundle.png'><img src="http://blog.nodeta.fi/wp-content/uploads/2009/02/textmate-bundle-300x114.png" alt="" title="Textmate with APIdock" width="300" height="114" style="float: right; margin: 1em;" /></a></p>
<p>First came <a href="http://blog.nodeta.fi/2009/02/19/apidock-vim-integration/">Vim</a>, and next <a href="http://github.com/gaizka">Gaizka</a> added <a href="http://github.com/gaizka/misc-scripts/blob/3a60c2cd41ba1e331e4fa6539d0c70b522a64dd4/dot-emacs/rails-apidock.el">APIdock integration to Emacs</a>. Now perhaps the biggest favorite of most Ruby and Rails developers, myself included: Textmate! Courtesy of one of Nodeta&#8217;s own, <a href="http://github.com/lautis">Ville Lautanala aka Lautis</a>, you can get the Textmate bundles with APIdock goodness for <a href="http://github.com/lautis/ruby-tmbundle/tree">Ruby</a> and <a href="http://github.com/lautis/ruby-on-rails-tmbundle/tree">Rails</a> from github with just a couple of simple git commands:</p>
<div class="codecolorer-container text vibrant" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:100%;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">% mkdir -p ~/Library/Application\ Support/Textmate/Bundles<br />
% cd ~/Library/Application\ Support/Textmate/Bundles<br />
% git clone git://github.com/lautis/ruby-on-rails-tmbundle.git &quot;Ruby on Rails.tmbundle&quot;<br />
% git clone git://github.com/lautis/ruby-tmbundle.git &quot;Ruby.tmbundle&quot;<br />
% osascript -e 'tell app &quot;TextMate&quot; to reload bundles'</div></div>
<p>Now, the keyboard shortcut</p>
<div class="codecolorer-container text vibrant" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:100%;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Control+h</div></div>
<p>gets you the page for the current word from APIdock.</p>
<p><img src="http://blog.nodeta.fi/wp-content/uploads/2009/02/apidock-textmate.png" alt="" title="APIdock Textmate Integration" class="alignnone size-medium wp-image-79" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nodeta.fi/2009/02/23/apidock-in-textmate/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Presenting at UraTiKAS, TKK</title>
		<link>http://blog.nodeta.fi/2009/02/22/presenting-at-uratikas-tkk/</link>
		<comments>http://blog.nodeta.fi/2009/02/22/presenting-at-uratikas-tkk/#comments</comments>
		<pubDate>Sun, 22 Feb 2009 14:20:06 +0000</pubDate>
		<dc:creator>Otto Hilska</dc:creator>
				<category><![CDATA[Rails]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[sponsor]]></category>
		<category><![CDATA[tkk]]></category>
		<category><![CDATA[uratikas]]></category>

		<guid isPermaLink="false">http://blog.nodeta.fi/?p=76</guid>
		<description><![CDATA[Even though some companies have publicly announced not to hire summer trainees, that&#8217;s definitely not the case at Nodeta. Our APIdock team from the last year is continuing also this summer, but in a bit different project (to be announced!). We also plan to hire a couple of new developers and designers.
We have a long [...]]]></description>
			<content:encoded><![CDATA[<p>Even though some companies have publicly announced not to hire summer trainees, that&#8217;s definitely not the case at Nodeta. Our APIdock team from the last year is continuing also this summer, but in a bit different project (to be announced!). We also plan to hire a couple of new developers and designers.</p>
<p>We have a long track record of sponsoring the university student organizations here in Finland. You can already find our logo from the websites of <a href="http://tietoteekkarikilta.fi/">Computer Science students at Tampere University of Technology</a>, <a href="http://m0.tietokilta.fi/">Computer Science students at Helsinki University of Technology</a>, <a href="http://tko-aly.fi/">Computer Science students at Helsinki University</a> and the <a href="http://kyykka.fi/">World Championships of Academic Kyykkä</a>.</p>
<p>Next week we&#8217;re once again having some great time with our long-time partner, <a href="http://tietokilta.fi/">Tietokilta</a>. On February 25th they&#8217;re hosting a recruiting event at Helsinki University of Technology (TKK), auditorium TU2.</p>
<p>We have a very tight 30 min. slot, but I&#8217;m trying to cover some interesting details about our own Scrum implementation, trying to explain the students why they should be spending their spare time with Ruby on Rails instead of something else, and I&#8217;m also going to present a small case study about one of our projects.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nodeta.fi/2009/02/22/presenting-at-uratikas-tkk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Breaking the silence</title>
		<link>http://blog.nodeta.fi/2008/10/26/breaking-the-silence/</link>
		<comments>http://blog.nodeta.fi/2008/10/26/breaking-the-silence/#comments</comments>
		<pubDate>Sun, 26 Oct 2008 14:44:04 +0000</pubDate>
		<dc:creator>Mikael Roos</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[office]]></category>

		<guid isPermaLink="false">http://blog.nodeta.fi/?p=64</guid>
		<description><![CDATA[It&#8217;s time to break the silence here on our blog. It&#8217;s been a crazy couple of months, we&#8217;ve moved office and been working on client projects full-day all at the same time. Unfortunately the client projects are walled by monstrous NDAs so I can&#8217;t really go into them. Let&#8217;s talk about our new office instead!
Our [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s time to break the silence here on our blog. It&#8217;s been a crazy couple of months, we&#8217;ve moved office and been working on client projects full-day all at the same time. Unfortunately the client projects are walled by monstrous NDAs so I can&#8217;t really go into them. Let&#8217;s talk about our new office instead!</p>
<p>Our new home is situated next to a <a href="http://www.siba.fi/en/">Sibelius Academy</a> building, so pretty much whenever you look out the window, you see young musical talents carrying instrument cases varying in size and shape. I could swear they have a lighter step and a little extra glee compared to the rest of us. </p>
<p><img src="http://blog.nodeta.fi/wp-content/uploads/2008/10/img_0062-225x300.jpg" alt="Meeting table" title="Meeting table" width="225" height="300" style="float: right; " class="alignright size-medium wp-image-66" /> </p>
<p><img src="http://blog.nodeta.fi/wp-content/uploads/2008/10/img_0053-300x225.jpg" alt="" title="46\&quot; Rock Band" width="300" height="225" class="alignnone size-medium wp-image-67" /></p>
<p>The office itself is shaping up to be a cool place. We&#8217;re not even close done decorating the place but we have gathered some basic necessities, like a 46&#8243; LCD TV and Rock Band. We also have a cherry wood meeting table. The new address is Kutomotie 9 C, 00380 Helsinki, Finland.</p>
<p><iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps/ms?hl=en&amp;ie=UTF8&amp;msa=0&amp;msid=114289390059780955085.00045a2870f3f5c0907aa&amp;ll=60.215646,24.870386&amp;spn=0.012769,0.043387&amp;t=h&amp;output=embed&amp;s=AARTsJrywap_7034ntebgs-ds7ftn9xMnQ"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nodeta.fi/2008/10/26/breaking-the-silence/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coping with the law</title>
		<link>http://blog.nodeta.fi/2008/06/05/coping-with-the-law/</link>
		<comments>http://blog.nodeta.fi/2008/06/05/coping-with-the-law/#comments</comments>
		<pubDate>Thu, 05 Jun 2008 18:56:12 +0000</pubDate>
		<dc:creator>Mikael Roos</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://blog.nodeta.fi/?p=22</guid>
		<description><![CDATA[I think everyone who participates in Scrum ought to know the essential laws that Scrum was created to deal with. But much more important, I think that the client must acknowledge them, since I do not believe it is possible to be successful at buying software without being fully aware of these fundamental laws, coping [...]]]></description>
			<content:encoded><![CDATA[<p>I think everyone who participates in Scrum ought to know the essential laws that Scrum was created to deal with. But much more important, I think that the client must acknowledge them, since <em>I do not believe it is possible to be successful at buying software without being fully aware of these fundamental laws</em>, coping with which is of utmost importance when it comes to developing software. It never hurts to remind oneself of the laws, that Scrum was created to deal with:</p>
<h3>Specifications and requirements will never be fully understood (Ziv&#8217;s law)</h3>
<p>Where your mind sees a square, the next guy&#8217;s sees a circle. Specifications should be documented but the maker of the specifications has to be fully available for the development team to ask questions and to communicate eye-to-eye. The maker of the specifications, who should be or at least strive to be the best expert of the actual requirements, absolutely cannot be a stranger to the development team.</p>
<h3>The users will never know what they want until the system is in production and maybe not even then (Humphrey&#8217;s law)</h3>
<p>
The users may also believe they need something they in actuality have no use for. Users customarily claim they need a feature for a business requirement that can often be covered much better by a very different feature. Users cannot make specifications. Users&#8217; feature requests obviously still need to be heard so the developers can come up with the right feature to cover the business requirement and empower the user to reach his goal. Users&#8217; goals and the software&#8217;s business requirements should be crystal clear to the developers and the developers need to show interest towards them.</li>
</p>
<h3>An interactive system can never be fully specified nor can it ever be fully tested (Wegner&#8217;s lemma)</h3>
<p>
Important to acknowledge, and just as important it is to understand that regardless of the impossibility, full test coverage, automated and manual, should be attempted to achieve. The specification of a software is always a work-in-progress, even after the software itself is &#8216;completed&#8217;. This needs to be accepted and specification documents need to be constantly edited during the process of developing the software.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nodeta.fi/2008/06/05/coping-with-the-law/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Baby&#8217;s got a brand new design</title>
		<link>http://blog.nodeta.fi/2008/05/28/babys-got-a-brand-new-design/</link>
		<comments>http://blog.nodeta.fi/2008/05/28/babys-got-a-brand-new-design/#comments</comments>
		<pubDate>Wed, 28 May 2008 07:16:56 +0000</pubDate>
		<dc:creator>Mikael Roos</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[layout]]></category>

		<guid isPermaLink="false">http://blog.nodeta.fi/?p=19</guid>
		<description><![CDATA[Does a good design make a blog better? If the design has LAB TUBES IN SPACE, then yes it definitely does. Things are so busy right now that I only had time to test the layout in Firefox 2/3, Safari and in IE7 (just to see it doesn&#8217;t work). I&#8217;ll do IE-fixing and some finetuning [...]]]></description>
			<content:encoded><![CDATA[<p>Does a good design make a blog better? If the design has LAB TUBES IN SPACE, then yes it definitely does. Things are so busy right now that I only had time to test the layout in Firefox 2/3, Safari and in IE7 (just to see it doesn&#8217;t work). I&#8217;ll do IE-fixing and some finetuning when I get the time.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nodeta.fi/2008/05/28/babys-got-a-brand-new-design/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Instant messaging: how hard can it be</title>
		<link>http://blog.nodeta.fi/2008/04/12/instant-messaging-how-hard-can-it-be/</link>
		<comments>http://blog.nodeta.fi/2008/04/12/instant-messaging-how-hard-can-it-be/#comments</comments>
		<pubDate>Sat, 12 Apr 2008 15:14:48 +0000</pubDate>
		<dc:creator>Otto Hilska</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[instant messaging]]></category>
		<category><![CDATA[jabber]]></category>
		<category><![CDATA[rants]]></category>

		<guid isPermaLink="false">http://blog.nodeta.fi/?p=9</guid>
		<description><![CDATA[Skype is fine, but because of its closed nature, it cannot be used in projects with a more strict security policy &#8211; something is transferred over public Internet, but we cannot know what.
Our need is somewhat simple: we have several people at the office in Helsinki, and a couple of guys remotely at Espoo or [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.skype.com/">Skype</a> is fine, but because of its closed nature, it cannot be used in projects with a more strict security policy &#8211; something is transferred over public Internet, but we cannot know what.</p>
<p>Our need is somewhat simple: we have several people at the office in Helsinki, and a couple of guys remotely at Espoo or Tampere. We&#8217;d like to have a very simple group chat with only the minimum features: chat history and a bell indicating that someone has said something.</p>
<p><a href="http://www.jabber.org/">Jabber</a> is a nice protocol, but its implementation mostly sucks. We tried <a href="http://www.jabber.org/clients/psi">Psi</a> because it had received lots of great reviews, but it wasn&#8217;t quite what we expected: the user interface looked like my first Java AWT hack and it didn&#8217;t even have a way to notify that you&#8217;ve received a new message (you know those blinking lights in the taskbar). We also tried some others, but they weren&#8217;t any better. Some had nice emoticon sets, though.</p>
<p>Finally we found <a href="http://www.jabber.org/clients/spark">Spark</a>. It</p>
<ul>
<li>has a simple and clean UI</li>
<li>is written in Java(!)</li>
<li>supports emoticons(!)</li>
<li>has incoming message notifications</li>
<li>shows chat history</li>
<li>uses a SSL secured connection out-of-the-box</li>
<li>doesn&#8217;t require too much configuration</li>
</ul>
<p>Basically all we need! Not to mention that the server-side counterpart (<a href="http://www.igniterealtime.org/projects/openfire/index.jsp">Openfire</a>) was really easy to install. Not as good as Skype, but almost there.<br />

<a href='http://blog.nodeta.fi/2008/04/12/instant-messaging-how-hard-can-it-be/spark_contacts/' title='spark_contacts'><img width="150" height="150" src="http://blog.nodeta.fi/wp-content/uploads/2008/04/spark_contacts-150x150.png" class="attachment-thumbnail" alt="Contacts in Spark" title="spark_contacts" /></a>
<a href='http://blog.nodeta.fi/2008/04/12/instant-messaging-how-hard-can-it-be/spark_massage/' title='spark_massage'><img width="150" height="150" src="http://blog.nodeta.fi/wp-content/uploads/2008/04/spark_massage-150x150.png" class="attachment-thumbnail" alt="Group chat with Spark" title="spark_massage" /></a>
</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nodeta.fi/2008/04/12/instant-messaging-how-hard-can-it-be/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
