<?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>River flows...</title>
	<atom:link href="http://riverflows.co.uk/feed/" rel="self" type="application/rss+xml" />
	<link>http://riverflows.co.uk</link>
	<description>...waves burn in their marks</description>
	<lastBuildDate>Sun, 16 Oct 2011 19:42:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>The key idea behind CreativeOS &#8211; or why the &#8220;there&#8217;s an App for that&#8221; does not always work</title>
		<link>http://riverflows.co.uk/2011/10/16/the-key-idea-behind-creativeos-or-why-the-theres-an-app-for-that-does-not-always-work/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-key-idea-behind-creativeos-or-why-the-theres-an-app-for-that-does-not-always-work</link>
		<comments>http://riverflows.co.uk/2011/10/16/the-key-idea-behind-creativeos-or-why-the-theres-an-app-for-that-does-not-always-work/#comments</comments>
		<pubDate>Sun, 16 Oct 2011 19:42:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CreativeOS]]></category>
		<category><![CDATA[creative flow]]></category>
		<category><![CDATA[creative process]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac OS]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[software applications]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://riverflows.co.uk/?p=33</guid>
		<description><![CDATA[…and a great idea just]]></description>
			<content:encoded><![CDATA[<blockquote><p>…and a great idea just hit me this morning.</p>
<p>I wanted to create something new, to write about &#8220;wind farms&#8221; as personal (digital) information hubs in an age where the media really behaves like the weather; jet streams, siroccos, tailwinds and sandstorms…</p>
<p>Several things crossed my mind lightning fast &#8211; as usual during a typical creative &#8220;moment&#8221;.</p></blockquote>
<p>Let&#8217;s take the story from above to illustrate some of the key concepts behind CreativeOS.</p>
<p>When you are fully immersed in your thoughts, you are &#8220;<a title="flow" href="http://en.wikipedia.org/wiki/Flow_(psychology)" target="_blank">in the flow</a>&#8220;, you don&#8217;t necessarily think about &#8220;formats&#8221;, what the ultimate creation will &#8220;look like&#8221;, let alone about the tools you&#8217;re going to use to &#8220;materialise&#8221; the idea.</p>
<p>The creative activity on a computer involves the use of a couple of software tools.</p>
<p>To write and edit texts you need a <a title="text processor" href="http://en.wikipedia.org/wiki/Word_processor" target="_blank">text processor</a> (1) application.</p>
<p>To search for photos and images you need either a <a title="desktop search" href="http://en.wikipedia.org/wiki/Desktop_search" target="_blank">local search engine</a> (2a) or a <a title="web browser" href="http://en.wikipedia.org/wiki/Web_browser" target="_blank">web browser</a> (2b) if you&#8217;re searching online.</p>
<p>To make references you need to find the sources and &#8220;link&#8221; them to your piece of work &#8211; in most cases you&#8217;re going to use hyperlinks &#8211; so you need an application that supports the editing of <a title="HTML" href="http://en.wikipedia.org/wiki/HTML" target="_blank">HTML</a> (3).</p>
<p>To publish your &#8220;article&#8221; you need a <a title="blog software" href="http://en.wikipedia.org/wiki/Blog_software" target="_blank">publishing platform</a> (4) &#8211; like <a title="WordPress" href="http://wordpress.org/" target="_blank">WordPress</a>. That&#8217;s another software application you need to deal with.</p>
<p>So far so good, but what happens if I want to also</p>
<ul>
<li>send the &#8220;article&#8221; as an email message to some people, I want to</li>
<li>tweet about it on several web portals, want to</li>
<li>create a PDF version of it for local archiving, want to</li>
<li>print it, and last but not least I want to</li>
<li>copy it over to my pen drive…</li>
</ul>
<p>And I want to do this ALL <em><strong>AT THE SAME TIME</strong></em>!</p>
<p>OK. Let&#8217;s go one by one.</p>
<p>Besides the text editor I need an <a title="email client" href="http://en.wikipedia.org/wiki/Email_client" target="_blank">email client</a> (5) and I need to copy the content or attach the article to an email message.</p>
<p>I also need a <a title="Twitter clients" href="http://www.twitstat.com/twitterclientusers.html" target="_blank">Twitter client</a> (6) and need to create a TinyURL to link to the online copy of the article.</p>
<p>I need a &#8220;converter&#8221; application (7) that can save my article as a <a title="Portable Document Format" href="http://en.wikipedia.org/wiki/Portable_Document_Format" target="_blank">PDF</a> file.</p>
<p>I need to send the article to the printer. That may require using / opening up another application (8).</p>
<p>Also, I need to copy it to my pendrive. Using a <a title="file manager" href="http://en.wikipedia.org/wiki/File_manager" target="_blank">file manager</a> app (9).</p>
<p>It does not matter whether you&#8217;re using <a title="Windows" href="http://windows.microsoft.com/en-US/windows/home" target="_blank">Windows</a>, <a title="Linux" href="https://www.linux.com/" target="_blank">Linux</a> or <a title="Mac OS X" href="http://www.apple.com/macosx/" target="_blank">Mac OS</a>.</p>
<p>All three major operating systems force you to use several (8-9) software applications to achieve your goal.</p>
<p>You have to open several windows on the screen, copy and paste your work from and into several applications.</p>
<p>That&#8217;s fine, we all used to do that.</p>
<p><strong>But what if there&#8217;s a better way?</strong></p>
<p><em>Enter CreativeOS.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://riverflows.co.uk/2011/10/16/the-key-idea-behind-creativeos-or-why-the-theres-an-app-for-that-does-not-always-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Demystifying the role &#8220;Software Architect&#8221; – part 2: infrastructure, hardware and software tools</title>
		<link>http://riverflows.co.uk/2011/06/15/demystifying-the-role-software-architect-part-2-infrastructure-hardware-and-software-tools/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=demystifying-the-role-software-architect-part-2-infrastructure-hardware-and-software-tools</link>
		<comments>http://riverflows.co.uk/2011/06/15/demystifying-the-role-software-architect-part-2-infrastructure-hardware-and-software-tools/#comments</comments>
		<pubDate>Wed, 15 Jun 2011 20:40:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Software architecture]]></category>
		<category><![CDATA[Work / job]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[continuouos integration]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[technical debt]]></category>
		<category><![CDATA[virtualization]]></category>

		<guid isPermaLink="false">http://riverflows.co.uk/?p=25</guid>
		<description><![CDATA[&#8220;&#8230;if the hardware is the]]></description>
			<content:encoded><![CDATA[<blockquote><p>&#8220;&#8230;if the hardware is the brain and sinew of our products the software in them is their soul&#8230;&#8221;</p></blockquote>
<p style="text-align: right;"><em>(<a title="2011 WWDC" href="http://events.apple.com.edgesuite.net/11piubpwiqubf06/event/" target="_blank">Steve Jobs, June 6, 2011 WWDC keynote, 02:26</a>)</em></p>
<p>This article is about the brains and the souls, the tools of the trade.</p>
<p>For a medium sized company (100 &#8211; 200 employee) it is safe to assume that besides the personal computers and laptops there is some sort of internal virtualized infrastructure as well.</p>
<p>As a software architect you&#8217;re probably less interested in the actual hardware parameters (number of CPU cores, amount of RAM, etc.) what&#8217;s really important though is the level of virtualization.</p>
<p>Study at least the most popular virtualization tools like <a title="Xen" href="http://www.xen.org/" target="_blank">Xen</a> or <a title="VMware" href="http://www.vmware.com/" target="_blank">VMware</a>.</p>
<p>Design and build your development environment: DEV &gt; STAGING &gt; QA &gt; INTEGRATION &gt; LIVE</p>
<p>Automate where possible: use continuouos integration (<a title="Hudson" href="http://hudson-ci.org/" target="_blank">Hudson</a> / <a title="Jenkins" href="http://jenkins-ci.org/" target="_blank">Jenkins</a>) to script and automate the most time consuming processes: build, test, report, package, deploy regularly.</p>
<p>Use scripting to test your applications (<a title="Selenium" href="http://seleniumhq.org/" target="_blank">Selenium</a>).</p>
<p>On your development PC / laptop keep your main OS clean but use local virtualization (<a title="VirtualBox" href="http://www.virtualbox.org/" target="_blank">VirtualBox</a>) to maintain several versions of the DEV / STAGING environment.</p>
<p>Did I mention to master Unix / Linux on the way?</p>
<p>Check what OS is running on the production servers, clone the configuration and bring it &#8220;down&#8221; to your STAGING and DEV environments.</p>
<p>Even better if you automate those steps as well, with <a title="Puppet" href="http://www.puppetlabs.com/" target="_blank">Puppet</a> for example.</p>
<p>Once you&#8217;ve nailed the build &#8211; test &#8211; report &#8211; package &#8211; deploy process and you keep those processes alive you can have some rest.</p>
<p>Chose an IDE and try to make it the standard within the company.</p>
<p>If you&#8217;re building web apps install several browsers and use the user profile features (e.g. in Firefox) to manage multiple user sessions at once: log in as &#8220;admin&#8221; in one window and as a normal user in another.</p>
<p>Learn to use at least one diagramming tool well (<a title="yEd" href="http://www.yworks.com/en/products_yed_about.html" target="_blank">yEd</a>, <a title="Inkscape" href="http://inkscape.org/" target="_blank">Inkscape</a>, <a title="ArgoUML" href="http://argouml.tigris.org/" target="_blank">ArgoUML</a>), your manager / boss / sales and marketing people will love you for that.</p>
<p>Use a tool to manage your backlog (<a title="XPlanner" href="http://www.xplanner.org/" target="_blank">XPlanner</a>, <a title="Redmine" href="http://www.redmine.org/" target="_blank">Redmine</a>).</p>
<p>Set up an internal knowledge base &#8211; wiki style.</p>
<p>Maintain a secure password database &#8211; ideally use a tool that allows you to build a hierarchical structure or at least use tagging for the entries.<br />
At the moment in my company password database (<a title="KeePassX" href="http://www.keepassx.org/" target="_blank">KeePassX</a>) I have 200+ unique entries.</p>
<p>Back up your PC / laptop regularly.</p>
<p>&#8230;and most importantly: version control your code base. Keep a central location (<a title="Subversion" href="http://subversion.tigris.org/" target="_blank">Subversion</a>) &#8211; or use a distributed tool (<a title="Git" href="http://git-scm.com/" target="_blank">Git</a>). Or use both at the same time. It&#8217;s great fun! <img src='http://riverflows.co.uk/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Unless you&#8217;re working at a startup &#8211; or working on a greenfield project you&#8217;re most likely to meet your greatest enemy:</p>
<p><em><a title="technical debt" href="http://en.wikipedia.org/wiki/Technical_debt" target="_blank">TECHNICAL DEBT</a></em></p>
<p>Old hardware can be replaced, software tools require extra care and planning if they need an update.</p>
<p>Not to mention your own code and legacy systems that you need to maintain.</p>
<p>There is no silver bullet in this area just hard work and better planning next time&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://riverflows.co.uk/2011/06/15/demystifying-the-role-software-architect-part-2-infrastructure-hardware-and-software-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Demystifying the role &#8220;Software Architect&#8221; &#8211; part 1: recruitment</title>
		<link>http://riverflows.co.uk/2011/06/04/demystifying-the-role-software-architect-part-1-recruitment/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=demystifying-the-role-software-architect-part-1-recruitment</link>
		<comments>http://riverflows.co.uk/2011/06/04/demystifying-the-role-software-architect-part-1-recruitment/#comments</comments>
		<pubDate>Sat, 04 Jun 2011 11:14:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Work / job]]></category>
		<category><![CDATA[job role]]></category>
		<category><![CDATA[recruitment]]></category>

		<guid isPermaLink="false">http://riverflows.co.uk/?p=18</guid>
		<description><![CDATA[humane : marked by compassion,]]></description>
			<content:encoded><![CDATA[<blockquote><p>humane</p>
<p><a title="humane" href="http://www.merriam-webster.com/dictionary/humane" target="_blank">: marked by compassion, sympathy, or consideration for humans [or animals]</a></p></blockquote>
<p>It may surprise you that in the very first article about a serious IT topic I&#8217;m not talking about software, hardware, or some super-popular topic like the cloud.</p>
<p>I&#8217;m talking about the single most important (and still less understood) component of every company and IT system: humans.</p>
<p>As a software architect you simply cannot work in isolation, the system is already too complex for a single person to fully grasp &#8211; I know deep in your soul you&#8217;re probably a lonely &#8220;hacker&#8221;, but &#8211; you have to work with others. What&#8217;s more: it is your task to find <del>good</del> <em><strong>great</strong></em> people who can help you succeed.</p>
<p>Software architecture is usually a hands-on role but you cannot code everything yourself:</p>
<ul>
<li>it is simply not possible</li>
<li>you have to share your ideas, strategy, namespace with others very early on to future-proof the system.</li>
</ul>
<p>As a software architect you also act as a team leader: you work very closely with the software engineers.</p>
<p><em>Recruitment is hard.</em> Finding the best candidate who:</p>
<ul>
<li>can do the job</li>
<li>is willing to do the job</li>
<li>is available, and</li>
<li>within budget?</li>
</ul>
<p>Tough.</p>
<h3>How can you find the best candidates?</h3>
<p>Well, the very best ones are most likely:</p>
<ul>
<li>never available on the market,</li>
<li>do something cool already, so they don&#8217;t want to change,</li>
<li>way over your budget.</li>
</ul>
<h3>So how do you recruit?</h3>
<p>The very first thing you can (and must) do is network. Go and attend local IT workshops, conferences, join local communities. Talk to people.</p>
<p>Second: ask your former colleagues and friends. They may know someone who can be a good fit.</p>
<p>Also, you have to establish and maintain good relationships with recruitment agencies.</p>
<p>You have to review CVs, filter out the top 3-5 and you need to invite them for an interview.</p>
<p>Manage your time: prepare job descriptions, review CVs, arrange interviews, book meeting rooms, allocate time for feedback.</p>
<p>During the interview you have to introduce the company &#8211; emphasize the benefits a potential new colleague or contractor can gain, and here I&#8217;m not talking about purely financial benefits. You are most likely a &#8220;hacker&#8221; yourself, so there are more important things beyond money: the knowledge and experience you can gain while searching for the &#8220;highs&#8221;.</p>
<p>As a team leader you need to focus on scross-functional skills as well: experience in continuouos integration, code reviews, QA, documentation are all very key competencies.</p>
<h4>Skills required:</h4>
<ul>
<li>empathy</li>
<li>patience</li>
<li>time management</li>
<li>e-communication skills (Skype, Twitter, email, forums, etc.)</li>
<li>digital document management skills (prepare, manage,version control, archive job descriptions, CVs, etc.)</li>
<li>the ability to:
<ul>
<li>accept and tolerate cultural differences</li>
<li>ask good questions</li>
<li>delegate tasks (e.g. preparing contracts) to HR</li>
</ul>
</li>
<li>good language / speaking skills (note: English is not my mother tongue)</li>
<li>learn the recruitment jargon</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://riverflows.co.uk/2011/06/04/demystifying-the-role-software-architect-part-1-recruitment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Demystifying the role &#8220;Software Architect&#8221;</title>
		<link>http://riverflows.co.uk/2011/06/04/demystifying-the-role-software-architect/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=demystifying-the-role-software-architect</link>
		<comments>http://riverflows.co.uk/2011/06/04/demystifying-the-role-software-architect/#comments</comments>
		<pubDate>Sat, 04 Jun 2011 10:32:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Software architecture]]></category>
		<category><![CDATA[Work / job]]></category>
		<category><![CDATA[job role]]></category>
		<category><![CDATA[job title]]></category>
		<category><![CDATA[satellite broadband]]></category>
		<category><![CDATA[software architect]]></category>

		<guid isPermaLink="false">http://riverflows.co.uk/?p=7</guid>
		<description><![CDATA[Introduction The following series of]]></description>
			<content:encoded><![CDATA[<h2>Introduction</h2>
<p>The following series of articles are based on my personal experiences gained in the past year working as a &#8220;Senior Software Architect&#8221; at a super-cool telecom company.</p>
<h3>The scene</h3>
<p><em>Two words: Satellite. Broadband.</em></p>
<p><em>&#8230;and one more: Combined.</em></p>
<p>On the one hand you&#8217;ve got the space industry with it&#8217;s &#8220;sky-high&#8221; level of entry on it&#8217;s own. On the other hand you&#8217;ve got the already complex &#8220;down-to-earth&#8221; reality of the internet service providers.</p>
<p>But it&#8217;s real: you can use a communication satellite to offer broadband internet services to areas where other means of connectivity is not feasible. Being the &#8220;software architect&#8221; in this realm is full of challenges but it&#8217;s great fun.</p>
<h3>The role</h3>
<p><em>In my job title I&#8217;ve got this word &#8220;senior&#8221; which always makes me smile: I take it means that I&#8217;ve reached too high too young. <img src='http://riverflows.co.uk/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </em></p>
<h4>So what do I do?</h4>
<p>In the next couple of articles I&#8217;m going to cover all aspects of my day-to-day job simply to give you an idea of what skills and experiences are required by this role.</p>
<p><em>&#8230;you know, just in case you want to end up in a similar role one day&#8230;</em></p>
]]></content:encoded>
			<wfw:commentRss>http://riverflows.co.uk/2011/06/04/demystifying-the-role-software-architect/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

