<?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/"
	>

<channel>
	<title>Jason Porritt</title>
	<atom:link href="http://www.jasonporritt.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jasonporritt.com</link>
	<description>software development et al.</description>
	<pubDate>Mon, 08 Jun 2009 18:11:04 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>In Theory: Stakeholder Interviews</title>
		<link>http://www.jasonporritt.com/in-theory-stakeholder-interviews/</link>
		<comments>http://www.jasonporritt.com/in-theory-stakeholder-interviews/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 17:17:02 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
		
		<category><![CDATA[UX Design]]></category>

		<category><![CDATA[user experience design]]></category>

		<category><![CDATA[ux]]></category>

		<guid isPermaLink="false">http://www.jasonporritt.com/?p=111</guid>
		<description><![CDATA[Let me preface this by saying, as stated in the title, that this is theory.  This is what I plan to do when I have the opportunity to interview stakeholders, and the value I expect it will provide.  But, I haven&#8217;t had the opportunity to do any interviews just yet.
Like I mentioned in [...]]]></description>
			<content:encoded><![CDATA[<p>Let me preface this by saying, as stated in the title, that this is theory.  This is what I <em>plan</em> to do when I have the opportunity to interview stakeholders, and the value I <em>expect</em> it will provide.  But, I haven&#8217;t had the opportunity to do any interviews just yet.</p>
<p>Like I mentioned in <a href="http://www.jasonporritt.com/diving-into-ux/">my previous post</a>, one of the first tasks in user experience design is to concretely understand the goals of the project stakeholders, possibly helping them flesh out thoughts and abstract ideas in the process.  Stakeholder interviews, as described by <a title="Shawn Crowley, at Atomic Object" href="http://www.atomicobject.com/pages/Shawn+Crowley">Shawn Crowley at Atomic Object</a>, are intended to help bring those thoughts to the surface and, through discussion, document a set of goals and motivations.  The system he described involves a pair of interviewers and a single stakeholder interviewee: one interviewer guides the discussion using a mix of open- and closed-ended questions while the other takes notes.</p>
<p>The questions should try to draw out not only qualitative descriptions of goals, but also quantitative when possible (e.g., Market saturation percentage targets, net income).  Some questions we discussed include:</p>
<ul>
<li> What is success?  Failure?</li>
<li> Who are you doing this for?</li>
<li> What are your constraints (time, money, etc.)?</li>
<li> What is your vision for this product?</li>
<li> Tell me the future</li>
</ul>
<p>For the note taker, a set of 3&#215;5 cards should work well for documenting statements the stakeholder makes.  The notes must be factual, not the note taker&#8217;s opinion.  After the interview, both of the interviewers should review the set of notes to make sure they are factual &#8212; grounded in reality.  Any statements that are tainted by interviewer opinion should be discarded or distilled down to the factual information.  After the interview, review the notes with the stakeholder using whatever method you deem appropriate (I&#8217;ll probably send a follow-up e-mail, since I tend to do that after meetings anyway).  If you <em>must</em> make assumptions, be absolutely sure you check those assumptions with the necessary stakeholders or you risk driving the project off course from the very beginning.</p>
<p>Now that you have one set of information, repeat the process with others involved in the project.  Stakeholders can take a variety of roles, so be sure that variety is reflected in your pool of people to interview.  Previous interviews are likely to identify new people who should be interviewed.  I&#8217;ll be likely to include people from business leadership, marketing, and other subject matter experts in my interviews to be sure we are getting the whole picture and describing goals clearly.</p>
<p>As Shawn and I discussed, the value of these interviews lies in the focus on fact.  We can use the information we gather to reflect the business goals, metrics, and target audience back to the stakeholders as a framework for discussion.  This becomes a single point to align the stakeholders, developers, designers, and others involved in the project toward the same set of goals and will be a valuable tool to guide decisions down the road.</p>
<p>In theory, that is.  We&#8217;ll see how it goes.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonporritt.com/in-theory-stakeholder-interviews/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Diving into UX</title>
		<link>http://www.jasonporritt.com/diving-into-ux/</link>
		<comments>http://www.jasonporritt.com/diving-into-ux/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 17:14:46 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
		
		<category><![CDATA[UX Design]]></category>

		<category><![CDATA[design]]></category>

		<category><![CDATA[user experience design]]></category>

		<category><![CDATA[ux]]></category>

		<guid isPermaLink="false">http://www.jasonporritt.com/?p=107</guid>
		<description><![CDATA[I love a challenge, and the diversity of the challenges I face on a regular basis is one reason I really enjoy my work.  My latest challenge has had less to do with writing code and more to do with taking ideas from conception, through research and evaluation, to a basic project plan.  [...]]]></description>
			<content:encoded><![CDATA[<p>I love a challenge, and the diversity of the challenges I face on a regular basis is one reason I really enjoy my work.  My latest challenge has had less to do with writing code and more to do with taking ideas from conception, through research and evaluation, to a basic project plan.  I&#8217;ve been involved in the early stages of concept development before, but never with this many ideas at once or with this much stake in the outcome.  So, I&#8217;m taking this opportunity to learn and hopefully improve our process along the way by diving into user experience design.</p>
<p>There is an awful lot of documentation on the internet about user experience design.  I&#8217;ve read through a bit of it, and through reading I came to understand the basic gist of things like stories, personas, and wireframes.  Until yesterday, though, I still felt like I wasn&#8217;t getting the big picture &#8212; how do all of these things fit together and eventually lead to an informed project plan?  Thanks to a great Thursday afternoon discussion with <a title="Shawn Crowley, at Atomic Object" href="http://www.atomicobject.com/pages/Shawn+Crowley">Shawn Crowley over at Atomic Object</a>, I&#8217;m starting to see how I can apply the process of UX design to my project.  Instead of sharing particular methods first, I&#8217;d like to talk about general application of the process to my project and how I envision it will provide value for me, my fellow developers and designers, and the project stakeholders.</p>
<p>Shawn did a really great job of walking me through the process Atomic Object is employing in user experience design, and that has helped form in my mind an idea of what the process is intended to achieve &#8212; the big picture that was missing from online materials.  Apart from any concrete deliverables, their aim is to:</p>
<ol>
<li>Identify stakeholder goals &amp; motivations</li>
<li>Identify &amp; understand target audiences</li>
<li>Identify activities involved in achieving stakeholder &amp; user goals</li>
<li>Assemble a high-level release plan for estimation &amp; evaluation</li>
<li>Add detail to tasks for the first release to support development planning</li>
<li>Execute development &amp; other design activities to implement release plan</li>
</ol>
<p>Concrete deliverables from the process will relate to one or more of the abstract goals above.  Each step builds on the previous, introducing new information and keeping the process grounded in facts.</p>
<p>I&#8217;m going to start at step one by asking myself a simple question, &#8220;How do I identify stakeholder goals and motivations?&#8221;  One of the methods Shawn and I talked about was a pair interview with a stakeholder: one person asks questions while the other person writes down facts to be reviewed later.  But, I already have answers to a lot of the questions I&#8217;d ask and I don&#8217;t want to waste someone&#8217;s time asking them questions I already know the answers to.  Instead, I&#8217;ll probably start by writing down facts I already know and review them with the stakeholder in a brief conversation.  Not that I wouldn&#8217;t <em>like</em> to interview them, but it wouldn&#8217;t add a lot of <em>value</em> for either of us at this point.  I&#8217;ll tackle each goal in a similar way, identifying methods and deliverables that have value to me and to my stakeholders, up to the point where I&#8217;ve achieved my goal of providing an actionable, loosely estimated release plan.</p>
<p>The process of user experience design is not one for robots.  The decision to include or exclude specific techniques or artifacts is entirely up to you, and should be based on the <em>value</em> that they will provide you, your stakeholders, or others involved in your process.  Ask yourself and your stakeholders how a particular method or deliverable helps you achieve your goals before blindly writing a detailed process flow or creating a wonderful functioning prototype.  For me and my stakeholders, things like high-level stories, reasonable personas derived from past user labs, wireframes (rough, sketchy mockups), and context scenarios are going to be of primary importance because they are useful in communicating our vision.  Other artifacts, like content inventories and prototypes, aren&#8217;t as valuable to us at this point because we&#8217;re still trying to determine the value of our ideas.</p>
<p>At each step I&#8217;ll be using the results of the previous steps to inform decisions about prioritization, keep product features and functions on target, and squash disagreements not based on facts.  I&#8217;m really eager to see where this leads because it appears it will help answer questions I&#8217;ve been asking myself and my teammates about communicating project ideas and keeping a cohesive vision across functional teams.</p>
<p>Again, I have to thank Shawn Crowley and Atomic Object for giving me the opportunity to learn from their experience.  I&#8217;m looking forward to continued conversations as I begin to put user experience design principles into practice, and I&#8217;ll do my best to keep sharing what I learn.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonporritt.com/diving-into-ux/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Going to make some noise</title>
		<link>http://www.jasonporritt.com/going-to-make-some-noise/</link>
		<comments>http://www.jasonporritt.com/going-to-make-some-noise/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 16:32:39 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
		
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://www.jasonporritt.com/?p=105</guid>
		<description><![CDATA[It&#8217;s been awfully quiet on this front lately, but that doesn&#8217;t mean I&#8217;ve been idle.  On the contrary, I&#8217;ve got some interesting things coming up and I&#8217;m going to try, really try, to do better at sharing what I&#8217;ve been working on and learning about.  What can you expect?  How about a few examples:

Drawing graphs [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been awfully quiet on this front lately, but that doesn&#8217;t mean I&#8217;ve been idle.  On the contrary, I&#8217;ve got some interesting things coming up and I&#8217;m going to try, <em>really try,</em> to do better at sharing what I&#8217;ve been working on and learning about.  What can you expect?  How about a few examples:</p>
<ul>
<li>Drawing graphs with Perl &amp; Cairo (notes from GRPM meeting months ago&#8230; sorry for the delay)</li>
<li>Fun with mad libs in Perl</li>
<li>Discussion on testing with Perl &#8212; Test::MockObject in particular</li>
<li>System testing with Selenium &amp; Perl</li>
<li>BarCamp Grand Rapids, GRPM, and other user groups</li>
<li>And plenty more Perl!</li>
</ul>
<div>Sometimes it just takes a swift kick to spur things along.  If you need a kick yourself, and you happen to be a Perl guy or gal, <a href="#mce_temp_url#">Matt S. Trout has got one for you</a> (mind the profanity).</div>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonporritt.com/going-to-make-some-noise/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Perl: Old and crufty?</title>
		<link>http://www.jasonporritt.com/perl-old-and-crufty/</link>
		<comments>http://www.jasonporritt.com/perl-old-and-crufty/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 17:13:09 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
		
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://www.jasonporritt.com/?p=95</guid>
		<description><![CDATA[I hear people mummbling a lot about whether or not Perl is dying, but I think a better question is, &#8220;Is Perl perceived as old and crufty?&#8221;.  I think the answer is related to the perception that Perl is dying and I think there may be something the Perl community can do about it.
First, let [...]]]></description>
			<content:encoded><![CDATA[<p>I hear people mummbling a lot about whether or not Perl is dying, but I think a better question is, &#8220;Is Perl perceived as old and crufty?&#8221;.  I think the answer is related to the perception that Perl is dying and I think there may be something the Perl community can do about it.</p>
<p>First, let me define what I mean by the phrase old and crufty.  When was the last time you cleaned out a communal refridgerator at work, church, or even at home?  What did you find?  Chances are you threw out anything that was obviously bad or wasn&#8217;t in a reusable container, but what about the questionable items?  You left them in there because they might belong to someone else, and they might still use them.  Even if you wouldn&#8217;t, they might.  So they didn&#8217;t get cleaned up.  That is what I call cruft.</p>
<p>Software developers don&#8217;t like cruft.  In our own code, we have the ability to see what is used and unused and clean vigorously.  It feels good to finish a rewrite or update to a system knowing that everything is nice and tight &#8212;  shiny code.  Or at least my perfectionist tendencies make me feel that way.  So, when I see <a href="http://www.nntp.perl.org/group/perl.perl5.porters/2008/11/msg141742.html">comments like this on the Perl 5 Porters mailing list</a>, it makes me cringe:</p>
<blockquote><p>But I&#8217;d be scared of making it in any stable release as I would be surprise if someone somewhere isn&#8217;t matching on it, and ignoring the current term.</p></blockquote>
<p>The change being discussed isn&#8217;t necessarily even one I would be in favor of, but it is a classic example of the kind of talk that leads into the perception of a language being full of cruft that developers don&#8217;t like.  I can understand how, through reading this type of comment, a person could come to see Perl as a language that is dying, not advancing, because the community is too afraid to make changes that would improve the language.</p>
<p>Now for some positivity: I think this perception can be changed, partly through the addition of quantitative analysis.  For example, if we take CPAN to be a (non-random, obviously) sample of all Perl code, then we can check to see if any module on CPAN checks the actual value of a warning someone requested a change to.  There are other Perl-based open source projects that can be grepped (or Ack-ed) through to quantify the potential impact of a change.  Instead of stating, &#8220;someone, somewhere might use &lt;blather&gt; for &lt;unintended_use&gt;&#8221;, try to add to it, &#8220;&#8230; but there were no modules on CPAN that did, and neither do open sourc projects A, B, and C.&#8221;  Perhaps we could even put together a set of projects and a tool to check outside of CPAN to make it easier to judge the impact of a proposed change.</p>
<p>Thoughts, anyone?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonporritt.com/perl-old-and-crufty/feed/</wfw:commentRss>
		</item>
		<item>
		<title>FUD as Technical Debt</title>
		<link>http://www.jasonporritt.com/fud-as-technical-debt/</link>
		<comments>http://www.jasonporritt.com/fud-as-technical-debt/#comments</comments>
		<pubDate>Thu, 04 Sep 2008 21:52:31 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
		
		<category><![CDATA[Software Development]]></category>

		<category><![CDATA[technical debt]]></category>

		<guid isPermaLink="false">http://www.jasonporritt.com/?p=88</guid>
		<description><![CDATA[Fear, uncertainty, and doubt almost surely lead to technical debt when they are left to fester in the software development process. Chances are good that you&#8217;ve seen the symptoms of FUD in your own code at some point, or at least in someone else&#8217;s. The following are a few examples I&#8217;ve run across recently, coupled [...]]]></description>
			<content:encoded><![CDATA[<p>Fear, uncertainty, and doubt almost surely lead to technical debt when they are left to fester in the software development process. Chances are good that you&#8217;ve seen the symptoms of FUD in your own code at some point, or at least in someone else&#8217;s. The following are a few examples I&#8217;ve run across recently, coupled with hopefully useful suggestions on how to keep FUD and its associated debt out of your software.</p>
<h3>Unused</h3>
<p>It is all too common to find unused variables, subroutines, or unnecessary libraries included in a program. Often they are remnants of a shoddy refactoring effort, or the result of a developer who is outside their comfort zone with the language and tools being used. This excess code can confuse unwary maintainers or, in the worst cases, cause errant behavior in the software. Clean up anything that is not necessary in your own code, and encourage others to do the same. If you are unsure whether removing a variable or library will break your code, test your suspicion instead of letting your uncertainty remain. </p>
<h3>Duplication &amp; Stagnation</h3>
<p>When confronting someone with a refactoring need, how often have you heard the excuse, &#8220;But I&#8217;m afraid I&#8217;ll break something.&#8221;? The fear of refactoring can lead to duplication of code, lingering problems, and general stagnation of the code base. As <a title="Andy Lester -- Petdance" href="http://petdance.com/">Andy Lester</a> mentions in <a title="Andy Lester: Get out of Technical Debt Now!" href="http://www.media-landscape.com/yapc/2006-06-26.AndyLester/">his technical debt presentations</a>, even the <em>feeling</em> that code is broken affects how we deal with it (the broken window effect). We hopefully learn more about our craft every day, and refactoring is a valuable way to apply new knowledge and best practices to our work. </p>
<p>Probably the best way to give confidence in refactoring is to have a solid suite of tests covering the affected code. It is very reassuring to see tests pass before and after large changes. Spending time to develop a deeper understanding of a program&#8217;s function also lends a degree of confidence &#8212; I suggest spending that time writing or improving the test suite.</p>
<h3>Why does it work?</h3>
<p>As software developers, we ought to be able to explain how and why our software functions, not just declare that it passes the tests. A lack of understanding can lead to unexpected behavior in untested situations and nightmares for anyone left to maintain the code. If the person who wrote it can&#8217;t explain how it works, what hope does anyone else have?</p>
<p>Pair programming requires talking through code as it is written, and that helps understanding a lot. If you find yourself alone, talk it through yourself or find someone to explain it to later (as part of a code review process, perhaps). Ask questions of your fellow developers when you don&#8217;t understand what they&#8217;ve written, and be prepared to question your assumptions when things don&#8217;t work how you thought they should.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonporritt.com/fud-as-technical-debt/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Google Chrome: First impressions</title>
		<link>http://www.jasonporritt.com/google-chrome-first-impressions/</link>
		<comments>http://www.jasonporritt.com/google-chrome-first-impressions/#comments</comments>
		<pubDate>Wed, 03 Sep 2008 16:36:32 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
		
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.jasonporritt.com/?p=84</guid>
		<description><![CDATA[I had to do it. I installed Google&#8217;s new browser, Chrome.
My initial search for the download page was performed in IE8 Beta2&#8217;s Live Search bar (take that, Microsoft!) and I didn&#8217;t get the results I expected &#8212; surprise! Instead of a prominent download link, I was presented with several news stories and a link to [...]]]></description>
			<content:encoded><![CDATA[<p>I had to do it. I installed Google&#8217;s new browser, Chrome.</p>
<p>My initial search for the download page was performed in IE8 Beta2&#8217;s Live Search bar (take that, Microsoft!) and I didn&#8217;t get the results I expected &#8212; surprise! Instead of a prominent download link, I was presented with several news stories and a link to <a title="Chrome commentary -- comic book style" href="http://www.google.com/googlebooks/chrome/">Google&#8217;s little comic commentary about Chrome</a> (which is a good read, by the way). So, I just went directly to Google and searched there, and of course they had the download link in the Sponsored Links sidebar as well as the first position below news results. I tried the search for &#8220;google chrome&#8221; also at Yahoo and AltaVista, just for kicks, and noted that the download link was near the middle of the first page of results. Odd, then, that it doesn&#8217;t appear in Microsoft&#8217;s Live Search results at all, don&#8217;t you think?</p>
<p>Anyway, I installed it and poked around the web a bit, paying special attention to sites like GMail and <a title="Human &amp; Machine" href="http://blog.agentzh.org/">agentzh&#8217;s blog</a> that are heavy on the Javascript. Overall, it worked well enough. I didn&#8217;t notice any drastic difference between my typical Safari 3.1 and Chrome, though it was quite snappy in GMail. Nice job, Google.</p>
<p>Of course, we all realize that in the end Google&#8217;s release of Chrome is a self-serving action. Better browser performance means they can push their apps harder, and improved perception of security and stability might make people more apt to use online spreadsheet and word processing tools. I applaud their efforts just the same, and I think we all hope this pushes Microsoft and Mozilla toward further innovation.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonporritt.com/google-chrome-first-impressions/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Software Development: It&#8217;s all in your head (from BarCamp GR)</title>
		<link>http://www.jasonporritt.com/software-development-its-all-in-your-head-from-barcamp-gr/</link>
		<comments>http://www.jasonporritt.com/software-development-its-all-in-your-head-from-barcamp-gr/#comments</comments>
		<pubDate>Mon, 18 Aug 2008 23:09:07 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
		
		<category><![CDATA[BarCamp]]></category>

		<category><![CDATA[Software Development]]></category>

		<category><![CDATA[barcampgr]]></category>

		<category><![CDATA[barcampgrandrapids3]]></category>

		<category><![CDATA[pragmatic]]></category>

		<guid isPermaLink="false">http://www.jasonporritt.com/?p=74</guid>
		<description><![CDATA[Disclaimer:
These are my unfinished, unpolished thoughts, bound to be revised and rethought.  I publish them in the hope that they might spark your imagination and make you think, if only a little.
Sparks &#38; motivation
This talk came about because a few things I&#8217;ve read and heard recently (particularly from Andy Hunt &#8212; see the link at [...]]]></description>
			<content:encoded><![CDATA[<h3>Disclaimer:</h3>
<p>These are my unfinished, unpolished thoughts, bound to be revised and rethought.  I publish them in the hope that they might spark your imagination and make you think, if only a little.</p>
<h3>Sparks &amp; motivation</h3>
<p>This talk came about because a few things I&#8217;ve read and heard recently (particularly from Andy Hunt &#8212; see the link at the end) have resonated strongly with my own feelings that the software development community is, perhaps unknowingly, ignoring a few core skills. We tend to focus so much energy on creating, teaching, and learning new tools and methods that I think we may be losing focus on the other things that make us good software developers, namely our problem solving and design skills.</p>
<p>It&#8217;s not that tools are a bad thing &#8212; they are very important.  But, does using Photoshop make me a designer? Does owning a wrench make you a plumber? So, then, neither does opening up Vi or starting up Eclipse <em>really</em> make anyone a software developer.</p>
<p>As Andy Hunt said in Pragmatic Podcasts: Andy Hunt on Pragmatic Wetware, &#8220;Software is developed in your head, and in the heads of your team members.&#8221;</p>
<h3>Problem solving</h3>
<p>I had a particularly interesting interview a short while ago. The first question I was asked, after introductions and obligatory handshakes, was to show how many snowflakes had fallen on Earth since the beginning of time. A dry-erase board and marker were the tools provided. At first their request sounded a bit odd, and it was a bit intimidating, but in retrospect it makes plenty of sense. A lot of what we do as software developers is break large, impossible-sounding problems down into smaller bits that are easier to understand and solve. Reassemble those pieces correctly and you&#8217;ll also solve the larger problem.</p>
<p>Tools or preferred development methodologies might have some impact on how you approach the task, but I think we&#8217;d find more similarities than differences. Consider that nearly all programming languages provide facilities for managing these smaller pieces. Whether they&#8217;re subroutines, functions, macros, or our favorites from OO (classes, methods, etc.), their purpose is to help you break things down into manageable chunks.  Modern IDEs make it easy to manage large groups of files and dependencies.</p>
<h4>Applied</h4>
<p>It takes time to load up the context of a problem into your brain. And it only takes one disruption of the wrong type to blow it. To help the design process, I tend to:</p>
<ul>
<li>Talk through it with someone else, possibly away from our desks to avoid interruption.</li>
<li>Put on headphones if I&#8217;m working alone in a distracting environment.</li>
<li>Take short breaks to let ideas settle and when you hit particularly troublesome parts.</li>
<li>Keep it simple. Resist the temptation to make things more complicated than they really need to be. Agile&#8217;s YAGNI concept falls under this idea, but is only one example.</li>
</ul>
<p>Also, any code you don&#8217;t have to write yourself decreases the amount of information you have to load into your brain. Use libraries from CPAN, Ruby Forge, or wherever you prefer that have already been written and tested.</p>
<h3>Design</h3>
<p>Software developers actually do a lot of design work &#8212; we follow the same process as nearly any other designer:</p>
<ul>
<li>Analyze the problem with the customer</li>
<li>Take the intended audience into account</li>
<li>Create a solution</li>
</ul>
<p>So, there is a lot of creativity involved. This is one big reason why I really enjoy being a software developer.</p>
<p>One interesting thing I&#8217;ve noticed is that we software developers don&#8217;t really test the usability of our code. I would love to see someone put together a serious usability test of a few different languages or libraries &#8212; I think we would learn a lot about ourselves and put some concrete evidence behind coding standards and best practices.</p>
<h4>Applied</h4>
<p>Differences of opinion are okay. In fact, they&#8217;re a major contributor to success in any design task. Agile development encourages this through pair programming.</p>
<p>A lot of the time, we and our fellow team members are the most significant users of the classes and modules we write. At the very least, it&#8217;s going to be another developer using it. Be kind to yourself and the other users &#8212; put some serious thought into how users will interact with your code. Maybe even do usability testing.</p>
<h3>For more&#8230;</h3>
<p><a href="http://www.pragprog.com/titles/ahptl/pragmatic-thinking-and-learning"><em>Pragmatic Thinking and Learning</em></a> by Andy Hunt</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonporritt.com/software-development-its-all-in-your-head-from-barcamp-gr/feed/</wfw:commentRss>
		</item>
		<item>
		<title>More reasons to attend BarCamp</title>
		<link>http://www.jasonporritt.com/more-reasons-to-attend-barcamp/</link>
		<comments>http://www.jasonporritt.com/more-reasons-to-attend-barcamp/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 16:10:14 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
		
		<category><![CDATA[BarCamp]]></category>

		<category><![CDATA[Software Development]]></category>

		<category><![CDATA[barcampgrandrapids3]]></category>

		<guid isPermaLink="false">http://www.jasonporritt.com/more-reasons-to-attend-barcamp/</guid>
		<description><![CDATA[If you&#8217;re still not convinced, here are a few more reasons why I think you should attend BarCamp Grand Rapids.
Gain a new perspective
Different people approach problems in design and technology from different angles.  That&#8217;s a great part of being human &#8212; we&#8217;re all different.  BarCamp provides an opportunity to share your approach and [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re still not convinced, here are a few more reasons why I think <strong>you</strong> should attend <a href="http://barcampgr.org">BarCamp Grand Rapids</a>.</p>
<h3>Gain a new perspective</h3>
<p>Different people approach problems in design and technology from different angles.  That&#8217;s a great part of being human &#8212; we&#8217;re all different.  BarCamp provides an opportunity to share your approach and listen to the thoughts of other people.  So pay attention.  Paradigm shifts included free of charge.</p>
<h3>Be a part of the community</h3>
<p>Design and technology play a major role in companies across West Michigan, but how often do you really interact with these people outside your own company?  We often share goals, challenges, and interests, and we all have a lot to share and a lot to learn.  In short, forming community makes us all better at what we do.  This is one of the times it&#8217;s <span style="font-style: italic">good</span> to be &#8220;one of <em>those</em> people.&#8221;</p>
<h3>Get free stuff</h3>
<p>There will be food, for sure, but rumor has it there may be other extras for the participants.  Who doesn&#8217;t like free?</p>
<h3>Practice, practice, practice communication</h3>
<p>The best way to perfect something is to do it over and over again.  And, truth is, very few of us have perfected the art of communicating with our fellow humans (especially some of us tech geeks&#8230;).  So, come out and give a talk &#8212; it doesn&#8217;t have to be long. Share something you&#8217;ve been working on, or something you&#8217;ve observed about design and human behavior.  We appreciate all contributions.</p>
<h3>Meet people who appreciate your humor</h3>
<p>It&#8217;s not everyone who understands how to turn a &lt;div&gt; tag into the perfect sippy cup for a toddler: </p>
<pre><code>div {
    overflow: hidden; /* Keep messes in check */
    padding: 1em; /* Don't hurt anyone */
    vertical-align: baseline; /* Keep it on the table */
}</code></pre>
<p>Hope to see you there!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonporritt.com/more-reasons-to-attend-barcamp/feed/</wfw:commentRss>
		</item>
		<item>
		<title>BarCamp Grand Rapids 3</title>
		<link>http://www.jasonporritt.com/barcamp-grand-rapids-3/</link>
		<comments>http://www.jasonporritt.com/barcamp-grand-rapids-3/#comments</comments>
		<pubDate>Wed, 09 Jul 2008 02:44:59 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
		
		<category><![CDATA[BarCamp]]></category>

		<category><![CDATA[Software Development]]></category>

		<category><![CDATA[barcampgrandrapids3]]></category>

		<guid isPermaLink="false">http://www.jasonporritt.com/barcamp-grand-rapids-3/</guid>
		<description><![CDATA[It&#8217;s that time of year again.  No, it&#8217;s not time to take the popup trailer out to the Lake Michigan beaches or brave the mosquitos for a weekend backpacking trip along the Manistee River Trail.  It&#8217;s time to get ready for a different type of camp: BarCamp.
BarCamp Grand Rapids
BarCamp Grand Rapids is returning [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s that time of year again.  No, it&#8217;s not time to take the popup trailer out to the Lake Michigan beaches or brave the mosquitos for a weekend backpacking trip along the Manistee River Trail.  It&#8217;s time to get ready for a different type of camp: BarCamp.</p>
<p><a href="http://barcampgr.org/wiki/BarCampGrandRapids3">BarCamp Grand Rapids</a></p>
<p><a href="http://barcampgr.org/wiki/BarCampGrandRapids3"></a>BarCamp Grand Rapids is returning to Calvin College on August 15 and 16, 2008 for another two days of informative, informal, inverted conference.  If past years are any indication, there will be plenty of food, tons of geeked-out conversation, and piles of new information that no one should miss.  So, put it on your calendar, and we&#8217;ll see you there!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonporritt.com/barcamp-grand-rapids-3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Check Your Facts!</title>
		<link>http://www.jasonporritt.com/check-your-facts/</link>
		<comments>http://www.jasonporritt.com/check-your-facts/#comments</comments>
		<pubDate>Wed, 02 Jan 2008 17:09:58 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
		
		<category><![CDATA[Miscellany]]></category>

		<guid isPermaLink="false">http://www.jasonporritt.com/check-your-facts/</guid>
		<description><![CDATA[Disclaimer: This is a bit of a rant.  Not something I do often, but I feel this particular point is relevant and frustrating to a number of people besides myself.
I am getting tired of reading blatently wrong, un-researched, and yet boldly-declared information posted on the web.  Not postings on puny personal blogs (like [...]]]></description>
			<content:encoded><![CDATA[<p>Disclaimer: This is a bit of a rant.  Not something I do often, but I feel this particular point is relevant and frustrating to a number of people besides myself.</p>
<p>I am getting tired of reading blatently wrong, un-researched, and yet boldly-declared information posted on the web.  Not postings on puny personal blogs (like mine), those I can forgive.  Instead, I&#8217;ve been seeing news items and statements on supposedly <em>trustworthy</em> sites that just don&#8217;t get the facts straight.  This has been particularly and most recently true with the slew of press releases covering the release of Perl 5.10.</p>
<p>For example, take <a href="http://www.linuxdevices.com/news/NS2253862050.html">this article on LinuxDevices.com</a>.  Like several other press releases, they claim:</p>
<blockquote><p>Just in time for Christmas, there&#8217;s a new version of perl, the first in over five years.</p></blockquote>
<p>Perl 5.10 is not the first release in 5 years &#8212; it is the first <em>feature release</em> in that time.  That is a big difference.  There have been many stable releases since 5.8.0 that fixed bugs and improved Perl&#8217;s performance and stability, which paints an entirely different picture from what the article actually says.  Their news item makes it sound as though Perl is an unsupported and inactive language, which is entirely untrue.</p>
<p>Also, the paragraphs comparing Perl to Python, Ruby, and PHP is laughable &#8212; and I&#8217;ve seen this exact text on several sites (eweek.com, for example).  Yes, there are a lot more people using those languages today, and they are growing, but <a href="http://www.presicient.com/langjobs.html">Perl still holds a formidable share of the dynamic language job market</a> and <a href="http://www.indeed.com/jobtrends?q=perl%2Cpython%2Cphp%2Cruby&amp;l=">that doesn&#8217;t appear to be changing rapidly</a>.  Don&#8217;t claim that Perl is a dying language unless you can show evidence.</p>
<p>Please check your facts before you post!  It&#8217;s better to be correct than first.</p>
<p>(And FYI: Ruby is not a language &#8220;specially-made for use on the Web&#8221;.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonporritt.com/check-your-facts/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
