<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Life on Lars</title>
	<atom:link href="http://lifeonlars.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://lifeonlars.com</link>
	<description>Design, the Universe and Everything</description>
	<lastBuildDate>Fri, 04 Jan 2013 05:16:32 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Synergies between Design, Usability and SEO</title>
		<link>http://lifeonlars.com/seo/synergies-between-design-usability-and-seo/</link>
		<comments>http://lifeonlars.com/seo/synergies-between-design-usability-and-seo/#comments</comments>
		<pubDate>Fri, 04 Jan 2013 05:16:09 +0000</pubDate>
		<dc:creator>larfa</dc:creator>
				<category><![CDATA[E-Commerce]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://lifeonlars.com/?p=480</guid>
		<description><![CDATA[It&#8217;s perhaps no big secret that usability, if done with both a coding and user-facing mindset, can provide a lot of SEO benefits. The same synergies exist between a lot of different aspects in the creation and successful execution of a website, and perhaps more so in an e-commerce setting. It&#8217;s all about Traffic and [...]]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s perhaps no big secret that usability, if done with both a coding and user-facing mindset, can provide a lot of SEO benefits. The same synergies exist between a lot of different aspects in the creation and successful execution of a website, and perhaps more so in an e-commerce setting.<span id="more-480"></span></p>
<h2>It&#8217;s all about Traffic and Conversion</h2>
<p><em>Whether you have a small personal blog or a large enterprise e-commerce website it typically boils down to 2 things:</em></p>
<ol>
<li><strong>Get traffic</strong> &#8211; Regardless of the website you want some traffic, the amount you want or expect might be different but everybody wants people to visit their site.</li>
<li><strong>Convert traffic</strong> &#8211; Once people are on your website you typically want them do do something. You want to convert them from visitors to users, customers or subscribers. For a blog you might want them to comment on your post or share it with their friends, or perhaps subscribe to your newsletter or podcast. For an ecommerce site you&#8217;d probably want them to buy something and even better tell their friends so they buy something as well.</li>
</ol>
<p>Whilst simplified these are the two things that is common for most sites and each can be equally difficult to achieve.</p>
<p><strong>Getting traffic</strong> can be achieved through a huge number of avenues. Traditional and online marketing, social marketing, email marketing, word of mouth, viral content, paid search engine marketing and many more. Perhaps the most cost-effective, scalable and long term option is organic or natural traffic from search engines. The main factors in organic search is content and Search Engine Optimisation. However as I&#8217;m about to illustrate there are a number of other factors that have synergies with SEO, getting traffic and more importantly converting your traffic.</p>
<p><strong>Converting traffic</strong> is even more varied in both what it means to different websites as well as how you go about achieving it, this is where User Experience Design comes into play along with your content, value proposition, brand, credibility among other things.</p>
<h2>Diagram of factors that impact on Conversion</h2>
<p>In an attempt to visualise these synergies I created this diagram to show the different aspects in play how they can overlap. Whilst not entirely correct or complete, as there are a number of additional factors that are in play, it should give an overview of things to consider.</p>
<p><a href="http://lifeonlars.com/seo/synergies-between-design-usability-and-seo/attachment/seo-usability-synergy/" rel="attachment wp-att-483"><img class="alignnone size-full wp-image-483" alt="Synergies between Design, Usability and SEO" src="http://lifeonlars.com/wp-content/uploads/seo-usability-synergy.png" width="1000" height="1000" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://lifeonlars.com/seo/synergies-between-design-usability-and-seo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to add Multiple Featured Images in WordPress</title>
		<link>http://lifeonlars.com/wordpress/how-to-add-multiple-featured-images-in-wordpress/</link>
		<comments>http://lifeonlars.com/wordpress/how-to-add-multiple-featured-images-in-wordpress/#comments</comments>
		<pubDate>Fri, 26 Aug 2011 01:59:54 +0000</pubDate>
		<dc:creator>larfa</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Post Thumbnails]]></category>
		<category><![CDATA[Theme Development]]></category>
		<category><![CDATA[Tips & Tricks]]></category>

		<guid isPermaLink="false">http://www.lifeonlars.com/?p=440</guid>
		<description><![CDATA[The post thumbnails feature aka. Featured Image was added to WordPress back in version 2.9 and made it significantly easier for users to associate images with posts or pages. Prior to that we we had to upload an image, copy the url for the image and add that as a custom field if we wanted [...]]]></description>
				<content:encoded><![CDATA[<p>The post thumbnails feature aka. Featured Image was added to WordPress back in version 2.9 and made it significantly easier for users to associate images with posts or pages. Prior to that we we had to upload an image, copy the url for the image and add that as a custom field if we wanted to do something similar, which is ok when you know how to do it yourself but less than ideal when having to explain the process to clients or other authors. The post thumbnails feature allows you to easily set a single &#8220;Featured Image&#8221; for a post or page via a separate meta box in the WordPress admin. You simply click on the &#8220;Set featured image&#8221; link, open up the image dialog, upload or select an image then click the &#8220;use as featured image&#8221; link. </p>
<p>This works fine for the vast majority of cases but sometimes it would be great to have have more than one image for a post. For example if you have a folio section or a product where you may want to have multiple images. I tried searching for &#8220;mulitple post thumbnails&#8221;, &#8220;multiple featured images&#8221; and so on but most of the &#8220;solutions&#8221; were mainly about looping through all post attachments and displaying these. This can work in some instances but it didn&#8217;t provide as much control as I wanted and if you happened to have other images in the post then these would also be displayed. </p>
<p>Eventually I came across a plugin called <a target="_blank" href="http://wordpress.org/extend/plugins/multiple-post-thumbnails/">Multiple Post Thumbnails</a> and decided to tweak that slightly and integrate it directly into my theme instead of using it as a separate plugin. This is how I did it.</p>
<p><span id="more-440"></span></p>
<h2>Adding support for post thumbnails in your WordPress theme</h2>
<p>First things first, before you start adding support for multiple post thumbnails you need to ensure you have the basic post thumbnails enabled for your theme. Check your functions.php file and make sure the following line is present, if not add it in. </p>
<pre class="brush: php; title: ; notranslate"> add_theme_support( 'post-thumbnails' ); </pre>
<p>You can also define additional sizes for your post thumbnails. </p>
<pre class="brush: php; title: ; notranslate">
// Add Custom image sizes
// Note: 'true' enables hard cropping so each image is exactly those dimensions and automatically cropped
add_image_size( 'feature-image', 960, 500, true ); 
add_image_size( 'medium-thumb', 300, 156, true );
add_image_size( 'small-thumb', 75, 75, true );
</pre>
<h2>Adding the files and support for multiple post thumbnails to your theme</h2>
<ol>
<li>Download the files for the <a target="_blank" href="http://wordpress.org/extend/plugins/multiple-post-thumbnails/">Multiple Post Thumbnails Plugin</a> to your computer</li>
<li>Unzip the files and copy them to a sub-directory in your theme file. There are only two files you will need <em>multi-post-thumbnails.php</em> and <em>multi-post-thumbnails-admin.js</em>. In my case i&#8217;ve placed the PHP file in a <em>library</em> sub-directory in my theme and the JavaScript file in a sub-directory called <em>js</em> inside library.
<pre>
> theme-name
   > library
     - multi-post-thumbnails.php
     > js
       - multi-post-thumbnails-admin.js
</pre>
</li>
<li>Once that&#8217;s done you need to make a small tweak to the multi-post-thumbnails.php file.<br />
<strong>From this (line 143)</strong></p>
<pre class="brush: php; title: ; notranslate">
public function enqueue_admin_scripts() {
    wp_enqueue_script(&quot;featured-image-custom&quot;, plugins_url(basename(dirname(__FILE__)) . '/js/multi-post-thumbnails-admin.js'), array('jquery'));
}
</pre>
<p><strong>To this</strong></p>
<pre class="brush: php; title: ; notranslate">
public function enqueue_admin_scripts() {
    $template_url = get_bloginfo('template_url') . '/js/multi-post-thumbnails-admin.js';
    wp_enqueue_script(&quot;featured-image-custom&quot;,  $template_url, array('jquery'));
}
</pre>
</li>
<li>Then go back to your functions.php file and add the following.
<pre class="brush: php; title: ; notranslate">
// Load external file to add support for MultiPostThumbnails. Allows you to set more than one &quot;feature image&quot; per post.
require_once('library/multi-post-thumbnails.php');
</pre>
<p>It&#8217;s usually a good idea to keep these inclusions at the beginning of your functions.php file so they are included before you try to use any of the functions they add.
</li>
<li>You then need to define some additional post thumbnails and specify which post types they should apply to. The default would be &#8216;post&#8217; but in my case I had created a custom post type called folio where I&#8217;d added 4 extra post thumbnails for a total of up to 5 featured image for each folio item. To do this add the following in functions.php just after the add_image_size entries mentioned above.
<pre class="brush: php; title: ; notranslate">
	// Define additional &quot;post thumbnails&quot;. Relies on MultiPostThumbnails to work
	if (class_exists('MultiPostThumbnails')) {
		new MultiPostThumbnails(array(
			'label' =&gt; '2nd Feature Image',
			'id' =&gt; 'feature-image-2',
			'post_type' =&gt; 'folio'
			)
		);
		new MultiPostThumbnails(array(
			'label' =&gt; '3rd Feature Image',
			'id' =&gt; 'feature-image-3',
			'post_type' =&gt; 'folio'
			)
		);
		new MultiPostThumbnails(array(
			'label' =&gt; '4th Feature Image',
			'id' =&gt; 'feature-image-4',
			'post_type' =&gt; 'folio'
			)
		);
		new MultiPostThumbnails(array(
			'label' =&gt; '5th Feature Image',
			'id' =&gt; 'feature-image-5',
			'post_type' =&gt; 'folio'
			)
		);		
	
	};
</pre>
</li>
</ol>
<p>That&#8217;s it, you&#8217;ve now added support for mulitple post thumbnails for your post or custom post type and you should see several &#8220;Featured Images&#8221; boxes in your admin screen. This is what mine looked like. </p>
<p><img src="http://lifeonlars.com/wp-content/uploads/multiple-featured-images-11.jpg" alt="" title="multiple-featured-images-1" width="962" height="834" class="alignnone size-full wp-image-448" /><br />
<img src="http://lifeonlars.com/wp-content/uploads/multiple-featured-images-21.jpg" alt="" title="multiple-featured-images-2" width="646" height="207" class="alignnone size-full wp-image-450" /></p>
<h2>Displaying the post thumbnails in your WordPress posts</h2>
<p>So now you&#8217;ve (hopefully) got the admin part working and are able to add multiple post thumbnails to your posts, but you also need to output these in your post or page template. Continuing on my folio concept I wanted to output these images to use in a JavaScript slider. I happened to be using the Nivo Slider at the time but it doesn&#8217;t really matter what you use, you&#8217;ll just need to tweak the HTML output to match what your slider expects.</p>
<p>This is where the added control of the featured images comes in handy over just scanning through attachments, you might find it easier just to upload a bunch of images and let WordPress use all of the attachments but I needed control over the order and also wanted the freedom to add more images into the description of a folio item without having to worry about it ending up in the slider. </p>
<p>Here&#8217;s the PHP code. I&#8217;ll try to explain a bit more how it works. The listing is done in two steps. First we show the standard featured image, we then loop through and display all the extra featured images. Because I wanted to use the Nivo slider thumbnail view I had to include a REL attribute with the url for the thumbnail version of the image. After a lot of searching I finally figured that I could add an array of attributes when calling the_post_thumbnail() and this also worked for wp_get_attachment_image() which I ended up having to use instead of the standard MultiPostThumbnails::the_post_thumbnail(). </p>
<pre class="brush: php; title: ; notranslate">
&lt;div id=&quot;slider&quot;&gt;	         
    &lt;?php	
        // Checks if post has a feature image, grabs the feature-image and outputs that along with thumbnail SRC as a REL attribute 
        if (has_post_thumbnail()) { // checks if post has a featured image and then outputs it. 	
            $image_id = get_post_thumbnail_id ($post-&gt;ID );  
            $image_thumb_url = wp_get_attachment_image_src( $image_id,'small-thumb');  								
            $attr = array(
                'class'	=&gt; &quot;folio-sample&quot;,									
                'rel' =&gt; $image_thumb_url[0], // REL attribute is used to show thumbnails in the Nivo slider, can be skipped if you don't want thumbs or using other slider
            );
            the_post_thumbnail ('feature-image', $attr);											
        }
        if (class_exists('MultiPostThumbnails')) {								
        // Loops through each feature image and grabs thumbnail URL
        $i=1;
            while ($i&lt;=5) {
                $image_name = 'feature-image-'.$i;  // sets image name as feature-image-1, feature-image-2 etc.
                if (MultiPostThumbnails::has_post_thumbnail('folio', $image_name)) { 
                    $image_id = MultiPostThumbnails::get_post_thumbnail_id( 'folio', $image_name, $post-&gt;ID );  // use the MultiPostThumbnails to get the image ID
                    $image_thumb_url = wp_get_attachment_image_src( $image_id,'small-thumb');  // define thumb src based on image ID
                    $image_feature_url = wp_get_attachment_image_src( $image_id,'feature-image' ); // define full size src based on image ID
                    $attr = array(
                        'class'	=&gt; &quot;folio-sample&quot;,      // set custom class
                        'rel' =&gt; $image_thumb_url[0],   // sets the url for the image thumbnails size
                        'src' =&gt; $image_feature_url[0], // sets the url for the full image size 
                    );																						
                    // Use wp_get_attachment_image instead of standard MultiPostThumbnails to be able to tweak attributes
                    $image = wp_get_attachment_image( $image_id, 'feature-image', false, $attr );                     
                    echo $image;
                }							
                $i++;
            }                            
        
        }; // end if MultiPostThumbnails 
     ?&gt;
&lt;/div&gt;&lt;!-- end #slider --&gt;
</pre>
<p>Now all of this can be done a lot easier just using the standard call from the plugin e.g. </p>
<pre class="brush: php; title: ; notranslate">
if (class_exists('MultiPostThumbnails') {
    if (MultiPostThumbnails::has_post_thumbnail('folio', 'feature-image-2')) {
        MultiPostThumbnails::the_post_thumbnail('folio', 'feature-image-2'); 
    }
    if (MultiPostThumbnails::has_post_thumbnail('folio', 'feature-image-3')) {
        MultiPostThumbnails::the_post_thumbnail('folio', 'feature-image-3'); 
    }
    if (MultiPostThumbnails::has_post_thumbnail('folio', 'feature-image-3')) {
        MultiPostThumbnails::the_post_thumbnail('folio', 'feature-image-3'); 
    }
}
</pre>
<p>However because I needed the extra control over the output of attributes I ended up having to do it a bit more complex. If you&#8217;re planning on using the featured images in a slider that requires specific classes, attributes or HTML structure then you may need to go down the same route I&#8217;ve done. Hopefully with the code above most of the hard work will be done for you already.  </p>
<h2>Final words</h2>
<p>Well there you have it, if everything went well you should have a working post with multiple post thumbnails and a more elegant way of adding multiple feature images to your posts. If you&#8217;re doing work for clients I think this approach will be a bit more user friendly than trying to explain attachments or pasting in URLs into custom fields. The cool thing is that you can set featured images for completely different uses on the same post as well. They don&#8217;t need to be called feature images. If you&#8217;re doing a real estate web site you could have some images defined as interior, some for exterior and a separate one for floorplan which will give you the control needed to output the right images where needed. It also guides the authors to what they need to add. </p>
<p>Until WordPress 3.3 comes out and hopefully Plupload is integrated into the dashboard this is a pretty decent solution, at least compared to anything else I&#8217;ve seen so far. </p>
]]></content:encoded>
			<wfw:commentRss>http://lifeonlars.com/wordpress/how-to-add-multiple-featured-images-in-wordpress/feed/</wfw:commentRss>
		<slash:comments>50</slash:comments>
		</item>
		<item>
		<title>Getting Started with Mobile App Design</title>
		<link>http://lifeonlars.com/design/mobile-design/getting-started-with-mobile-app-development/</link>
		<comments>http://lifeonlars.com/design/mobile-design/getting-started-with-mobile-app-development/#comments</comments>
		<pubDate>Tue, 23 Aug 2011 16:10:29 +0000</pubDate>
		<dc:creator>larfa</dc:creator>
				<category><![CDATA[Mobile Design]]></category>
		<category><![CDATA[App Development]]></category>
		<category><![CDATA[Mobile App]]></category>
		<category><![CDATA[UI Design]]></category>
		<category><![CDATA[UX Design]]></category>

		<guid isPermaLink="false">http://www.lifeonlars.com/?p=413</guid>
		<description><![CDATA[If you&#8217;re a UX, UI or Web Designer it can perhaps be a bit daunting at first to jump into the relatively new field of Mobile App Design, but don&#8217;t worry almsost all of your design, UX and UI skills are still very relevant. There are just a few new rules and tools to get [...]]]></description>
				<content:encoded><![CDATA[<p>If you&#8217;re a UX, UI or Web Designer it can perhaps be a bit daunting at first to jump into the relatively new field of Mobile App Design, but don&#8217;t worry almsost all of your design, UX and UI skills are still very relevant. There are just a few new rules and tools to get your head around, or perhaps just a slightly different way of using tools that you&#8217;re already familiar with. At the time of writing I&#8217;m also still quite new to this game and this article is aimed at helping you get a bit of a start and an overview of the tools available. Whilst this article will focus mostly on getting started with App Design for iOS but general guidelines apply to all types of mobile devices.<br />
<span id="more-413"></span></p>
<h2>1. Getting familiar with the technology &#8211; Books and initial reading material</h2>
<p>There&#8217;s a huge amount of reading material available on Mobile App design and development. If you&#8217;re planning on designing an iOS app (iPhone, iPad or iPod Touch) then you&#8217;re in luck. Apple has released several free books on designing and developing for iOS on the Apple Bookstore as well as an online developer library to get you started at no cost.</p>
<ul>
<li><a href="http://developer.apple.com/library/ios/#documentation/userexperience/conceptual/mobilehig/Introduction/Introduction.html" target="_blank">iOS Human Interface Guidelines</a> also available as <a href="http://developer.apple.com/library/ios/documentation/userexperience/conceptual/mobilehig/MobileHIG.pdf" target="_blank">PDF</a> (for some reason I was unable to find this book in the bookstore, might just be missing from the Australian store)</li>
<li>iOS Technology Overview</li>
<li>Object Oriented Programming With Objective-C</li>
<li>iOS Application Programming Guide</li>
<li>Cocoa Fundamentals Guide</li>
<li>The Objective-C Programming Language</li>
</ul>
<p>Unless you&#8217;re a developer the first 2 books are probably what you&#8217;ll want to stick to. All of the books (apart from the first one) can be found on the Apple Bookstore, just search for the book names and download them for free to your iPhone, iPad or iPod Touch. </p>
<h3>Moving from Clicks to Touch Gestures</h3>
<p>One of the key differences to come to grips with when coming from a web or desktop design is how people on touch screen devices interact with the devices. Instead of clicks you have taps and gestures. Some things are no longer available like the hover state, other gestures are completely new. Tapping also requires consideration for minimum target size of icons buttons etc. as it can be harder to hit a small target with a finger compared to using the mouse pointer. Apple recommends minimum 44&#215;44 pts for tapping. Form interactions are also somewhat different and you have the abillity to display a context aware keyboard to make input easier, e.g. show @, .com and remove spacebar when entering email addresses. </p>
<p><a target="_blank" href="http://www.lukew.com/touch/TouchGestureGuide.pdf">Touch Gesture Guide (PDF)</a></p>
<h3>Be inspired by the best</h3>
<p>Books and theory are one thing but nothing beats the hands on experience of using beautifully designed apps. If you plan on developing an iPhone or an iPad app and you don&#8217;t have an iPhone or iPad then I strongly suggest you buy or borrow one as soon as possible, you&#8217;ll need this both to get a feel for and be inspired by other apps as well as for testing later on, even if it&#8217;s just a static or interactive prototype/mock-up.</p>
<p>Play around with and analyse the apps that you already love and top rated apps in the category you&#8217;re targetting. Identify visual elements and functionality that you really like. Download and test apps that have similar functionality to what you&#8217;re planning, see what they&#8217;re doing right and what they&#8217;re doing wrong. Find things that you can improve upon and note down which elements you want to incorporate into your own app. You might not be able to replicate the style or interaction of the best apps yet but it&#8217;s good to have a vision or goal to strive towards. Hopefully this will take you a step further to understanding what makes a good app tick and give you ideas and inspiration for your own app. </p>
<h2>2. Mobile UI Prototyping Tools</h2>
<p>Once you&#8217;re familiar with the technology, its constraints and strengths it&#8217;s time to familiarise yourself with the standard UI elements. If you&#8217;re designing for an iPhone then there will be certain hardware limitations and a set resolution that will limit what you can do as an Interface Designer but at least you can be fairly certain that the User Experience will be fairly consistent across the board. If you&#8217;re coming from web design then the device limitations, pre-defined UI elements and controlled environment can actually feel somewhat liberating. You now have a narrower set of variables to consider when designing the UI and you have more control over the end User Experience instead of having to try to design for a myriad of different resolutions, browsers and platforms.</p>
<h3>Printable sketch paper for iPhone, iPad and Mobile UIs</h3>
<p>Once you&#8217;ve got a concept or an idea for a Mobile App it can be a good idea to start sketching out some rough ideas with a pencil on paper. To help you get started there are several wireframing and sketching templates available that provide a great starting point. Before or during early sketching it&#8217;s usually a good idea to list all the visual elements your app might require then consider which elements are more important and start building a visual hierarchy. With a few rough sketches you&#8217;ll discover what you can fit on each screen and perhaps reconsider what elements are important and start trimming the fat off. As mentioned earlier if you&#8217;re from a design background the design and UX process really isn&#8217;t that different from what you&#8217;re used to, you&#8217;re just dealing with a different set of limitations which will in turn have an impact on UI and UX priorities and hierarchy. </p>
<p><img src="http://lifeonlars.com/wp-content/uploads/printable_wireframes_81.jpg" alt="" title="iPhone Printable Wireframe Sketching templates" width="540" height="360" class="alignnone size-full wp-image-426" /></p>
<ul>
<li><a target="_blank" href="http://www.flickr.com/photos/owaters/3846053408/">Printable iPhone Application Sketch Template (300DPI JPEG)</a></li>
<li><a target="_blank" href="http://www.flickr.com/photos/owaters/4501918517/">Printable iPad Application Sketch Template (300DPI JPEG)</a></li>
<li><a target="_blank" href="http://interactivelogic.net/wp/2009/09/iphone-wireframe-templates/">iPhone Wireframe Templates for Sketching (PDF and Visio)</a></li>
<li><a target="_blank" href="http://fullofdesign.com/posts/iphone-app-wireframe-template/">iPhone App Wireframe Template, Landscape &#038; Portrait with notes (PDF)</a></li>
<li><a target="_blank" href="http://gliderguns.files.wordpress.com/2010/01/android_wireframe_templates3.pdf">Andriod Wireframe Templates (PDF)</a></li>
</ul>
<p>BONUS: <a target="_blank" href="http://www.uistencils.com/products/iphone-stencil-kit">iPhone Stencil Kit</a> with one of these I&#8217;m sure we&#8217;ll be the envy of our peers <img src='http://lifeonlars.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>GUI Kits for iPhone and iPad</h3>
<p>Once you&#8217;re past a few iterations of the initial sketching phase it&#8217;s time to create some more polished UI mock-ups. Luckily there are loads of templates available that contain pretty much all the standard UI elements in iOS, Andriod or pretty much any other platform you&#8217;re looking at designing for. When you&#8217;re first getting started it&#8217;s probably best to stick to the established and standard UI elements rather than trying to radically reinvent the wheel. Good UX isn&#8217;t about being different it&#8217;s about making the unfamiliar seem familiar. When you&#8217;ve done a few apps and have come to grips with the basics then it&#8217;s time to consider experimenting and innovating. As they say; you should learn the rules before you break them.  </p>
<p><img src="http://lifeonlars.com/wp-content/uploads/iOS4_PSD1.jpg" alt="iPhone PSD GUI Kit (Tehan+Lax)" title="iPhone PSD GUI Kit (Tehan+Lax)" width="579" height="355" class="alignnone size-full wp-image-423" /></p>
<ul>
<li><a target="_blank" href="http://www.teehanlax.com/blog/iphone-4-gui-psd-retina-display/">Teehan+Lax: iPhone 4 GUI PSD (retina display)</a></li>
<li><a target="_blank" href="http://www.teehanlax.com/blog/iphone-gui-psd-v4/">Teehan+Lax: iPhone GUI PSD version 4 (non-retina display)</a></li>
<li><a target="_blank" href="http://www.teehanlax.com/blog/ipad-gui-psd-version-2/">Teehan+Lax: iPad GUI PSD version 2 </a></li>
<li><a target="_blank" href="http://www.smashingmagazine.com/2008/11/26/iphone-psd-vector-kit/">Smashing Magazine: iPhone PSD Vector Kit</a></li>
<li><a target="_blank" href="http://iconlibrary.iconshock.com/icons/ipad-vector-gui-elements-tabs-buttons-menus-icons/">Iconshock: iPad Vector GUI Elements (Adobe Illustrator)</li>
<li><a target="_blank" href="http://blog.metaspark.com/2009/02/fireworks-toolkit-for-creating-iphone-ui-mockups/">Metaspark: Fireworks Toolkit for Creating iPhone UI Mockups</a></li>
<li><a target="_blank" href="http://www.informationarchitects.jp/en/ipad-stencil-for-omnigraffle/">Information Architects: iPad Stencil for Omnigraffle</a></li>
<li><a target="_blank" href="http://developer.yahoo.com/ypatterns/about/stencils/">Yahoo! Developer Network: Stencil Kit (available in multiple formats includes elements beyond iPhone)</a></li>
</ul>
<h3>GUI Kits for Andriod</h3>
<p><img src="http://lifeonlars.com/wp-content/uploads/wireframeresource281.jpg" alt="" title="Andriod GUI Kit PSD" width="500" height="300" class="alignnone size-full wp-image-425" /></p>
<ul>
<li><a target="_blank" href="http://graffletopia.com/stencils/630">Andriod GUI Kit (Omnigraffle)</a></li>
<li><a target="_blank" href="http://unitid.nl/2009/11/fireworks-template-for-android/">Android GUI Kit (Fireworks)</a></li>
<li><a target="_blank" href="http://matcheck.cz/androidguipsd/">Android GUI Kit (PSD)</a></li>
</ul>
<h3>Additional Prototyping Tools for Mobile Apps</h3>
<h4><a target="_blank" href="http://www.invisionapp.com/">InVision &#8211; UX Prototyping and Wireframing</a></h4>
<p><a target="_blank" href="http://www.invisionapp.com/">InVision</a> is a UX Prototyping Tool that allows you to create interactive mock-ups or wireframes by adding clickable areas to mock-ups you&#8217;ve created. Somewhat reminiscent of old HTML image maps, but a lot more sophisticated, it can enable you to create faux interaction using a series of static screen mock-ups either as rough wireframes or as high-quality mock-ups and easily share or present to stakeholders. You can import JPEG, PNG or GIF files so you can create your design mock-ups in Fireworks, PSD, Illustrator or pretty much whatever you want as long as you can output it as one of those formats. InVision works for all types of prototyping not just mobile apps, to test on mobile apps you just need to create your mock-ups in the right size and share the link with your stakeholders. </p>
<p>InVision isn&#8217;t free however, you&#8217;ll have to pay a monthly subscription ranging between $8-199 depending on the plan and number of active projects you need, but if you&#8217;re working in a company with multiple designers and need to collaborate with multiple stakeholders and/or clients then the time saved will more than cover the costs. </p>
<h4><a target="_blank" href="http://mockapp.com">MockApp &#8211; iPhone App Design for the rest of us</h4>
<p><a target="_blank" href="http://mockapp.com">MockApp</a> allows you to quickly create iPhone App mock-ups in either Keynote or PowerPoint, even though it&#8217;s targeted more at non-designers it could be useful for professionals as well, in particular if you still need to present your mock-ups in PowerPoint or Keynote. It doesn&#8217;t allow for interactive prototyping but it can allow you to quickly and easily create some pretty polished looking mock-ups to present to stakeholders. </p>
<p>MockApp is also free, more or less, all you need to do is let the world know that you appreciate MockApp on Twitter, your blog, Facebook or some other means at your disposal.</p>
<h4><a target="_blank" href="http://sourceforge.net/projects/iphoneprototype/">iPhone Prototype Firefox Plugin</a></h4>
<p>A simple GUI prototyping tool for creating iPhone mock-ups, available for free as a Firefox Plugin. </p>
<h4><a target="_blank" href="http://pencil.evolus.vn/en-US/Home.aspx">Pencil Project &#8211; Open Source GUI Prototyping Tool</a></h4>
<p>The Pencil Project, available either as a Firefox plugin or as a standalone desktop application (Windows and Linux only for now, Mac support coming soon), is extremely versatile and can be a lightweight alternative to Visio, allow you to create quick interface mock-ups, web layouts and much more. </p>
<p>It&#8217;s open source and completely free, highly recommended. </p>
<h4><a target="_blank" href="http://www.adobe.com/devnet/fireworks/articles/prototype_iphone_app.html">Prototyping for the Apple iPhone using Fireworks</a></h4>
<p>This article covers in a fair bit of detail how to quickly prototype iPhone applications using Fireworks with some jQuery and PHP to provide you with an interactive prototype that you can test no your iPhone. It&#8217;s a slightly different approach but it does seem to work and gives a surprisingly good User Experience for testing elements and functionality of an app very early on. </p>
<h4><a target="_blank" href="http://balsamiq.com/">Balsamiq Mockups &#8211; Rapid Wireframing Tool</a></h4>
<p>Balsamiq Mockups allows you to quickly create low-fidelity wireframes with a sketchy look and feel. It comes with a wide array of pre-defined UI elements and icons and allows you to create semi-interative prototypes with click-throughs. Balsamiq Mockups can be used for prototyping iPhone and other mobile apps but works just as well for desktop or web apps. </p>
<p>Balsamiq Mockups runs on Windows, Mac, and Linux via Adobe Air and is also available as a plugin for JIRA, Confluence, FogBugz and XWiki. It is available as a seven day free trial, a full version costs $79. </p>
<h2>4. Native Mobile Apps vs. HTML5</h2>
<p>The question of developing native apps versus HTML5 web apps is a whole other topic, I&#8217;ll try to summarise the basics here.</p>
<ol>
<li>Native apps are usually faster and much more responsive. Unless they are really poorly designed and coded.</li>
<li>Native apps require that you develop apps for each individual platform or device which will significantly increase costs and require additional specialised development knowledge for each device.</li>
<li>Are you providing this as a free service or do you plan to sell your app for profit? If you&#8217;re planning on selling the app then you&#8217;ll need to go down the native app route but if it&#8217;s a free service or mainly aimed at conveying information then it&#8217;s worth considering whether it&#8217;s easier just to go with an HTML5 mobile web app instead. </li>
</ol>
<p>Before choosing to go down the native app route consider the purpose of the application, the target audience and the costs involved for each platform/device. It might be that 90% of your mobile users are on iOS devices so you choose to develop a native iOS app and then provide a mobile website of HTML5 based mobile app for other devices rather than multiple native apps. Later down the track Andriod usage might increase enough for you to be able to justify developing a native Andriod app. </p>
<p>If you have the budget native apps is usually the best way to go though, but HTML5 apps are becoming faster and slicker and are usually a lot more cost effective to maintain, but are still significantly behind native apps in terms of speed, responsiveness and interaction.  </p>
<h2>Final Thoughts</h2>
<p>I hope this has given you a good starting point for diving into mobile app design. I&#8217;m new to this myself and it can seem quite overwhelming at first until you realise that it&#8217;s not all that different from what you&#8217;ve been doing already. It&#8217;s an exciting area that&#8217;s growing at an incredible rate and staying on top of every new development is nearly impossible but I belive that a strong UX background and theory is much more important than knowing the latest trends in button design. General UX design principles are fairly device agnostic and there is still a place for both UX, UI and Usability knowledge when it comes to mobile, perhaps more so than in other more established areas. </p>
]]></content:encoded>
			<wfw:commentRss>http://lifeonlars.com/design/mobile-design/getting-started-with-mobile-app-development/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Responsive Web Design &#8211; Adaptive Layouts with Media Queries</title>
		<link>http://lifeonlars.com/design/web-design/responsive-web-design-adaptive-layouts-with-media-queries/</link>
		<comments>http://lifeonlars.com/design/web-design/responsive-web-design-adaptive-layouts-with-media-queries/#comments</comments>
		<pubDate>Sat, 13 Aug 2011 09:46:58 +0000</pubDate>
		<dc:creator>larfa</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Adaptive Design]]></category>
		<category><![CDATA[Design for Mobile]]></category>
		<category><![CDATA[Flexible Layout]]></category>
		<category><![CDATA[Media Queries]]></category>
		<category><![CDATA[Mobile Devices]]></category>
		<category><![CDATA[Responsive Web Design]]></category>

		<guid isPermaLink="false">http://www.lifeonlars.com/?p=392</guid>
		<description><![CDATA[Responsive Web design is an approach to design and devlopment aimed at creating designs that respond to the behaviour and environment of a user based on platform, screen size and orientation. This typically involves using a combination of flexible layouts, images and grid as well as a bit of clever use of CSS media queries [...]]]></description>
				<content:encoded><![CDATA[<p>Responsive Web design is an approach to design and devlopment aimed at creating designs that respond to the behaviour and environment of a user based on platform, screen size and orientation. This typically involves using a combination of flexible layouts, images and grid as well as a bit of clever use of CSS media queries to adapt the design depending on screen resolution. </p>
<p><span id="more-392"></span></p>
<h2>Keeping up with the Mobile Revolution</h2>
<p>Over the last few years the Internet has rapidly moved beyond the realm of PCs and laptops into a plethora of mobile devices with a wide range of screen sizes and capabilities. The huge popularity of all the new mobile devices, tablets and touch screen devices has forced a paradigm shift in web and UX design. This is both an exciting and challenging time to be a designer. </p>
<p><strong>Mobile can extend the cababilities of your application and forces you to shift your focus on what&#8217;s really important</strong></p>
<ul>
<li>GPS (location aware),</li>
<li>Camera (augmented reality or image input), </li>
<li>touch-screens and multi-touch controls</li>
</ul>
<h3>Mobile Limitations</h3>
<p><strong>Compared to laptop or desktop computers mobile devices typically &#8220;suffer&#8221; from the following limitations.</strong></p>
<ol>
<li>Smaller screen size</li>
<li>Lower bandwidth</li>
<li>Less powerful processing power</li>
</ol>
<p>These limitations are however slowly but surely eroding as tablets and newer mobile devices are getting increasingly more powerful. </p>
<h2>Responsive Web Design Techiques</h2>
<ul>
<li><strong>Fluid Layouts</strong>: Responsive design relies on Fluid Layouts or Non-Fixed Layouts. Whilst these can be harder to work with if you consider the alternative of either completely separate layouts for different resolutions or having layouts that don&#8217;t work all on some resolutions it&#8217;s a relatively small price to pay.
<li><strong>Media Queries</strong>: Repsonsive design uses CSS Media Queries to load overriding CSS rules depending on resolution. This allows you to add additional styling to compensate for chokeholds at lower resolutions that the fluid designs aren&#8217;t fully capable of dealing with.</li>
<li><strong>Scalable Images</strong>: Rather than using fixed sizes for images repsonsive design uses percentage widths for images and allows the browser to resize the images based on the fluid width of the container elements. <em>Note: browser scaling of images does not change the file size of the image so you are stuck with the size of the full image.</em></li>
<li><strong>Showing or Hiding Content</strong>: Sometimes it&#8217;s better to just get rid of some content for lower resolutions. Consider whether all that supplemental meta data or fancy icons are really vital for the users, if not it might be better just hide that content at lower resolutions.</li>
<li><strong>Hiding and Revealing Portions of Images &#038; Using Sliding Composite Images</strong>: Anothre popular technique in responsive design is to dynamically crop or hide parts of images depending on the size of the container. This is usually achieved by setting a width or min-width on the container containing the image and hiding the overflow so that parts of the image is cropped when the browser window is smaller. Another way of doing this is to divide images into different regions, one part with the core visual information and the rest with supplemental information, this ensures that only the supplemental information is hidden.</li>
</ul>
<h3>Why use Responsive Web Design?</h3>
<p>The prospect of being able to create adaptive layouts that look awesome on pretty much any device is very attractive to designers. CSS Media Queries allows you to do cool things like change from a 3 column layout to a 2 column layout depending on screen resolution, or even to a single column layout for even lower resolutions. Scaling down images or even removing some content completely allows your designs to not only look good but remain functional on multiple devices with a relatively small amount of extra effort. </p>
<p>When it comes to development this can greatly speed things up compared to building multiple completely different designs aimed at different devices. You can (potentially) streamline your development for a faster and easier deployment and reduced time to market. </p>
<h3>Additional Reading</h3>
<ul>
<li><a href="http://coding.smashingmagazine.com/2011/01/12/guidelines-for-responsive-web-design/" target="_blank">Smashing Magazine: Guidelines for Responsive Web Design</a></li>
<li><a href="http://www.alistapart.com/articles/responsive-web-design/" target="_blank">A List Apart: Responsive Web Design</a></li>
<li><a href="http://coding.smashingmagazine.com/2011/08/10/techniques-for-gracefully-degrading-media-queries/" target="_blank">Smashing Magazine: Techniques For Gracefully Degrading Media Queries</a></li>
<li><a href="http://thinkvitamin.com/design/responsive-design-image-gotcha/" target="_blank">Think vitamin: Responsive Design Image Gotcha</a></li>
</ul>
<h2>Limitations of Responsive Web Design</h2>
<p>Repsonsive Web Design is very good at addressing design considerations and adapting for different screen sizes, however it does not always address bandwidth and performance limitations of mobile devices. </p>
<h3>Speed and Size</h3>
<p>Speed and file size is paramount on mobile devices. This isn&#8217;t true in all cases but it&#8217;s still a key consideration when specifically targeting mobile devices. If you&#8217;re using an iPad over Wi-Fi you&#8217;re probably less concerned about shaving a few KBs off your download.</p>
<ul>
<li>CSS media queries do not optimise or remove unnecessary HTML or JavaScript that can slow down mobile browsers</li>
<li>Letting the browser scale down large images does not reduce the bandwidth.</li>
<li>Performance issues with heavy JavaScript usage and animations</li>
</ul>
<h3>Risk of Ignoring the mobile context</h3>
<p>Mobile specific websites have a purpose (usually anyway) typically involving a quick and efficient way of conveying a subset of information. If all you do is scale down your full website to fit a lower resolution you&#8217;re probably not meeting all of the expectations of your target audience. </p>
<h3>Overcoming the limitations</h3>
<p>Some if not most of these issues can be overcome with the correct approach though. One way is to design for mobile frist, keeping it lean and minimal, then scale it up for higher resoluitions. This allows you to ensure that your mobile experience ticks the right boxes. </p>
<p>Responsive design does not have to be the only tool in your toolbox when it comes to moile development. There are JavaScript libraries aimed specifically at mobile app development like jQTouch and Sencha Touch that help bridge the gap. </p>
<h3>Additional Reading</h3>
<ul>
<li><a href="http://www.cloudfour.com/css-media-query-for-mobile-is-fools-gold/" target="_blank">Cloud Four: CSS Media Query for Mobile is Fool&#8217;s Gold</a></li>
<li><a href="http://csswizardry.com/2011/01/forget-responsive-web-design/" target="_blank">CSS Wizardry: Forget Responsive Web Design&#8230;You Need Adaptive Web Design</a></li>
<li><a href="http://www.uxmag.com/design/is-multiscreen-enough-why-write-once-shouldnt-be-the-goal" target="_blank">UX Magazine: Is Multiscreen Enough? Why Write once shouldn&#8217;t be the Goal</a></li>
<li><a href="http://www.webcredible.co.uk/user-friendly-resources/web-usability/mobile-guidelines.shtml" target="_blank">Webcredible: 7 Usability Guidelines for websites on mobile devices</a></li>
<li><a href="http://coding.smashingmagazine.com/2011/07/19/create-an-html-and-css-mobile-web-app-using-sencha-touch/" target="_blank">Create An HTML/CSS Mobile Web App Using Sencha Touch</a></li>
</ul>
<h2>Final Words</h2>
<p>Responsive web design is still new and exciting and still finding it&#8217;s place. Responsive design is particular attractive for for tablets and newer mobile devices where bandwidth and speed is starting to equal or even surpass that of older laptops, especially for the substantianl amount of users that use tablets over Wi-Fi. Being able to adapt your layouts for landscape or portait on touch devices is a nice little feature. Whilst most websites, that are fairly well coded, will work well on tablets without the use of responsive techniques however it&#8217;s those small extra touches that makes a site a joy to use on a mobile or touch screen device. </p>
<p>Context is vital though, and every project is different. Consider the whether responsive design and media queries is suitable for the aim of the project, the target audience and intended use. There&#8217;s still a need for the dedicated mobile websites, they are fast and very low bandwidth and usually serve specific purposes and have clear benefits for that purpose. Personally I don&#8217;t think it&#8217;s something that&#8217;s mutually exclusive either, you could use responsive and fluid techniques to cater for the desktop and tablet market as well as most modern phones then offer a mobile specific site aimed at older devices with the option for users to engage with the &#8220;full&#8221; site you can get the best of both worlds. </p>
]]></content:encoded>
			<wfw:commentRss>http://lifeonlars.com/design/web-design/responsive-web-design-adaptive-layouts-with-media-queries/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ten things you should know about CSS (that I wish I knew when I started)</title>
		<link>http://lifeonlars.com/coding/css-xhtml/ten-things-you-should-know-about-css/</link>
		<comments>http://lifeonlars.com/coding/css-xhtml/ten-things-you-should-know-about-css/#comments</comments>
		<pubDate>Tue, 26 Jul 2011 02:39:45 +0000</pubDate>
		<dc:creator>larfa</dc:creator>
				<category><![CDATA[CSS & XHTML]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://www.lifeonlars.com/?p=357</guid>
		<description><![CDATA[Over the years I&#8217;ve had quite a few eureka moments when it comes to CSS, when pieces fall into place and I realise a much better way of doing things. It&#8217;s both extremely satisfying but also somewhat annyoing since having that knowledge earlier could have saved me hours and hours of frustration and effort. 1. [...]]]></description>
				<content:encoded><![CDATA[<p>Over the years I&#8217;ve had quite a few eureka moments when it comes to CSS, when pieces fall into place and I realise a much better way of doing things. It&#8217;s both extremely satisfying but also somewhat annyoing since having that knowledge earlier could have saved me hours and hours of frustration and effort.</p>
<p><span id="more-357"></span></p>
<h2>1. Understanding specificity, inheritance and cascading</h2>
<p>Having a clear understanding of which styles will apply in which context will save you a lot of time and headache. I can&#8217;t tell you how many times I&#8217;ve scratched my head trying to figure out why a style wasn&#8217;t being applied correctly to an element despite the fact that it was clearly in the stylesheet.</p>
<h4>Specificity</h4>
<p>Specificity determines which CSS rule is applied by the browser, depending on where a selector fits in specificity hierarchy it will either be ignored or override an less specific selector. When a rule isn&#8217;t being applied by the browser but you think it should then usually specificity is to blame (altough there is the occasional doh moment where you edit or preview the wrong file). Using Firebug or Chrome Code inspector can help you identify whether a style is picked up by the browser and which styles may be overriding it.</p>
<h4>Inheritance</h4>
<p>When you define styles on an element then these styles will typically be inherited by any elements contained within that element. So if you for example set the &#8220;font-family:Helvetica,Arial,sans-serif&#8221; on the body tag then everything on the page will inherit and use that font unless you override that with a more specific rule. Not all properties are inherited by default, but you can force inheritance by adding a property-value pair with the inherit value.</p>
<h3>Cascading or &#8220;The Cascade&#8221;</h3>
<p>The idea of a “cascade” is at core of CSS (Cascading Style Sheets). The Cascade ties in with Specificity and Inheritance and adds the source order into the mix to determine what rules are applied to what elements. So not only does specificity of selectors matter but also the order of the selectors and even the order the style sheets are included when using multiple stylesheets. When it comes to source order the last one to the party gets the last word.</p>
<h4>Additional reading</h4>
<p><a href="http://www.stuffandnonsense.co.uk/archives/css_specificity_wars.html" target="_blank">CSS Specificity Wars</a>. Great article explaining Specificity using Star Wars characters and analogies.<br />
<a href="http://coding.smashingmagazine.com/2007/07/27/css-specificity-things-you-should-know/" target="_blank">Smashing Magazine: CSS Specificity &#8211; Things You Should Know</a><br />
<a href="http://coding.smashingmagazine.com/2010/04/07/css-specificity-and-inheritance/" target="_blank"> Smashing Magazine: CSS Specificity and inheritance</a><br />
<a href="http://net.tutsplus.com/tutorials/html-css-techniques/quick-tip-understanding-css-specificity/" target="_blank">NetTuts: Quick Tip Understanding CSS Specificity</a><br />
<a href="http://www.w3.org/TR/css3-cascade/" target="_blank">W3 CSS3 Cascade</a></p>
<h2>2. Understanding of how use CSS with the DOM (Document Object Model)</h2>
<p>I still remember the eureka moment I had when I first came to the realisation that I didn&#8217;t have to apply a class to every single element I wanted to style. It was during a practical test in a job interview when I was forced to style a page based on a PSD mock-up, but I wasn&#8217;t allowed to touch any of the existing HTML. For the first time I had to re-think my approach, instead of my then bad habits of slapping a class on pretty much every element, and look at the structure of the HTML document. The hierachy of and structure of the document, what existing ids or classes could I use and how were the elements inside those structured. After the excercise I felt like my eyes had just been opened and I finally understood much more about what CSS was all about.</p>
<p>Instead of creating CSS completely reliant on classes or IDs you can free yourself up to a handful of &#8220;hooks&#8221; on container elements.</p>
<p>For example instead using specific classes for everything</p>
<pre class="brush: css; title: ; notranslate">
.header .heading {}
.content .heading {}
.content .bluetext {}
</pre>
<p>You could use a single class as starting point then refer to all elements of a specific type within that container e.g. specify that all &#8220;h1&#8243;, &#8220;h2&#8243;, &#8220;p&#8221; or &#8220;div&#8221; inside a container should be styled differently. If you add a class to the body of the page or the main wrapper/container to uniquely idenity the page you can also use that to create different styles for individual pages just by adding a single class.</p>
<pre class="brush: css; title: ; notranslate">
.header h1 {}
.container h1 {}
.content div p {}
body.aboutpage h1 {}
</pre>
<h2>3. Understanding the box model, margins and padding</h2>
<p>One of the first things you should come to grips with when starting out with HTML and CSS is the box model.</p>
<blockquote cite="http://www.w3.org/TR/CSS2/box.html"><p>The CSS box model describes the rectangular boxes that are generated for elements in the document tree and laid out according to the visual formatting model.</p></blockquote>
<p>The main components of the box model are:</p>
<ul>
<li>Height</li>
<li>Width</li>
<li>Position</li>
<li>Margin</li>
<li>Border</li>
<li>Padding</li>
</ul>
<p>The slightly tricky bit to come to grips with for beginners is the dimensions for a block element in the box model. When you define the width as 200px then you&#8217;d expect that this would be the width. This is true, however if you have a 1px border around the block element then you have to add 1px + 1px, then if you have 10px padding you have to add another 10px + 10px so the total width would be 222px.</p>
<p>Almost everything you do in CSS and HTML will in one way or another be directly or indirectly impacted by the box model so I highly recommend taking some time to read up and understand it properly. It&#8217;ll save you a lot of trouble down the road.</p>
<h4>Additional Reading</h4>
<p><a href="http://css-tricks.com/2841-the-css-box-model/" target="_blank">The CSS Box Model</a><br />
<a href="http://www.w3.org/TR/CSS2/box.html" target="_blank">W3 Box model</a><br />
<a href="http://www.addedbytes.com/for-beginners/the-box-model-for-beginners/" target="_blank">Box model for beginners</a><br />
<a href="http://reference.sitepoint.com/css/boxmodel" target="_blank">Sitepoint: Box Model reference</a></p>
<h2>4. Using CSS floats</h2>
<p>Float is a CSS position property and has been a common way of creating CSS layouts since the move away from table based layouts sometime back in the last millenium. It&#8217;s a powerful but very unintuitive way of doing this that can be hard to get your head around. The concept is similar to that of print layout where you have images set into the page with text wrapping around, but with CSS and HTML there are a lot more uses for it and quite a few pitfalls to look out for.</p>
<ul>
<li>You can float elements left or right (or set it to float: none;)</li>
<li>When floating an element it will automatically be considered a block element</li>
<li>Floated elements will float to the edge or the container elemnt they are in</li>
<li>Floating elements does not trigger hasLayout, this can cause unwanted layout issues with floated elements overflowing their containers</li>
<li>Defining a width or height and setting overflow:hidden or overflow:auto on a container element can overcome the hasLayout and overflow issue</li>
<li>To center floated elements use <strong>margin: 0 auto;</strong></li>
<li>If there is room in the container all floated elements will try to fit side by side on the same &#8220;row&#8221; unless you &#8220;clear&#8221; the floats</li>
<li>Use clear:left, clear:right; or clear:both; to force a floated element to appear on the next &#8220;row&#8221;</li>
</ul>
<p>These are just some of the things to keep in mind when using floats, don&#8217;t worry after a few tries and probably a few more errors you&#8217;ll get the hang of it.</p>
<h4>Additional Reading</h4>
<p><a href="http://css-tricks.com/795-all-about-floats/" target="_blank">All about floats</a><br />
<a href="http://coding.smashingmagazine.com/2007/05/01/css-float-theory-things-you-should-know/" target="_blank">Smashing Magazine: Float Theory, things you should know</a><br />
<a href="http://www.alistapart.com/articles/css-floats-101/" target="_blank">A List Apart: CSS Floats 101</a><br />
<a href="http://www.quirksmode.org/css/clearing.html" target="_blank">Clearing Floats</a><br />
<a href="http://css-tricks.com/snippets/css/clear-fix/" target="_blank">CSS Float Clearfix</a></p>
<h2>5. Display:inline-block</h2>
<p>I&#8217;ll be honest I&#8217;m starting to really love using inline-block over floats for layouts. Sure there are a few issues with it but the workarounds aren&#8217;t that bad and in comparison to using floats for everything it feels so much more elegant.</p>
<h3>Benefits</h3>
<ol>
<li>Easy to center elements both horizontally and vertically. <em>I cannot stress how much easier this can make your life for certain types of layouts</em></li>
<li>You can vertically align blocks top or bottom. <em>Awesome when using blocks with variable content size</em></li>
<li>No overflow issues. Elements containing inline-block elements will trigger hasLayout without any problems.</li>
<li>Possible to use margins, border, padding and all other block element rules.</li>
</ol>
<h3>Downsides</h3>
<ol>
<li>Not supported in IE7 or below. <em>However there is a relatively easy work around of IE7 and a similar but less effective workaround for IE6.</em></li>
<li>Inline-block elements honor whitespace. <em>Typically this isn&#8217;t a problem but if you want multiple block elements to be side by side you may end up with a 4px spacing between them. You can either use negative margins or remove the whitespace in your HTML code</em></li>
</ol>
<h4>Additional reading</h4>
<p><a href="http://www.sitepoint.com/give-floats-the-flick-in-css-layouts/" target="_blank">Sitepoint: Give Floats the Flick in CSS Layouts</a><br />
<a href="http://www.ternstyle.us/blog/float-vs-inline-block" target="_blank">Ternstyle: Float vs. Inline-Block</a><br />
<a href="http://blog.mozilla.com/webdev/2009/02/20/cross-browser-inline-block/" target="_blank">Cross Browser Inline-Block</a><br />
<a href="http://www.brunildo.org/test/InlineBlockLayout.html" target="_blank">IE7/Win inline-block and hasLayout</a></p>
<h2>6. The value of keeping your CSS properly formatted and well structured</h2>
<p>One often overlooked aspect of CSS is code formatting and naming standards. Just like with PHP or Java having a set of code standars for CSS can help with maintenance, debugging or just make it easier come up with useful names for selectors. When collaborating with other people on CSS, the need for a common standard for naming and structuring your CSS becomes even more apparent.</p>
<p>To be honest it&#8217;s not really that important what coding standard you choose. Whether it&#8217;s one that your company prefers, just personal preference or a standard you find online. The important thing is that there is a a standard and that people that are contributing CSS are aware of it. Even if you&#8217;re the only one writing CSS, if you write and structure your code in a consistent manner it will help you in the long run when to comes to maintaining old code or re-using some CSS from one site to another.</p>
<h4>Additional reading</h4>
<p><a href="http://www.procssor.com" target="_blank">ProCSSor</a><a> is an advanced CSS Prettifier that lets you format CSS in the exact way you want<br />
</a><a href="http://codex.wordpress.org/CSS_Coding_Standards" target="_blank">WordPress CSS Coding Standards</a></p>
<h2>7. Go beyond the standard class and ID selectors</h2>
<p>Most of us are familiar with the standard .class and #id selectors in CSS and of course the plain tag selector but it doesn&#8217;t end there. There are :pseudoClasses, descendant selectors, adjacent selectors (x + y), selectors for direct children (x &gt; y), attributes selectors y[attribute] and many many more. Learning a few more (or all of these) will open up for a lot more ways targeting specific areas with CSS rules without having to add additional classes to the HTML.</p>
<h4>Additional reading</h4>
<p><a href="http://net.tutsplus.com/tutorials/html-css-techniques/the-30-css-selectors-you-must-memorize/" target="_blank">NetTuts: 30 CSS selectors you must memorize</a></p>
<h2>8. Using CSS shorthand</h2>
<p>CSS supports several different ways or writing the same rules, by using</p>
<p>The most common CSS short codes are:</p>
<ul>
<li>background: colour url(&#8230;.) no-repeat top left; e.g. background:#ccc;</li>
<li>font: font-style font-variant font-weight font-size/line-height font-family; e.g. font: normal 0.8em/1.5em verdana, helvetica, sans-serif;</li>
<li>border: 1px solid #ccc;</li>
<li>padding: top right bottom left; e.g. padding:5px 10px 0 10px; or just padding: 5px; = padding: 5px 5px 5px 5px;</li>
<li>margin: top right bottom left; e.g. margin: 10px 0 5px 0; or just margin: 10px = margin: 10px 10px 10px 10px;</li>
</ul>
<p>Personally I don&#8217;t use the font one that often as it&#8217;s a lot stricter than others and harder to read and I don&#8217;t often have to declare all the values for fonts. When do use the font short hand it&#8217;s usually on the body or main font style for the site and then everything else after that is overriding that with more specific rules for font-family, font-size, font-weight etc.</p>
<p>When overriding specificity more often than not you end up using more individual rules e.g.</p>
<ul>
<li>border-top:none;</li>
<li>font-weight:normal</li>
<li>padding-left: 0;</li>
<li>background-color:#eee;</li>
<li>and so on&#8230;</li>
</ul>
<h4>Additional Reading</h4>
<p><a href="http://codex.wordpress.org/CSS_Shorthand" target="_blank">WordPress CSS shorthand</a></p>
<h2>9. Stacking classes</h2>
<p>A HTML element is not restricted to having a single class or ID. You can apply multiple classes to the same HTML element but you can also define multiple selectors for the same CSS rule. Obviously this is a very simplified example but the general idea is that you if you can define a generic class or ID for a type of element and add an extra class for more specific instances of that type that needs to be styled differently. Instead of repeating all the property-value pairs for each rule your element will inherit the styles from the generic class and then add to or override it with the more specific class.</p>
<pre class="brush: css; title: ; notranslate">
.container {
    display:inline-block;
    margin-right:10px;
    padding:10px;
    vertical-align:top;
    width:400px;
}
.container.wide {
    width:960px;
    margin:0;
}
</pre>
<p>Note there is no space between the two class names in the example above. This means that it applies only to elements that have both the container and wide classes applied but it will still inherit all the styling from .container so there&#8217;s no need to repeat those property-value pairs. E.g.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;div class=&quot;container wide&quot;&gt;
  content
&lt;/div&gt;
</pre>
<h4>Additional Reading</h4>
<p><a href="http://css-tricks.com/5690-multiple-class-id-selectors/" target="_blank">Multiple Class and ID selectors</a></p>
<h2>10. Using some kind of CSS reset</h2>
<p>The aim of using a CSS reset is to limit or reduce inconsistencies across browsers when it comes to things like default margins, font sizes of headings, line heights etc. Whilst the need for CSS resets is diminishing with modern browsers it&#8217;s still handy to include if your site needs to comply to older browsers.</p>
<pre class="brush: css; title: ; notranslate">
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	font-weight: inherit;
	font-style: inherit;
	font-size: 100%;
	font-family: inherit;
	vertical-align: baseline;
}
/* remember to define focus styles! */
:focus {
	outline: 0;
}
body {
	line-height: 1;
	color: black;
	background: white;
}
ol, ul {
	list-style: none;
}
/* tables still need 'cellspacing=&quot;0&quot;' in the markup */
table {
	border-collapse: separate;
	border-spacing: 0;
}
caption, th, td {
	text-align: left;
	font-weight: normal;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content: &quot;&quot;;
}
blockquote, q {
	quotes: &quot;&quot; &quot;&quot;;
}
</pre>
<p>As important as it is to note which elements are included in the most popular CSS reset available today. It’s also important to note some of the elements that are deliberately excluded from this list:</p>
<ul>
<li>input</li>
<li>button</li>
<li>hr</li>
</ul>
<p>These elements were excluded because their cross-browser differences are so vast that you would have to completely unstyle them to create a &#8220;bulletproof&#8221; element. They’re so weird, that even then, there’s no guarantee.</p>
<h4>Additional reading</h4>
<p><a href="http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/" target="_blank">CSS Reset Reloaded by Eric Meyer</a><br />
<a href="http://html5boilerplate.com/" target="_blank">HTML5 Boilerplate is a great starting point for new HTML5 projects.</a> It includes a CSS reset based on the latest reset by Eric Meyer.</p>
<h2>Bonus: IE6 must die</h2>
<p>Internet Explorer is the bane of Web Designers across the world, hell even Microsoft wants it gone.</p>
<p>The Triton rendering engine (Internet Explorer) has a nifty little feature that allows you to use IE specific HTML to target specific versions of the browser and then load a special style sheet just to deal with those issues.</p>
<pre>&lt;!--[if IE]&gt;  
Target all versions of IE  
&lt;![endif]–&gt;    

&lt;!--[if lte IE 7]&gt;  
Target all versions of IE that are less than or equal to "7"  
&lt;![endif]–&gt;    

&lt;!--[if IE 6]&gt;  
Target IE 6  
&lt;![endif]–&gt;</pre>
<p>Using conditional comments to target IE and cut out your hacks, will slim down your main style sheet, and help load the page quicker in browsers that don’t need the correction code.</p>
<p>Some people argue that you should never need to use hacks, workarounds or special stylesheets if you just create standards compliant code. To that I have the following to say:</p>
<ol>
<li>IE6, IE7 and hell even IE8 are not standards compliant browsers.</li>
<li>It is in theory possible to create HTML and CSS that will work in all browsers but to do so you&#8217;d limit yourself to the lowest common denominator and have to use older CSS and HTML. Your site may look the same or at least similar in older browser but it won&#8217;t win any innovation or design awards.</li>
<li>Personally I think keeping a separate stylesheet for IE6 and/or IE7 is a much simpler, cleaner and elegant way of enabling at least basic support for IE without all the bells and whistles of CSS3 but still allowing your site to strut its stuff in modern browsers</li>
</ol>
<p>If you&#8217;re not convinced consider progressive enhancement and graceful degradation techniques to allow your site to take advantage of features in modern browsers but degrade well for older browsers.</p>
<h2>What are your favourite CSS tips or Eureka moments?</h2>
<p>I hope you found this article helpful. If you&#8217;ve had your own aha moments when learning CSS feel free to share them in the comments below.</p>
]]></content:encoded>
			<wfw:commentRss>http://lifeonlars.com/coding/css-xhtml/ten-things-you-should-know-about-css/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Scrum in Practice &#8211; Part 2: The Roles</title>
		<link>http://lifeonlars.com/scrum-agile/scrum-in-practice-the-roles/</link>
		<comments>http://lifeonlars.com/scrum-agile/scrum-in-practice-the-roles/#comments</comments>
		<pubDate>Sun, 05 Sep 2010 05:17:53 +0000</pubDate>
		<dc:creator>larfa</dc:creator>
				<category><![CDATA[Scrum & Agile]]></category>

		<guid isPermaLink="false">http://www.lifeonlars.com/?p=353</guid>
		<description><![CDATA[In Scrum there are typically 3 clearly defined roles; the Product Owner, the Scrum Master, and the Scrum Team. In addition there may also be additional stakeholders (customers, vendors) and managers involved as well as collaboration between other Scrum teams and/or shared resources. It&#8217;s important that there is a clear distinction between people that are [...]]]></description>
				<content:encoded><![CDATA[<p>In Scrum there are typically 3 clearly defined roles; the Product Owner, the  Scrum Master, and the Scrum Team. In addition there may also be additional stakeholders (customers, vendors) and managers involved as well as collaboration between other Scrum teams and/or shared resources. It&#8217;s important that there is a clear distinction between people that are committed to the process and project and people that are just involved.</p>
<p><span id="more-353"></span></p>
<p>The three clearly defined roles in Scrum:</p>
<ol>
<li>the &quot;<strong>Product Owner</strong>&quot;, who represents the stakeholders and the   business</li>
<li>the &quot;<strong>Scrum Master</strong>&quot;,  a facilitator and project manager, acts as an advocate for the Scrum process.</li>
<li>the &quot;<strong>Team</strong>&quot;, a cross-functional group of around 7 people </li>
</ol>
<p> These three roles are always needed and should people in these roles should be committed to the Scrum process and the project. </p>
<h2><strong>Product Owner</strong></h2>
<p>In Scrum, a single individual needs to have have final authority with regards to prioritisation of the backlog, customer interests and user requirements questions. This authority and responsibility  falls to the Product Owner.  The Product Owner represents the voice of the customers/users and works to  ensure that the Scrum Team is working on the  &quot;right items&quot; from a   business perspective. </p>
<p>The Product Owner is responsible for writing customer-centric backlog items also called  stories. Each backlog item or story represents a feature or unit of work that is small enough to be completed by the team in a single sprint.  While there are multiple inputs to the product backlog, it is the sole   responsibility of the product owner to prioritise the product backlog.</p>
<h3>Responsibilities of the Product Owner</h3>
<ul>
<li>Defines and adjusts the features of the product</li>
<li>Writes user stories and places them in the product backlog</li>
<li>Prioritises items in the Product Backlog according to customer/market value </li>
<li>Accepts or rejects work results</li>
<li> Decides on release date and content</li>
<li> The Product Owner cannot also be the Scrum Master, however the Product Owner may sometimes be a member of the Scrum Team</li>
</ul>
<h3>Challenges of being the Product Owner</h3>
<ul>
<li>Be willing to make hard choices during the sprint planning   meeting. </li>
<li>Resist temptation to add more important work after a Sprint   is already in progress. </li>
<li>Balance the interests of competing stakeholders. </li>
<li>Resist  the temptation to &quot;manage&quot; the team, even if team members request intervention with issues that the team should sort out itself.</li>
</ul>
<p>The Product Owner role needs to have a solid knowledge of the product both from business and  user perspective. Typically this is the Product Manager or Product Development Manager however this varies from organisation to organisation and sometimes the Product Owner responsibility may fall to different people from project to project. This person acting as the Product Owner must be available to the team at any time, but especially   during the sprint planning meeting and the sprint review meeting.</p>
<h2><strong>Scrum Master</strong></h2>
<p>The Scrum Master is a facilitator,  a project manager and  an advocate for the Scrum process. The Scrum Master is not the leader of the team, as the team is self-organising.   The Scrum Master is responsible for making sure the Scrum team live by the   values and practices of Scrum,  enforcing  the rules of the Scrum Process. The Scrum Master protects the team from external interferences and by   making sure they do not over-commit themselves to what they can achieve   during a sprint. The Scrum Master is also responsible for removing any impediments or obstacles faced by the team. </p>
<ul>
<li>The Scrum Master is a member of the Scrum Team</li>
<li>The Scrum Master cannot be  the Product Owner</li>
</ul>
<h3>Responsibilities of the Scrum Master</h3>
<ul>
<li> Removes impediments (obstacles) and makes sure that the team is fully functional and<br />
  productive</li>
<li>Ensures that the Scrum process is followed</li>
<li>Updates burndown chart and maintains the Scrum board</li>
<li>Facilitates Sprint Planning, Daily Scrum and Retrospective meetings</li>
<li>Maintains the Sprint backlog</li>
<li>Supports the Product Owner; including communicating updates and impediments as well as assisting with   backlog and release plan maintenance</li>
<li>Ensures that the team&#8217;s progress, status and success is highly visible to all   stakeholders, including the team itself</li>
<li>Facilitate creativity and empowerment for the development team</li>
<li>Shields the team from external interferences</li>
</ul>
<h2><strong>Cross-Functional Scrum Team</strong></h2>
<p>The Scrum team are the people who do   the actual analysis, design, implementation  and testing required to complete the features, stories or tasks in a given sprint. The Scrum team is self-organising, there is no   command and control. Everyone in the Scrum team is equally responsible for   determining the most suitable way to proceed.  
</p>
<ul>
<li>Agrees on the sprint goal with the product<br />
    owner and specifies in detail the work needed    to accomplish this goal</li>
<li> Demonstrates the work results to the Product    Owner</li>
<li> Scrum team has the authority to do whatever is   needed to meet its commitments.</li>
<li>Self-organising; Organizes itself and its work </li>
<li>Cross-functional; team members have all the required skills and expertise to complete the tasks given to the team</li>
</ul>
<h3>Ideal Team Size for Scrum</h3>
<p>The team should ideally consist of <a href="http://en.wikipedia.org/wiki/The_Magical_Number_Seven,_Plus_or_Minus_Two" title="Wikipedia: The Magical Number Seven, Plus or Minus Two" target="_blank">7 plus or minus  2</a> people (5-9) with the necessary skills to complete the tasks.   Larger teams should either organise in sub-groups or split into multiple Scrum Teams to ensure the team is still effective. Studies have shown that teams exceeding  9 are typically less effective than smaller teams. In smaller organisations the team may be smaller. Currently I&#8217;m in a team of three with myself as Scrum Master and Lead Designer as well as a Web Mechanic and a Lead Programmer and plans for on hiring two additional programmers. </p>
<h3>A Scrum Team should be Cross-Functional</h3>
<p>This basically means that the  team should consist of people with the   range of skill sets required for the tasks/projects they will be working on. In an ideal scenario the team should be able to function as a self-contained unit and complete all tasks committed to in a sprint without having to rely on external resources or  people on a regular basis. If a story or feature requires content or media from other departments or stakeholders then this should be facilitated either by the Scrum Master or by the Product Owner so that the team does not have to chase down this from external sources.  </p>
<h3>Scrum Team Composition</h3>
<p>Some thought should be put into team composition and  structure to ensure that the range of skills are sufficient for the tasks at hand. For example a Web Development Scrum Team of 5-8 might   consist of: </p>
<ul>
<li>a system architect or lead programmer,</li>
<li>2-3 programmers,</li>
<li>a database  programmer,</li>
<li>a Web Designer and/or UI-Designer,</li>
<li>a front-end developer,</li>
<li>and  a  Tester </li>
</ul>
<p> It is usually a good idea to start small and expand the team once you get a better idea of the split between the different types of tasks you&#8217;ll be working on and you&#8217;re  able to identify  any bottlenecks. You might realise that the tasks in the product backlog and the foreseeable future are  design heavy and decide to expand the team with an extra designer, or that most of the work will be coding and hire more programmers. Perhaps the team is better served by hiring a dedicated tester to free up some time from all the members of the team. </p>
<h2>Additional  Roles in the Scrum Process</h2>
<p>In addition to the three core roles in Scrum there are also several additional roles that may be involved and have a stake in the project. The other roles may vary from from organisation to organisation and even from sprint to sprint and are not strictly needed for the Scrum Process. </p>
<ol>
<li><strong>&quot;Stakeholders&quot;</strong>&#8216;</li>
<li><strong>&quot;Managers&quot;</strong></li>
</ol>
<p>The needs,   desires, ideas and influences of these supplemental roles should be taken into   account, but should  not in any way be allowed to affect, distort or get in the   way of the actual Scrum project.</p>
<h3>Stakeholders</h3>
<p>Stakeholders are typically customers, vendors basically someone with a significant interest or stake in the project. These are the people that the project is being built for, or at least representatives of the wider user/customer base who will be using the software/application/website. </p>
<h3> Managers</h3>
<p>Managers or Executives  are people who will set up the environment for the product development   organisations. Managers typically have the deciding vote in whether or not additional full-time resources will be added to the team. Managers may also be involved when it comes to  approving costs for additional equipment, training or additional external or internal resources. Managers also have the responsibility to ensure that business goals for the product are clearly communicated to the Product Owner.</p>
<h2>Summary</h2>
<p>The roles in Scrum fall into two distinct categories. People that are committed and people that are involved. The three core roles, Product Owner, Scrum Master and Scrum Team are all committed (or at least they should be). The committed people have their proverbial bacon on the line, whilst the people that are involved have an interest in the project but aren&#8217;t directly held accountable if the project fails. In my experience Scrum needs all core roles to be committed to the process in order to work effectively. A key component of Scrum  is to strive to continuously improve. If you&#8217;re just starting out with Scum or if you&#8217;re establishing a new team it&#8217;s never going to be perfect from day one, but if everybody is committed to the process it will improve.  </p>
]]></content:encoded>
			<wfw:commentRss>http://lifeonlars.com/scrum-agile/scrum-in-practice-the-roles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scrum in Practice &#8211; Part 1: How-To Do Scrum Overview</title>
		<link>http://lifeonlars.com/scrum-agile/scrum-in-practice-how-to-do-scrum/</link>
		<comments>http://lifeonlars.com/scrum-agile/scrum-in-practice-how-to-do-scrum/#comments</comments>
		<pubDate>Wed, 18 Aug 2010 00:06:18 +0000</pubDate>
		<dc:creator>larfa</dc:creator>
				<category><![CDATA[Scrum & Agile]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Burndown]]></category>
		<category><![CDATA[Product Owner]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[Scrum Master]]></category>
		<category><![CDATA[Sprint Planning]]></category>

		<guid isPermaLink="false">http://www.lifeonlars.com/?p=350</guid>
		<description><![CDATA[In my first article Introduction to Agile Development and Scrum we looked at Scrum from a more of a holistic perspective. In this series of articles which I&#8217;ve named &#34;Scrum in Practice&#34; we&#8217;ll be looking at Scrum in a much more pragmatic way and look at examples of how to actually do Scrum in a [...]]]></description>
				<content:encoded><![CDATA[<p>In my first article <a href="http://www.lifeonlars.com/scrum-agile/introduction-to-agile-development-and-scrum">Introduction to Agile Development and Scrum</a> we looked at Scrum from a more of a holistic perspective. In this series of articles which I&#8217;ve named &quot;Scrum in Practice&quot; we&#8217;ll be looking at Scrum in a much more pragmatic way and look at examples of how to actually do Scrum in a more practical and fundamental way. Since Scrum is not a strict methodology but rather a process framework for development it is typically done a bit differently from organisation to organisation. There are however some basic elements that need to be in place to do Scrum well and some  best practices that everybody should know.   I&#8217;ll try to cover what has worked well for me over the years as well as some potential problem areas and solutions. </p>
<p><span id="more-350"></span></p>
<h3>Basic requirements for  Iterative development using Scrum</h3>
<p>Just to quickly recap from the Introduction to Scrum article these are some of the key requirements for iterative development when using Scrum:</p>
<ul>
<li>Iterations must have fixed time boxes and be less than 6 weeks long</li>
<li>Code at the end of the iteration must be tested by QA and be working properly</li>
<li>A Scrum team must have a product owner and know who that person is</li>
<li>A Scrum team must have a Product Backlog with estimates created by the team</li>
<li>The team must have a Burndown Chart and know their velocity</li>
<li>There must be no one outside a team interfering with the team during a sprint</li>
</ul>
<h2>Scrum&#8217;s Roles, Artifacts and Rituals</h2>
<p>Scrum consists of several key elements that make it a solid framework for development and project management. These elements can be broken down into three roles, three artifacts and three ceremonies or rituals. </p>
<ul>
<li><strong>Scrum&#8217;s 3 Roles</strong>
<ul>
<li>Product Owner</li>
<li>Scrum Master</li>
<li>Scrum Team</li>
</ul>
</li>
<li><strong>Scrum&#8217;s 3 Artifacts</strong>
<ul>
<li>Product Backlog</li>
<li>Sprint Backlog</li>
<li>Burndown</li>
</ul>
</li>
<li><strong>Scrum&#8217;s 3 Rituals / Ceremonies</strong>
<ul>
<li>Sprint Planning</li>
<li>Daily Scrum (daily stand-up)</li>
<li>Sprint Review (Demo &amp; retrospective)</li>
</ul>
</li>
</ul>
<h2>Three core roles in Scrum</h2>
<p>There are 3 core roles in Scrum, people in these roles should be committed to the project and the Scrum process.</p>
<ul>
<li><strong>Product Owner: </strong>Represents the stakeholders and the   business, prioritises items in the backlog</li>
<li><strong>Scrum Master: </strong>Facilitator and project manager. Acts as an advocate for the process</li>
<li><strong>Scrum Team: </strong>Cross functional team of 5-9 people. Self-organising, does the work and implementation. </li>
</ul>
<p>In addition there are supplemental roles referred to as &quot;<strong>Stakeholders</strong>&quot; and &quot;<strong>Managers</strong>&quot;. These people typically have a vested interest in the project or development but aren&#8217;t committed to the process and typically aren&#8217;t held accountable for any failures or delays. The opinions and input of these people needs to be taken into account but they should not be allowed to directly interfere with the team. </p>
<p><em>I&#8217;ll go into much more detail on the Roles in Scrum in my next article. </em></p>
<h2>Three primary artifacts in Scrum</h2>
<ul>
<li>Product Backlog</li>
<li>Sprint Backlog</li>
<li>Burndown</li>
</ul>
<h3>Product Backlog</h3>
<p>The product backlog is at the heart of Scrum. The product backlog is essentially a prioritised list of requirements, features, improvements, fixes and so on. Items in the backlog  are things that the customer(s) or users want, or things that in some way enhance the product. These items are typically called stories, or sometimes just backlog items. Stories should be written in the language of the customer/user detailing a unit of work that can be completed by the team in a single sprint. The product backlog may have multiple inputs but should be prioritised by a single person, the Product Owner. </p>
<ul>
<li>The Product Backlog should contain items that will be worked in the<strong> next 12 months</strong>
<ul>
<li>Stories that are very unlikely to be developed in the next year then they should not be included in the Product Backlog</li>
<li>This helps avoid cluttering the backlog with items that are very far in the future or may never be developed at all and keeps focus on more immediate targets</li>
</ul>
</li>
<li>The Product Backlog should ideally contain no more than <strong>150-200 backlog items</strong></li>
<li>Items in the Product Backlog should be in prioritised order as<strong> prioritised by the Product Owner</strong>
<ul>
<li>Priorities can and will change as conditions change and new information becomes available</li>
<li>It is not vital that everything is prioritised in exact order, the lower an item is on the priority list the more vague the priority tends to become</li>
<li>When prioritising items that are lower on the list it&#8217;s usually good practice to consider the backlog item in relation to other backlog items of similar priority (e.g. is feature A more or less important than feature B)</li>
</ul>
</li>
<li>The higher priority and the closer a backlog item is to being added to the sprint backlog the more detail it should have </li>
<li>Items that are further away from being worked on will typically have less detail, however more detail should be added before an item is scheduled for a sprint</li>
<li>Larger stories are typically called <strong>Epics</strong> and should be broken down into smaller stories before they are added to the <strong>Sprint Backlog</strong></li>
</ul>
<p><em>The Product Owner may also request rough time estimates for backlog items to assist in prioritisation and calculating business value of backlog items.</em></p>
<h3>Sprint Backlog</h3>
<p>The Sprint Backlog is a prioritised list of Stories or Backlog items that will be completed in the next Sprint (development cycle/iteration). Stories that are added to the Sprint Backlog should contain enough information for the team to complete the story. </p>
<ul>
<li>Stories in the Sprint Backlog should be prioritised <strong>by the Product Owner</strong></li>
<li>Stories in the Sprint Backlog should all have time estimates</li>
<li>The Product Owner and the Team agree on the contents of the sprint based on the available sprint time and previous velocity
<ul>
<li>The team should take into account all known factors for the upcoming sprint period e.g. planned holidays for team members, conferences, public holidays, recurring business as usual tasks etc.</li>
<li>The Product Owner may re-prioritise some stories based on size and available time to &quot;fill up&quot; the sprint</li>
</ul>
</li>
<li>Some teams also set aside a percentage of available sprint time for fixing bugs, reducing technical debt and/or refactoring</li>
<li>Prior to the start of the sprint all stories should have estimates, be clearly prioritised and be broken down into tasks
<ul>
<li>Task breakdown is done by the Team during the planning phase</li>
<li>The Product Owner should  not interfere with task breakdown or estimates</li>
</ul>
</li>
</ul>
<h3>Burndown </h3>
<p>The burndown chart is a visual representation of the Scrum Team&#8217;s progress in a given sprint. It is updated by the Scrum Master every day and allows the whole team and any involved stakeholders to get a quick visual overview of the progress of a sprint. </p>
<ul>
<li>Daily progress for a Sprint over the sprint’s length.</li>
<li>Graphical representation of work left to do versus time. </li>
<li>Outstanding   work  is represented on the vertical axis, with time along the   horizontal. </li>
<li>Updated daily by the Scrum Master</li>
<li>Useful tool for gauging whether tasks will be completed within the sprint or not</li>
</ul>
<h2>Three central rituals or ceremonies in Scrum</h2>
<ul>
<li><strong>Sprint Planning</strong> (Task Breakdown and Estimation)</li>
<li><strong>Daily Scrum</strong> (Daily stand-up)</li>
<li><strong>Sprint Review</strong> (Demo &amp; Retrospective)</li>
</ul>
<h3>Sprint Planning &#8211; Task Breakdown and Estimation</h3>
<p>In Scrum the &quot;big design up-front&quot; approach is discarded in favour of a smaller units of work where the choice of implementation and solution is often left much in the hands of the team. So instead   of providing full, detailed descriptions of  how everything in the project is to be done, a lot of this is left up to the team. This is done because   the team will know best how to solve its problem. The product owner provides the team with desired outcomes from a user and business perspective rather than suggested technical solutions which is typically not the area of expertise for the product owner. </p>
<ul>
<li>Sprint Planning isn&#8217;t a roadmap or a strategy discussion. </li>
<li>Time-boxed to 4-8 hours which is typically sufficient for a 4 week sprint </li>
<li>The overall theme or focus of the Sprint,  and majority of the product backlog scheduled for the sprint should be prepared and  and published   prior to the meeting
<ul>
<li>This is the responsibility of the product owner or   the Scrum Master</li>
</ul>
</li>
<li>The team should have at least a day to review the items in the Product Backlog that are scheduled for the sprint
<ul>
<li>The team needs enough time and information to understand what implementing each backlog item would require </li>
<li>The time reviewing the preliminary sprint backlog should also be used to  add technical-driven features for consideration that may be required to support planned features</li>
</ul>
</li>
</ul>
<p>During the Sprint Planning the team will initially estimate the relative size of each story, typically during a process called <a href="http://en.wikipedia.org/wiki/Planning_poker" target="_blank">planning poker</a>. This process minimises the risk of vocal individuals influencing the estimate and reduces  underestimating of tasks. The planning game starts with the Scrum Master or one of the developers with the most knowledge regarding a specific feature providing the team with an overview of the feature and work required. Each team member then places a card with their estimate  face down on the table and everybody reveals their estimate at the same time. The highest and lowest estimate then discusses their reasoning then everybody votes again until a consensus is reached. </p>
<ul>
<li>Stories are estimated in relative size using &quot;days&quot; or &quot;story points&quot; </li>
<li>Estimating in relative sizes has been show to be a lot more accurate than trying to use actual or specific units of time</li>
<li>Tasks are estimated in hours</li>
</ul>
<p>During sprint planning each story is   broken down into multiple tasks. Tasks should consist of all the individual bits of work that will be required to complete the story. During the task breakdown the team typically discusses technical and implementation solutions but may defer final choice of implementation to be decided during the sprint. One of the tasks for that story might then include researching, spiking and choosing an implementation for the story. While the stories are estimated in days or story points, tasks are estimated in hours. The planning game can also be applied to task estimation. </p>
<h3><strong>Daily Scrum</strong></h3>
<p>The daily stand-up meeting or daily scrum is one of the core rituals or ceremonies in Scrum. This daily meeting gives the team and Scrum Master a daily update on progress, enabling obstacles and potential problems to be identified and dealt with as early as possible before they become real problems. It also enables the Scrum Master to make adjustments to the sprint plan to ensure things are kept on track. This could be reducing the scope of tasks or agreeing with the Product Owner to defer or drop certain stories to ensure that stories with higher priority are completed.</p>
<ul>
<li><strong>Same  time every day. </strong>Keep the meeting at the same time every day. All team members need to attend.</li>
<li><strong>Everybody stands.</strong> Making everybody stand keeps the meeting short and to the point. Any longer conversations should be deferred to after the meeting.</li>
<li>No longer than <strong>15mins</strong> (timed)</li>
<li>The daily Scrum typically has the following format:
<ul>
<li><strong>Done: </strong>Each team member states what they have done or achieved in the preceding 24 hours</li>
<li><strong>Obstacles: </strong>Each team member states whether they have any impediments or obstacles preventing them from working effectively on sprint tasks</li>
<li><strong>To Do: </strong>Each team member states what they plan to work on in the next 24 hours </li>
</ul>
</li>
</ul>
<p>Prior to Scrum all team members should update remaining estimates for tasks. The Scrum Master should then update the burn-down chart so that the entire team gets a clear and visual representation of their progress. </p>
<h3>Sprint Review &#8211; Demo and Sprint Retrospective</h3>
<h4>The Sprint Demo</h4>
<p>At the end of each sprint the team demonstrates the work completed in the Sprint to the Product Owner and potentially some stakeholders. The demo to the product owner should showcase the completion of each  story  committed to during the sprint. The demo should make  it clear what aspects of the stories are not complete, if any, and what  the plan is for getting them completed. </p>
<ul>
<li> During the demo it should be made clear which features are unimplemented due to  being scheduled for a future sprint. </li>
<li>This will help avoid  questions/concerns from the product owner about those features being  missing or ugly.  </li>
<li>If the sprint was done correctly, there should not be any surprises at  the demo. </li>
<li>Acceptance testing should have occurred during the sprint giving the product owner previews of the features to avoid any major changes or unexpected rejection of implementations</li>
</ul>
<p> Inevitably there will be some minor tweaks suggested by the product owner and/or stakeholder during the demo.  The team should only accept tweaks that can be  completed during the slack period unless the product owner is willing to  sacrifice either delivery date or other release features. Any bugs discovered prior to, during or after the demo should be fixed during the slack period prior to release rather than deferred for later or added to technical debt. </p>
<p><h> The Sprint Retrospective</h3>
<p>After each Sprint the team holds a Sprint Retrospective meeting. The meeting acts as a self-assessment for the team and aims to improve processes for future sprints. The sprint retrospective should never be used to place blame but should be an objective review of what went well and what did not go so well during a sprint that can be improved. To be a successful and agile team you need to continually improve your work habits and update your process to match changing situations. Retrospectives are a great tool for achieving this. </p>
<ul>
<li>Duration: <strong>1-3 hours</strong> depending on size of team, duration of sprint and expected discussion</li>
<li>Location: Room or area with where you can have an undisturbed discussion. Preferably somewhere with wall/whiteboard</li>
<li>Participants: ALL team members, the Scrum Master and optionally the Product Owner</li>
<li>Should never be used to place blame</li>
<li>Review the previous sprint and consider the following questions:
<ul>
<li>What  did we do well, that if we don’t discuss we might forget?</li>
<li>What  did we learn?</li>
<li>What  should we do differently next time?</li>
<li>What  still puzzles us?</li>
</ul>
</li>
<li>Identify a single area of improvement to focus on for the next sprint</li>
</ul>
<h2>Summary</h2>
<p>Well that&#8217;s it, perhaps not the shortest or most concise explanation but it should give you the building blocks to work with and consider whether Scrum is right for your organisation.</p>
<p>Perhaps the most common mistake  people make when attempting to use Agile or Scrum is that they don&#8217;t commit to the process enough but rather just pick and choose elements that fit with their organisation or previous methodologies. This may work in some instances however more times than not it&#8217;ll generate rather poor results and generate a rather poor impression of Agile within the company. To be successful you and your organisation will need to devote both time and resources to learning and implementing Agile well. It&#8217;s recommended that you start out following the standard principles of Scrum and avoid large deviations until your team has a few sprints under its belt and are familiar with the principles of both Agile and Scrum. It&#8217;s always better to know the rules before you start bending or breaking them. </p>
<h3>Scrum and Agile Development  Books</h3>
<ul>
<li><a href="http://www.amazon.com/Scrum-Trenches-Enterprise-Software-Development/dp/1430322640/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1276482475&amp;sr=8-1" title="Scrum &amp; XP from the Trenches" target="_blank">Scrum &amp; XP from the Trenches</a></li>
<li><a href="http://www.amazon.com/Art-Agile-Development-James-Shore/dp/0596527675/ref=pd_sim_b_10" title="The Art of Agile Development" target="_blank">The Art of Agile  Development</a></li>
<li><a href="http://www.amazon.com/Succeeding-Agile-Software-Development-Using/dp/0321579364/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1276482305&amp;sr=8-1" title="Succeeding with Agile: Software Development Using Scrum" target="_blank">Succeeding with Agile: Software Development Using Scrum</a>
  </li>
<li><a href="http://www.amazon.com/User-Stories-Applied-Software-Development/dp/0321205685/ref=pd_sim_b_2" title="User Stories Applied: For Agile Software Development" target="_blank">User Stories Applied: For Agile Software Development</a></li>
<li><a href="http://www.amazon.com/Agile-Estimating-Planning-Mike-Cohn/dp/0131479415/ref=sr_1_9?ie=UTF8&amp;s=books&amp;qid=1276482305&amp;sr=8-9" title="Agile Estimation and Planning" target="_blank">Agile Estimation and Planning</a></li>
<li><a href="http://www.amazon.com/Agile-Testing-Practical-Guide-Testers/dp/0321534468/ref=pd_sim_b_11" title="Agile Testing: A Practical Guide for Testers and Agile Teams" target="_blank">Agile Testing: A Practical Guide for Testers and Agile Teams</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://lifeonlars.com/scrum-agile/scrum-in-practice-how-to-do-scrum/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Introduction to Agile Development and Scrum</title>
		<link>http://lifeonlars.com/scrum-agile/introduction-to-agile-development-and-scrum/</link>
		<comments>http://lifeonlars.com/scrum-agile/introduction-to-agile-development-and-scrum/#comments</comments>
		<pubDate>Thu, 27 May 2010 11:46:50 +0000</pubDate>
		<dc:creator>larfa</dc:creator>
				<category><![CDATA[Scrum & Agile]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Iterative Development]]></category>
		<category><![CDATA[Methodology]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Scrum]]></category>

		<guid isPermaLink="false">http://www.lifeonlars.com/?p=342</guid>
		<description><![CDATA[If you&#8217;ve ever been involved in web, application or software development or any kind of media production or IT project then chances are you&#8217;ve run into some sort of methodology or project management methods. You might be familiar with PRINCE2, PMI and the Waterfall Model. In some cases companies also develop their own internal project [...]]]></description>
				<content:encoded><![CDATA[<p>If you&#8217;ve ever been involved in web, application or software development or any kind of media production or IT project then chances are you&#8217;ve run into some sort of methodology or project management methods. You might be familiar with PRINCE2, PMI and the Waterfall Model. In some cases companies also develop their own internal project methodologies or cusomise or adapt existing methodologies to fit their own structure with varying degrees of success. If you are familiar with any of these methods you may also have reconised that a lot of their principles often don&#8217;t work as well when internal and external requirements as well as  market conditions frequently change. This is very often the case when dealing with  website development and web application development projects and perhaps even more so with mobile application development projects. If some of this sounds familiar then perhaps it&#8217;s time for you to have closer look at Agile Development. In this article we&#8217;ll cover the basics of Agile and in particular a at Scrum. </p>
<p><span id="more-342"></span></p>
<h2>What is Scrum and Agile development?</h2>
<p> Agile development is uses an iterative process, rather than the waterfal method, and focuses on shorter release cyles with constantly evolving requirements through collaboration between cross-functional teams. Agile allows development to be adaptive  (or agile) to respond to changing market conditions or internal or  client requirements. </p>
<p>Scrum is a lightweight agile development process framework for managing  projects. It is widely adopted within  software and web development but the principles can be applied to virtually any type of project . It includes a set of practices, predefined roles and artifacts based on an iterative agile  process cycle. Scrum  is not a definitive set of rules for how to do thing but more of a  holistic approach to development with a set of guidelines and  principles rather than a strict development methodology. In a way you can think of Scrum as a  sort of  framework for project management but it&#8217;s much more than that..</p>
<h3><strong>Basic requirements for Agile iterative development:</strong></h3>
<ul>
<li>Iterations must have fixed time boxes and be less than 6 weeks long</li>
<li>Code at the end of the iteration must be tested by QA and be working properly</li>
</ul>
<h3>The Nokia standards for Scrum:</h3>
<ul>
<li>A Scrum team must have a product owner and know who that person is</li>
<li>A Scrum team must have a Product Backlog with estimates created by the team</li>
<li>The team must have a Burndown Chart and know their velocity</li>
<li>There must be no one outside a team interfering with the team during a sprint</li>
</ul>
<p>There are many ways you could implement Scrum and successful formulas will vary from organisation to organisation. To effectively use Scrum and Agile you should embrace the princples and adapt the process to fit your team and your organisation. Part of the principles of Agile is to constantly evolve and that includes internal processes as well. After each sprint or cycle the team reviews what went well and what did not go so well and commits to improving at least one achiveable thing during the next cycle. Over time the team becomes both more productive and generally happier as there is less friction and they are able to deliver more.</p>
<ul>
<li>To do Scrum well you need to adapt it to suit your own organisation, team and project or product you are working on</li>
<li>To do Scrum well you will need to continously evaluate and improve on your processes</li>
</ul>
<p>Even though Scrum was originally intended for managing software development projects it can be applied to any number and types of project as a general apporach to project management. </p>
<h3>Basic principles of  Agile and Scrum</h3>
<ul>
<li>Agile avoids &quot;Big design up front&quot; allowing for  decisions to be made at the last responsible moment  </li>
<li>Agile uses iterative cycles with shorter bursts of development known as &quot;Sprints&quot;</li>
<li>Agile emphasises real-time communication over written documents, preferably face-to-face.</li>
<li>Agile teams tend to sit together and include all the people needed to complete the project/product/software (cross-functional teams)</li>
<li>Agile focuses on delivering smaller  working features or system components as the primary measure of progress</li>
<li>Agile aims to release early and release often </li>
<li>Agile tends to produce significantly less written documentation, instead focuses on  self-documenting and easy to use systems. 
  </li>
</ul>
<h3>Why use  Agile?</h3>
<p>Market conditions and requirements change very  quickly especially in an online environment and the digital world in general. It is typically  very difficult to foresee all the vital requirements and obstacles at the beginning of a project. Client and/or internal requirements will inevitably evolve over time  and move further and further away from the initial specification so  even if you deliver the project to the exact specifications given it  will not succeed or meet customer, client or market expectations. When using Waterfall or similar  methodologies the core requirements will have changed even before the  planning and documentation phases are complete and shift even more during the duration of the project. Agile allows you to make decisions at the last responsible moment  and continuously adjust the direction of the project to ensure you meet  changing requirements. </p>
<h2>Scrum explained in less than 10 minutes</h2>
<p>For a quick introduction to the Scrum process check out this video by Hamid Shojaee (<a target="_blank" href="http://www.axosoft.com/">Axosoft.com</a>). It&#8217;s short, concise and quite entertaining. Not everything is explained in detail but it is a good introduction and covers a lot of ground in just a few minutes. </p>
<p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='960' height='570' src='http://www.youtube.com/embed/Q5k7a9YEoUI?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span> </p>
<h2>Agile Values and Principles </h2>
<h3>Manifesto for Agile Development &#8211; Values</h3>
<blockquote cite="http://agilemanifesto.org">
<p>We are uncovering better ways of developing  software by doing it and helping others do it. </p>
<p>Through this work we have come to value:</p>
<ul>
<li><strong>Individuals and interactions</strong> over   processes and tools</li>
<li><strong> Working software</strong> over comprehensive documentation</li>
<li><strong> Customer   collaboration</strong> over contract negotiation</li>
<li><strong> Responding to change</strong> over following a   plan
    </li>
</ul>
<p> That is, while there is value in the items on  the right, we value the   items on the left more.</p>
<table cellpadding="15">
<tbody>
<tr valign="top" align="center">
<td> Kent Beck<br />
          Mike Beedle<br />
          Arie van Bennekum<br />
          Alistair Cockburn<br />
          Ward Cunningham<br />
          Martin Fowler</td>
<td> James Grenning<br />
          Jim Highsmith<br />
          Andrew Hunt<br />
          Ron Jeffries<br />
          Jon Kern<br />
          Brian Marick</td>
<td> Robert C. Martin<br />
          Steve Mellor<br />
          Ken Schwaber<br />
          Jeff Sutherland<br />
          Dave Thom</td>
</tr>
</tbody>
</table>
</blockquote>
<h3>Principles behind the Agile Manifesto</h3>
<blockquote cite="http://agilemanifesto.org/principles.html">
<p><em>We follow these principles:</em></p>
<ul>
<li> Our highest priority is to satisfy the customer  through early and continuous delivery of valuable software. </li>
<li> Welcome changing requirements, even late in development. Agile processes harness change for the customer&#8217;s competitive advantage. </li>
<li> Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. </li>
<li> Business people and developers must work together daily throughout the project. </li>
<li> Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. </li>
<li> The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. </li>
<li> Working software is the primary measure of progress. </li>
<li> Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. </li>
<li> Continuous attention to technical excellence and good design enhances agility. </li>
<li> Simplicity&#8211;the art of maximizing the amount of work not done&#8211;is essential. </li>
<li> The best architectures, requirements, and designs emerge from self-organizing teams. </li>
<li> At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. </li>
</ul>
</blockquote>
<h2>Summary</h2>
<p>I&#8217;ve been working  with Agile and Scrum development for almost 5 years now. During that time  I&#8217;ve had the privilege of experiencing Scrum from the perspective of all the core roles initially as a Product Owner, the primary designer in Scrum Team and most recently Lead Designer and Scrum Master in a Web Development Team. While there&#8217;s been some  challenges along the way I couldn&#8217;t imagine going back to using a different development process. Whether you&#8217;re looking to change development methods, are fed up with Waterfall or you&#8217;re just getting started I recommend you look into Agile and Scrum. </p>
<p>Do you have any experiences with Agile Development? Share your war stories in the comments below. </p>
]]></content:encoded>
			<wfw:commentRss>http://lifeonlars.com/scrum-agile/introduction-to-agile-development-and-scrum/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>WordPress SEO 101: 5 Easy Steps for Better WP SEO</title>
		<link>http://lifeonlars.com/seo/wordpress-seo-101-5-easy-steps-for-better-wp-seo/</link>
		<comments>http://lifeonlars.com/seo/wordpress-seo-101-5-easy-steps-for-better-wp-seo/#comments</comments>
		<pubDate>Tue, 04 May 2010 23:36:52 +0000</pubDate>
		<dc:creator>larfa</dc:creator>
				<category><![CDATA[SEO]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[How-To]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[WP Code Snippets]]></category>

		<guid isPermaLink="false">http://www.lifeonlars.com/?p=319</guid>
		<description><![CDATA[WordPress offers pretty good basic SEO by default and by spending a bit of time focusing on a few additional areas your on-page and on-site SEO will gain a significant boost. If you&#8217;re creating a new site, creating a new design and theme for an existing site or just updating your current theme to be [...]]]></description>
				<content:encoded><![CDATA[<p>WordPress offers pretty good basic SEO by default and by spending a bit of time focusing on a few additional areas your on-page and on-site SEO will gain a significant boost. If you&#8217;re creating a new site, creating a new design and theme for an existing site or just updating your current theme to be a bit more SEO friendly the principles are pretty much the same. If you already have a working site and theme then don&#8217;t worry most of the following SEO tweaks can be done with a few code snippets and plugins added to your existing WordPress site. This article will cover 5 optimisation areas that will improve your WordPress on-page and on-site SEO.</p>
<p><span id="more-319"></span></p>
<p>In the coming days and weeks I will also be adding additional articles featuring more intermediate and advanced WordPress SEO tips and eventually expanding more on off-site SEO factors and link building strategies. </p>
<h2>5 Core WordPress SEO optimisation areas</h2>
<ol>
<li>Changing your WordPress permalinks</li>
<li>Optimsing WordPress page titles</li>
<li>Optimising WordPress meta description and meta keywords</li>
<li>Customising your &quot;more links&quot;</li>
<li>Optimise site name and description(s)</li>
</ol>
<h2>Thoughts on using WordPress SEO plugins</h2>
<p>Almost all of the optimisation areas mentioned can be achiveved with plugins. Likewise pretty much everything the plugins do can be achieved through modifications to your theme. If you feel comfortable updating your theme and you don&#8217;t like plugins messing with your beautifully crafted HTML output then you&#8217;ll probably want to tweak your theme by adding relevant code snippets to do the majority of what the plugins can offer. </p>
<p>Personally I do a bit of both, I like to optimise my themes as much as possible but still use plugins to fill in the gaps. Plugins are particularly useful if you like to tweak titles or descriptions on a post/page level and can save you qutie a bt of time for repetivite tasks. A word of caution though, don&#8217;t rely 100% on plugins to create completely automated descriptions, they are never as good as handcrafted descriptions. </p>
<h2>Start off with a well structured WP theme</h2>
<p>If you&#8217;re creating a new site or want create a new theme for your site it helps if you can build your site around a WordPress theme that is structured and coded well. Starting out with a theme that is at least partially SEO friendly will save you time but it&#8217;s not required. </p>
<p>When selecting a theme either to use as a starting point or to use as it is have a peak at the the code of the theme first, both viewing the PHP files and the source code of the HTML output. Look out for a theme that is well coded and well structured, something that already includes title attributes on links and images has clear navigation and .</p>
<p>One important factor is to make sure your theme always lists your content before the sidebar when viewing the source code of your site, regardless of where the sidebar is located visually in the design. This ensures that crawlers look at your unique content first and the sidebar content is secondary as it tends to be listed on all pages of your site. </p>
<h2>1. Change WordPress default permalinks</h2>
<p>One of the first things you should do after a fresh WordPress install is to change the permalink structure. By default the WordPress permalink structure is <code>?p=&lt;postid&gt;</code>. For both SEO and usability purposes you&#8217;d want your links to be descriptive e.g. /categoryname/postname or just /postname.  WordPress permalink settings can be found in your  WP admin interface under Settings &gt; Permalinks. </p>
<p><img src="http://lifeonlars.com/wp-content/uploads/permalinks1.png" alt="Interface for changing WP permalinks" title="How to change WordPress Permalinks" width="600" height="244" class="alignnone size-full wp-image-326" /></p>
<p>Under common settings select &quot;Custom structure&quot;. </p>
<ul>
<li>To display just the post title in your url use. <code>/%postname%/</code></li>
<li>Alternatively use <code>/%category%/%postname%/</code> if you want to to include the category name before the post title.</li>
</ul>
<h3>Before you change your WordPress Permalinks</h3>
<p>If you&#8217;re setting up a new blog with little or no existing content then changing permalinks is a no-brainer. Just change the settings before any of your content is indexed,  However if you&#8217;re optimising an existing site then changing permalinks can have a huge impact unless take the necessary steps to setup  up redirection.</p>
<p>Before you change permalinks on an existing website that has been established for a while consider the following:</p>
<ul>
<li>If your pages have Page Rank (PR) any change to the permalink will result in a loss in page rank for that page. If you setup a 301 redirect some of the page rank will normally pass to your new permalink but is a risk of some  decay in page rank. </li>
<li>Incoming links from other sites will return 404 errors unless you setup 301 redirection to the new permalink</li>
</ul>
<h3>WordPress Permalink Redirection Plugins</h3>
<p>Now that you know the potential impact of changing established permalinks The good news is that this can be addressed relatively easily  using plugins.  </p>
<p><a href="http://wordpress.org/extend/plugins/redirection/" target="_blank">Redirection</a>  provides you with very granular control over redirects including ability to import a list or redirects from an existing .htaccess file as well as forcing either www or non-www prefix on your site for canonical urls. Once this plugin has been installed go to Tools &gt; Redirection for settings.</p>
<p>  If you&#8217;re usiing <a href="http://wordpress.org/extend/plugins/platinum-seo-pack/" target="_blank">Platinum SEO Pack</a>  you won&#8217;t need a separate plugin as it includes automatic redirection for changes in URLs and  permalink structure. </p>
<p> Keep in mind though if you do have significant page rank on some of your pages you may still lose some of the page rank even with a 301 redirect. This is  typically  more common if you migrate your site completely to a new domain and not really a problem when using 301 redirect for internal site changes. Personally I don&#8217;t really fuss to much about page rank, I mean it&#8217;s nice if my site or some of my pages get a little bit of a boost and it does seem to improve Google rankings a bit, however  at the lower end of the specter PR1-5 it doesn&#8217;t really matter that much. </p>
<h2>2. Optimising WordPress page titles</h2>
<p>By default your WordPress page titles will typically include your site name on the home page and &quot;Site name » Archive » Post title&quot; for archives and posts. This is not terrible but it could be better. </p>
<ul>
<li>Page titles should ideally be no longer than 60-70 characters, this is a general guideline from Google and it&#8217;s not an absolute requirement but you should try to stay below 100 characters.</li>
<li>The reason this is important is because if your page titles are longer they will be cut off in the SERPs (search engine results pages). If your title is longer than 70 characters Google will typically  cut it off before 69 characters and end with &#8230; </li>
<li>If you have a long site name and category name(s) and these are listed first then you run the risk of your actual article or post title being cut off or disappearing completely.</li>
<li>Search engines also tend to weight keywords early in the title a bit higher and you&#8217;d to ensure that your  carefully crafted post titles are visible and given all the emphasis possible.</li>
<li>Your  &lt;title&gt; should be as close as possible to your &lt;h1&gt; page/post title. By starting with your post/page title the first part of your &lt;title&gt; will match your &lt;h1&gt; post title. </li>
</ul>
<p>Personally I&#8217;d avoid including categories on post or pages as it tends to make the titles too long.</p>
<h3>Opimising your titles with plugins</h3>
<p>If you&#8217;re using Headspace2, All-In-One SEO or Platinum SEO Pack it&#8217;s very easy to set your titles either in the global settings for the plugin or on an individual post level. I prefer the following title structure:</p>
<ul>
<li>Home page: %blog-title% | %tagline%</li>
<li>Posts: %post_title% | %blog_title%</li>
<li>Pages: %page_title% | %blog_title% </li>
<li>Category pages: %category_title% | %blog_title%</li>
</ul>
<p>
The settings screens for page titles are pretty much identical for All-in-One SEO and Platinum SEO Pack. The settings screen for Headspace2 is quite different and offers more control but is perhaps slightly more difficult to use for beginners.</p>
<p><img src="http://lifeonlars.com/wp-content/uploads/platinum-seo-page-titles1.png" alt="Platinum SEO Pack Page Title Settings" title="Platinum SEO Pack Page Title Settings" width="600" height="350" class="alignnone size-full wp-image-327" /></p>
<p>You can also change settings and write custom titles and descriptions on individual posts or pages. If you add a title or meta description to an individual post it will override the global settings.</p>
<p><img src="http://lifeonlars.com/wp-content/uploads/platinum-seo-post-options1.png" alt="Platinum SEO Pack Indivdual Post Options" title="Platinum SEO Pack Indivdual Post Options" width="600" height="224" class="alignnone size-full wp-image-328" /></p>
<h3>Customising WordPress titles without using a plugin</h3>
<p>To display the title on your home page or front page as “Blog title | Tagline” and single posts or pages as “Post/page title | Blog title” just add the following code to you header.php replacing the existing &lt;title&gt; tag. </p>
<pre class="brush: php; title: ; notranslate">
&lt;title&gt;
	&lt;?php wp_title(''); ?&gt;&lt;?php if(wp_title('', false)) { echo ' | '; } ?&gt;&lt;?php bloginfo('name'); if(is_home() || is_front_page()) { echo ' | '; bloginfo('description'); } ?&gt;
&lt;/title&gt;
</pre>
<h2>3. Setting up site name and description(s)</h2>
<p>This might seem obvious and very easy to do but it&#8217;s something that can easily be overlooked.</p>
<ul>
<li>On your home page use H1 for your site name and tagline</li>
<li>On all other pages change the site name and tagline either to an h3 or lower or wrap it in a div, personally I prefer changing it to a div as the site name is not what is important on subsequent pages and unless you&#8217;ve got an extremely well known brand it&#8217;s not what people will be searching for either.</li>
</ul>
<p>To only display your blog name and description as h1 and/or h2 on your home page or front page add this code snippet to your theme header.php</p>
<pre class="brush: php; title: ; notranslate">
    &lt;?php if (is_home() || is_front_page()) { ?&gt;
        &lt;h1 id=&quot;blog-title&quot;&gt;&lt;?php bloginfo('name') ?&gt;&lt;/h1&gt;
        &lt;h2 id=&quot;blog-description&quot;&gt;&lt;?php bloginfo('description') ?&gt;&lt;/h1&gt;
    &lt;?php } else { ?&gt;	
        &lt;div id=&quot;blog-title&quot;&gt;&lt;?php bloginfo('name') ?&gt;&lt;/div&gt;
        &lt;div id=&quot;blog-description&quot;&gt;&lt;?php bloginfo('description') ?&gt;&lt;/div&gt;    
    &lt;?php } ?&gt;
</pre>
<h4>Make good use of the category descriptions</h4>
<p>Spend some time writing descriptions for all your categories. When using <code>wp_list_categories();</code> which is typically used in your main menu or category listing WordPress will by default use the category description as the title attributes for each category. I also like to add the category description as an H2 or H3 on the category archive pages in my theme. Category descriptions can also be used as your meta description on category archive pages. Category descriptions can be edited in your WP admin interface under Posts &gt; Categories. </p>
<p>To display your category description on your category archive pages add the following to you category.php page.</p>
<pre class="brush: php; title: ; notranslate">
	&lt;?php $categorydesc = category_description(); if ( ! empty( $categorydesc ) ) 
		echo apply_filters( 'archive_meta', '&lt;h2 class=&quot;archive-meta&quot;&gt;' . $categorydesc . '&lt;/h2&gt;' ); ?&gt;
</pre>
<p>Alternatively if you don&#8217;t have a category.php page your can add the folloing to your index.php file or archive.php file.</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php 
	if (is_category()) {
		$categorydesc = category_description(); if ( ! empty( $categorydesc ) ) 
		echo apply_filters( 'archive_meta', '&lt;h2 class=&quot;archive-meta&quot;&gt;' . $categorydesc . '&lt;/h2&gt;' ); 
	}        
?&gt;
</pre>
<h2>4. Optimising WordPress meta descriptions and keywords</h2>
<h3>Customising  description meta tag in WordPress</h3>
<p>Meta tags have little or no impact on your actual search engine rankings. However your meta description in particular will influence whether people find your site listing in search results interesting enough to click through to your website. Google and other search engines will use meta description as the text you see below the title of the search result in the search results page. </p>
<p><img src="http://lifeonlars.com/wp-content/uploads/serp-metadescription1.png" alt="Google Seach Results Page Description Meta Tag" title="Google Seach Results Page Description Meta Tag" width="650" height="80" class="alignnone size-full wp-image-329" /></p>
<ul>
<li><strong>Home page:</strong> Make sure your home page includes a meta description that describes what your site is about. </li>
<li><strong>Categories: </strong>For category archives you can use the category description</li>
<li><strong>Posts: </strong>On single posts you have multiple options. If you&#8217;ve added excerpts to your posts then they&#8217;re ideal candidates for meta description. </li>
</ul>
<h3>Adding custom meta descriptions in WordPress without a plugin</h3>
<p>If you prefer to add this directly to you theme yourself then use the following code snippet:</p>
<pre class="brush: php; title: ; notranslate">
&lt;meta name=&quot;description&quot; content=&quot;&lt;?php 
		// if home page output blog name and description
		if (is_home()) { bloginfo('name'); echo &quot; - &quot;; bloginfo('description');}  
		// if single page output either excerpt if available or post title 
	    elseif (is_single()) {
        	// check if excerpt exists for the post and output it if it does
        	if (!empty($post-&gt;post_excerpt)) {the_excerpt();} 
            // otherwise output the post title
        	else {single_post_title('', true);} 
        } 
        // if category page output the category description
 	   	elseif (is_category()) {echo category_description();}
         
        // if it's any other page display this generic description
		else { echo 'Add your own generic site description here';} 
	?&gt;&quot; 
 /&gt;
</pre>
<p>You can do the same thing for pages, search results, tag archives or date archives with the following conditions:</p>
<ul>
<li>Pages: <code>is_page()</code></li>
<li>Search results: <code>is_search()</code></li>
<li>Tag archives:  <code>is_tag()</code></li>
<li>Date archives: <code>is_date()</code></li>
</ul>
<p>You can also use custom fields to customise your own meta description on individual posts. First replace the elseif (is_single())  the following snippet to the </p>
<pre class="brush: php; highlight: [5,6,8,10,12,13]; title: ; notranslate">
	&lt;meta name=&quot;description&quot; content=&quot;&lt;?php 
		// if home page output blog name and description
		if (is_home()) { bloginfo('name'); echo &quot; - &quot;; bloginfo('description');}  
		// if single page output either excerpt if available or post title 
	    elseif (is_single()) {
           	$custommeta = get_post_meta($post-&gt;ID, &quot;MetaDescription&quot;, true);
        	// checks ot see if the custom field MetaDescription is not empty 
            if ($custommeta !=='') {echo $custommeta;}
            // check if excerpt exists for the post and output it if it does
        	elseif (!empty($post-&gt;post_excerpt)) {the_excerpt();} 
            // if there's no custom field or excerpt output the post title
        	else {single_post_title('', true);} 
        }
        // if category page output the category description
 	   	elseif (is_category()) {echo category_description();}
         
        // if it's any other page display this generic description
		else { echo 'Add your own generic site description here';}          
	?&gt;&quot; 
 /&gt;        
</pre>
<h3>Using  keywords meta tag in WordPress </h3>
<p>Whilst the description meta tag is useful, the keywords meta tag offers very little benefit for rankings or otherwise. In the early days of search engines this meta tag was often used and abused and as a result most search engines no use it for ranking purposes. Google has specifically stated that they do not give any weighting whatsoever to meta keywords, for further details see <a href="http://googlewebmastercentral.blogspot.com/2009/09/google-does-not-use-keywords-meta-tag.html" target="_blank">Google does not use the keywords meta tag in their ranking</a>.</p>
<p>Even though there&#8217;s very little evidence that meta keywords will help your rankings it certainly doesn&#8217;t hurt to include some relevant keywords in your keywords meta tag. The a quick and simple solutions for this in WordPress is to just list your tags as your meta keywords on individual posts. </p>
<h3>Automatically adding meta descriptions and keywords in WordPress using plugins</h3>
<p>If you&#8217;er using an SEO plugin like Headspace2, Platinum SEO Pack or All-In-One SEO Pack you can set these to automatically add meta descriptions to your site based on a set of rules you can define. They will also allow you to override global settings and customise meta descriptions and keywords on individual posts by via an additional admin panel on the edit posts or page screens.</p>
<h2>5. Customising WordPress &quot;more links&quot;</h2>
<p>Using the <code>&lt;!-- more --&gt;</code> quicktag in WordPress allows you to limit the content shown from a post on your home page, archives or search page. By default the anchor text for more links will just say &quot;read more&quot; which is not great for internal linking. A better solution is to make the anchor text more descriptive and include the post title it&#8217;s linking to. This will is not only good for your internal site SEO but can is also a stronger call to action for your readers. </p>
<h3> Customising WP &quot;more links&quot; with plugins</h3>
<p>If you&#8217;re using Headspace2 or you can go to Settings &gt; Headspace then select Page Modules and drag and drop the more text module into the page module. This will add an option to specify the more text on a post by post basis. Personally I prefer to just use the post title but if you really like to tailor more links on a granular level then Headspace2 will make it easy for you to do so.</p>
<h3>Customising WP &quot;more links&quot; by editing theme files</h3>
<p>If you want to insert something similar in your own theme open up the index.php file, locate where your the_content() is being called and replace is with the following code. This will set the more text to &#8230;continue reading &#8220;post title&#8221; adding quotes around the post title as well as wrapping it in a &lt;strong&gt; tag. It also adds a span around the anchor text with a title attribute listing the title again. </p>
<pre class="brush: php; title: ; notranslate">
&lt;?php the_content('&lt;span class=&quot;readmore&quot; title=&quot;Read full article ' . get_the_title('', '', false) . '&quot;&gt;...continue reading &lt;strong&gt;&quot;' . get_the_title('', '', false) . '&quot;&lt;/strong&gt;&lt;/span&gt;' ); ?&gt;
</pre>
<p>Or alternatively you can use something a bit simpler like:</p>
<pre class="brush: php; title: ; notranslate">
	&lt;?php the_content(&quot;Continue reading &quot; . the_title('', '', false)); ?&gt;
</pre>
<p>If your design does not easily accomodate long anchor text or you don&#8217;t want to display the long anchor text for practical or aesthetic reasons then I suggest you at least include a title attribute on the more link. This won&#8217;t be as effective for SEO purposes but it&#8217;s better than nothing and it will assist your users.</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php the_content('&lt;span class=&quot;readmore&quot; title=&quot;Read full article ' . get_the_title('', '', false) . '&quot;&gt;read the full article&lt;/span&gt;'); ?&gt;
</pre>
<h3>Customising WordPress &quot;more links in Thematic </h3>
<p>If you&#8217;re using Thematic just add the following code to your functions.php file. This will add a span around your more link with a class to allow you to style it differently with CSS. It also adds a title attribute to the span with the name of the post it&#8217;s linking to and includes the post name in the anchor text with the prefix &#8230;comintiue reading &#8220;post name&#8221;.</p>
<pre class="brush: php; title: ; notranslate">
function childtheme_more_text($content) {
	$content = '&lt;span class=&quot;readmore&quot; title=&quot;Read full article ' . get_the_title('', '', false) . '&quot;&gt;...continue reading &quot;' . get_the_title('', '', false) . '&quot;&lt;/span&gt;';
	return $content;
}
add_filter('more_text', 'childtheme_more_text');
</pre>
<h2>Bonus Tip: Install the Google XML Sitemaps Plugin</h2>
<p>The <a href="http://wordpress.org/extend/plugins/google-sitemap-generator/" target="_blank">Google XML Sitemaps </a> plugin automatically creates special XML sitemap and submits it to Google, Bing, Yahoo and Ask.com. Using an XML sitemap is a great way to ensure that the search engine robots will find and index all of your pages. It&#8217;s great to ensure new sites are quickly indexed and equally useful for blogs with frequent updates to ensure that new pages and posts are indexed. Using an XML Sitemap does not guarantee that your pages are included in search engines, but it does provide helpful hints for web crawlers to do a better job of crawling your site which is particularly useful if your site structure and internal linking is a bit shoddy. The plugin uses Sitemap Protocol 0.9 defined by <a href="http://www.sitemaps.org/" target="_blank">sitemaps.org</a>. It&#8217;s an open standard with support from the likes of Google, Yahoo and Microsoft.</p>
<h2>Summary </h2>
<p>That&#8217;s it for now, the optimisation areas covered will improve your general on-page SEO for WordPress and hopefully give you a bit of a  boost in rankings. In the next article I&#8217;ll be covering Canonical URLs and how to avoid duplicate content, how to format your posts using semantic HTML, tips for cleaning up your code and more. </p>
]]></content:encoded>
			<wfw:commentRss>http://lifeonlars.com/seo/wordpress-seo-101-5-easy-steps-for-better-wp-seo/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>6 Things to look forward to in XBMC Media Center 10.05</title>
		<link>http://lifeonlars.com/personal-interests/xbmc-htpc/6-improvements-xbmc-media-centre-10-05/</link>
		<comments>http://lifeonlars.com/personal-interests/xbmc-htpc/6-improvements-xbmc-media-centre-10-05/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 08:15:06 +0000</pubDate>
		<dc:creator>larfa</dc:creator>
				<category><![CDATA[XBMC & HTPC]]></category>
		<category><![CDATA[HTPC]]></category>
		<category><![CDATA[Media Center Software]]></category>
		<category><![CDATA[XBMC]]></category>

		<guid isPermaLink="false">http://www.lifeonlars.com/?p=293</guid>
		<description><![CDATA[The latest release of XBMC (9.11 Camelot) was a major milestone for the media centre with regards to both stability and usability. The release stabilised and improved a lot of the core features, vastly improved the skinning engine and came with a completely new and much improved default look and feel. What most existing users [...]]]></description>
				<content:encoded><![CDATA[<p>The latest release of XBMC (9.11 Camelot) was a major milestone for the media centre with regards to both stability and usability. The release stabilised and improved a lot of the core features, vastly improved the skinning engine and came with a completely new and much improved default look and feel.</p>
<p><span id="more-293"></span></p>
<p>What most existing users will notice is the new skin, “Confluence”; the skin takes advantage of the new features in the skinning engine and has given XBMC a much needed facelift. XMBC now not only works better but also looks better from a standard installation. Installing a new skin is also easier than before as most skins are now much more complete and stable on the released version. Before this release a lot of the best looking skins took advantage of changes to the skinning engine that was not available in the previous major release. This meant that users had to download and install various different versions of XBMC from SVN repositories depending on which skin you wanted to use which could be both daunting and a lot of effort even for tech savvy users.</p>
<p><strong>Some of the features of the XBMC 9.11 Camelot release were:</strong></p>
<ul>
<li>New default skin “Confluence” </li>
<li>Significant improvements to the skinning framework</li>
<li>Improved support for multiple monitors</li>
<li>Database performance improvements (SQLite)</li>
<li>Added ability to scrape and scan TV Shows into the video library by air-date via TheTVDB.com</li>
<li>Support for High Definition, Surround Sound, and Subtitle Flagging and Filtering in Video Library</li>
<li>Support for more file extensions and speed improvements to RAW image loading</li>
<li>As well as several playback, library and scraper improvements&#8230; </li>
</ul>
<p><a href="http://xbmc.org/team-xbmc/2009/12/24/xbmc-9-11-camelot/" target="_blank">See the full XBMC 9.11 Release notes</a></p>
<p>The XBMC 9.11 release took a major step towards making XBMC more accessible to average users and not just  geeks and dedicated enthusiasts.</p>
<h2>The next level &#8211; XBMC 10.05</h2>
<p>While the dust from the XBMC 9.11 Camelot release is still settling the next major release is already well under way. The upcoming release 10.05 boasts several potentially game changing features that could completely change the way a lot of people use XBMC and make it an even more complete media centre software solution.</p>
<p>Here are some of the great features to look forward to in the XBMC 10.05 release scheduled for a mid-May release.</p>
<h3>Unified PVR-frontend</h3>
<p>Probably one of the most requested features for XBMC is PVR support. Started over two years ago the feature has been on many an XBMC users wishlist for some time now.</p>
<p>What does PVR mean? PVR is short for Personal Video Recorder, basically it will allow you to use XBMC as an interface for a number of different PVR applications and seamlessly integrate recording and playback functionality with the rest of your media. XBMC will provide the interface whilst the PVR software runs in the background or even across a local network.</p>
<p>What does this mean for you? If you have a TV tuner card it will allow you to have full control of live TV, record TV shows, access  electronic program guides and teletext all from within XBMC, no longer will you have to switch between different modes, programs or interfaces to be able to enjoy both TV and stored media. TV is going to be sexier than ever and you can scrap that TiVo or at least hold off on buying one till you&#8217;ve tried XBMC.</p>
<p>PVR Support is planned for:</p>
<ul>
<li>HTS Tvheadend</li>
<li>VDR (Streamdev)</li>
<li>MythTV</li>
<li>MediaPortal TVserver</li>
</ul>
<h3>New add-ons browser GUI and API</h3>
<p>Up until now using add-ons and plug-ins with XBMC has been quite a tedious and often too technical for the average user. The new user interface will allow users to browse, find, install and manage third-party add-ons from within the XBMC interface.  This is a major step for XMBC towards more mainstream use and a huge improvement in general usability. </p>
<div id="attachment_302" class="wp-caption alignnone" style="width: 650px"><img src="http://lifeonlars.com/wp-content/uploads/plugin-manager-screenshot0141.png" alt="In-development preview of XBMC plugin Manager" title="In-development preview of XBMC plugin Manager" width="640" height="360" class="size-full wp-image-302" /><p class="wp-caption-text">In-development preview of XBMC Plugin Manager</p></div>
<p>The new add-ons API will allow add-ons to be written in any programming language paving the way for the creation of even more add-ons which can only be a good thing. </p>
<h3>Additional improvements to the GUI and Skining Framework</h3>
<p>The 9.11 release brought the skinning framework a huge leap forward, the improvements in 10.05 aren&#8217;t as comprehensive but will nevertheless please quite a few. For users this primarily involves improved mouse support and control support for sliders and scroll bars as well as click handling to support long or short clicks.</p>
<h3>Scraper improvements</h3>
<p>The automatic scraping and collecting of meta-data for your media library was one of the things that impressed me most about XMBC when I first started using it. The next release will improve upon this even further.</p>
<h3>Support for scraping movie trailers from both IMBb and TheMovieDB.org.</h3>
<p>Certain skins for XBMC have support for displaying movie trailers in addition to the synopsis and movie information.  Previously trailers had to be added manually to the relevant directory in your media archive or through the use of add-ons.  This new feature will no doubt save considerable time collecting movie trailers for your media by automating the process almost completely. We’ll likely start seeing support for movie trailers in more skins as well.</p>
<p>There will also be a host of improvements to and support for new international scrapers for languages other than English.</p>
<h3>Playback and performance improvements</h3>
<p>10.05 brings a host of playback improvements including improved Blu-ray support, several improvements to both audio and video codec support as well as better support for subtitles. There&#8217;s also added support for <a href="http://www.broadcom.com/products/Consumer-Electronics/Netbook-and-Nettop-Solutions" target="_blank">Broadcom Cystal HD</a> PCIe hardware accellerated video encoders to which allows smooth playback even on lower end systems. There are also several performance improvements to SQL database queries in the library.</p>
<p>Read the details and follow the <a href="http://trac.xbmc.org/milestone/10.05" target="_blank">progress of the XBMC 10.05 release here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://lifeonlars.com/personal-interests/xbmc-htpc/6-improvements-xbmc-media-centre-10-05/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
