<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Keeping it brief - Pietro Polsinelli's blog</title>
	<atom:link href="http://pietro.open-lab.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://pietro.open-lab.com</link>
	<description>This is the blog of Pietro Polsinelli. Contains sparse reflections on my life and surrounding events</description>
	<lastBuildDate>Mon, 01 Mar 2010 15:12:55 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='pietro.open-lab.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/9938ad53c6ef19ea814f8e5d4af7b159?s=96&#038;d=http://s2.wp.com/i/buttonw-com.png</url>
		<title>Keeping it brief - Pietro Polsinelli's blog</title>
		<link>http://pietro.open-lab.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://pietro.open-lab.com/osd.xml" title="Keeping it brief &#8211; Pietro Polsinelli&#8217;s blog" />
	<atom:link rel='hub' href='http://pietro.open-lab.com/?pushpress=hub'/>
		<item>
		<title>Some books helpful for product development and marketing</title>
		<link>http://pietro.open-lab.com/2010/03/01/some-books-helpful-for-product-development-and-marketing/</link>
		<comments>http://pietro.open-lab.com/2010/03/01/some-books-helpful-for-product-development-and-marketing/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 15:04:35 +0000</pubDate>
		<dc:creator>Pietro Polsinelli</dc:creator>
				<category><![CDATA[software development]]></category>
		<category><![CDATA[software marketing]]></category>
		<category><![CDATA[learing software development]]></category>
		<category><![CDATA[learning software marketing]]></category>
		<category><![CDATA[list of books for marketing]]></category>
		<category><![CDATA[list of books for software development]]></category>

		<guid isPermaLink="false">http://polsinelli.wordpress.com/2010/03/01/some-books-helpful-for-product-development-and-marketing/</guid>
		<description><![CDATA[In the last three years it has frequently happened that by reading a book and getting in depth knowledge about some of the diverse activities needed in software product development and marketing, we found out that we were doing something wrong, or were about to. Sometimes simple changes in policy have quickly lead to direct [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pietro.open-lab.com&blog=6072057&post=747&subd=polsinelli&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>In the last three years it has frequently happened that by reading a book and getting <strong>in depth</strong> knowledge about some of the diverse activities needed in software product development and marketing, we found out that we were doing something wrong, or were about to. Sometimes simple changes in policy have quickly lead to direct increases in sales – so its not “just theory”.</p>
<p>These are among the books  that have most influenced us:</p>
<p><a href="http://polsinelli.files.wordpress.com/2010/03/07.jpg"><img style="border:0 none;display:block;margin-left:auto;margin-right:auto;" title="Open Lab's books     " src="http://polsinelli.files.wordpress.com/2010/03/07_thumb.jpg?w=604&#038;h=312" border="0" alt="OLYMPUS DIGITAL CAMERA         " width="604" height="312" /></a></p>
<p>Some of the beloved / informative or both are not currently in Open Lab, because some of us is reading one or is hiding it at home, among which:</p>
<table border="0" cellspacing="2" cellpadding="2" width="637">
<tbody>
<tr>
<td width="127" valign="top"><a href="http://polsinelli.files.wordpress.com/2010/03/image.png"><img style="display:block;margin-left:auto;margin-right:auto;border-width:0;" title="image" src="http://polsinelli.files.wordpress.com/2010/03/image_thumb.png?w=120&#038;h=152" border="0" alt="image" width="120" height="152" /></a></td>
<td width="112" valign="top"><a href="http://polsinelli.files.wordpress.com/2010/03/image1.png"><img style="display:block;float:none;margin-left:auto;margin-right:auto;border-width:0;" title="image" src="http://polsinelli.files.wordpress.com/2010/03/image_thumb1.png?w=105&#038;h=152" border="0" alt="image" width="105" height="152" /></a></td>
<td width="114" valign="top"><a href="http://polsinelli.files.wordpress.com/2010/03/image2.png"><img style="display:block;float:none;margin-left:auto;margin-right:auto;border-width:0;" title="image" src="http://polsinelli.files.wordpress.com/2010/03/image_thumb2.png?w=107&#038;h=156" border="0" alt="image" width="107" height="156" /></a></td>
<td width="163" valign="top"><a href="http://polsinelli.files.wordpress.com/2010/03/image3.png"><img style="display:block;float:none;margin-left:auto;margin-right:auto;border-width:0;" title="image" src="http://polsinelli.files.wordpress.com/2010/03/image_thumb3.png?w=156&#038;h=156" border="0" alt="image" width="156" height="156" /></a></td>
<td width="107" valign="top"><a href="http://polsinelli.files.wordpress.com/2010/03/image4.png"><img style="display:block;float:none;margin-left:auto;margin-right:auto;border-width:0;" title="image" src="http://polsinelli.files.wordpress.com/2010/03/image_thumb4.png?w=100&#038;h=138" border="0" alt="image" width="100" height="138" /></a></td>
</tr>
</tbody>
</table>
<p><a href="http://polsinelli.files.wordpress.com/2010/03/01.jpg"><img style="border:0 none;display:inline;margin:10px;" title="Knuth's books" src="http://polsinelli.files.wordpress.com/2010/03/01_thumb.jpg?w=200&#038;h=252" border="0" alt="OLYMPUS DIGITAL CAMERA" width="200" height="252" align="left" /></a>Our software house is not formally a startup, though product development has changed so much in the last 12 months that we are proceeding as a startup. There are many nice books from the past in our libraries, whose content is always valid.</p>
<p>-</p>
<p>Also a section for the IT guys:</p>
<p><a href="http://polsinelli.files.wordpress.com/2010/03/04.jpg"><img style="border:0 none;display:block;margin-left:auto;margin-right:auto;" title="Open Lab's hackers books       " src="http://polsinelli.files.wordpress.com/2010/03/04_thumb.jpg?w=362&#038;h=274" border="0" alt="OLYMPUS DIGITAL CAMERA         " width="362" height="274" /></a></p>
<p>And there is more:</p>
<p><a href="http://polsinelli.files.wordpress.com/2010/03/02.jpg"><img style="border:0 none;display:block;margin-left:auto;margin-right:auto;" title="Open Lab's library       " src="http://polsinelli.files.wordpress.com/2010/03/02_thumb.jpg?w=471&#038;h=604" border="0" alt="OLYMPUS DIGITAL CAMERA         " width="471" height="604" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/polsinelli.wordpress.com/747/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/polsinelli.wordpress.com/747/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/polsinelli.wordpress.com/747/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/polsinelli.wordpress.com/747/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/polsinelli.wordpress.com/747/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/polsinelli.wordpress.com/747/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/polsinelli.wordpress.com/747/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/polsinelli.wordpress.com/747/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/polsinelli.wordpress.com/747/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/polsinelli.wordpress.com/747/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pietro.open-lab.com&blog=6072057&post=747&subd=polsinelli&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://pietro.open-lab.com/2010/03/01/some-books-helpful-for-product-development-and-marketing/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5198744cd329b6dfdb9e39b4f9794cd1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">polsinelli</media:title>
		</media:content>

		<media:content url="http://polsinelli.files.wordpress.com/2010/03/07_thumb.jpg" medium="image">
			<media:title type="html">Open Lab's books     </media:title>
		</media:content>

		<media:content url="http://polsinelli.files.wordpress.com/2010/03/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://polsinelli.files.wordpress.com/2010/03/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://polsinelli.files.wordpress.com/2010/03/image_thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://polsinelli.files.wordpress.com/2010/03/image_thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://polsinelli.files.wordpress.com/2010/03/image_thumb4.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://polsinelli.files.wordpress.com/2010/03/01_thumb.jpg" medium="image">
			<media:title type="html">Knuth's books</media:title>
		</media:content>

		<media:content url="http://polsinelli.files.wordpress.com/2010/03/04_thumb.jpg" medium="image">
			<media:title type="html">Open Lab's hackers books       </media:title>
		</media:content>

		<media:content url="http://polsinelli.files.wordpress.com/2010/03/02_thumb.jpg" medium="image">
			<media:title type="html">Open Lab's library       </media:title>
		</media:content>
	</item>
		<item>
		<title>Learning home made copywriting</title>
		<link>http://pietro.open-lab.com/2010/02/26/learning-home-made-copywriting/</link>
		<comments>http://pietro.open-lab.com/2010/02/26/learning-home-made-copywriting/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 11:15:58 +0000</pubDate>
		<dc:creator>Pietro Polsinelli</dc:creator>
				<category><![CDATA[software marketing]]></category>
		<category><![CDATA[startups copy]]></category>

		<guid isPermaLink="false">http://polsinelli.wordpress.com/?p=719</guid>
		<description><![CDATA[ So you two startuppers have technical skills, a great idea, maybe even a nice logo, and have the means to survive without sales for six months. So you have all you need to create your product and launch your startup?
This is what we believed, and it has been a long journey to realize how [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pietro.open-lab.com&blog=6072057&post=719&subd=polsinelli&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;"><a href="http://www.flickr.com/photos/xcaballe/90618977/" target="_blank"><img style="display:inline;border-width:0;margin:5px;" title="Home made space invaders on paper" src="http://polsinelli.files.wordpress.com/2010/02/90618977_eb428b81e8.jpg?w=304&#038;h=261" border="0" alt="Home made space invaders on paper" width="304" height="261" align="left" /></a> So you two startuppers have technical skills, a great idea, maybe even a nice logo, and have the means to survive without sales for six months. So you have <strong>all you need</strong> to create your product and launch your startup?</p>
<p style="text-align:justify;">This is what we believed, and it has been a long journey to realize how wrong we were. In your startup you will need a lot more skills or “hats” to succeed. For example, you need to do SEO on your product presentation site, you need to write license agreements for your software, you need to create and maintain a consistent design, you need to present your plans to potential funders, you need to interview and select workers, you need to have a way to test the application both functionally and on end users, and so on.</p>
<p style="text-align:justify;">A review of the range of activities needed can be found in <a title="Buy on Amazon the web startup success guide" href="http://www.amazon.com/Startup-Success-Guide-Books-Professionals/dp/1430219858/ref=ntt_at_ep_dpt_1" target="_blank"><strong><span style="color:#0066cc;">The Web Startup Success Guide</span></strong></a>, which I also reviewed <a href="http://pietro.open-lab.com/2009/09/25/a-review-of-the-web-startup-success-guide/" target="_blank">here</a>. I have been focusing recently on a skill that underlies many of the needed “hats”: this skill which your startup absolutely needs is</p>
<p style="text-align:center;"><span style="font-size:x-large;">copywriting</span></p>
<p style="text-align:justify;">usually referred to simply by “copy”. <a title="Copywriting" href="http://en.wikipedia.org/wiki/Copywriting" target="_blank">Wikipedia</a> defines copywriting as</p>
<div style="text-align:justify;">
<blockquote><p><strong>Copywriting</strong> is the use of words to promote a <a title="Person" href="http://en.wikipedia.org/wiki/Person"><span style="color:#0066cc;">person</span></a>, <a title="Business" href="http://en.wikipedia.org/wiki/Business"><span style="color:#0066cc;">business</span></a>, <a title="Opinion" href="http://en.wikipedia.org/wiki/Opinion"><span style="color:#0066cc;">opinion</span></a> or <a title="Idea" href="http://en.wikipedia.org/wiki/Idea"><span style="color:#0066cc;">idea</span></a>.</p></blockquote>
</div>
<p style="text-align:justify;">Now, there is an apparently simple way for a startup to compensate the lack of internal skills: hire consultants. What is sometimes missed in this “solution” is that most of the needs listed before are not the problems of a day: you have to create copy material almost <em>every day of your startup activity</em>. Also consider that the value of your product may be in details that get added day by day, and there must be a close collaboration between production and copywriting to communicate effectively to the users / visitors / buyers. Considering also that as startuppers you are likely a group of creative people, you may opt for creating contents yourselves! Many – most? – successful startups do that, cultivating a blog, site, tweets and more. And I <em>suspect </em>that spelling out in clear writing the benefits of your product may also help the development of it.</p>
<p style="text-align:justify;">I took notes while studying the literature and introductions to copy, and extracted from there some notes in the form of blog posts. I hope that can be of help to others that are trying to learn copy for their startup.</p>
<p style="text-align:justify;"><em>A note about the “startup” term: I use “startup” more to mean an attitude, or even state of mind, that even software houses which strictly speaking are not startups may assume. In particular in the European Union, creating a new software product and creating new companies may be activities that do not coincide, given the complexity of setting up a company.</em></p>
<p style="text-align:justify;">These two posts are directly about writing:</p>
<h2 id="post-662" style="text-align:justify;"><a rel="bookmark" href="http://pietro.open-lab.com/2010/02/23/improving-the-writing-style-of-technical-blog-posts/"><span style="text-decoration:underline;"><span style="color:#0066cc;"> </span></span></a></h2>
<p style="text-align:justify;"><a rel="bookmark" href="http://pietro.open-lab.com/2010/02/23/improving-the-writing-style-of-technical-blog-posts/"><span style="text-decoration:underline;"><span style="color:#0066cc;">Improving the writing style of technical blog posts (part one)</span></span></a></p>
<p style="text-align:justify;"><a rel="bookmark" href="http://pietro.open-lab.com/2010/02/23/a-checklist-for-improving-the-writing-style-of-technical-blog-posts/"><span style="text-decoration:underline;"><span style="color:#0066cc;">A checklist for improving the writing style of technical blog posts (part two)</span></span></a></p>
<p style="text-align:justify;">and I will talk about this theme at the forthcoming <a href="http://www.open-lab.com/diff01/" target="_blank">Developers in Florence 01</a> meeting.</p>
<p style="text-align:justify;">This is about home page composition:</p>
<p style="text-align:justify;"><a rel="bookmark" href="http://pietro.open-lab.com/2009/10/19/get-visitors-to-read-and-remember-your-home-page-the-principles/"><span style="text-decoration:underline;"><span style="color:#0066cc;">Get visitors to read and remember your home page – the principles</span></span></a></p>
<p style="text-align:justify;"><a rel="bookmark" href="http://pietro.open-lab.com/2009/10/19/get-visitors-to-read-and-remember-your-home-page-applications/"><span style="text-decoration:underline;"><span style="color:#0066cc;">Get visitors to read and remember your home page – applications</span></span></a></p>
<p style="text-align:justify;">and as I will talk about the latest two at the forthcoming <a title="Better Software conference" href="http://www.bettersoftware.it/" target="_blank">Better Software</a> conference, I am expanding the information there with new experiences – will publish an update blog post.</p>
<p style="text-align:justify;">Good luck with your copywriting!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/polsinelli.wordpress.com/719/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/polsinelli.wordpress.com/719/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/polsinelli.wordpress.com/719/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/polsinelli.wordpress.com/719/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/polsinelli.wordpress.com/719/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/polsinelli.wordpress.com/719/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/polsinelli.wordpress.com/719/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/polsinelli.wordpress.com/719/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/polsinelli.wordpress.com/719/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/polsinelli.wordpress.com/719/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pietro.open-lab.com&blog=6072057&post=719&subd=polsinelli&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://pietro.open-lab.com/2010/02/26/learning-home-made-copywriting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5198744cd329b6dfdb9e39b4f9794cd1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">polsinelli</media:title>
		</media:content>

		<media:content url="http://polsinelli.files.wordpress.com/2010/02/90618977_eb428b81e8.jpg" medium="image">
			<media:title type="html">Home made space invaders on paper</media:title>
		</media:content>
	</item>
		<item>
		<title>A checklist for improving the writing style of technical blog posts (part two)</title>
		<link>http://pietro.open-lab.com/2010/02/23/a-checklist-for-improving-the-writing-style-of-technical-blog-posts/</link>
		<comments>http://pietro.open-lab.com/2010/02/23/a-checklist-for-improving-the-writing-style-of-technical-blog-posts/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 16:06:17 +0000</pubDate>
		<dc:creator>Pietro Polsinelli</dc:creator>
				<category><![CDATA[software marketing]]></category>
		<category><![CDATA[blog copywriting]]></category>
		<category><![CDATA[blog style]]></category>
		<category><![CDATA[blog style checklist]]></category>

		<guid isPermaLink="false">http://polsinelli.wordpress.com/?p=680</guid>
		<description><![CDATA[This blog post is the second part of a previous post, Improving the writing style of technical blog posts. Read the first part before proceeding.
As you survived reading up to here, now you get a reward: a simple checklist which you can use to verify your posts before publishing them. The checklist does not contain [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pietro.open-lab.com&blog=6072057&post=680&subd=polsinelli&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p><em>This blog post is the second part of a previous post, <a href="http://pietro.open-lab.com/2010/02/23/improving-the-writing-style-of-technical-blog-posts" target="_blank">Improving the writing style of technical blog posts</a>. Read the first part before proceeding.</em></p>
<p>As you survived reading up to here, now you get a reward: a simple checklist which you can use to verify your posts before publishing them. The checklist does not contain anything about the core quality of your contents: being a technical writer / worker, it is simply assumed that you have something of value to say, but don’t know exactly how.</p>
<h2>Checklist</h2>
<p><em>(Get attention)</em></p>
<ul>
<li>
<div>
<h5>There is an effort to capture reader’s attention in the title and very first sentence</h5>
<p><em>Copy is never too long, just too boring.</em></p>
</div>
</li>
<li>
<h5>Benefits for the reader are immediately clear – instead of features<br />
<em> </em></h5>
<p><em>I woke up this morning thinking: I really need …</em></li>
<li>
<div>
<h5>At least in the first paragraph, every sentence somehow leads to the next one.</h5>
</div>
</li>
<li>
<h5>The post contains a (short) story</h5>
<p><em>“For sale: Baby shoes. Never used.” Ernest Hemingway</em></li>
</ul>
<p><em>(Authority)</em></p>
<ul>
<li>
<h5>Substitute opinions with descriptions</h5>
<p><a title="Lebowski's wiseness" href="http://www.youtube.com/watch?v=QsogswrH6ck" target="_blank"><em>“That’s just like, eh, your opinion man” Big Lebowski </em></a></li>
<li>
<h5>Your assertions are backed up with specific proof</h5>
</li>
<li>
<h5>You establish authority somewhere, somehow</h5>
</li>
<li>
<h5>You kept the initial promise through which you got attention</h5>
</li>
</ul>
<p><em>(Style &amp; format)</em></p>
<ul>
<li>
<h5>Can you make it shorter? Where in doubt, cut it out</h5>
<div><em>“To be or not to be?”<br />
</em></div>
</li>
<li>
<h5>You kept the language simple and clear.</h5>
<div><em>No one will ever complain that your writing is too easy to understand. </em></div>
</li>
<li>
<h5>You sum the contents up at the end of the post.</h5>
</li>
</ul>
<p><em>(Review)</em></p>
<ul>
<li>
<h5>You’ve printed the draft on paper and re-read it</h5>
<p><em>A way to get a new perspective, a bit like giving it to someone else to read it.</em></li>
<li>
<h5>You read it loudly</h5>
<p><em>A way to become sensitive to the rhythm of your writing.</em></li>
<li>
<h5>Immediately before publishing it you did spell check it not just on some online spell checker but on Microsoft Word.</h5>
</li>
</ul>
<p><em> </em></p>
<p><em> </em></p>
<p>This is it. Shouldn’t be too hard. Download <a href="http://polsinelli.files.wordpress.com/2010/02/a_checklist_for_blog_style.pdf">here</a> the checklist in PDF format.</p>
<p>One could add to this list, with a slight change of focus, “Did you insert meaningful SEO words?” in your writings – but this opens up further considerations, maybe I will discuss them in a following blog post.</p>
<h2>Using these techniques</h2>
<p><strong><em>Am I using this checklist?</em></strong> Well, I am. Consider for example <a href="http://blog.twproject.com/2010/02/16/teamwork%E2%80%99s-philosophy-a-short-story/" target="_blank">this recent blog post</a> I published in one of the most boring blogs on the web, the one where we announce <a title="Teamwork blog" href="http://blog.twproject.com/" target="_blank">Teamwork’s releases</a>:</p>
<div>
<blockquote><p>There were once two brothers and a sister, and they were managers at three companies.</p>
<p>The first brother was called <em>Micro Manager</em>, and he picked the most complex  […]. And after a week everybody hated the system, and then they hated Micro Manager, and everybody was unhappy.</p>
<p>The second brother was called <em>Over Simplify</em>, and he didn’t want any kind of management apart from to-do lists […]. And then they hated Over Simplify, and everybody was unhappy.</p>
<p>Their sister was called <em>Reasonable Modesty</em>, and she had minimal goals, had always clear that what matters is how people work and interact, and that software is always secondary, and should be flexible, not do too much, and not get in the way. She started evaluating Teamwork.</p></blockquote>
</div>
<p>Teamwork’s blog usually has posts like “Teamwork 4.3.12323 released”, followed by say a series of bug fixes which make sense only for Teamwork administrators, and can be made more interesting (and popular) using the techniques just described. In fact many people liked this last one.</p>
<p>Another example, this very blog post: this is a bit particular as it is half way between a guide and a blog post, some call it a “blogzine” entry. I did review it (several times) according to its own criteria, and made many changes (improvements, I hope).</p>
<p>A well-written blog post can have several “usages”:</p>
<ul>
<li>
<div>It can be used as a base for a talk for a conference – or for proposing one</div>
</li>
<li>
<div>It can become a chapter of an e-book</div>
</li>
<li>
<div>It can be the base for building the contents of a dedicated micro-site</div>
</li>
<li>
<div>It can be transformed in a project – for example as done at the <a href="http://startuptodo.com/" target="_blank">Startuptodo</a> service</div>
</li>
</ul>
<p>Again, all contents of good quality have a positive SEO effect: it is a <em>side effect</em>, but it can be great.</p>
<p><em>Exercise: </em>review your latest blog post with this checklist. Is there anything that could be improved?</p>
<h2>Conclusion</h2>
<p>So we started from examining the writing and narrational style of some popular technical blogs, and then isolated a few techniques in a checklist which you can use to refine your own blog posts. This is just a start, you can find references and more material to study in the next section.</p>
<h2>Further reading</h2>
<p>I would like to thank Mr. Brian Clark for his brilliant site, <a href="http://www.copyblogger.com" target="_blank">copyblogger</a>, that I discovered half way through and gave me a host of new ideas. Some advice on how to write blogs is at the end of this podcast:</p>
<p><a href="http://blog.stackoverflow.com/2010/01/podcast-81/">http://blog.stackoverflow.com/2010/01/podcast-81/</a></p>
<p>From the notes:</p>
<blockquote><p>Some tips from Joel and Jeff about why and how (or if) programmers should blog. Set a schedule and stick to it. And <a href="http://www.codinghorror.com/blog/archives/000910.html">don’t be a commodity blogger</a>! It helps to focus on the storytelling aspect of the writing, <a href="http://www.presentationzen.com/presentationzen/2007/03/ira_glasstips_o.html">per Ira Glass</a>. And remember, writing a better article on any topic is usually pretty easy, because so much of the content on the internet is so darn bad.</p></blockquote>
<p>The <a title="Delicious links tagged &quot;decentBlog&quot;" href="http://delicious.com/tag/wellWrittenBlog" target="_blank"><em>Delicious</em></a> links provide some sources.</p>
<p><em>This blog’s theme is discussed on </em><a title="Tweets about &quot;decentBlog&quot;" href="http://twitter.com/#search?q=wellWrittenBlog" target="_blank"><em>Twitter</em></a><em> and classified in </em><a title="Delicious links tagged &quot;decentBlog&quot;" href="http://delicious.com/tag/wellWrittenBlog" target="_blank"><em>Delicious</em></a><em> under the tag “wellWrittenBlog”. The first part of this blog post, “A checklist for improving the writing style of technical blog posts” can be found </em><a href="http://pietro.open-lab.com/2010/02/23/improving-the-writing-style-of-technical-blog-posts" target="_blank"><em>here</em></a><em>.</em></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/polsinelli.wordpress.com/680/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/polsinelli.wordpress.com/680/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/polsinelli.wordpress.com/680/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/polsinelli.wordpress.com/680/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/polsinelli.wordpress.com/680/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/polsinelli.wordpress.com/680/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/polsinelli.wordpress.com/680/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/polsinelli.wordpress.com/680/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/polsinelli.wordpress.com/680/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/polsinelli.wordpress.com/680/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pietro.open-lab.com&blog=6072057&post=680&subd=polsinelli&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://pietro.open-lab.com/2010/02/23/a-checklist-for-improving-the-writing-style-of-technical-blog-posts/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5198744cd329b6dfdb9e39b4f9794cd1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">polsinelli</media:title>
		</media:content>
	</item>
		<item>
		<title>Improving the writing style of technical blog posts (part one)</title>
		<link>http://pietro.open-lab.com/2010/02/23/improving-the-writing-style-of-technical-blog-posts/</link>
		<comments>http://pietro.open-lab.com/2010/02/23/improving-the-writing-style-of-technical-blog-posts/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 16:05:53 +0000</pubDate>
		<dc:creator>Pietro Polsinelli</dc:creator>
				<category><![CDATA[software marketing]]></category>
		<category><![CDATA[blog copywriting]]></category>

		<guid isPermaLink="false">http://polsinelli.wordpress.com/?p=662</guid>
		<description><![CDATA[Why few blogs are very popular, and most are practically ignored? You may believe that popularity is simply a question of luck or money. I read many blogs for professional reasons, and some among these are a real pleasure to read. Well, it also happens that the well-written ones are the most popular among the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pietro.open-lab.com&blog=6072057&post=662&subd=polsinelli&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Why few blogs are very popular, and most are practically ignored? You may believe that popularity is simply a question of luck or money. I read many blogs for professional reasons, and some among these are a real pleasure to read. Well, it also happens that the well-written ones are the <strong>most popular </strong>among the ones I read, and being well written may be what explains their success, at least partially. So in what follows I do some analysis of writing styles and then <strong>define a checklist</strong> which you may use to analyze your own blog drafts before publishing them, eventually <strong>improving your writing</strong>.</p>
<p>Most popular blogs are “well written”: by this I don’t (just) mean grammatically correct, I mean well written by looking at them as sort of <em>short stories</em>. Looking at blog posts in this way is a perspective that probably escapes technical writers; it is obvious for anybody who has copywriting experience. A blog can be very well written and not be popular, and there may even be popular blogs that are badly written, but there seems to be enough correlation with “good writing” for blogs that have contents as good as those of many others but stand out in popularity.</p>
<p>Now we will examine three popular blogs, to see some writing techniques in action. Then we will try to define some rules to improve your blog’s writing.</p>
<p>I will not go into why having a popular blog can be important, I just assume that it is so – a discussion would lead us to an entirely different topic. What is here said about writing is contextualized to blogs, but I believe can be a help in any kind of copywriting activity.</p>
<h2>Three popular blogs</h2>
<p>The blogs I’ve chosen as examples are those of <a href="http://www.joelonsoftware.com/" target="_blank">Joel Spolsky</a>, <a href="http://www.codinghorror.com/blog/" target="_blank">Jeff Atwood</a> and <a title="Seth Godin blog" href="http://sethgodin.typepad.com/seths_blog/" target="_blank">Seth Godin</a>. The first two are about programming,  the <em>work of</em> programming and software marketing, the last one about marketing and spreading ideas.</p>
<h3>Joel On Software</h3>
<p>As an example post from Spolsky’s blog I’ve picked this one: <a href="http://www.joelonsoftware.com/articles/Unicode.html" target="_blank">The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)</a>, and here is a short abstract from the blog, the opening paragraphs:</p>
<div>
<blockquote><p><span style="text-decoration:underline;">Ever wonder about</span> that mysterious Content-Type tag? You know, the one you&#8217;re supposed to put in HTML and you never quite know what it should be?</p>
<p><span style="text-decoration:underline;">Did you ever get an email from your friends</span> in Bulgaria with the subject line &#8220;???? ?????? ??? ????&#8221;?</p>
<p>I&#8217;ve been dismayed to discover just how many software developers aren&#8217;t really completely up to speed on the mysterious world of character sets, encodings, Unicode, all that stuff. <span style="text-decoration:underline;">A couple of years ago</span>, a beta tester for FogBUGZ was wondering whether it could handle incoming email in Japanese. Japanese? They have email in Japanese? I had no idea. When I looked closely at the commercial ActiveX control we were using to parse MIME email messages, we discovered it was doing exactly the wrong thing with character sets, so we actually had to write heroic code to undo the wrong conversion it had done and redo it correctly. When I looked into another commercial library, it, too, had a completely broken character code implementation. I corresponded with the developer of that package and he sort of thought they &#8220;couldn&#8217;t do anything about it.&#8221; Like many programmers, he just wished it would all blow over somehow.</p></blockquote>
</div>
<p>Notice how this blog post, which is highly technical, start by asking questions and <strong>telling short stories </strong>– I’ve <span style="text-decoration:underline;">underlined</span> the starts. And not only is the beginning like that, it keeps proceeding in such fashion. Why don’t you go now and <a href="http://www.joelonsoftware.com/articles/Unicode.html" target="_blank">read it</a>, trying to notice the short stories that pepper this nice post.</p>
<h3>Coding Horror</h3>
<p><a rel="http://www.codinghorror.com/blog/2010/01/the-great-newline-schism.html" href="http://polsinelli.files.wordpress.com/2010/02/codinghorrorthegreatnewlineschism_1266418517767.png" target="_blank"><img style="border:0 none;display:inline;margin:5px 10px 5px 5px;" title="Coding Horror- The Great Newline Schism_1266418517767" src="http://polsinelli.files.wordpress.com/2010/02/codinghorrorthegreatnewlineschism_1266418517767_thumb.png?w=251&#038;h=345" border="0" alt="Coding Horror- The Great Newline Schism_1266418517767" width="251" height="345" align="left" /></a> Let&#8217;s examine now Atwood’s <a href="http://www.codinghorror.com/blog/" target="_blank">Coding Horror blog</a>, for example this blog post: <a class="title-link" href="http://www.codinghorror.com/blog/2010/01/the-great-newline-schism.html"><span style="color:#0066cc;">The Great Newline Schism</span></a>. The topic of this  post is newline invisible characters, and this post  topic is probably on one of the most uninteresting topic ever, but reading it is a pleasure anyway because of the way Atwood evokes old typewriters and nice pictures to lead the reader along; he is not telling a story in a classical sense, but he is indeed engaged in <em>narration</em>:</p>
<div>
<blockquote><p><em>&#8220;The Carriage Return (CR) and Line Feed (LF) terms derive from manual typewriters, and old printers based on typewriter-like mechanisms (typically referred to as <a href="http://en.wikipedia.org/wiki/Daisy_wheel_printer">&#8220;Daisywheel&#8221; printers</a>).&#8221;</em></p></blockquote>
</div>
<h3>Seth’s blog</h3>
<p>Finally, let&#8217;s consider the posts from Seth Godin’s blog: these are <strong>short </strong>(yes, mine aren&#8217;t <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> ).</p>
<p>Consider <a href="http://sethgodin.typepad.com/seths_blog/2010/02/the-hidden-power-of-a-gift.html" target="_blank">The hidden power of a gift</a>:</p>
<blockquote><p><em>&#8220;Perhaps we resolve it, as the ancient Native Americans did, by acknowledging the power of the giver … The key is that the gift must be freely and gladly accepted&#8221;</em></p></blockquote>
<p>and <a href="http://sethgodin.typepad.com/seths_blog/2010/02/frightenedcluelessuninformed.html" target="_blank">Frightened, clueless or uninformed?</a></p>
<blockquote><p><em>&#8220;Comfort the frightened, coach the clueless and teach the uninformed.&#8221;</em></p></blockquote>
<p>His posts are filled with <em>anthropological </em>observations: he manages to link to the readers’ emotions. He has a talent for finding latent emotional roots in apparently purely commercial / economical interactions. He looks at human beings as emotional chimpanzees – which you may say is exactly what we are – and as shaped by implicit social norms; we are not as logical as we’d like to think we are. Seth explains behavior through micro anthropological narrations, which take little time, and stimulate reflecting on the bases of motivation – hence on marketing.</p>
<h2><a href="http://polsinelli.files.wordpress.com/2010/02/howtohackyourbrainpart1sleepdustincurtis_1266916351269.png"><img style="display:inline;border-width:0;margin:5px 10px 5px 5px;" title="How To Hack Your Brain, Part 1- Sleep - Dustin Curtis_1266916351269" src="http://polsinelli.files.wordpress.com/2010/02/howtohackyourbrainpart1sleepdustincurtis_1266916351269_thumb.png?w=319&#038;h=361" border="0" alt="How To Hack Your Brain, Part 1- Sleep - Dustin Curtis_1266916351269" width="319" height="361" align="left" /></a> Design for beauty or readability?</h2>
<p>The communication strategy which we are trying to refine here is focused on narration, as this is a way to transmit <em>contents</em>. A different strategy is to use <em>design</em>, but then it will be much harder to communicate a specific content; you will need a different design for every post, and find / invent a graphical metaphor. This is what indeed some talented designers are doing: see</p>
<p><a href="http://line25.com/articles/tips-for-designing-unique-and-attractive-blog-posts"><span style="color:#0066cc;">http://line25.com/articles/tips-for-designing-unique-and-attractive-blog-posts</span></a></p>
<p><a href="http://www.smashingmagazine.com/the-death-of-the-blog-post/"><span style="color:#0066cc;">http://www.smashingmagazine.com/the-death-of-the-blog-post/</span></a></p>
<p>These are incredible designers that <em>create a different design for each blog post</em>. But as said above, our idea is to excite the reader with narration, not with novel design, as we want the reader to <em>focus on contents</em>. So pick a simple, highly readable, consistent layout for your blog and stick to it. Use very simple typographical tricks to lighten the reading experience, and few pictures.  For an example, consider Joel’s clean style. Don’t invent a layout – its non trivial!</p>
<h2>The importance of a good start</h2>
<p>Blog titles play a crucial role in your posts, similar to that of product / web site’s pitches. What is the purpose of the pitch – in our case, of the title? <em>The purpose of the title is to make the first sentence read.</em> And what is the purpose of the first sentence? <em>The purpose of the first sentence is to make the second sentence read.</em> And so on: if you don’t get the attention of the visitor with the title, your failure is <strong>complete</strong>.</p>
<p>So make sure you try lists of different titles and starts, and variations on them. Get someone to verify them with you. Do the titles and openings grab attention? Interest?</p>
<p>The words that you are choosing there are important too: these should be inspired by the words used by your potential visitors / customers to describe their wishes, hopes, desires, dissatisfactions, fears, worries in relation to your topic / product.</p>
<p>You should probably dedicate almost half of the total time you dedicate to the post’ writing to experimenting with the title and start. For example, in the case of our Patapage site it took me <em>months </em>to get to a decent pitch. A blog post title is somehow less important than a home page pitch, but still put a significant part of your effort on the opening.</p>
<h2><a href="http://www.joelonsoftware.com/items/2010/02/14.html"><img style="display:inline;border-width:0;margin:0 10px 0 0;" title="Raising money for StackOverflow - Joel on Software_1266407825138" src="http://polsinelli.files.wordpress.com/2010/02/raisingmoneyforstackoverflowjoelonsoftware_12664078251381.png?w=347&#038;h=489" border="0" alt="Raising money for StackOverflow - Joel on Software_1266407825138" width="347" height="489" align="left" /></a> Why telling stories is good idea?</h2>
<p>First you should realize that “by default”, nobody is interested in your blog posts, apart from very few people close to you who maybe, maybe, are interested. This is so important to deserve repetition and bold fonts:</p>
<p><strong> nobody is “spontaneously” interested in what you are writing.</strong></p>
<p>This is a “negative” truth. But here comes a “positive” one:</p>
<p><strong>people are hungry for stories.</strong></p>
<p>These two facts can help all along your writing.</p>
<p>As a technician, you are probably the least apt to communicate to the general public, and you also have to communicate the hardest topics. Furthermore, what you are trying to say cannot be trivialized without losing its essence. If you explain your ideas in technical terms, it will be non trivial to keep the attention of the readers. This is why using stories is a good idea: you can begin communicating non trivial ideas building up the readers’ attention.</p>
<p>So tell a story. Now, <em>not a silly story</em>: the point is not telling jokes, the point is to <strong>introduce your topic</strong>.</p>
<p>The conclusion is: in your post, tell stories, about conflicts, experiences, problems leading to your theme, and you’ll get the reader’s attention.</p>
<h2>Hiring a copywriter may not always be the solution</h2>
<p>If you are working with a large budget, the simplest way to solve any copywriting problem like writing good blog posts is simply to hire a copy. With the web and social media opening “windows” on companies’ activities, many (most?) companies actually need to create well written, interesting contents every day of work. Now, can you hire a full-time copy? If you can’t, like me, you can do a lot by yourself.</p>
<p>As a startup, there are several occasions where we got perfectly good solutions with a little internal research instead of paying expensive consultants with dubious competencies. The “solution” hire a consultant simply assumes that consultants are competent by default, which is often not the case. Need to write a license? Need a user guide? Need SEO optimization? Hire an expert. We didn’t, and are happy with the results; again, these problems appear continuously, so you need the relative competencies in-house.</p>
<p>In order to write, you need to have some “creative spirit”. It is impossible to learn to be creative: Steve Jobs as quoted in <a href="http://www.amazon.com/Inside-Steves-Brain-Leander-Kahney/dp/1591841984" target="_blank">Inside Steve&#8217;s Brain</a> says that seeing people trying to become creative is “painful to watch”. Indeed it is. Here I’m just assuming that you are, and that maybe your attention needs to stop a bit on your own writing style.</p>
<p>And now… go to the <a title="Blog writing checklist" href="http://pietro.open-lab.com/2010/02/23/a-checklist-for-improving-the-writing-style-of-technical-blog-posts/" target="_self">checklist</a>!</p>
<p><em>This blog’s theme is discussed on </em><a title="Tweets about &quot;decentBlog&quot;" href="http://twitter.com/#search?q=wellWrittenBlog" target="_blank"><em>Twitter</em></a><em> and classified in </em><a title="Delicious links tagged &quot;decentBlog&quot;" href="http://delicious.com/tag/wellWrittenBlog" target="_blank"><em>Delicious</em></a><em> under the tag “wellWrittenBlog”. The second part of this blog post, “A checklist for improving the writing style of technical blog posts” can be found </em><a title="Blog writing checklist" href="http://pietro.open-lab.com/2010/02/23/a-checklist-for-improving-the-writing-style-of-technical-blog-posts/" target="_self"><em>here</em></a><em>.</em></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/polsinelli.wordpress.com/662/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/polsinelli.wordpress.com/662/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/polsinelli.wordpress.com/662/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/polsinelli.wordpress.com/662/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/polsinelli.wordpress.com/662/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/polsinelli.wordpress.com/662/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/polsinelli.wordpress.com/662/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/polsinelli.wordpress.com/662/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/polsinelli.wordpress.com/662/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/polsinelli.wordpress.com/662/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pietro.open-lab.com&blog=6072057&post=662&subd=polsinelli&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://pietro.open-lab.com/2010/02/23/improving-the-writing-style-of-technical-blog-posts/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5198744cd329b6dfdb9e39b4f9794cd1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">polsinelli</media:title>
		</media:content>

		<media:content url="http://polsinelli.files.wordpress.com/2010/02/codinghorrorthegreatnewlineschism_1266418517767_thumb.png" medium="image">
			<media:title type="html">Coding Horror- The Great Newline Schism_1266418517767</media:title>
		</media:content>

		<media:content url="http://polsinelli.files.wordpress.com/2010/02/howtohackyourbrainpart1sleepdustincurtis_1266916351269_thumb.png" medium="image">
			<media:title type="html">How To Hack Your Brain, Part 1- Sleep - Dustin Curtis_1266916351269</media:title>
		</media:content>

		<media:content url="http://polsinelli.files.wordpress.com/2010/02/raisingmoneyforstackoverflowjoelonsoftware_12664078251381.png" medium="image">
			<media:title type="html">Raising money for StackOverflow - Joel on Software_1266407825138</media:title>
		</media:content>
	</item>
		<item>
		<title>The blurring distinction between graphic design and software development</title>
		<link>http://pietro.open-lab.com/2010/01/18/the-blurring-distinction-between-graphic-design-and-software-development/</link>
		<comments>http://pietro.open-lab.com/2010/01/18/the-blurring-distinction-between-graphic-design-and-software-development/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 16:21:45 +0000</pubDate>
		<dc:creator>Pietro Polsinelli</dc:creator>
				<category><![CDATA[software development]]></category>
		<category><![CDATA[graphic design]]></category>
		<category><![CDATA[software design]]></category>

		<guid isPermaLink="false">http://polsinelli.wordpress.com/?p=630</guid>
		<description><![CDATA[ Since we released the beta versions of Patapage and BugsVoice, I keep receiving enquiries about the graphic design of these applications and their web sites. People ask me “who designed the graphics?”.
Actually, the answer is everyone in Open Lab,  and specifically no one. I always found a bit simplistic the idea that the “developer” [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pietro.open-lab.com&blog=6072057&post=630&subd=polsinelli&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;"><a title="Patapage site" href="http://patapage.com" target="_blank"><img style="display:inline;border-width:0;margin:5px;" title="Web" src="http://polsinelli.files.wordpress.com/2010/01/ppevolution1.jpg?w=165&#038;h=375" border="0" alt="Web" width="165" height="375" align="left" /></a> Since we released the beta versions of <a href="http://patapage.com/" target="_blank">Patapage</a> and <a href="http://bugsvoice.com/" target="_blank">BugsVoice</a>, I keep receiving enquiries about the graphic design of these applications and their web sites. People ask me “<strong>who designed the graphics?</strong>”.</p>
<p style="text-align:justify;">Actually, the answer is <em>everyone in Open Lab,  and specifically no one</em>. I always found a bit simplistic the idea that the “developer” creates applications by programming, and when the app is working and almost done, he/she asks a designer to create some graphics for it. In this line of reasoning there is a family resemblance with the idea “I first create an application and then market it.”, which I find deeply wrong – but this is another topic. If you are developing web applications aimed at wide markets, design and application development integrate one another at <strong>every development step</strong>. And this is how we create and design applications in Open Lab.</p>
<p style="text-align:justify;">Like when we have to create a logo, the internal designers, who are also developers, propose candidates in a meeting to which the <strong>entire software house takes part</strong>; not only design and application integration are considered, but also marketing must be taken into consideration when evaluating design solutions.</p>
<p style="text-align:justify;">Interface design and graphic design are different concepts, but are also related: a usable interface must be pleasant, not confusing, and both skills must be used to get a good result. Today’s users expect applications to be pleasant; and a well designed and pleasant application will more easily elicit a “collaborative” attitude from users in the first steps of evaluation, and even afterwards, if the design is consistent throughout the application. Consider also “wow” effects that designers can create.</p>
<p style="text-align:justify;"><a href="http://polsinelli.files.wordpress.com/2010/01/image1.png"><img style="display:inline;margin-left:0;margin-right:0;border:0;" title="image" src="http://polsinelli.files.wordpress.com/2010/01/image_thumb.png?w=173&#038;h=223" border="0" alt="image" width="173" height="223" align="left" /></a> The gaming software industry has understood the crucial role of designers long ago. And the boundary between gaming techniques and usability for “serious” software can be crossed proficiently – we did this with good results in our <a href="http://blog.twproject.com/2009/05/13/usability-game-mechanics-teamwork/" target="_blank">Teamwork software</a>. A great introduction to this theme is  <a href="http://www.youtube.com/watch?v=ihUt-163gZI" target="_blank">Putting the Fun in Functional: Applying Game Mechanics to Functional Software</a> by Amy Jo Kim. In order to use such techniques, good design is essential.</p>
<p style="text-align:justify;">People that have designers take part in development, will notice that they can learn a lot from development, even when they get back to more design-specific tasks. And vice-versa, even more, holds for developers. <strong>Usability is often supplying the right metaphor:</strong> algorithmic experience often won&#8217;t help in such tasks, but the culture of a good designer can.</p>
<p style="text-align:justify;">If you are doing web development, can you draw a strict line between what is done in your CSS for usability and what for esthetic considerations? And with say <a href="http://jquery.com/" target="_blank">jQuery</a> JavaScript selectors, their usage is for behavior, layout, design? There is no clear distinction; and you may see this as a problem, but also as an <strong>opportunity for interdisciplinary work</strong>.</p>
<p style="text-align:justify;">This also evidences that it is a bad idea to use just external <em>occasional</em> collaborations for graphic design; you should find a way to have a consistent and continuous flow of design ideas in your software house. A similar conclusion is reached by Joel Spolski in <a href="http://blog.stackoverflow.com/2010/01/podcast-79/" target="_blank">this podcast</a>: <em>“Joel explains why he no longer believes in outsourcing design.”</em></p>
<p style="text-align:justify;">So among the hats one startup should include in its first team, there is indeed development and marketing, but also graphic and usability design.</p>
<p style="text-align:justify;"><a title="Deepdesign review" href="http://plusmood.com/2009/12/the-design-work-of-deepdesign-on-show-at-triennale-design-museum-milan/" target="_blank"><img style="display:inline;border-width:0;margin:5px;" title="Deepdesign expo" src="http://polsinelli.files.wordpress.com/2010/01/image.png?w=294&#038;h=242" border="0" alt="Deepdesign expo" width="294" height="242" align="left" /></a> Similar considerations to the one above are valid also in the rest of the industry, not only in software; I was recently in Milan in the Triennale expo about Deepdesign (see a review <a href="http://plusmood.com/2009/12/the-design-work-of-deepdesign-on-show-at-triennale-design-museum-milan/" target="_blank">here</a>), and what they are doing brings together design, industrial prototyping, integration with mass production, and hence the distinction between design and product engineering is blurred.</p>
<p style="text-align:justify;">Another, similar development: with <a title="Patapage service" href="http://patapage.com" target="_blank">Patapage</a> in Open Lab we are working continuously crossing the boundary between page design and data / contents mashupping, creating a tool that makes the distinction between designing a site and inserting / updating / community contributing its “contents” problematic.</p>
<p style="text-align:justify;">And the answer to“who designed the graphics?” is… the entire Open Lab team.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/polsinelli.wordpress.com/630/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/polsinelli.wordpress.com/630/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/polsinelli.wordpress.com/630/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/polsinelli.wordpress.com/630/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/polsinelli.wordpress.com/630/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/polsinelli.wordpress.com/630/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/polsinelli.wordpress.com/630/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/polsinelli.wordpress.com/630/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/polsinelli.wordpress.com/630/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/polsinelli.wordpress.com/630/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pietro.open-lab.com&blog=6072057&post=630&subd=polsinelli&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://pietro.open-lab.com/2010/01/18/the-blurring-distinction-between-graphic-design-and-software-development/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5198744cd329b6dfdb9e39b4f9794cd1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">polsinelli</media:title>
		</media:content>

		<media:content url="http://polsinelli.files.wordpress.com/2010/01/ppevolution1.jpg" medium="image">
			<media:title type="html">Web</media:title>
		</media:content>

		<media:content url="http://polsinelli.files.wordpress.com/2010/01/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://polsinelli.files.wordpress.com/2010/01/image.png" medium="image">
			<media:title type="html">Deepdesign expo</media:title>
		</media:content>
	</item>
		<item>
		<title>Why not do more, much more, with mashups?</title>
		<link>http://pietro.open-lab.com/2009/12/10/discovering-the-power-of-mashups-with-patapage/</link>
		<comments>http://pietro.open-lab.com/2009/12/10/discovering-the-power-of-mashups-with-patapage/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 17:24:10 +0000</pubDate>
		<dc:creator>Pietro Polsinelli</dc:creator>
				<category><![CDATA[software development]]></category>
		<category><![CDATA[mashup]]></category>
		<category><![CDATA[mashup enabler]]></category>
		<category><![CDATA[web part]]></category>
		<category><![CDATA[web template]]></category>
		<category><![CDATA[web widget]]></category>
		<category><![CDATA[widget]]></category>

		<guid isPermaLink="false">http://polsinelli.wordpress.com/?p=580</guid>
		<description><![CDATA[Mashups are today used either in widgets supplied by online service providers, or built by hand by developers for particular sites and pages. Thinking about generalizing and simplifying the usage of mashups and the creation of web widgets, came the idea of creating a dedicated online service, Patapage.
Some definitions and references
I’ll start by quoting the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pietro.open-lab.com&blog=6072057&post=580&subd=polsinelli&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;"><em>Mashups are today used either in widgets supplied by online service providers, or built by hand by developers for particular sites and pages. Thinking about generalizing and simplifying the usage of mashups and the creation of web widgets, came the idea of creating a dedicated online service, </em><a title="Patapage web service" href="http://patapage.com/" target="_blank"><em>Patapage</em></a><em>.</em></p>
<h2 style="text-align:justify;"><a href="http://ffffound.com/image/00620aef9201ca946c7a17c49f98c769d3dcd894"><img style="display:inline;border-width:0;margin:5px;" title="found on ffffound.com" src="http://polsinelli.files.wordpress.com/2009/12/mashup.jpg?w=238&#038;h=282" border="0" alt="found on ffffound.com" width="238" height="282" align="left" /></a>Some definitions and references</h2>
<p style="text-align:justify;">I’ll start by quoting the <a title="Wikipedia definition of mashup" href="http://en.wikipedia.org/wiki/Mashup_%28web_application_hybrid%29" target="_blank">Wikipedia definition of mashup</a>:</p>
<div style="text-align:justify;">
<blockquote><p>In <a title="Web development" href="http://en.wikipedia.org/wiki/Web_development"><span style="color:#0066cc;">web development</span></a>, a <strong>mashup</strong> is a web page or application that combines data or functionality from two or more external sources to create a new service. The term <strong>mashup</strong> implies easy, fast integration, frequently using open <a class="mw-redirect" title="API" href="http://en.wikipedia.org/wiki/API"><span style="color:#0066cc;">APIs</span></a> and data sources to produce results that were not the original reason for producing the raw source data. An example of a mashup is the use of cartographic data to add location information to real estate data, thereby creating a new and distinct <a title="Web api" href="http://en.wikipedia.org/wiki/Web_api"><span style="color:#0066cc;">web API</span></a> that was not originally provided by either source.</p></blockquote>
</div>
<p style="text-align:justify;">And also that of <a title="mashup enabler" href="http://en.wikipedia.org/wiki/Mashup_enabler" target="_blank">mashup enabler</a>:</p>
<div style="text-align:justify;">
<blockquote><p>In technology, a <strong>mashup enabler</strong> is a tool for transforming incompatible IT resources into a form that allows them to be easily combined, in order to create a <a title="Mashup" href="http://en.wikipedia.org/wiki/Mashup"><span style="color:#0066cc;">mashup</span></a>.</p></blockquote>
</div>
<p style="text-align:justify;">Now mashups are mostly used by developers, in particular, JavaScript developers. A nice and typical example is this one:</p>
<p style="text-align:justify;"><a href="http://theezpzway.com/2009/5/1/how-to-build-a-personal-mashup-page-with-jquery" target="_blank">How to build a personal mashup page with jQuery</a></p>
<p style="text-align:justify;">and the result is this:</p>
<p style="text-align:justify;"><a href="http://enriquez.github.com">http://enriquez.github.com</a></p>
<p style="text-align:justify;">where we see the date collected and displayed. Notice that this is all done purely in JavaScript on the client, also using <a href="http://pipes.yahoo.com/pipes/" target="_blank">Yahoo Pipes service</a>; but this requires some development and maintenance, and the server side service has to be already available; you cannot build your own service without installing and maintaining your own server. Another widely used option is to use the web service provider <a title="Wikipedia definition of web widget" href="http://en.wikipedia.org/wiki/Web_widget" target="_blank">widget</a> (“web widget”), where the style is more or less fixed.</p>
<h2 style="text-align:justify;">Our idea</h2>
<p style="text-align:justify;">Our starting idea was… why not give even <strong>more power to site builders on the client side</strong> by relying on a unique, simple service, acting both as direct content manager and as “proxy” for other services? The fact that Ajax calls allow to <strong>add and call Java scripts on say a button click</strong> to an existing, fully loaded page, and then by making cross domain requests it becomes possible to add contents to (over) the calling page, opens a world of possibilities, which up to today has been used only by developers of both client and server side code, by low level access to such features and then lots of hand coding.</p>
<p style="text-align:justify;">Couldn’t it be easier? Couldn’t the HTML designer be spared of (re)building specific client readers and server-side services, and focus on just integration and building a beautiful and friendly site? And even if you are a server-side developer, why not delegating web site content building to a third party, and focus on your main activity?</p>
<p style="text-align:justify;">Why use mashups only to add RSS aggregation, pull data from social sites and multimedia contents? Why not use for <strong>any kind of dynamic contents</strong>? Why use it in blogs and not web sites? The structure of web site is more complex, and the services needed more refined, at times, but that’s no obstacle to the idea.</p>
<p style="text-align:justify;">Also in case of hand built integrations, the graphic quality of the integration is often not at the same level of the originally designed site.</p>
<p style="text-align:justify;">This is where we started thinking about a new online service, and then started building it up. In mashup terms, we started building friendly data sources to be called and used on button and link clicks; then we standardized even the buttons and links, so that the web builder has just to paste the button script on the page, and gets immediately fully working buttons, links and associated services.</p>
<p style="text-align:justify;"><a href="http://polsinelli.files.wordpress.com/2009/12/sampleservices.gif"><img style="border:0 none;display:inline;margin:0 30px 0 20px;" title="List of widgets available in Patapage" src="http://polsinelli.files.wordpress.com/2009/12/sampleservices_thumb.gif?w=137&#038;h=504" border="0" alt="List of widgets available in Patapage" width="137" height="504" align="left" /></a></p>
<p style="text-align:justify;">Since we had the service up, almost every day a new possibility of a button comes up, as the sum of serving both the client side JavaScript and the server side content, or proxy to contents, opens a lot of possibilities. See in the side picture just the first suite of buttons.</p>
<p style="text-align:justify;">More are being added, like a <a href="http://delicious.com/" target="_blank">Delicious</a> aggregator, <a href="http://picasa.google.com/" target="_blank">Picasa</a> integration, custom designed forms; the existing ones are being extended, like the Wiki-button will allow creations of new pages from links, like Wikipedia.</p>
<p style="text-align:justify;">What superficially looks like a single functionality, like adding a wiki-like button (“PataWiki”), actually adds to your web page a layer of dynamically updatable content, by both the site maintainer and site visitors (if that is what is wanted). This could be a &#8220;help&#8221; page, contributed contents, a &#8220;more in depth&#8221; presentation, a &#8220;buy now&#8221; page (we&#8217;ve seen it online used this way already), a way to publish news, &#8230;</p>
<p style="text-align:justify;">Each button / link you paste in your pages is associated with a “page id”, which the designer can set by hand: this way the same mashup / widget combination can be used across the entire site, on a single page, or shared across a specific group of pages. This is a flexibility that usual mashup on blogs don’t need, as these are basically single paged, , but is a necessary extension for using mashup effectively on web sites.</p>
<p style="text-align:justify;">-</p>
<p style="text-align:justify;">
<p style="text-align:justify;">
<p style="text-align:justify;">
<p style="text-align:justify;">
<p style="text-align:justify;"><a href="http://polsinelli.files.wordpress.com/2009/12/screenproperties.gif"><img style="display:inline;border-width:0;margin:10px 10px 0 0;" title="Properties of the window opened by Patapage buttons" src="http://polsinelli.files.wordpress.com/2009/12/screenproperties_thumb.gif?w=415&#038;h=183" border="0" alt="Properties of the window opened by Patapage buttons" width="415" height="183" align="left" /></a></p>
<p style="text-align:justify;">We also developed a web based configuration of buttons and opened windows, which allows setting of style, dimension and layout. This is what you had to do by writing code and HTML by hand when displaying the contents of  mashups – before Patapage <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  . Of course if the designer wishes, she can customize the layout of the buttons integrating in the existing layout, as done in <a title="Patapage integrated buttons example" href="http://www.open-lab.com/patapagedemo/indexIntegrated.html" target="_blank">this example</a>.</p>
<p style="text-align:justify;">
<p style="text-align:justify;">
<p style="text-align:justify;">
<p style="text-align:justify;"><a href="http://polsinelli.files.wordpress.com/2009/12/security.gif"><img style="display:inline;border-width:0;margin:0 10px 0 0;" title="Patapage button-relative security" src="http://polsinelli.files.wordpress.com/2009/12/security_thumb.gif?w=390&#038;h=87" border="0" alt="Patapage button-relative security" width="390" height="87" align="left" /></a> Another recurring problem when adding the possibility of visitors contributing and commenting your pages is that of spam, moderation, e-mail verification and in general of <strong>security</strong>. Like for example if you enable moderation, you have both to reassure users about their contribution, manage the incoming list to be moderated, notify on approval, etc.: imagine having this by just pasting a little script on your static site instead of configuring a CMS to do that! And you should be able to do this differently for each link or button, if you wish so.</p>
<p style="text-align:justify;">The resulting application is not only a mashup enabler as defined at the beginning, but also a tool providing mashups of all sorts <strong>ready to be used</strong>.</p>
<p style="text-align:justify;">So we are covering the problems of layout, contents, social contributions, notifications, security… all typical problems traditionally requiring installing your own CMS. This way we are empowering links on the web pages of a site that is preserved as it is, with all its style, effectively progressively making <em>classical CMS’s site development look like stone-age site building</em>.</p>
<p style="text-align:justify;"><a href="http://polsinelli.files.wordpress.com/2009/12/pata.gif"><img style="display:inline;border-width:0;margin:5px;" title="The PataHero showing off" src="http://polsinelli.files.wordpress.com/2009/12/pata_thumb.gif?w=204&#038;h=217" border="0" alt="The PataHero showing off" width="204" height="217" align="left" /></a> All this functionality is available in an online service, currently in beta, which we called Patapage<sup><a href="#patapage">1</a></sup>,</p>
<p style="text-align:justify;"><a title="Patapage web site" href="http://patapage.com" target="_blank">http://patapage.com</a></p>
<p style="text-align:justify;">from there you can try the demo, <a title="Patapage examples video" href="http://www.youtube.com/watch?v=CX1KONEMA_M" target="_blank">see a video</a>, and <a title="Enroll in Patapage" href="http://patapage.com/applications/pataPage/site/access/enrollMail.jsp" target="_blank">just enroll</a> and try it on your site.  When out of beta, the service will be a paid one (see <a title="Patapage prices" href="http://patapage.com/applications/pataPage/site/pricing.jsp" target="_blank">here</a> for details) which will be a way of keeping it ad-free: as one of our ideals is to give as much as an unobtrusive service as possible, channeling ads would result in just the opposite. We also believe that using a commercial service is a higher guarantee for the users.</p>
<p style="text-align:justify;">I’d be glad to read your impression of this idea – use the comments, or <a title="Tweet Pietro Polsinelli" href="http://twitter.com/ppolsinelli" target="_blank">tweet</a> me.</p>
<h6 style="text-align:justify;">[1] <a href="http://en.wikipedia.org/wiki/Raymond_Queneau">Raymond Queneau</a> has described <a title="Pataphysics on Wikipedia" href="http://en.wikipedia.org/wiki/%27Pataphysics" target="_blank">&#8216;pataphysics</a> as resting &#8220;on the truth of contradictions and exceptions.&#8221; Well.. we just liked the sound of the word.</h6>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/polsinelli.wordpress.com/580/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/polsinelli.wordpress.com/580/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/polsinelli.wordpress.com/580/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/polsinelli.wordpress.com/580/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/polsinelli.wordpress.com/580/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/polsinelli.wordpress.com/580/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/polsinelli.wordpress.com/580/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/polsinelli.wordpress.com/580/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/polsinelli.wordpress.com/580/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/polsinelli.wordpress.com/580/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pietro.open-lab.com&blog=6072057&post=580&subd=polsinelli&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://pietro.open-lab.com/2009/12/10/discovering-the-power-of-mashups-with-patapage/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5198744cd329b6dfdb9e39b4f9794cd1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">polsinelli</media:title>
		</media:content>

		<media:content url="http://polsinelli.files.wordpress.com/2009/12/mashup.jpg" medium="image">
			<media:title type="html">found on ffffound.com</media:title>
		</media:content>

		<media:content url="http://polsinelli.files.wordpress.com/2009/12/sampleservices_thumb.gif" medium="image">
			<media:title type="html">List of widgets available in Patapage</media:title>
		</media:content>

		<media:content url="http://polsinelli.files.wordpress.com/2009/12/screenproperties_thumb.gif" medium="image">
			<media:title type="html">Properties of the window opened by Patapage buttons</media:title>
		</media:content>

		<media:content url="http://polsinelli.files.wordpress.com/2009/12/security_thumb.gif" medium="image">
			<media:title type="html">Patapage button-relative security</media:title>
		</media:content>

		<media:content url="http://polsinelli.files.wordpress.com/2009/12/pata_thumb.gif" medium="image">
			<media:title type="html">The PataHero showing off</media:title>
		</media:content>
	</item>
		<item>
		<title>Java is just fine for your online service startup development</title>
		<link>http://pietro.open-lab.com/2009/12/05/java-is-just-fine-for-your-online-service-startup-development/</link>
		<comments>http://pietro.open-lab.com/2009/12/05/java-is-just-fine-for-your-online-service-startup-development/#comments</comments>
		<pubDate>Sat, 05 Dec 2009 09:47:37 +0000</pubDate>
		<dc:creator>Pietro Polsinelli</dc:creator>
				<category><![CDATA[software development]]></category>
		<category><![CDATA[duct tape]]></category>
		<category><![CDATA[java web development]]></category>
		<category><![CDATA[online service development]]></category>

		<guid isPermaLink="false">http://pietro.open-lab.com/?p=445</guid>
		<description><![CDATA[ There is a commonplace going round according to which Java/J2EE is not an appropriate development platform for startups creating online services. This commonplace is repeated again and again,
e.g. on answers.onstartups.com How to pick a platform for a startup web 2.0 app?

stay away from J2EE. J2EE is too heavyweight. Takes too long to develop. Its [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pietro.open-lab.com&blog=6072057&post=445&subd=polsinelli&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://polsinelli.files.wordpress.com/2009/12/javagepoweredvert.jpg"><img style="display:inline;border-width:0;margin:0 10px 5px 0;" title="Patapage and BugsVoice made in java" src="http://polsinelli.files.wordpress.com/2009/12/javagepoweredvert_thumb.jpg?w=221&#038;h=252" border="0" alt="Patapage and BugsVoice made in java" width="221" height="252" align="left" /></a> There is a commonplace going round according to which Java/J2EE is not an appropriate development platform for startups creating online services. This commonplace is repeated again and again,</p>
<p><em>e.g.</em> on <em>answers.onstartups.com </em><a href="http://answers.onstartups.com/questions/831/how-to-pick-a-platform-for-a-startup-web-2-0-app">How to pick a platform for a startup web 2.0 app?</a></p>
<div>
<blockquote><p>stay away from J2EE. J2EE is too heavyweight. Takes too long to develop. Its great for consultants because it means more billable hours but not good for nimble startups</p></blockquote>
</div>
<p>or</p>
<div>
<blockquote><p>Java is too expensive. Higher initial investment for hardware, human resources, and too much code to write to do just simple thing. A startup can&#8217;t afford it.</p></blockquote>
</div>
<p>I hope to show in the following that this is simply false.</p>
<h3>The origins of the commonplace</h3>
<p>As most commonplaces, they are simply the <em>repetition out of context of something true in context</em>, and all those who have followed Java and its evolution in the last ten years, and the coming and going of many, too many, architecture astronautic – inspired frameworks and fashions, there has been no lack of context where Java has been and is used in absurdly convoluted ways; but this is history, boring, and by now not very interesting. And of course the point is that <em>there is <strong>nothing in the nature of the language</strong> and tools that forces you to use complex solutions</em>.</p>
<p>My point is the opposite of the commonplace: <strong>if you have Java expertise, you are in an advantageous position to start developing an online service.</strong></p>
<p>Using Java for your online service will lead you to a <strong>change of focus</strong> from corporate development, together with a complete revolution in marketing strategy; it is likely that the business logic involved will be relatively simple, you won&#8217;t need to redistribute your code, you won&#8217;t need say to certify it for some complex pharmaceutical software standard; other different, complex problems will come to the surface. But this will happen whatever language / framework you are using.</p>
<h3>A pragmatic attitude</h3>
<p>The quoted common places assume that being a Java programmer simply means the lack of pragmatic sense; but why should that be? Surely there is no entailment there.</p>
<p>Lets tell a few simple facts that most experienced developers are perfectly aware of, but don&#8217;t say in conferences: you can write excellent applications and never ever write a single line of unit testing and Javadoc. And put all the time you saved from writing and fixing bugs in the unit tests ( <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' />  ) in having <strong>human testers</strong> try your application, and in this way get feedback worth a million times what your own self-test would tell you (assuming optimistically that the code-based tests are bug free). Also human users will  tell you about interface bugs that no code test will ever do, like about the dark gray buttons on a black background, or the unpredictable series of clicks ad back which users find so intuitive and code tests will never cover. You can be self-satisfied with your unit tested and JavaDoc-umented code (remembered to update it all <em>by hand</em> after the last refactorings and fixes?), and release a totally unusable program filled with what for the user look like serious bugs, though you didn&#8217;t perceive them as so.</p>
<p>Having a firm pragmatic and user oriented attitude is not at all in contrast with using Java for development: you can be a talented <a href="http://www.joelonsoftware.com/items/2009/09/23.html" target="_blank">duct-tape programmer</a>, and indeed use Java.</p>
<p>We should all be grateful to the dynamic language communities, that with their repeated successes have shown that the &#8220;king is naked&#8221; and self-referential practices of formal code quality or blind following of methodologies valid for over-ruled corporations are useless advice in many environments, and that a more socially oriented testing and user interface design is what wins for creating online services. But I believe the development language involved is accidental.</p>
<p>There are all sorts of tricks you can use in Java to avoid complications: as class reloading may cause the web server to drop sessions, you may simply publish some experimental business logic in an included JSP file – yes, as simple as that. Having &#8220;duct tape&#8221; capacities is not language-dependant, and if on top of your pragmatic skills you use Java, you&#8217;ll be perfectly fine.</p>
<p>Note that I am <strong>not</strong> saying that the development language choice is a crucial step in you startup path (hear the end of <a href="http://blog.stackoverflow.com/2009/11/podcast-73" target="_blank">this podcast</a> for some wise considerations): I&#8217;m just saying that if you have Java expertise, use it, and you&#8217;ll be fine.</p>
<h3>Online in three months</h3>
<p>As a concrete example, working in Java, having a considerable experience in Java web development (we develop <a href="http://www.twproject.com/" target="_blank">Teamwork</a>), and using the simplest solutions and the best tools available, we developed two online services from scratch and put them online in three months, with 2 people working for each service and one shared. The services are these:</p>
<p><a href="http://patapage.com" target="_blank">http://patapage.com</a> “add dynamics to your web pages by embedding simple widgets”</p>
<p>and</p>
<p><a href="http://bugsvoice.com" target="_blank">http://bugsvoice.com</a> “turn bugs into opportunities”</p>
<p>and some of the work done for development and marketing is presented <a href="http://pietro.open-lab.com/building-and-marketing-two-web-applications/" target="_blank">here</a>. Anyway in this post the focus is on whether Java helped in the process, or it was a hindrance.</p>
<p>Notice also that the server side development is more and more a fraction of the total development needed; as you can see in the example services above, the design and UI/JavaScript part is getting more and more important.</p>
<h3>Java&#8217;s comfortable world</h3>
<p>If you are a Java developer and are thinking of dropping it,  think carefully before doing that: there are many features that you may assume as &#8220;obvious&#8221; which are not at all available in other environments. A few examples:</p>
<p><em>Choices. </em>In the Java world we are happily used to having choices; that is, for a well defined common problem, not only you often find a solution, you most often find <strong>more than one</strong>. This is in stark contrast with &#8220;canned&#8221; environments.</p>
<p><em>Refactoring.</em> You take as granted Java&#8217;s clear syntax, and all the advantages of its static typing. If you are fascinated by dynamic injection, consider for example that you&#8217;d simply have to <strong>drop your trust in refactorings to work</strong>, which with Java (and <a href="http://www.jetbrains.com/idea/" target="_blank">Intellij</a> <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  ) is close to certainty. And this may mean a shift of focus from the core of your problems to… find-and-replace by hand, a reversion to stone age code writing &#8211; sounds silly enough. Java core is stable, and basic signatures can&#8217;t be overwritten: in many case, this is a quality. Listen to <a href="http://javaposse.com/index.php?post_id=544693" target="_blank">this very interesting Java Posse podcast</a> for competent discussion of <em>Static vs. Dynamic Typing</em>, which will help you get a clear picture about the myths of dynamic language productivity.</p>
<p><em>The largest server side development community you can get.</em> That&#8217;s a simple fact. See <a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html" target="_blank">this</a> and <a href="http://langpop.com/" target="_blank">this</a>, for example.</p>
<p><em>Good producer support.</em> Server side Java really runs well everywhere, and also is <strong>fast everywhere</strong> (see <em>e.g.</em> <a href="http://www.codinghorror.com/blog/archives/000838.html" target="_blank">Twitter: Service vs. Platform</a>), and keeps getting faster;  with today&#8217;s servers that is not that relevant. Anyway, it feels good to know. Being fast, no great hardware support is required, which is the opposite of the commonplace quoted in the beginning.</p>
<p>If you are using a relational database, all the components scale, with well known and documented practices.</p>
<p><em>A real virtual machine. </em>Virtual machines should run on all main OS out there, and with identical functional coverage. Otherwise its cheating.</p>
<p>All this makes Java a great platform for almost any kind of development; but lets see some specific needs for online services.</p>
<h3>Some positive examples</h3>
<p>Lets see how the Java platform, available APIs and some tools developed by us along the way can help you in several concrete cases.</p>
<p>While developing your new online service you will probably need to meet these or similar problems along the way, which you will hardly have met doing say intranet corporate development:</p>
<p><em>- Cross-site scripting</em><br />
See a definition <a href="http://en.wikipedia.org/wiki/Cross-site_scripting" target="_blank">here</a>. Examining these kinds of problems, we put together a quite complete Java HTML sanitizer <a href="http://patapage.com/applications/pataPage/site/test/testSanitize.jsp" target="_blank">here</a>, which everybody can freely use.  The development process is described <a href="http://roberto.open-lab.com/2009/11/05/a-java-html-sanitizer-also-against-xss/" target="_blank">here</a>.</p>
<p><em>- Cross-site request forgery</em><br />
See a definition <a href="http://en.wikipedia.org/wiki/Cross-site_request_forgery" target="_blank">here</a>.</p>
<p><em>- Filtering spam<br />
</em>For this there are many solutions, see this one for example:</p>
<p><a href="http://www.theserverside.com/tt/articles/article.tss?l=UsingCI-Bayes">http://www.theserverside.com/tt/articles/article.tss?l=UsingCI-Bayes</a></p>
<p>We are experimenting using an online service; the nice thing about using Java is that because it is so widespread, everybody provides the Java stub for their services, ready to use.</p>
<p><em>- Exposing a (RESTful?) API<br />
</em>Here our solution is under development (but almost there), in our experiments we are using <a href="http://json-lib.sourceforge.net" target="_blank">JSON-lib</a>.</p>
<p>- <em>Configuring/scripting your service<br />
</em>A (great) example where we used the power and openness of Java to &#8220;talk&#8221; with a wider audience is in BugsVoice <strong>rule scripting language</strong>, which is simply JavaScript; given the large and cross server-platform competence in JavaScript, it is the ideal language for letting a wide audience script your application. See <a href="http://roberto.open-lab.com/2009/11/18/solving-the-halting-problem/" target="_blank">here</a> for details.</p>
<p><em>- Integrating Open Id<br />
</em>We use <a href="http://code.google.com/p/openid4java/" target="_blank">openid4java</a>, but of course here too there are plenty of choices.</p>
<p><em>- Talking with Google applications, Twitter, &#8230; .<br />
</em>Here too the fact that everybody is exposing stubs for Java is just great, and saves a lot of time.</p>
<p><em>- Full-text and even smarter searching<br />
</em><a href="http://lucene.apache.org/" target="_blank">Lucene</a> here is the framework to mention. Actually there are many cases, in particular in online services, where full-text search is not enough; never tried Google? So we did some work on this theme too. Here is a quote from <a href="http://blog.twproject.com/2009/02/20/smarter-search-and-recent-object-functionality/" target="_blank">Smarter search and recent object functionality</a> :</p>
<blockquote><p>Here we examine a technique to improve usability in complex applications by introducing smarter search and “recent objects” functionalities. As usability becomes more and more a crucial feature of applications, helping users with full-text search and recent object lists may still prove insufficient. You may need to go beyond these features, by having a way to keep track of “most used” objects, which will help to:</p>
<p>- guess what you are looking for</p>
<p>- find what you are searching for</p></blockquote>
<h6>(Some links on this problem:</h6>
<h6>Google’ page rank paper: <a href="http://infolab.stanford.edu/~backrub/google.html" target="_blank"><span style="color:#0066cc;">The Anatomy of a Large-Scale Hypertextual Web Search Engine</span></a></h6>
<h6>A discussion on badges: <a href="http://stackoverflow.com/questions/135647/how-do-badges-work-in-stackoverflow" target="_blank"><span style="color:#0066cc;">http://stackoverflow.com/questions/135647/how-do-badges-work-in-stackoverflow</span></a></h6>
<h6>An introduction to full text search: <a href="http://www.javaworld.com/javaworld/jw-09-2006/jw-0925-lucene.html" target="_blank"><span style="color:#0066cc;">http://www.javaworld.com/javaworld/jw-09-2006/jw-0925-lucene.html</span></a></h6>
<h6>Hibernate full-text search: <a href="http://www.hibernate.org/410.html" target="_blank"><span style="color:#0066cc;">http://www.hibernate.org/410.html</span></a></h6>
<h6>Our contribution to Hibernate full-text search: <a href="http://www.hibernate.org/432.html" target="_blank"><span style="color:#0066cc;">http://www.hibernate.org/432.html</span></a>)</h6>
<h3>Conclusions</h3>
<p>The basic question is: does the Java environment help solving your real problems, apart from any <a href="http://www.joelonsoftware.com/articles/fog0000000018.html" target="_blank">architecture astronautic fad</a>? I hope that the examples above show that it does.</p>
<p><em> </em></p>
<p><em> </em></p>
<p><em><br />
</em></p>
<p><em> </em></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/polsinelli.wordpress.com/445/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/polsinelli.wordpress.com/445/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/polsinelli.wordpress.com/445/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/polsinelli.wordpress.com/445/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/polsinelli.wordpress.com/445/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/polsinelli.wordpress.com/445/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/polsinelli.wordpress.com/445/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/polsinelli.wordpress.com/445/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/polsinelli.wordpress.com/445/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/polsinelli.wordpress.com/445/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pietro.open-lab.com&blog=6072057&post=445&subd=polsinelli&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://pietro.open-lab.com/2009/12/05/java-is-just-fine-for-your-online-service-startup-development/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5198744cd329b6dfdb9e39b4f9794cd1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">polsinelli</media:title>
		</media:content>

		<media:content url="http://polsinelli.files.wordpress.com/2009/12/javagepoweredvert_thumb.jpg" medium="image">
			<media:title type="html">Patapage and BugsVoice made in java</media:title>
		</media:content>
	</item>
		<item>
		<title>Introducing Patapage</title>
		<link>http://pietro.open-lab.com/2009/12/03/introducing-patapage/</link>
		<comments>http://pietro.open-lab.com/2009/12/03/introducing-patapage/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 11:33:36 +0000</pubDate>
		<dc:creator>Pietro Polsinelli</dc:creator>
				<category><![CDATA[software development]]></category>
		<category><![CDATA[mashups]]></category>
		<category><![CDATA[patapage]]></category>
		<category><![CDATA[web2.0]]></category>
		<category><![CDATA[widgets]]></category>

		<guid isPermaLink="false">http://pietro.open-lab.com/?p=562</guid>
		<description><![CDATA[ We just put online a new web service, Patapage:
&#160; http://patapage.com
Patapage is a way of adding services to web sites (also static ones) in a most simple way: just by adding buttons. There are buttons for socially contributed contents, like adding a wiki-like layer to your pages, and also comments, image galleries, contact forms, rating, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pietro.open-lab.com&blog=6072057&post=562&subd=polsinelli&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p align="justify"><a href="http://polsinelli.files.wordpress.com/2009/12/patahome.gif"><img style="display:inline;border-width:0;margin:0 15px 0 0;" title="pataHome" border="0" alt="pataHome" align="left" src="http://polsinelli.files.wordpress.com/2009/12/patahome_thumb.gif?w=420&#038;h=380" width="420" height="380" /></a> We just put online a new web service, Patapage:</p>
<p align="justify">&#160; <a href="http://patapage.com" target="_blank">http://patapage.com</a></p>
<p align="justify">Patapage is a way of adding services to web sites (also static ones) in a most simple way: just by adding buttons. There are buttons for socially contributed contents, like adding a wiki-like layer to your pages, and also comments, image galleries, contact forms, rating, retweet, Google or Twitter searches, windows on other websites, annotated feedbacks, and so on. We are adding more services almost daily.</p>
<p align="justify">By relying on this service, you are avoiding any kind of server maintenance, and getting some nicely designed and customizable additional layers on your site. All this in an unobtrusive, simple way. </p>
<p align="justify">Anyone who is familiar with adding Google analytics or Twitter gadgets on their site will find Patapage simple to use and in line with the current evolution of the web.</p>
<p align="justify">There is simply nothing of the sort, and to see the demo you don’t even need to enroll: so just <a href="http://patapage.com" target="_blank">give it a try</a>!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/polsinelli.wordpress.com/562/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/polsinelli.wordpress.com/562/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/polsinelli.wordpress.com/562/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/polsinelli.wordpress.com/562/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/polsinelli.wordpress.com/562/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/polsinelli.wordpress.com/562/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/polsinelli.wordpress.com/562/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/polsinelli.wordpress.com/562/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/polsinelli.wordpress.com/562/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/polsinelli.wordpress.com/562/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pietro.open-lab.com&blog=6072057&post=562&subd=polsinelli&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://pietro.open-lab.com/2009/12/03/introducing-patapage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5198744cd329b6dfdb9e39b4f9794cd1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">polsinelli</media:title>
		</media:content>

		<media:content url="http://polsinelli.files.wordpress.com/2009/12/patahome_thumb.gif" medium="image">
			<media:title type="html">pataHome</media:title>
		</media:content>
	</item>
		<item>
		<title>Introducing BugsVoice</title>
		<link>http://pietro.open-lab.com/2009/11/17/introducing-bugsvoice/</link>
		<comments>http://pietro.open-lab.com/2009/11/17/introducing-bugsvoice/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 10:38:41 +0000</pubDate>
		<dc:creator>Pietro Polsinelli</dc:creator>
				<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://pietro.open-lab.com/?p=554</guid>
		<description><![CDATA[
Error trapping is a well known &#8220;secondary&#8221; aspect of application development that has received a certain attention in recent years in usability studies. It is more and more believed that it is not that a secondary point, and that handling it properly can be a considerable help in developing quality applications and online services.
It is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pietro.open-lab.com&blog=6072057&post=554&subd=polsinelli&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">
<div id="attachment_556" class="wp-caption alignleft" style="width: 523px"><a href="http://polsinelli.files.wordpress.com/2009/11/bv.gif"><img class="size-full wp-image-556" title="BugsVoice site" src="http://polsinelli.files.wordpress.com/2009/11/bv.gif?w=513&#038;h=327" alt="BugsVoice site" width="513" height="327" /></a><p class="wp-caption-text">BugsVoice site</p></div>
<p style="text-align:justify;">Error trapping is a well known &#8220;secondary&#8221; aspect of application development that has received a certain attention in recent years in usability studies. It is more and more believed that it is not that a secondary point, and that handling it properly can be a considerable help in developing quality applications and online services.</p>
<p style="text-align:justify;">It is also true that managing this will make you <em>loose focus</em> with respect to the main target of your application development; so we came with the idea of providing an online service that would solve the problem for you, where you are either a web application developer of the maintainer of hosting services &#8211; or both. We called such service BugsVoice &#8220;turn bugs into opportunities&#8221;.</p>
<p style="text-align:justify;">The service will provide you with a choice of friendly error pages, which you can eventually customize, and guidance on how to integrate your application error handling with the service. If you stick to the basicsm, you should be up in no time. Enough words: <strong>BugsVoice beta is online <a title="BugsVoice" href="http://bugsvoice.com">here</a> &#8211; give it a try!</strong></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/polsinelli.wordpress.com/554/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/polsinelli.wordpress.com/554/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/polsinelli.wordpress.com/554/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/polsinelli.wordpress.com/554/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/polsinelli.wordpress.com/554/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/polsinelli.wordpress.com/554/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/polsinelli.wordpress.com/554/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/polsinelli.wordpress.com/554/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/polsinelli.wordpress.com/554/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/polsinelli.wordpress.com/554/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pietro.open-lab.com&blog=6072057&post=554&subd=polsinelli&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://pietro.open-lab.com/2009/11/17/introducing-bugsvoice/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5198744cd329b6dfdb9e39b4f9794cd1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">polsinelli</media:title>
		</media:content>

		<media:content url="http://polsinelli.files.wordpress.com/2009/11/bv.gif" medium="image">
			<media:title type="html">BugsVoice site</media:title>
		</media:content>
	</item>
		<item>
		<title>Pricing an online service</title>
		<link>http://pietro.open-lab.com/2009/11/03/pricing-an-online-service/</link>
		<comments>http://pietro.open-lab.com/2009/11/03/pricing-an-online-service/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 14:56:28 +0000</pubDate>
		<dc:creator>Pietro Polsinelli</dc:creator>
				<category><![CDATA[software marketing]]></category>
		<category><![CDATA[pricing software]]></category>

		<guid isPermaLink="false">http://pietro.open-lab.com/?p=485</guid>
		<description><![CDATA[This in one of a series of posts that are a sort of  &#8220;marketing diary&#8221; of our (attempt at) launching two new online services. The posts are put into context here.
In this post I articulate the reasoning that led us to define a pricing policy for our new online services. In order not to repeat [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pietro.open-lab.com&blog=6072057&post=485&subd=polsinelli&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;"><em>This in one of a series of posts that are a sort of  &#8220;marketing diary&#8221; of our (attempt at) launching two new online services. The posts are put into context <a href="http://pietro.open-lab.com/building-and-marketing-two-web-applications/" target="_self">here</a>.</em></p>
<p style="text-align:justify;"><a href="http://polsinelli.files.wordpress.com/2009/11/patarate.png"><img class="alignleft size-full wp-image-499" title="pricing online service" src="http://polsinelli.files.wordpress.com/2009/11/patarate.png?w=113&#038;h=94" alt="pricing online service" width="113" height="94" /></a>In this post I articulate the reasoning that led us to define a pricing policy for our new online services. In order not to repeat mistakes made by others, I tried to become familiar with experiences, mistakes and successes from many sources &#8211; I give a short selection of references at the end. During this search, I have come to the conclusion that there is a simple and single principle, the <em>&#8220;nobody cares about features&#8221;</em> one, that every developer/marketer that comes to pricing software should keep clear in mind: this is probably the single original point of this post.</p>
<p style="text-align:justify;">We got to define a pricing policy having already three years of experience and alternate success in selling software online; but this was a downloadable product, not an online service, and things are different. One point I got while thinking and researching about pricing is that &#8220;no price is an island&#8221;: the price of your online service is one aspect of a more general &#8220;pricing policy&#8221; that includes demo conditions, free licenses, refunds, segmentation (eventually), and other aspects.</p>
<p style="text-align:justify;">I had got to some principles:</p>
<p style="text-align:justify;"><strong>Transparency.</strong> Your prices and entire pricing policy should be public, clear and completely defined from the very beginning, from the very first moment your beta goes public. This because you must not keep any of your users and potential customers in a state of uncertainty. This way you may reduced the time it will take to make the first sales, which is a critical factor for your success.</p>
<p style="text-align:justify;"><strong>Simplicity.</strong> Your price must be simple. Nobody wants to make complex reasonings when trying to understand costs. We&#8217;ll get back to this after stating the &#8220;nobody cares about features&#8221; principle, because its related to that.</p>
<p style="text-align:justify;"><strong>Give refunds.</strong> Your worst enemy in sales is <em>user&#8217;s fear</em>, and anything that can lower that, should be welcome. A clear refund policy reassures evaluators, and do you want to keep unhappy users around? It&#8217;s not a good idea for an open, blogged about service.</p>
<p style="text-align:justify;"><strong>Have only paid accounts.</strong> And then a choice we made is to <em>have only paid accounts</em>; a free online service, say ad-based, is a very complex undertaking, whose difficulty and implications for the users are <a href="http://www.codinghorror.com/blog/archives/001286.html" target="_blank">easily underestimated</a>. The mass audience that you must reach to make such choice profitable is <a href="http://blog.stackoverflow.com/2009/08/podcast-64/" target="_blank">rarely found</a>. Another option that rarely works is the donation model. No, we want to give a refined, quality service, for real money.</p>
<p style="text-align:justify;">Fixed these principles, we are still in the dark about how much we should price an account, say per month. You may start looking for a formula, well, there are two values that can be sort of determined:</p>
<p style="text-align:justify;"><strong><em>Costs: </em></strong>you can determine how much development and maintenance costs, and what is the marginal cost, that is, the cost of activating and maintaning a new account.</p>
<p style="text-align:justify;"><em><strong>Real worth:</strong></em> you can probably determine how much worth your service will be for your average customer, how many days of work and confusion it will save them, etc.</p>
<p style="text-align:justify;">Well, now comes a fundamental realization: these two values are <em>entirely, completely irrelevant</em> for determining your service price; because you are looking at things from the wrong direction and/or with the wrong user model in mind. Consider the theme of my previous post about finding a pitch for your product (<a href="http://pietro.open-lab.com/2009/10/19/get-visitors-to-read-and-remember-your-home-page-the-principles/" target="_blank">Get visitors to read and remember your home page</a>):</p>
<blockquote><p>The day you realize that <strong>nobody</strong> is interested in reading your product or service homepage because <em>you</em> love it, may be a bit depressing, but may also be the start of a re-design that will lead to more returning visitors.</p></blockquote>
<p style="text-align:justify;">Well, something similar holds for your pricing: in a competitive market, you simply can&#8217;t base yourself on what you believe your service is worth, or how much is costs, or the features you know it has, because <em>nobody, absolutely nobody cares about that</em>. Sad, but true. You have to set the price for the most direct and simple advantage the user can evidently and quickly see she /he will get.</p>
<p style="text-align:justify;">You should never overestimate the will of an evaluator to carefully review your application: so you should surely put <em>no limitation whatsoever </em>in the service you are providing in the demo or free phase of the service; but then, this also influences your pricing, because if you are attempting what is called &#8220;segmentation&#8221;, based on limiting the features offered by different levels of pricing, you are sort of preparing a &#8220;nasty surprise&#8221; for those that want to turn from the full, complete demo to paying accounts: so I think this is a <em>very bad idea</em>. Developers love their products and their features, and (wrongly) assume that visitors to the presentation web site have the same drive; no, visitors drive has to be <em>conquered</em>, with the full power of your service, and also through simple and convenient pricing policies.</p>
<p style="text-align:justify;">If  you look at the typical policies of expanding software houses, these are often based on a flat, aggressive pricing policy; look today at how much more appeal has Apple&#8217; OS simple pricing policy compared to the academic segmented prices of Microsoft&#8217;s OSs (and when Microsoft wanted to become a leader, it had the same policy as that of today&#8217;s Apple).</p>
<p style="text-align:justify;">So the policy I support is to let the evaluators use the service in full, and give a single, simple price if they want to turn to a pay account. This is not what the marketing litterature suggests, but&#8230; things change, markets evolve, become more competitive, and also certain costs, like bandwidth, decrease.</p>
<p style="text-align:justify;">Anyway, you may have noticed that we are <strong>still</strong> in the dark for fixing the price, as simple as it may be! Well, at least we&#8217;ve set the background principles, we can now look at similar successful software and services in similar fields; I&#8217;m not saying <em>same fields</em> as your service is a new, revolutionary idea, right?  This also means that you won&#8217;t find many references to compare. At least you can be happy that with online services, all the piracy problems are over.</p>
<p style="text-align:justify;">Another way to get an idea on price is to ask for opinions to your followers, or on <a href="http://discuss.joelonsoftware.com/?biz" target="_blank">The Business of Software</a>,  <a href="http://answers.onstartups.com/" target="_blank">answers.onstartups.com</a>, or <a href="http://startuptodo.com" target="_blank">Startuptodo</a>. But only those who have a complete and clear picture of the entire pricing policy can take a decision; and I hope that will include you, in the end <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> </p>
<p style="text-align:justify;">For our two new services, we actually fixed the price through a session where the entire software house took part, and voted.  So we fixed a price (39$/month) for both our services, with only a limitation for really huge customers.</p>
<p style="text-align:justify;">We&#8217;ll see whether it works&#8230;</p>
<h3 style="text-align:justify;">References</h3>
<p style="text-align:justify;"><a href="http://www.neildavidson.com/dontjustrollthedice.html" target="_blank">Don&#8217;t just roll the dice</a> &#8211; A usefully short guide to software pricing &#8211; by Neil Davidson</p>
<p style="text-align:justify;"><a href="http://www.joelonsoftware.com/articles/CamelsandRubberDuckies.html" target="_blank">Camels and Rubber Duckies</a> &#8211; by Joel Spolsky</p>
<p style="text-align:justify;"><a href="http://www.amazon.com/Startup-Success-Guide-Books-Professionals/dp/1430219858/ref=ntt_at_ep_dpt_1" target="_blank">The Web Startup Success Guide</a> &#8211; by Bob Walsh</p>
<p style="text-align:justify;"><a href="http://answers.onstartups.com/questions/1935/subscription-based-models-how-to-determine-pricing">Subscription based models, how to determine pricing ?</a></p>
<p>Our new web services: <a href="http://patapage.com">Patapage</a> &#8220;More options for your website users&#8221; &#8211; <a href="http://bugsvoice.com">BugsVoice</a> &#8220;Turn bugs into opportunities&#8221;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/polsinelli.wordpress.com/485/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/polsinelli.wordpress.com/485/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/polsinelli.wordpress.com/485/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/polsinelli.wordpress.com/485/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/polsinelli.wordpress.com/485/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/polsinelli.wordpress.com/485/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/polsinelli.wordpress.com/485/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/polsinelli.wordpress.com/485/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/polsinelli.wordpress.com/485/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/polsinelli.wordpress.com/485/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pietro.open-lab.com&blog=6072057&post=485&subd=polsinelli&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://pietro.open-lab.com/2009/11/03/pricing-an-online-service/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5198744cd329b6dfdb9e39b4f9794cd1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">polsinelli</media:title>
		</media:content>

		<media:content url="http://polsinelli.files.wordpress.com/2009/11/patarate.png" medium="image">
			<media:title type="html">pricing online service</media:title>
		</media:content>
	</item>
	</channel>
</rss>