<?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>Luminis Software Development &#187; Albert Oudenampsen</title>
	<atom:link href="http://lsd.luminis.eu/author/alberto/feed/" rel="self" type="application/rss+xml" />
	<link>http://lsd.luminis.eu</link>
	<description></description>
	<lastBuildDate>Wed, 28 Dec 2011 20:44:50 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>nl</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Heroku</title>
		<link>http://lsd.luminis.eu/heroku/</link>
		<comments>http://lsd.luminis.eu/heroku/#comments</comments>
		<pubDate>Wed, 29 Dec 2010 15:12:20 +0000</pubDate>
		<dc:creator>Albert Oudenampsen</dc:creator>
				<category><![CDATA[Cloud]]></category>

		<guid isPermaLink="false">http://lsd.luminis.eu/?p=1332</guid>
		<description><![CDATA[De laatste jaren houd ik me meer met requirements bezig dan met programmeren. Soms bouw ik een prototype of een proof-of-concept en dan gebruik ik meestal Ruby-on-Rails. Dat ontwikkelt zo lekker snel.
Ik zou natuurlijk ook Groovy-on-Grails kunnen gebruiken, dat gaat net zo snel maar daar zitten van die zware java en hibernate libraries onder. Rails [...]]]></description>
			<content:encoded><![CDATA[<p>De laatste jaren houd ik me meer met requirements bezig dan met programmeren. Soms bouw ik een prototype of een proof-of-concept en dan gebruik ik meestal Ruby-on-Rails. Dat ontwikkelt zo lekker snel.<br />
Ik zou natuurlijk ook Groovy-on-Grails kunnen gebruiken, dat gaat net zo snel maar daar zitten van die zware java en hibernate libraries onder. Rails daarintegen is een lekker lichtgewicht taaltje en de ontwikkelomgeving (ik gebruik TextMate) start zelfs op mijn bejaarde mac binnen enkele seconden. Bovendien is de syntax van ruby erg intuitief. Ideaal voor roestige programmeurs zoals ik.</p>
<p>Tot nog toe was het probleem alleen: hoe maak ik mijn prototype beschikbaar voor mijn klanten? Systeembeheerders worden niet echt vrolijk als ze de webserver moeten inrichten voor rails applicaties.</p>
<p>Maar&#8230;.. dan is er Heroku, een &#8220;Platform as a Service&#8221; speciaal voor rails applicaties. Hoe bruikbaar is dat?</p>
<p>Met &#8220;Platform as a service&#8221; heb ik altijd de angst dat je in je code al rekening moet houden met platform. Oftewel, als je voor een bepaalde PaaS kiest, dat zit je eraan vast. Maar Heroku is een verrassend elegante implementatie. Binnen 15 minuten had ik me geregistreerd, SSH keys aangemaakt, mijn applicatie neergezet en de database geconfigureerd. En bovenal, code aanpassingen waren niet nodig.</p>
<p>Zo doe je dat:<br />
Stap 1. Maak een Rails applicatie.</p>
<p>Stap 2. Maak een GIT repository aan. Vanzelfsprekend is het nog handiger om dat te doen tijdens het ontwikkelen van de rails applicatie, maar anders gaat dat met drie kreten in een terminal window.<br />
<code>git init<br />
git add .<br />
git commit -m initial</code></p>
<p>Verder heb je nog een GitHub account en SSH keys nodig. Als je dat nog niet hebt dan staat hier beschreven hoe dat moet: http://help.github.com/mac-key-setup/ (Windows en Linux beschijvingen zijn er natuurlijk ook).</p>
<p>Stap 3. Zet alles op Heroku.<br />
Eerst als nieuwe klant registreren bij Heroku. Dan een gem installeren:<br />
<code><br />
&gt;sudo gem install heroku<br />
</code></p>
<p>De SSH key bij heroku bekend maken:<br />
<code><br />
&gt;heroku keys:add<br />
</code></p>
<p>Create een omgeving in Heroku: &gt;<br />
<code><br />
&gt; heroku create<br />
Creating furious-sword-84.... done<br />
Created http://furious-sword-84.heroku.com/ | git@heroku.com:furious-sword-84.git<br />
Git remote heroku added<br />
</code></p>
<p>Heroku bedenkt prachtige krijgshaftige namen voor de applicatie, zoals hier &#8220;furious-sword-84&#8243;, de naam kan je natuurlijk aanpassen. Ik heb de naam laten staan en op http://furious-sword-84.heroku.com kan je nu mijn InsultMe applicatie vinden. InsultMe heeft overigens geen enkele serieuze bedoeling, het is slechts mijn versie van HelloWorld.</p>
<p>Nu de sources overbrengen naar Heroku:<br />
<code><br />
&gt;git push heroku master<br />
</code></p>
<p>De database tabellen aanmaken:<br />
<code><br />
&gt; heroku rake db:migrate<br />
</code></p>
<p>En nog wat initiele vulling voor de tabellen door middel van fixtures:<br />
<code><br />
&gt; heroku rake db:fixtures:load<br />
</code></p>
<p>Of de locale database overzetten naar de Heroku database:<br />
<code><br />
&gt; heroku db:push<br />
</code></p>
<p>Een database terughalen kan natuurlijk ook:<br />
<code><br />
&gt; heroku db:pull<br />
</code></p>
<p>That&#8217;s all!</p>
<p>Bekende key-factoren voor succesvolle &#8220;as a Service&#8221; producten zijn &#8220;eenvoud&#8221;, &#8220;prijs&#8221; met in ieder geval een gratis instapniveau en &#8220;Kwaliteit&#8221;. Heroku voldoet ruimschoots aan de &#8220;eenvoud&#8221; factor. Voor de &#8220;free&#8221; versie mag de database 5MB groot worden (dat zou wat meer mogen zijn) en krijg je de beschikking over 1 Dyno. De performance van die ene Dyno lijkt overeen te komen met de applicatie draaien onder WEBrick op mijn MacBook (ja, ook als ik het gebruik met een serieuzere applicatie dan InsultMe). Voor grotere applicaties is het eenvoudig om wat op-te-schalen. Ik heb me nooit verdiept in PaaS-pricing, maar de kosten hiervoor lijken me reëel en komen in de buurt van de MS-Azure prijzen (ik hoor het graag als dit niet zo is).<br />
En over &#8220;Kwaliteit&#8221;: het moet werken, gewoon altijd. Ik heb nog niet meegemaakt dat mijn applicaties niet te benaderen waren. Ook hiervoor ben ik benieuwd naar ervaringen van anderen.</p>
]]></content:encoded>
			<wfw:commentRss>http://lsd.luminis.eu/heroku/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Who writes my user stories</title>
		<link>http://lsd.luminis.eu/who-writes-my-user-stories/</link>
		<comments>http://lsd.luminis.eu/who-writes-my-user-stories/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 06:44:44 +0000</pubDate>
		<dc:creator>Albert Oudenampsen</dc:creator>
				<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://lsd.luminis.nl/?p=961</guid>
		<description><![CDATA[The user story is one of the useful initiatives that came out of the Agile movement. It expresses a very specific user need. Usually it&#8217;s written in just a few sentences in the language of the users. So any user and developer should be able to read a user story and immediately understand it.
User stories [...]]]></description>
			<content:encoded><![CDATA[<p>The user story is one of the useful initiatives that came out of the Agile movement. It expresses a very specific user need. Usually it&#8217;s written in just a few sentences in the language of the users. So any user and developer should be able to read a user story and immediately understand it.</p>
<p>User stories gained popularity after realizing that developers had to start working with users throughout the project to understand their needs. It certainly works better than letting a developer discuss the needs with a user, which tends to end after a few minutes in a &#8220;Yes, I get it! No worries, know what you need&#8221;, followed by a near endless code-and-fix cycles.</p>
<p>So user stories are great, but who writes them? Hmmm, users probably. After all it&#8217;s their story. Question is &#8220;can users write user stories&#8221;? The answer is simple: it depends….</p>
<p>Certainly some users can write user stories. Sysadmins can, helpdesk and application support too. But the &#8220;real&#8221; users, can they write user stories? I don&#8217;t know about that. When you leave the writing of user stories in the hands of the users that can write user stories you may end up with &#8220;unbalanced systems&#8221; like the ones in the famous what-if-airplanes picture. After all, you don&#8217;t build a system just to do application support or system admin (unless that is your business). You build systems to increase &#8220;business value&#8221; or whatever greater purpose and for that you need the &#8220;real&#8221; users. <br/><br />
<img src="http://lsd.luminis.nl/wp-content/uploads/2010/07/what_if_airplanes2.JPG" alt="what_if_airplanes" title="what_if_airplanes" width="825" height="540" class="alignleft size-full wp-image-966" />
</p>
<p>As stated before: &#8220;any user and developer should be able to read a user story and immediately understand it&#8221;. If it is that simple, it cannot be too hard to learn how to write a user story. </p>
<p>A user story consists of two parts:<br/><br />
-Just a few lines of text that describe the problem;<br/><br />
-A Test that serves as an example and that can be used to determine when a story is complete.<br/><br />
A simple template for this can be found here: <a href="http://cukes.info">cukes.info</a><br/><br />
All very simple, and I bet it is possible to make a training course with exercises were the stories and their tests just drip of the table….</p>
<p>Unfortunately, most systems we build nowadays are not that simple. Recently I explained user stories to a group of barristers who were asked to describe their new system. After the theoretical part it was time for some their first user story. Not some lab example a real life one.<br/><br />
Barrister: how do we start?<br/><br />
Me: just go over the things you do during the day and see where your new system system comes in<br/><br />
Barrister: I visit people with a legal document, hand it over, explain the implications and sometimes I give them advice or propose a solution. Then I make notes on their file. That&#8217;s it.<br/><br />
Me: Hmmm, that is too simple, there must be more&#8230;..<br/><br />
The discussion continued for quite some time and finally we found that the user story was about efficiency. In the morning they receive a pile of documents for that day, they order them by address, program their navigation system and they make their visits.</p>
<p>Or the cukes.info template:<br/><br />
<code>In order to make as many visits as possible during a day<br/><br />
As a barrister<br/><br />
I want to receive an daily workload optimized for traveling time and in such a way that I spend the least possible time in programming my navigation system.</code>
</p>
<p>Barrister: not in a million years I would have come up with this user story! And how do I write a test for this? Is the navigation system part of the whole system? And what if there are traffic jams or rush hours should that be in there too? And what about different makes of navigation systems?</p>
<p>My conclusion: help your users in writing user stories and certainly help them in writing test scenario&#8217;s. </p>
]]></content:encoded>
			<wfw:commentRss>http://lsd.luminis.eu/who-writes-my-user-stories/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

