<?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>blog.thelemur.com</title>
	<atom:link href="http://blog.thelemur.com/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.thelemur.com</link>
	<description>Home of all things lemur</description>
	<lastBuildDate>Sat, 15 Nov 2008 08:06:05 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Taxonomy-Based Risk Identification</title>
		<link>http://blog.thelemur.com/processes/taxonomy-based-risk-identification</link>
		<comments>http://blog.thelemur.com/processes/taxonomy-based-risk-identification#comments</comments>
		<pubDate>Sat, 15 Nov 2008 08:01:05 +0000</pubDate>
		<dc:creator>lemur</dc:creator>
				<category><![CDATA[Processes]]></category>

		<guid isPermaLink="false">http://blog.thelemur.com/?p=50</guid>
		<description><![CDATA[Identifying risks associated with software development is vital for project success. In most cases, developers are aware of risks throughout development but potential problems are not communicated in a way that reflects uncertainty in project health.
Taxonomy-based risk identification is a loosely structured method for quantifying risks during the planning phase(s) of software development.

Process
A project manager [...]]]></description>
			<content:encoded><![CDATA[<p>Identifying risks associated with software development is vital for project success. In most cases, developers are aware of risks throughout development but potential problems are not communicated in a way that reflects uncertainty in project health.</p>
<p>Taxonomy-based risk identification is a loosely structured method for quantifying risks during the planning phase(s) of software development.</p>
<p><span id="more-50"></span></p>
<h3>Process</h3>
<p>A project manager interviews developers using a questionnaire to identify risks in different project areas. These areas are referred to as &#8220;classes&#8221;.</p>
<h3>Advantages for Adopting this Method</h3>
<ul>
<li>Risks are identified earlier in the project</li>
<li>Formal procedures exist for risk identification which helps reduce the ad-hoc nature of typical risk identification in software projects</li>
</ul>
<h3>Dangers of Adopting this Method</h3>
<ul>
<li>Inexperienced or untrained developers will not be able to identify risks properly</li>
<li>Uptraining may take time away from critical project activities</li>
<li>Inexperienced teams usually lack defined risk management procedures</li>
</ul>
<h3>References</h3>
<p><a title="Taxonomy-Based Risk Identification" href="http://www.sei.cmu.edu/pub/documents/93.reports/pdf/tr06.93.pdf" target="_blank">http://www.sei.cmu.edu/pub/documents/93.reports/pdf/tr06.93.pdf</a></p>
<p>This PDF contains the TBRI abstract and the following topics:</p>
<ul>
<li>Background and motivation for introducing a taxonomy-based approach</li>
<li>Results of studies which were used to refine TBRI</li>
<li>Sample approaches for introducing TBRI into your company and project routines</li>
<li>Sample interview questionnaires</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.thelemur.com/processes/taxonomy-based-risk-identification/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unit Testing Web Services</title>
		<link>http://blog.thelemur.com/development-procedures/unit-testing-web-services</link>
		<comments>http://blog.thelemur.com/development-procedures/unit-testing-web-services#comments</comments>
		<pubDate>Fri, 08 Aug 2008 06:55:13 +0000</pubDate>
		<dc:creator>lemur</dc:creator>
				<category><![CDATA[Development Procedures]]></category>

		<guid isPermaLink="false">http://blog.thelemur.com/?p=49</guid>
		<description><![CDATA[Web Services allow web-based applications to communicate without operating system and programming language dependencies. Because Web Services are high-level, it is often difficult to diagnose problems when things go wrong. A programmer may have to inspect every layer between application code and WSDL contents before diagnosing a bug. Luckily, there are open source tools available [...]]]></description>
			<content:encoded><![CDATA[<p>Web Services allow web-based applications to communicate without operating system and programming language dependencies. Because Web Services are high-level, it is often difficult to diagnose problems when things go wrong. A programmer may have to inspect every layer between application code and WSDL contents before diagnosing a bug. Luckily, there are open source tools available to help test Web Services. InfoWorld has written a review of three open source Web Services unit testing frameworks <a title="http://www.infoworld.com/article/07/05/11/19TCwebservicetest_1.html" href="http://www.infoworld.com/article/07/05/11/19TCwebservicetest_1.html" target="_blank">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.thelemur.com/development-procedures/unit-testing-web-services/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Wikis for Project Management</title>
		<link>http://blog.thelemur.com/processes/using-wikis-for-project-management</link>
		<comments>http://blog.thelemur.com/processes/using-wikis-for-project-management#comments</comments>
		<pubDate>Wed, 06 Aug 2008 20:36:06 +0000</pubDate>
		<dc:creator>lemur</dc:creator>
				<category><![CDATA[Processes]]></category>

		<guid isPermaLink="false">http://blog.thelemur.com/?p=45</guid>
		<description><![CDATA[Among the extravagant web-based project management solutions on the web (Basecamp, @task, Wrike, VeoProject, Clarizen, FogBugz, &#8230;more) lies an overlooked gem called &#8220;Wiki.&#8221; A Wiki is a website designed for collaboration. Wikis allow multiple authors to create, remove, and modify content. The inherent collaborative nature of Wikis makes it a perfect addition to the project [...]]]></description>
			<content:encoded><![CDATA[<p>Among the extravagant web-based project management solutions on the web (Basecamp, @task, Wrike, VeoProject, Clarizen, FogBugz, &#8230;<a title="http://www.project-management-software.org/" href="http://www.project-management-software.org/" target="_blank">more</a>) lies an overlooked gem called &#8220;Wiki.&#8221; A Wiki is a website designed for collaboration. Wikis allow multiple authors to create, remove, and modify content. The inherent collaborative nature of Wikis makes it a perfect addition to the project manager&#8217;s arsenal. Wikis cannot replace software written specifically for PPM, but Wikis can assist organizations during development. This article reviews the following:</p>
<ul>
<li>Some of the relevant features and uses of Wikis for PPM</li>
<li>Some overuses of Wikis</li>
<li>Possible risks associated with using Wikis</li>
<li>A list of articles that prompted me to try Wikis for PPM</li>
</ul>
<p><span id="more-45"></span></p>
<h2>Wiki Features</h2>
<ul>
<li>Wikis are built for collaboration.</li>
<li>Wikis implement unobtrusive document versioning methods.</li>
<li>Category and page structure is flexible but can be standardized for specific needs.</li>
<li>Wiki content is stored as plain text. This makes it easy to duplicate and format in a text editor if necessary.</li>
<li>Plugins and extensions allow further customizations to suit your organization&#8217;s needs.</li>
<li>Relatively easy to maintain. (Most of the Wikis I tried had simple install scripts)</li>
</ul>
<h2>Recommended Uses of Wikis</h2>
<ul>
<li>Meeting and phone conversation notes</li>
<li>Requirements gathering</li>
<li>Planning project design</li>
<li>Risk analysis notes</li>
<li>Writing user stories</li>
<li>Lightweight asset management (documentation, comps, UML diagrams)</li>
</ul>
<h2>Overuses of Wikis</h2>
<p>It&#8217;s probably best to use a separate tool for the following project tasks:</p>
<ul>
<li>Bug tracking</li>
<li>Time tracking</li>
<li>Code versioning</li>
<li>Code documentation</li>
</ul>
<h2>Choosing the Right Wiki</h2>
<p>If you have not already selected a Wiki package, I recommend reviewing these links:</p>
<ul>
<li><a title="http://www.wikimatrix.org/" href="http://www.wikimatrix.org/" target="_blank">http://www.wikimatrix.org/</a></li>
<li><a title="http://en.wikipedia.org/wiki/Comparison_of_wiki_software" href="http://en.wikipedia.org/wiki/Comparison_of_wiki_software" target="_blank">http://en.wikipedia.org/wiki/Comparison_of_wiki_software</a></li>
</ul>
<p>After you have selected and installed the Wiki of your choosing, it is time to move on to structuring and securing content.</p>
<p>I chose MediaWiki because of its simple installation process and configuration through LocalSettings.php. A friend of mine brought up a good point &#8211; most people will be familiar with MediaWiki because Wikipedia uses it; everyone has visited Wikipedia.org.</p>
<h2>Wiki Categories</h2>
<p>Determine what topics you would like to store in the Wiki and how it will be organized before adding content. This planning will prevent dead links and reworking the Wiki&#8217;s structure. Refer to MediaWiki&#8217;s category <a title="http://en.wikipedia.org/wiki/Help:Category" href="http://en.wikipedia.org/wiki/Help:Category" target="_blank">help page</a> for more information and recommendations.</p>
<h2>Wiki ACLs</h2>
<p>By default, wikis are not built to enforce strict access to pages, categories, and media. Custom extensions can provide Access Control List (ACL) behavior. I would adopt an ACL extension only after considering the sensitivity of your Wiki content. This <a title="http://www.mediawiki.org/wiki/Security_issues_with_authorization_extensions" href="http://www.mediawiki.org/wiki/Security_issues_with_authorization_extensions" target="_blank">list</a> contains potential MediaWiki vulnerabilities for adopting 3rd party ACL extensions but may also apply to your wiki software. If you use a MediaWiki alternative, see if it has a built-in ACL or documentation regarding the risks of using ACL plugins.</p>
<p>I recommend installing a new Wiki for each client and protecting the directory with an .htaccess file in favor of using a 3rd party ACL.</p>
<h2>Wikis and Version Control</h2>
<p>Storing Wiki contents outside of development repositories creates a divergence between project plans and project code since Wikis have their own version control mechanism. This divergence does not introduce risk if the latest project plan is <em>always </em>relevant regardless of the code&#8217;s stability. I would recommend keeping Wiki content and code separate because duplicate version controls on a project asset is dangerous.</p>
<h2>References</h2>
<ul>
<li>Kelly, William. &#8220;Building a project Web site the easy way.&#8221; <span style="text-decoration: underline;">TechRepublic &#8211; A Resource for IT Professionals</span>. 12 Mar 2003. Tech Republic. 6 Aug 2008 &lt;<a title="http://articles.techrepublic.com.com/5100-10878_11-1061870.html" href="http://articles.techrepublic.com.com/5100-10878_11-1061870.html" target="_blank">link</a>&gt;.</li>
<li>Macomber, Hal. &#8220;Proposal for a P-Log Specification.&#8221; <span style="text-decoration: underline;">Reforming Project Management</span>. 2003. 6 Aug 2008 &lt;<a title="http://halmacomber.com/p-log_draft_spec.html" href="http://halmacomber.com/p-log_draft_spec.html" target="_blank">link</a>&gt;.</li>
<li>Adamy, Miro. &#8220;Project management using Wiki.&#8221; <span style="text-decoration: underline;">Miro’s World</span>. 05 Mar 2007. 5 Aug 2008 &lt;<a title="http://blog.timc3.com/2006/11/19/wiki-as-project-management-tool/" href="http://blog.timc3.com/2006/11/19/wiki-as-project-management-tool/" target="_blank">link</a>&gt;.</li>
<li>Child, Tim. &#8220;Wiki as project management tool..&#8221; <span style="text-decoration: underline;">blog.timc3.com</span>. 19 Nov 2006. 6 Aug 2008 &lt;<a title="http://blog.timc3.com/2006/11/19/wiki-as-project-management-tool/" href="http://blog.timc3.com/2006/11/19/wiki-as-project-management-tool/" target="_blank">link</a>&gt;.</li>
<li>Hohman, Jamie. &#8220;Wiki Customization to Resolve Management Issues in Distributed Software Projects.&#8221; <span style="text-decoration: underline;">Software Technology Support Center</span>. Aug 2008. STSC. 6 Aug 2008 &lt;<a title="http://www.stsc.hill.af.mil/crosstalk/2008/08/0808hohmansaiedian.html" href="http://www.stsc.hill.af.mil/crosstalk/2008/08/0808hohmansaiedian.html" target="_blank">link</a>&gt;.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.thelemur.com/processes/using-wikis-for-project-management/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Using ASUnit with ActionScript 2.0</title>
		<link>http://blog.thelemur.com/development-procedures/using-asunit</link>
		<comments>http://blog.thelemur.com/development-procedures/using-asunit#comments</comments>
		<pubDate>Fri, 18 Jul 2008 04:45:17 +0000</pubDate>
		<dc:creator>lemur</dc:creator>
				<category><![CDATA[Development Procedures]]></category>

		<guid isPermaLink="false">http://blog.thelemur.com/?p=12</guid>
		<description><![CDATA[ASUnit is a framework that allows ActionScript developers to create, build, and run test suites. This post demonstrates how to use the ASUnit Extension with AS2.0 and avoids the topic of why a programmer should use test driven development.

Installation

Close any Macromedia or Adobe applications
Download and install the appropriate Extension Manager for your version of Flash [...]]]></description>
			<content:encoded><![CDATA[<p>ASUnit is a framework that allows ActionScript developers to create, build, and run test suites. This post demonstrates how to use the ASUnit Extension with AS2.0 and avoids the topic of why a programmer should use test driven development.</p>
<p><span id="more-12"></span></p>
<h3>Installation</h3>
<ol>
<li>Close any Macromedia or Adobe applications</li>
<li>Download and install the appropriate Extension Manager for your version of Flash and OS from:<br />
<a title="http://www.adobe.com/exchange/em_download/" href="http://www.adobe.com/exchange/em_download/" target="_blank">http://www.adobe.com/exchange/em_download/</a></li>
<li>Download and install the ASUnit Extension from:<br />
<a title="http://sourceforge.net/project/showfiles.php?group_id=108947&amp;package_id=208529" href="http://sourceforge.net/project/showfiles.php?group_id=108947&amp;package_id=208529" target="_blank">http://sourceforge.net/project/showfiles.php?group_id=108947&amp;package_id=208529</a></li>
<li>Open Flash</li>
</ol>
<h3>Verifying the Installation</h3>
<p>In Flash, go to the Commands menu and verify the &#8220;Create Class&#8221; command is available. If the &#8220;Create Class&#8221; command is not present verify the ASUnit extension is installed and enabled in the Extension Manager. You shouldn&#8217;t need to restart your machine.</p>
<h3>Getting Started</h3>
<ol>
<li>Create a new AS2.0 FLA in an empty directory.</li>
<li>Save the FLA to an empty directory. ASUnit will need to create files relative to the FLAs path.</li>
<li>Insert the following code on Layer 1, Frame 1
<pre>import AllTests;</pre>
<pre>var at:AllTests = new AllTests();</pre>
</li>
<li>Go to the Commands menu, Create Class menu item<br/><img style="border: 0;" src="http://blog.thelemur.com/files/asunit/dialog_create_class.png" alt="Create Class" width="474" height="284" /></li>
<li>Enter a qualified Class Name</li>
<li>Uncheck &#8220;Add to Library as MovieClip.&#8221;</li>
<li>Click OK</li>
<li>Go to the Commands menu and select the Build Test Suites command:<br />
<img src="http://blog.thelemur.com/files/asunit/dialog_build_tests.png" alt="Built Tests" width="575" height="161" /></li>
</ol>
<h3>Potential Problems</h3>
<ul>
<li>If you don&#8217;t enter a namespace when creating a new class ASUnit will output the following error:
<pre><img src="http://blog.thelemur.com/files/asunit/dialog_create_class_error.png" alt="Create Class Error" width="573" height="155" /></pre>
<p>This is easy to fix; just enter &#8220;com.Example&#8221; in the Class Name text box (highlighted in blue above). All classes must use namespaces.</li>
<li>If testing the movie does not present you with test case results, go to the Window Menu, Other Panels sub-menu, AsUnit Ui item to show the ASUnit panel.</li>
</ul>
<h3>Recommended Procedures</h3>
<ol>
<li>Setup your project so unit testing is performed outside the development area. I usually setup a directory called &#8220;unit_testing&#8221; and store my tests there. All development is done in the &#8220;development.&#8221; folder. The testing FLA Publish Settings must include the &#8220;development&#8221; folder in its search path list; this is usually entered as a relative URL.<br />
<img style="border: 1px solid black; margin: 0px;" src="http://blog.thelemur.com/files/asunit/folder_structure.png" alt="Folder structure" width="145" height="104" /></li>
<li>The &#8220;Create Class&#8221; command creates two files, a <em>className</em>.as and a <em>className</em>Test.as. Delete the <em>className</em>.as</li>
</ol>
<h3>I Want To Create Tests For Existing Code</h3>
<p>If you&#8217;ve decided to add unit testing to your arsenal mid-project try the following:</p>
<ol>
<li>Add a directory in your project to hold the unit tests</li>
<li>Create a new AS2.0 FLA in the new directory</li>
<li>Go to the File menu, Publish Settings item, Settings&#8230; button</li>
<li>Add your project&#8217;s class path to the Classpath list and close</li>
<li>Add the code snippet above</li>
</ol>
<h3>Troubleshooting</h3>
<p>If you run into class conflicts check to see if Flash&#8217;s global class paths are conflicting with the local Flash paths. To do this in CS3, go to the Edit menu, Preferences item, ActionScript category, ActionScript 2.0 Settings button. In reference to the example above, if your global class paths contain &#8220;./classes/&#8221; and your testing FLA class paths contain &#8220;../flash/classes/&#8221; Flash will happily notify you of a conflict.</p>
<h3>Resources</h3>
<ul>
<li>Official ASUnit Homepage: <a title="http://www.asserttrue.com/articles/tag/asunit" href="http://www.asserttrue.com/articles/tag/asunit" target="_blank">http://www.asserttrue.com/articles/tag/asunit</a></li>
<li>Tutorial Part 1: <a title="http://www.flashcodersny.org/wordpress/?p=103" href="http://www.flashcodersny.org/wordpress/?p=103" target="_blank">http://www.flashcodersny.org/wordpress/?p=103</a></li>
<li>Tutorial Part 1 (in PDF): <a title="http://timbeynart.com/docs/ASUnit_Part1.pdf" href="http://timbeynart.com/docs/ASUnit_Part1.pdf" target="_blank">http://timbeynart.com/docs/ASUnit_Part1.pdf<br />
</a></li>
<li>Tutorial Part 2: <a title="http://timbeynart.com/docs/ASUnit_Part2.pdf" href="http://timbeynart.com/docs/ASUnit_Part2.pdf" target="_blank">http://timbeynart.com/docs/ASUnit_Part2.pdf</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.thelemur.com/development-procedures/using-asunit/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Friday Wrapup Meetings</title>
		<link>http://blog.thelemur.com/processes/friday-wrapup-meetings</link>
		<comments>http://blog.thelemur.com/processes/friday-wrapup-meetings#comments</comments>
		<pubDate>Sat, 12 Jul 2008 21:21:19 +0000</pubDate>
		<dc:creator>lemur</dc:creator>
				<category><![CDATA[Processes]]></category>

		<guid isPermaLink="false">http://blog.thelemur.com/?p=25</guid>
		<description><![CDATA[Every Friday, developers and managers should meet briefly to discuss the successes of the previous week. A Friday Wrapup Meeting should include all team members regardless of their status, position, or present work-load. The meeting&#8217;s mood should be kept upbeat and the discussion should be used to highlight company successes and developer contributions over the [...]]]></description>
			<content:encoded><![CDATA[<p>Every Friday, developers and managers should meet briefly to discuss the successes of the previous week. A Friday Wrapup Meeting should include all team members regardless of their status, position, or present work-load. The meeting&#8217;s mood should be kept upbeat and the discussion should be used to highlight company successes and developer contributions over the past week. This article contains recommendations for conducting these meetings.</p>
<p><span id="more-25"></span></p>
<h3>Stay Positive</h3>
<p>As a general rule of thumb you should avoid negative discussion topics. I should mention this has little to do with sugar coating a slacking developer or ignoring potential problems. Conflicts should be identified and resolved but Friday Meetings are not a suitable environment for this process.</p>
<p>The Friday Wrapup Meeting is conducted at the end of the day on Friday, which gives developers about five minutes after the meeting before they head home for the weekend. If a developer receives schedule pressure for delivering a product, they must wait until Monday to resolve the problem. Negative feedback during Friday Meetings is counter-productive because there is no way for the developer to immediately resolve conflicts without losing time in their personal life. Developers should be encouraged to enjoy their weekend, not stress over work.</p>
<h3>Recommended Discussion Items</h3>
<ul>
<li>New tools, software packages, and development suites that were reviewed or added to the company&#8217;s tool arsenal</li>
<li>Creative or innovative solutions to problems encountered during the week</li>
<li>Company-related successes such as new projects, clients, or employees</li>
<li>Improvements to development procedures</li>
<li>How an employee&#8217;s work improved or benefited the company</li>
</ul>
<h3>Discussion Items to Avoid</h3>
<ul>
<li>Updates on project estimates</li>
<li>Reminding developers about upcoming deadlines</li>
<li>Problems encountered during the week that still pose a threat to project health</li>
<li>Company-related pitfalls</li>
<li>Nagging developers to finish work; public humiliation is rarely effective</li>
</ul>
<h3>The Project Manager&#8217;s Role</h3>
<p>The project manager&#8217;s role during Friday Wrapup Meetings is to analyze and transcribe individual developer motivations. Listening to the things that excite your developers reveals potential motivation techniques.</p>
<h4>Examples of Interpreting Motivations</h4>
<ol>
<li>A non-JavaScript programmer creates a JavaScript widget: take screenshots of the widget in action and give the programmer a print-out of the widget to put on the wall.</li>
<li>A programmer develops a framework or complex system: have the developer create a class diagram of the framework and frame it above the programmer&#8217;s desk.</li>
<li>A designer creates an amazing website design: have the designer piece together a montage of the wireframes, sketches, conceptual pieces, and the final product. Have the designer post this on a wall for everyone to see.</li>
</ol>
<h3>Public Displays of Success</h3>
<p>From my examples above you can see I&#8217;m leaning towards displaying things developers have worked on in the past. Displaying income earned over the past month or a screenshot of an entire website is a good start but it doesn&#8217;t highlight individual contributions. Remember that managers and developers have fundamentally different motivations. Managers are traditionally focused on success while developers are more focused on learning and personal growth.</p>
<h3>Side-Effects</h3>
<p>Side-effects may include but are not limited to:</p>
<ul>
<li>A company atmosphere that encourages personal growth and exploration</li>
<li>Developers are reassured their managers are interested in what they have to say</li>
<li>Developers are more motivated because they feel appreciated</li>
<li>Increased team cohesion, which is provided by team members listening to others</li>
</ul>
<h3>References</h3>
<p>McConnell, Steve. <span style="text-decoration: underline;">Rapid Development: Taming Wild Software Schedules</span>. Redmond, WA: Microsoft Press, 1996.</p>
<p>McConnell, Steve. <span style="text-decoration: underline;">Professional Software Development</span>. Boston, MA: Addison Wesley, 2004.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.thelemur.com/processes/friday-wrapup-meetings/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Website Credibility</title>
		<link>http://blog.thelemur.com/development-procedures/website-credibility</link>
		<comments>http://blog.thelemur.com/development-procedures/website-credibility#comments</comments>
		<pubDate>Thu, 10 Jul 2008 06:10:33 +0000</pubDate>
		<dc:creator>lemur</dc:creator>
				<category><![CDATA[Development Procedures]]></category>

		<guid isPermaLink="false">http://blog.thelemur.com/?p=16</guid>
		<description><![CDATA[Site visitors and customers take action based on a website&#8217;s credibility. Credibility for all intents and purposes is Believability. This article contains links to research that reveals methods for increasing the credibility of a website. In addition, there are links to improving the overall usability of a website.  After reviewing the methods for improving [...]]]></description>
			<content:encoded><![CDATA[<p>Site visitors and customers take action based on a website&#8217;s credibility. <em>Credibility </em>for all intents and purposes is <em>Believability</em>. This article contains links to research that reveals methods for increasing the credibility of a website. In addition, there are links to improving the overall <em>usability</em> of a website.  After reviewing the methods for improving website credibility, believability, and usability you are ready to begin implementing them directly into your project plans.  <span id="more-16"></span></p>
<h3>10 Ways to Improve Website Credibility</h3>
<p>The following list is available <a title="http://www.webcredibility.org/guidelines/" href="http://www.webcredibility.org/guidelines/" target="_blank">here</a>. The external guidelines page also contains descriptions for each method and a link to research in PDF format.</p>
<ol>
<li>Make it easy to verify the accuracy of the information on your site.</li>
<li>Show that there&#8217;s a real organization behind your site.</li>
<li>Highlight the expertise in your organization and in the content and services you provide.</li>
<li>Show that honest and trustworthy people stand behind your site.</li>
<li>Make it easy to contact you.</li>
<li>Design your site so it looks professional (or is appropriate for your purpose).</li>
<li>Make your site easy to use &#8212; and useful.</li>
<li>Update your site&#8217;s content often (at least show it&#8217;s been reviewed recently).</li>
<li>Use restraint with any promotional content (e.g., ads, offers).</li>
<li>Avoid errors of all types, no matter how small they seem.</li>
</ol>
<p>This research is also available in PDF format <a title="http://www.consumerwebwatch.org/pdfs/stanfordPTL.pdf" href="http://www.consumerwebwatch.org/pdfs/stanfordPTL.pdf" target="_blank">here</a>.</p>
<h3>Usability and Credibility</h3>
<p>Many of the methods for improving website <em>Credibility </em>overlap with <em>Usability</em>. I recommend reviewing Jakob Nielson&#8217;s <a title="http://www.useit.com/alertbox/20000319.html" href="http://www.useit.com/alertbox/20000319.html" target="_blank">article</a> on usability testing at.</p>
<h3>User Interfaces and Usability</h3>
<p>Site usability can be improved through:</p>
<ul>
<li>Attention to detail when designing the user interface:<br />
<a title="http://www.uie.com/articles/subtle_interaction_design/" href="http://www.uie.com/articles/subtle_interaction_design/" target="_blank">http://www.uie.com/articles/subtle_interaction_design/</a></li>
<li>Performing usability testing &#8211; &#8220;The 5-Second Test&#8221;:<br />
<a title="http://www.uie.com/articles/five_second_test/" href="http://www.uie.com/articles/five_second_test/" target="_blank">http://www.uie.com/articles/five_second_test/</a></li>
</ul>
<h3>References</h3>
<ul>
<li>Fogg, B.J. &#8220;The Web Credibility Project: Guidelines &#8211; Stanford University.&#8221; <span style="text-decoration: underline;">Stanford Guidelines for Web Credibility</span>. Jun 2002. Stanford University. 10 Jul 2008 &lt;<a title="http://www.webcredibility.org/guidelines/" href="http://www.webcredibility.org/guidelines/" target="_blank">link</a>&gt;.</li>
<li>Nielson, Jakob. &#8220;Usability Testing With 5 Users.&#8221; <span style="text-decoration: underline;">useit.com</span>. 19 Mar 2000. 10 Jul 2008 &lt;<a title="http://www.useit.com/alertbox/20000319.html" href="http://www.useit.com/alertbox/20000319.html" target="_blank">link</a>&gt;.</li>
<li>Spool, Jared. &#8220;Interaction Design: It&#8217;s All About the Subtleties.&#8221; <span style="text-decoration: underline;">User Interface Engineering</span>. 24 Jun 2008. 10 Jul 2008 &lt;<a title="http://www.uie.com/articles/subtle_interaction_design/" href="http://www.uie.com/articles/subtle_interaction_design/" target="_blank">link</a>&gt;</li>
<li>Perfetti, Christine. &#8220;5-Second Tests: Measuring Your Site&#8217;s Content Pages.&#8221; <span style="text-decoration: underline;">User Interface Engineering</span>. 9 Jun 2005. 10 Jul 2008 &lt;<a title="http://www.uie.com/articles/five_second_test/" href="http://www.uie.com/articles/five_second_test/" target="_blank">link</a>&gt;.</li>
</ul>
<h3>Irony</h3>
<p>At the time of this writing http://www.webcredibility.org/ has no index page. Site visitors are presented with a directory structure. Tisk tisk.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.thelemur.com/development-procedures/website-credibility/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Learning UML</title>
		<link>http://blog.thelemur.com/development-procedures/learning-uml</link>
		<comments>http://blog.thelemur.com/development-procedures/learning-uml#comments</comments>
		<pubDate>Wed, 09 Jul 2008 05:19:42 +0000</pubDate>
		<dc:creator>lemur</dc:creator>
				<category><![CDATA[Development Procedures]]></category>

		<guid isPermaLink="false">http://blog.thelemur.com/?p=22</guid>
		<description><![CDATA[If a picture is worth 1024 words then a well crafted UML diagram is worth 2048 words. UML diagrams help programmers explain software systems to other developers, project managers, and clients. This article proposes a process for learning UML, recommendations for drawing diagrams, and ways to refine diagrams over time.

Getting Started with UML

If you are [...]]]></description>
			<content:encoded><![CDATA[<p>If a picture is worth 1024 words then a well crafted UML diagram is worth 2048 words. UML diagrams help programmers explain software systems to other developers, project managers, and clients. This article proposes a process for learning UML, recommendations for drawing diagrams, and ways to refine diagrams over time.</p>
<p><span id="more-22"></span></p>
<h3>Getting Started with UML</h3>
<ul>
<li>If you are new to UML diagramming practice with paper or a whiteboard. Starting off with these mediums ensures you are learning one thing at a time. Tools like MS Visio are built to be user friendly but you will learn UML from the way Microsoft interprets UML. Even a fully UML compliant editor (such as Enterprise Architect) will increase your learning curve because every application interprets <em>how</em> you should draw UML differently. Learn UML first, then cool design software.</li>
<li>Using design tools (like Visio or Enterprise Architect) to brainstorm wastes time; if the problem is not well understood or the solution changes &#8211; you must redraw the diagram. Use design tools to communicate &#8220;solutions to problems&#8221; or &#8220;problems&#8221;.</li>
<li>Ask someone that is not a stakeholder in your project to interpret the diagram. Project stakeholders might make assumptions based on pre-existing project knowledge.</li>
<li>Avoid spending extra time making diagrams UML compliant if they are tacit. I&#8217;ve spent hours arguing over a Use Case diagram arrangement &#8211; this time can be spent elsewhere. Compliance will improve over time, don&#8217;t try to make things perfect the first time.</li>
<li>Use separate diagrams to describe different areas of a system. Mixing multiple diagram types into one diagram will confuse your audience.</li>
</ul>
<h4>Recommended Reading</h4>
<ul>
<li> UML 2.0 In a Nutshell (O&#8217;Reilly) <a title="http://oreilly.com/catalog/9780596007959/" href="http://oreilly.com/catalog/9780596007959/" target="_blank">http://oreilly.com/catalog/9780596007959/</a></li>
<li>Learning UML 2.0 (O&#8217;Reilly) <a title="http://oreilly.com/catalog/9780596009823" href="http://oreilly.com/catalog/9780596009823" target="_blank">http://oreilly.com/catalog/9780596009823</a></li>
</ul>
<h3>UML Style Guidelines</h3>
<ul>
<li>Avoid curved lines</li>
<li>Avoid overlapping lines. If lines must intersect use a &#8220;line jump&#8221; to indicate overlaps</li>
<li>Elements should have consistent shapes and sizes. This includes decorations like rounded rectangle radius and line thickness</li>
<li>Diagram elements should have consistent whitespace</li>
<li>Maintain consistent fonts, colors, and font styles</li>
<li>Use sans-serif fonts</li>
</ul>
<h4>Style Guideline References</h4>
<p><a title="http://www.ibm.com/developerworks/webservices/library/ws-tip-uml/" href="http://www.ibm.com/developerworks/webservices/library/ws-tip-uml/" target="_blank">http://www.ibm.com/developerworks/webservices/library/ws-tip-uml/</a></p>
<h3>Refining UML Diagrams Over Time</h3>
<ul>
<li>Create templates in your favorite design tool to reduce startup time</li>
<li>Modify your diagrams based on feedback from clients and project managers. This may include items such as:
<ul>
<li>Color coded elements accompanied by a color key</li>
<li>Comments next to diagram elements</li>
</ul>
</li>
<li>Use layers to provide details for different audiences (this is a handy feature of Visio). Details may include:
<ul>
<li>Comments or notes not intended for the client</li>
<li>Developer details not relevant to designers</li>
<li>User interface notes that don&#8217;t pertain to developers</li>
</ul>
</li>
</ul>
<h3>Recommended Software</h3>
<h4>Microsoft Visio</h4>
<p><a title="http://office.microsoft.com/en-us/visio/default.aspx" href="http://office.microsoft.com/en-us/visio/default.aspx" target="_blank">http://office.microsoft.com/en-us/visio/default.aspx</a></p>
<h4>Enterprise Architect</h4>
<p><a title="http://www.sparxsystems.com.au/" href="http://www.sparxsystems.com.au/" target="_blank">http://www.sparxsystems.com.au/</a></p>
<h3>UML Software List</h3>
<p><a title="http://en.wikipedia.org/wiki/List_of_UML_tools" href="http://en.wikipedia.org/wiki/List_of_UML_tools" target="_blank">http://en.wikipedia.org/wiki/List_of_UML_tools</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.thelemur.com/development-procedures/learning-uml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using NaturalDocs</title>
		<link>http://blog.thelemur.com/development-procedures/using-naturaldocs</link>
		<comments>http://blog.thelemur.com/development-procedures/using-naturaldocs#comments</comments>
		<pubDate>Mon, 07 Jul 2008 19:00:00 +0000</pubDate>
		<dc:creator>lemur</dc:creator>
				<category><![CDATA[Development Procedures]]></category>

		<guid isPermaLink="false">http://blog.thelemur.com/?p=21</guid>
		<description><![CDATA[Getting up to speed with NaturalDocs will only take a few minutes. This article will show you:

Where to find the NaturalDocs executables
Where to find commenting guidelines
Setup a sample project workspace
Automate NaturalDocs with a simple Windows Batch File


Getting Started

Download and unpack the latest version of NaturalDocs available at: http://www.naturaldocs.org/.
Document your code according the NaturalDocs coding guidelines [...]]]></description>
			<content:encoded><![CDATA[<p>Getting up to speed with NaturalDocs will only take a few minutes. This article will show you:</p>
<ul>
<li>Where to find the NaturalDocs executables</li>
<li>Where to find commenting guidelines</li>
<li>Setup a sample project workspace</li>
<li>Automate NaturalDocs with a simple Windows Batch File</li>
</ul>
<p><span id="more-21"></span></p>
<h3>Getting Started</h3>
<ol>
<li>Download and unpack the latest version of NaturalDocs available at:<br/> <a title="http://www.naturaldocs.org/" href="http://www.naturaldocs.org/" target="_blank">http://www.naturaldocs.org/</a>.</li>
<li>Document your code according the NaturalDocs coding guidelines found at:<br/><br />
<a title="http://www.naturaldocs.org/documenting.html" href="http://www.naturaldocs.org/documenting.html" target="_blank">http://www.naturaldocs.org/documenting.html</a>.</li>
<li>Download <a title="this" href="http://blog.thelemur.com/files/natural_docs/generate_class_documentation.bat">this</a> Windows Batch File if you wish to automate the process.</li>
<li>Create a folder in your project for documentation. <em>Refer to the Project Folder Structure below.</em></li>
<li>Run NaturalDocs.bat directly <em>or customize and run the automation batch file</em>.</li>
</ol>
<h3>Setting Your Project&#8217;s Folder Structure</h3>
<p>The following is an example project structure with separate development and documentation areas:</p>
<p><img style="border: 1px solid black; margin-left: 0px; margin-right: 0px;" src="http://blog.thelemur.com/files/natural_docs/folder_structure.png" alt="Folder structure" width="210" height="241" /></p>
<h3>Customizing the Windows Batch File for Automation</h3>
<p>Save the automation batch file in the <code>/documentation/</code> directory. The batch file contains the following variables:</p>
<ul>
<li>NATURAL_DOCS_PATH: Location of the NaturalDocs executable</li>
<li>INPUT_PATH: Relative path from the automation batch file to the source files</li>
<li>OUTPUT_PATH: Relative path from the automation batch file to the desired output directory*</li>
<li>PROJECT_PATH: Relative path from the automation batch file to the desired project directory*</li>
</ul>
<p><em>*Set the output</em><em> path and the project path to the same directory and leave the project data alone to save time on customizations.</em> I usually have two batch files in the documentation directory. Each batch file generates documentation for a different portion of my code (procedural ActionScript and ActionScript classes).</p>
<h3>Using NaturalDocs in a Subversion Workspace</h3>
<p>NaturalDocs deletes documentation files if the class source file has been renamed or removed. Committing the documentation directories immediately after running NaturalDocs will eliminate errors in your working copy.</p>
<h3>NaturalDocs Command Line Options</h3>
<p>Refer to <a title="http://naturaldocs.org/running.html" href="http://naturaldocs.org/running.html">http://naturaldocs.org/running.html</a> for more information. The automation batch file uses HTML output instead of HTML-frames output. Modify the last line of the automation batch file to change the output format.</p>
<p>NaturalDocs uses a &#8216;Project Root&#8217; command-line parameter for storing project data. The project data contains custom menu arrangements, custom keywords, and custom topics. Project data is generated automatically but may be modified after NaturalDocs has generated documentation.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.thelemur.com/development-procedures/using-naturaldocs/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Personal Firewall for Windows</title>
		<link>http://blog.thelemur.com/software/personal-firewall-for-windows</link>
		<comments>http://blog.thelemur.com/software/personal-firewall-for-windows#comments</comments>
		<pubDate>Fri, 27 Jun 2008 06:52:45 +0000</pubDate>
		<dc:creator>lemur</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.thelemur.com/?p=15</guid>
		<description><![CDATA[I recommend installing the personal firewall from Comodo available at: http://www.personalfirewall.comodo.com/ on Windows boxes.

I found this tool while troubleshooting a Windows XP install. It proved useful for troubleshooting because it catches network requests and asks for approval. Beyond troubleshooting, the Comodo Firewall requires confirmation for application requests such as:

Writing to the screen
Modifying executables
Connecting to network [...]]]></description>
			<content:encoded><![CDATA[<p>I recommend installing the personal firewall from Comodo available at: <a title="Comodo Personal Firewall" href="http://www.personalfirewall.comodo.com/" target="_blank">http://www.personalfirewall.comodo.com/</a> on Windows boxes.</p>
<p><span id="more-15"></span></p>
<p>I found this tool while troubleshooting a Windows XP install. It proved useful for troubleshooting because it catches network requests and asks for approval. Beyond troubleshooting, the Comodo Firewall requires confirmation for application requests such as:</p>
<ul>
<li>Writing to the screen</li>
<li>Modifying executables</li>
<li>Connecting to network resources</li>
<li>Launching programs</li>
</ul>
<p>Your response is saved per application after you confirm or deny requests. This is very similar to the McAfee security center firewall but the Comodo Firewall is free, it contains no adware or spyware, and is easy to configure. Better still, Comodo has no nag screens.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.thelemur.com/software/personal-firewall-for-windows/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using PHP to load browser-specific styles</title>
		<link>http://blog.thelemur.com/development-procedures/using-php-to-load-browser-specific-styles</link>
		<comments>http://blog.thelemur.com/development-procedures/using-php-to-load-browser-specific-styles#comments</comments>
		<pubDate>Fri, 27 Jun 2008 04:17:41 +0000</pubDate>
		<dc:creator>lemur</dc:creator>
				<category><![CDATA[Development Procedures]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.thelemur.com/?p=14</guid>
		<description><![CDATA[PHP allows programmers to detect the browser and operating system for every page visitor. This capability isn&#8217;t limited to PHP, but that&#8217;s what we&#8217;ll be working with today. This article is a proposed workflow for solving browser-specific CSS bugs.

Potential Problems
Browser detection is not bulletproof since users can change their browser name string, firewalls may prevent [...]]]></description>
			<content:encoded><![CDATA[<p>PHP allows programmers to detect the browser and operating system for every page visitor. This capability isn&#8217;t limited to PHP, but that&#8217;s what we&#8217;ll be working with today. This article is a proposed workflow for solving browser-specific CSS bugs.</p>
<p><span id="more-14"></span></p>
<h3>Potential Problems</h3>
<p>Browser detection is not bulletproof since users can change their browser name string, firewalls may prevent browser data from passing through, and software builders change their browser ID formats. Since these are the exceptions and not the rule-it&#8217;s worth attempting to customize the page presentation to your visitors&#8217; browser.</p>
<h3>Approach</h3>
<ol>
<li>Create individual stylesheets for different browsers and browser versions</li>
<li>Use PHP to detect the current browser and browser version</li>
<li>Load base stylesheets first</li>
<li>Load browser-specific styles after the base styles</li>
</ol>
<p>The order of steps 3 and 4 are critical. We&#8217;re trying to overwrite the base styles so they must be included first in the HTML header.</p>
<h3>Detecting the Browser Version</h3>
<p>At the very least you&#8217;ll need to retrieve the browser name. If compatibility requirements are strict you&#8217;ll want the version and revision numbers too. Once you&#8217;ve chosen a detection script you&#8217;re ready to move on.</p>
<p>Instead of retyping source, I will now point you to <a title="http://www.hudzilla.org/phpbook/read.php/16_5_0" href="http://www.hudzilla.org/phpbook/read.php/16_5_0" target="_blank">this site</a> which uses PHP&#8217;s <code>get_browser()</code> function. This page has a dedicated author and a history of updates dating back to 1998.</p>
<p>I recommend using get_browser() but if you don&#8217;t want to modify your PHP setup you are in luck. There are enough open-source detection scripts on the web to save you the trouble of writing your own. When you find a script be sure to check its release date.</p>
<p>An open-source script will have the same approach as the browser capability approach linked above.</p>
<h3>Suggestions</h3>
<ul>
<li>If you&#8217;re aiming for IE and Firefox it&#8217;s probably simpler to keep all your files in one ./css/ directory</li>
<li>Use a folder structure like the one below if you have many browser-specific CSS files.<br />
<img style="border: 1px solid black;" src="http://blog.thelemur.com/files/css/css_folders.png" alt="" width="119" height="88" /></li>
</ul>
<ul>
<li>If you&#8217;re switching approaches mid-project be sure to add relative paths to your CSS files!</li>
</ul>
<h3>References</h3>
<p><a href="http://www.hudzilla.org/phpbook/read.php/16_5_0" target="_blank">http://www.hudzilla.org/phpbook/read.php/16_5_0</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.thelemur.com/development-procedures/using-php-to-load-browser-specific-styles/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
