<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><!-- generator="wordpress/2.2" --><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Software Creation Mystery</title>
	<link>http://softwarecreation.org</link>
	<description>What are the forces behind software development?</description>
	<pubDate>Thu, 08 Oct 2009 03:03:31 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/SoftwareCreation" type="application/rss+xml" /><feedburner:emailServiceId>SoftwareCreation</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Reliable Software Development Process: The Toyota Way</title>
		<link>http://feedproxy.google.com/~r/SoftwareCreation/~3/idM02Ru2RTY/</link>
		<comments>http://softwarecreation.org/2009/reliable-software-development-process-the-toyota-way/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 03:06:33 +0000</pubDate>
		<dc:creator>Andriy Solovey</dc:creator>
		
		<category><![CDATA[Teams]]></category>

		<category><![CDATA[Process]]></category>

		<category><![CDATA[Productivity]]></category>

		<category><![CDATA[Management]]></category>

		<category><![CDATA[Concepts]]></category>

		<guid isPermaLink="false">http://softwarecreation.org/2009/reliable-software-development-process-the-toyota-way/</guid>
		<description>A software project is a creative, unique and therefore unpredictable endeavor. We are not building the same thing over and over again, but solve new problems, address increasing demands and use perpetually changing technologies. Under these conditions, people - smart, creative and productive - are the most important factor of success . Software development process [...]</description>
			<content:encoded><![CDATA[<p><img src="http://softwarecreation.org/images/2009/toyota-factory.jpg" /></p>
<p>A software project is a creative, unique and therefore unpredictable endeavor. We are not building the same thing over and over again, but solve new problems, address increasing demands and use perpetually changing technologies. Under these conditions, people - smart, creative and productive - are the most important factor of success . Software development process can only support and compliment these people, but it cannot guarantee success alone and make the factor of people negligible.</p>
<p><strong>But</strong>, business wants predictable, reliable and successful results. I bet they don&#8217;t want to be at mercy how cards are shuffled in their talented development team. The answer is in establishing a process that increases chances of success and aligned with present nature of software development (unpredictable, empirical and heavily dependent on people).</p>
<p>The Toyota Way can be a great example that worth to learn. Toyota evolved from a small looming equipment shop to the largest car manufacturing company. The main foundation of successful growth is the system of few core principles that enables <strong>best quality, high productivity, lowest cost, shortest time and long-term success</strong>.<br />
 <a href="http://softwarecreation.org/2009/reliable-software-development-process-the-toyota-way/#more-86" class="more-link">(more&#8230;)</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=idM02Ru2RTY:RQ2M7m7QxWY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=idM02Ru2RTY:RQ2M7m7QxWY:cGdyc7Q-1BI"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?d=cGdyc7Q-1BI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=idM02Ru2RTY:RQ2M7m7QxWY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?i=idM02Ru2RTY:RQ2M7m7QxWY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=idM02Ru2RTY:RQ2M7m7QxWY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?i=idM02Ru2RTY:RQ2M7m7QxWY:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=idM02Ru2RTY:RQ2M7m7QxWY:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?i=idM02Ru2RTY:RQ2M7m7QxWY:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SoftwareCreation/~4/idM02Ru2RTY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://softwarecreation.org/2009/reliable-software-development-process-the-toyota-way/feed/</wfw:commentRss>
		<feedburner:origLink>http://softwarecreation.org/2009/reliable-software-development-process-the-toyota-way/</feedburner:origLink></item>
		<item>
		<title>What do programmers really do?</title>
		<link>http://feedproxy.google.com/~r/SoftwareCreation/~3/v08yuYcf16Y/</link>
		<comments>http://softwarecreation.org/2009/what-do-programmers-really-do/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 00:21:28 +0000</pubDate>
		<dc:creator>Andriy Solovey</dc:creator>
		
		<category><![CDATA[Job]]></category>

		<category><![CDATA[Concepts]]></category>

		<category><![CDATA[People]]></category>

		<guid isPermaLink="false">http://softwarecreation.org/2009/what-do-programmers-really-do/</guid>
		<description>Computers are useless. They can only give you answers. - Picasso
Many people (including my mother-in-law) think that computers are becoming so smart that programmers will be no longer needed in the near future. Other people think that programmers are geniuses who constantly solve sophisticated math puzzles in front of their monitors. Even many programmers don&amp;#8217;t [...]</description>
			<content:encoded><![CDATA[<p><em>Computers are useless. They can only give you answers.</em> - Picasso</p>
<p>Many people (including my mother-in-law) think that computers are becoming so smart that programmers will be no longer needed in the near future. Other people think that programmers are geniuses who constantly solve sophisticated math puzzles in front of their monitors. Even many programmers don&#8217;t have clear idea what they do.</p>
<p>In this post I want to provide some explanation to uninformed people what programmers really do:</p>
<blockquote><p><strong>Programmers are translators of human ideas into the language of computers.</strong></p></blockquote>
<p>They are a link between two worlds - human and computers. Do you think it is easy to maintain this link?</p>
<p><img src="http://softwarecreation.org/images/2009/translator.jpg" height="500" width="500" /></p>
<p> <a href="http://softwarecreation.org/2009/what-do-programmers-really-do/#more-85" class="more-link">(more&#8230;)</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=v08yuYcf16Y:g19yDfMcAS8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=v08yuYcf16Y:g19yDfMcAS8:cGdyc7Q-1BI"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?d=cGdyc7Q-1BI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=v08yuYcf16Y:g19yDfMcAS8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?i=v08yuYcf16Y:g19yDfMcAS8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=v08yuYcf16Y:g19yDfMcAS8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?i=v08yuYcf16Y:g19yDfMcAS8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=v08yuYcf16Y:g19yDfMcAS8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?i=v08yuYcf16Y:g19yDfMcAS8:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SoftwareCreation/~4/v08yuYcf16Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://softwarecreation.org/2009/what-do-programmers-really-do/feed/</wfw:commentRss>
		<feedburner:origLink>http://softwarecreation.org/2009/what-do-programmers-really-do/</feedburner:origLink></item>
		<item>
		<title>Three Dimensions of a Software Programmer: How to get things done</title>
		<link>http://feedproxy.google.com/~r/SoftwareCreation/~3/P37_I4kJ-mQ/</link>
		<comments>http://softwarecreation.org/2009/three-dimensions-of-a-software-programmer-how-to-get-things-done/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 04:43:40 +0000</pubDate>
		<dc:creator>Andriy Solovey</dc:creator>
		
		<category><![CDATA[Skills]]></category>

		<category><![CDATA[Job]]></category>

		<category><![CDATA[Productivity]]></category>

		<category><![CDATA[Management]]></category>

		<category><![CDATA[People]]></category>

		<guid isPermaLink="false">http://softwarecreation.org/2009/three-dimensions-of-a-software-programmer-how-to-get-things-done/</guid>
		<description>What you are as a person is far more important that what you are as a basketball player. - John Wooden
People are amazing, surprising and interesting. They change reality with power of thought and make things happen. What is most exciting - all people are completely different in their attitudes and [...]</description>
			<content:encoded><![CDATA[<p>    <em>What you are as a person is far more important that what you are as a basketball player.</em> - John Wooden</p>
<p>People are amazing, surprising and interesting. They change reality with power of thought and make things happen. What is most exciting - all people are completely different in their attitudes and behavior. But this comes with price - it is difficult to understand people and even more difficult to find the best way to deal with them.<br />
Many people, who see programmers as extensions of their computer systems, will be surprised to discover that programmers are amazing individuals too. Programmers exhibit similar to other people behavior, they have different personalities and need individual approach.</p>
<p>I offer in this post a simple theory about <em>Three Dimensions of a Software Programmer</em> that could help to put relations with these individuals on some rational basis.</p>
<p id="fw_e" style="text-align: left"><img src="http://www.softwarecreation.org/images/2009/3DArchetypes.jpg" style="width: 500px; height: 500px" width="500" height="500" /></p>
<h3>Axioms</h3>
<p>There are two basic axioms in foundation of the theory</p>
<ol>
<li><strong>Constancy </strong>- some programmers consistently outperform others under same conditions.</li>
<li><strong>Variability </strong>- performance of a programmer varies under different conditions.</li>
</ol>
<p> <a href="http://softwarecreation.org/2009/three-dimensions-of-a-software-programmer-how-to-get-things-done/#more-84" class="more-link">(more&#8230;)</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=P37_I4kJ-mQ:TT8IryWvL4A:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=P37_I4kJ-mQ:TT8IryWvL4A:cGdyc7Q-1BI"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?d=cGdyc7Q-1BI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=P37_I4kJ-mQ:TT8IryWvL4A:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?i=P37_I4kJ-mQ:TT8IryWvL4A:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=P37_I4kJ-mQ:TT8IryWvL4A:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?i=P37_I4kJ-mQ:TT8IryWvL4A:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=P37_I4kJ-mQ:TT8IryWvL4A:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?i=P37_I4kJ-mQ:TT8IryWvL4A:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SoftwareCreation/~4/P37_I4kJ-mQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://softwarecreation.org/2009/three-dimensions-of-a-software-programmer-how-to-get-things-done/feed/</wfw:commentRss>
		<feedburner:origLink>http://softwarecreation.org/2009/three-dimensions-of-a-software-programmer-how-to-get-things-done/</feedburner:origLink></item>
		<item>
		<title>How to become an Expert. Embrace Reality.</title>
		<link>http://feedproxy.google.com/~r/SoftwareCreation/~3/23A6j8oTiOA/</link>
		<comments>http://softwarecreation.org/2009/how-to-become-an-expert-embrace-reality/#comments</comments>
		<pubDate>Tue, 12 May 2009 04:19:01 +0000</pubDate>
		<dc:creator>Andriy Solovey</dc:creator>
		
		<category><![CDATA[Practices]]></category>

		<category><![CDATA[Skills]]></category>

		<category><![CDATA[Concepts]]></category>

		<category><![CDATA[People]]></category>

		<guid isPermaLink="false">http://softwarecreation.org/2009/how-to-become-an-expert-embrace-reality/</guid>
		<description>Reality is merely an illusion, albeit a very persistent one - Albert Einstein
An expert have much better models of reality and methods to build them than an ordinary specialist. The expert, armed with these models, can quickly put pieces of a problem puzzle together, find explanations and solve the problem.

Models can be related to anything [...]</description>
			<content:encoded><![CDATA[<p><em>Reality is merely an illusion, albeit a very persistent one</em> - Albert Einstein</p>
<p>An expert have much better models of reality and methods to build them than an ordinary specialist. The expert, armed with these models, can quickly put pieces of a problem puzzle together, find explanations and solve the problem.</p>
<p id="ejcw" style="text-align: left"><img src="http://softwarecreation.org/images/2009/expert-models.jpg" width="600" height="600" /></p>
<p>Models can be related to anything - software systems, business domain or your personal relationships.  <a href="http://softwarecreation.org/2009/how-to-become-an-expert-embrace-reality/#more-83" class="more-link">(more&#8230;)</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=23A6j8oTiOA:cuAPvgTtMho:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=23A6j8oTiOA:cuAPvgTtMho:cGdyc7Q-1BI"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?d=cGdyc7Q-1BI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=23A6j8oTiOA:cuAPvgTtMho:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?i=23A6j8oTiOA:cuAPvgTtMho:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=23A6j8oTiOA:cuAPvgTtMho:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?i=23A6j8oTiOA:cuAPvgTtMho:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=23A6j8oTiOA:cuAPvgTtMho:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?i=23A6j8oTiOA:cuAPvgTtMho:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SoftwareCreation/~4/23A6j8oTiOA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://softwarecreation.org/2009/how-to-become-an-expert-embrace-reality/feed/</wfw:commentRss>
		<feedburner:origLink>http://softwarecreation.org/2009/how-to-become-an-expert-embrace-reality/</feedburner:origLink></item>
		<item>
		<title>How to Become an Expert. Top 7 Qualities</title>
		<link>http://feedproxy.google.com/~r/SoftwareCreation/~3/hCcERxAaZaI/</link>
		<comments>http://softwarecreation.org/2009/how-to-become-an-expert-top-7-qualities/#comments</comments>
		<pubDate>Tue, 07 Apr 2009 04:43:23 +0000</pubDate>
		<dc:creator>Andriy Solovey</dc:creator>
		
		<category><![CDATA[Skills]]></category>

		<category><![CDATA[Productivity]]></category>

		<category><![CDATA[People]]></category>

		<guid isPermaLink="false">http://softwarecreation.org/2009/how-to-become-an-expert-top-7-qualities/</guid>
		<description>Experts do not need rules to make decisions. They have qualities that allow them to consistently make good decisions and show high level of performance under different circumstances without any rules. This post discusses these core qualities that turn a novice into an expert.

Definitions
rule: prescribed guide for conduct or action
intuition: instinctive knowing (without the use [...]</description>
			<content:encoded><![CDATA[<p>Experts do not need rules to make decisions. They have qualities that allow them to consistently make good decisions and show high level of performance under different circumstances without any rules. This post discusses these core qualities that turn a novice into an expert.</p>
<p><img src="http://softwarecreation.org/images/2009/novice-expert.jpg" /></p>
<p><strong>Definitions</strong><br />
<strong>rule:</strong> prescribed guide for conduct or action<br />
<strong>intuition:</strong> instinctive knowing (without the use of rational processes)<br />
<strong><a href="http://en.wikipedia.org/wiki/Tacit_knowledge" title="tacit knowledge" id="v:.:">tacit knowledge</a>:</strong> automatic, unexpressed knowledge that provides context for people, places, ideas, and experiences. Tacit knowledge is not easily shared. As Polanyi said: &#8220;We know more than we can tell.&#8221;<br />
<strong>context</strong>: the set of circumstances or facts that surround a particular event, situation, etc.</p>
<h3>Problems with rules</h3>
<p>Most rules didn&#8217;t come from heaven. They come from ordinary people. They are product of <strong>practice, theories, traditions and fear</strong>.<br />
Problems:</p>
<ul>
<li><strong>context-free</strong> - rules reflect standard situations without considering your specific circumstances</li>
<li><strong>limited verification</strong> - most rules are empirical and do not pass vigorous analysis, strict prove and experiments</li>
<li><strong>time sensitive</strong> - many rules become outdated quickly in dynamic professions, industries and societies</li>
<li><strong>overcautious</strong> - fear fuels many rules and seeks to protect from the worst scenario, often imaginable</li>
<li><strong>low skills denominator</strong> - rules tuned to match capabilities of the majority without accounting for individual strengths and weaknesses</li>
<li><strong>misinterpretation</strong> - tacit knowledge of experts, which forms base for many rules, is <a href="http://en.wikipedia.org/wiki/Tacit_knowledge" title="difficult to transfer" id="ntk5">difficult to transfer</a> in correct and understandable form</li>
</ul>
<p> <a href="http://softwarecreation.org/2009/how-to-become-an-expert-top-7-qualities/#more-82" class="more-link">(more&#8230;)</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=hCcERxAaZaI:dD9cHdHJ0do:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=hCcERxAaZaI:dD9cHdHJ0do:cGdyc7Q-1BI"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?d=cGdyc7Q-1BI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=hCcERxAaZaI:dD9cHdHJ0do:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?i=hCcERxAaZaI:dD9cHdHJ0do:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=hCcERxAaZaI:dD9cHdHJ0do:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?i=hCcERxAaZaI:dD9cHdHJ0do:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=hCcERxAaZaI:dD9cHdHJ0do:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?i=hCcERxAaZaI:dD9cHdHJ0do:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SoftwareCreation/~4/hCcERxAaZaI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://softwarecreation.org/2009/how-to-become-an-expert-top-7-qualities/feed/</wfw:commentRss>
		<feedburner:origLink>http://softwarecreation.org/2009/how-to-become-an-expert-top-7-qualities/</feedburner:origLink></item>
		<item>
		<title>How to Become an Expert. The Effective Way.</title>
		<link>http://feedproxy.google.com/~r/SoftwareCreation/~3/HrS9XWnQjDk/</link>
		<comments>http://softwarecreation.org/2009/how-to-become-an-expert-the-effective-way/#comments</comments>
		<pubDate>Sun, 15 Mar 2009 22:09:28 +0000</pubDate>
		<dc:creator>Andriy Solovey</dc:creator>
		
		<category><![CDATA[Practices]]></category>

		<category><![CDATA[Skills]]></category>

		<category><![CDATA[Job]]></category>

		<category><![CDATA[Productivity]]></category>

		<guid isPermaLink="false">http://softwarecreation.org/2009/how-to-become-an-expert-the-effective-way/</guid>
		<description>experts are made, not born - Scientific American
  Disclaimer: This post is devoted to a person who wants to become an expert - the top player in a specific field as programming, soccer or chess. This post will be not interesting for people who are satisfied with their current performance and not interested to [...]</description>
			<content:encoded><![CDATA[<p><em>experts are made, not born - </em><a href="http://www.sciam.com/article.cfm?id=the-expert-mind" id="vu87" title="Scientific American">Scientific American</a></p>
<p><small>  <strong>Disclaimer:</strong> This post is devoted to a person who wants to become an expert - the top player in a specific field as programming, soccer or chess. This post will be not interesting for people who are satisfied with their current performance and not interested to be the best. </small></p>
<p><img src="http://softwarecreation.org/images/2009/kasparov.jpg" /></p>
<p>If you want to become an expert, it is not enough to follow your work assignments or occasionally play with interesting stuff at home. You have to push yourself hard in specially designed way.</p>
<p><strong>@Work</strong><br />
Your paid work tasks and projects are not designed to make you an expert. Your company expects results from your work: reliable, with minimal mistakes and focused on the company main goal - make money. Your employer could provide minimal training to help you with job requirements. However, your growth will be constrained by company needs, timelines, work assignments and acceptable methods. We cannot blame our organizations - this is part of the deal - they pay for your work and expect specific results. But&#8230; is this the best way for you to become an expert, acquire new skills and gain knowledge? To become an expert, you have to make many mistakes, learn from them, experiment with alternatives and work hard on your weaknesses. How many organizations do allow this risky, unproductive and unreliable way of working?</p>
<p><strong>@Home</strong><br />
Your play at home with interesting stuff has problems too. To satisfy your programming instincts and curiosity, you will probably select what you enjoy to do and eager to try. You&#8217;ll immense in this activity and find great satisfaction from doing it. But&#8230;  is this the best way to become an expert by doing only what you like? Becoming an expert requires hard, sometimes unpleasant work, specifically designed to improve your performance and push you over comfort zone.  <a href="http://softwarecreation.org/2009/how-to-become-an-expert-the-effective-way/#more-81" class="more-link">(more&#8230;)</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=HrS9XWnQjDk:SLDCUaFA5sA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=HrS9XWnQjDk:SLDCUaFA5sA:cGdyc7Q-1BI"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?d=cGdyc7Q-1BI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=HrS9XWnQjDk:SLDCUaFA5sA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?i=HrS9XWnQjDk:SLDCUaFA5sA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=HrS9XWnQjDk:SLDCUaFA5sA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?i=HrS9XWnQjDk:SLDCUaFA5sA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=HrS9XWnQjDk:SLDCUaFA5sA:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?i=HrS9XWnQjDk:SLDCUaFA5sA:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SoftwareCreation/~4/HrS9XWnQjDk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://softwarecreation.org/2009/how-to-become-an-expert-the-effective-way/feed/</wfw:commentRss>
		<feedburner:origLink>http://softwarecreation.org/2009/how-to-become-an-expert-the-effective-way/</feedburner:origLink></item>
		<item>
		<title>The Elements of Pragmatic Programming Style. Composition.</title>
		<link>http://feedproxy.google.com/~r/SoftwareCreation/~3/QIEHKXjBRMM/</link>
		<comments>http://softwarecreation.org/2009/the-elements-of-pragmatic-programming-style-composition/#comments</comments>
		<pubDate>Mon, 19 Jan 2009 02:25:56 +0000</pubDate>
		<dc:creator>Andriy Solovey</dc:creator>
		
		<category><![CDATA[Practices]]></category>

		<category><![CDATA[Process]]></category>

		<category><![CDATA[Skills]]></category>

		<category><![CDATA[Design]]></category>

		<category><![CDATA[Productivity]]></category>

		<category><![CDATA[Concepts]]></category>

		<guid isPermaLink="false">http://softwarecreation.org/2009/the-elements-of-pragmatic-programming-style-composition/</guid>
		<description>A really great talent finds its happiness in execution. - Johann Wolfgang von Goethe
 
source
Qualities of well composed code:

  Quick discovery and understanding of programming logic and components
  Clear organization (for human brains)
  Ease of reuse, modification and evolution
  Close connection between customer ideas and system implementation</description>
			<content:encoded><![CDATA[<p id="ua_7" style="padding: 1em 0pt; text-align: left"><em><span class="huge">A really great talent finds its happiness in execution.</span></em> - <span class="bodybold">Johann Wolfgang von Goethe</span></p>
<p id="ua_7" style="padding: 1em 0pt; text-align: left"> <img src="http://softwarecreation.org/images/2009/architect.png" /></p>
<p><a href="http://upload.wikimedia.org/wikipedia/commons/thumb/f/fb/Architect.png/485px-Architect.png" class="photocredit">source</a></p>
<p>Qualities of well composed code:</p>
<ol>
<li>  Quick discovery and understanding of programming logic and components</li>
<li>  Clear organization (for human brains)</li>
<li>  Ease of reuse, modification and evolution</li>
<li>  Close connection between customer ideas and system implementation</li>
</ol>
<p> <a href="http://softwarecreation.org/2009/the-elements-of-pragmatic-programming-style-composition/#more-80" class="more-link">(more&#8230;)</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=QIEHKXjBRMM:2if0cBt5BN8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=QIEHKXjBRMM:2if0cBt5BN8:cGdyc7Q-1BI"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?d=cGdyc7Q-1BI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=QIEHKXjBRMM:2if0cBt5BN8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?i=QIEHKXjBRMM:2if0cBt5BN8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=QIEHKXjBRMM:2if0cBt5BN8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?i=QIEHKXjBRMM:2if0cBt5BN8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=QIEHKXjBRMM:2if0cBt5BN8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?i=QIEHKXjBRMM:2if0cBt5BN8:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SoftwareCreation/~4/QIEHKXjBRMM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://softwarecreation.org/2009/the-elements-of-pragmatic-programming-style-composition/feed/</wfw:commentRss>
		<feedburner:origLink>http://softwarecreation.org/2009/the-elements-of-pragmatic-programming-style-composition/</feedburner:origLink></item>
		<item>
		<title>A Few Words In Defense of Copy And Paste Programming</title>
		<link>http://feedproxy.google.com/~r/SoftwareCreation/~3/PlXxsmINabM/</link>
		<comments>http://softwarecreation.org/2008/a-few-words-in-defense-of-copy-and-paste-programming/#comments</comments>
		<pubDate>Tue, 23 Dec 2008 04:48:20 +0000</pubDate>
		<dc:creator>Andriy Solovey</dc:creator>
		
		<category><![CDATA[Practices]]></category>

		<guid isPermaLink="false">http://softwarecreation.org/2008/a-few-words-in-defense-of-copy-and-paste-programming/</guid>
		<description>I was always against Copy and Paste programming. I condemned people who use this practice as discrediting the honorable profession of The Programmer. This evil activity inflates application code without adding anything useful. This shameful practice causes various complications - more code, more things to remember, needless complexity, and difficulty to manage and synchronize related [...]</description>
			<content:encoded><![CDATA[<p><img src="http://softwarecreation.org/images/2007/i-robot.jpg" /></p>
<p>I was always against <a href="http://en.wikipedia.org/wiki/Copy_and_paste_programming" title="Copy and Paste programming" id="ozzc">Copy and Paste programming</a>. I condemned people who use this practice as discrediting the honorable profession of The Programmer. This evil activity inflates application code without adding anything useful. This shameful practice causes various complications - more code, more things to remember, needless complexity, and difficulty to manage and synchronize related changes in the future. But at some point, I admitted to myself - things are not so black and white. I do <em>Copy and Paste</em> in my code, it is difficult to resist this seductive activity.</p>
<p>The only indulgence is that I&#8217;m very keen <strong>to eliminate bad effects of Copy and Paste before finishing my task</strong>.</p>
<p>I use two main approaches for writing new code. The first is <strong>Top-Down</strong> - I have clear design ideas how I should program and I know what classes and components to use. I go ahead and write code from scratch using my memory and power of intellect :). There are few problems with this approach. Unfortunately, my memory is not so great and knowledge is not so vast. Regularly I have new tasks that I don&#8217;t know or don&#8217;t remember how to program. Sometimes I don&#8217;t get immediately what other people programmed without debugging. And often I want to save time and avoid re-implementing the same idea again. And that is why I also use the second approach - <strong>Bottom-Up</strong>. I copy and paste code first. And after I figure out how this code works, how to use, fit and improve it. <a href="http://softwarecreation.org/2008/a-few-words-in-defense-of-copy-and-paste-programming/#more-79" class="more-link">(more&#8230;)</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=PlXxsmINabM:R1FGpx4lsRE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=PlXxsmINabM:R1FGpx4lsRE:cGdyc7Q-1BI"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?d=cGdyc7Q-1BI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=PlXxsmINabM:R1FGpx4lsRE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?i=PlXxsmINabM:R1FGpx4lsRE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=PlXxsmINabM:R1FGpx4lsRE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?i=PlXxsmINabM:R1FGpx4lsRE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=PlXxsmINabM:R1FGpx4lsRE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?i=PlXxsmINabM:R1FGpx4lsRE:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SoftwareCreation/~4/PlXxsmINabM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://softwarecreation.org/2008/a-few-words-in-defense-of-copy-and-paste-programming/feed/</wfw:commentRss>
		<feedburner:origLink>http://softwarecreation.org/2008/a-few-words-in-defense-of-copy-and-paste-programming/</feedburner:origLink></item>
		<item>
		<title>Pair Programming: To Do or Not To Do</title>
		<link>http://feedproxy.google.com/~r/SoftwareCreation/~3/waLcnaCuc4A/</link>
		<comments>http://softwarecreation.org/2008/pair-programming-to-do-or-not-to-do/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 05:31:52 +0000</pubDate>
		<dc:creator>Andriy Solovey</dc:creator>
		
		<category><![CDATA[Teams]]></category>

		<category><![CDATA[Practices]]></category>

		<category><![CDATA[Skills]]></category>

		<category><![CDATA[Productivity]]></category>

		<guid isPermaLink="false">http://softwarecreation.org/2008/pair-programming-to-do-or-not-to-do/</guid>
		<description>Pair Programming is a great way to build software systems. When Pair Programming works, it has significant benefits:

better ideas - continuous brainstorming, larger knowledge pool, less gaps in understanding and more brain power to solve design problems;
better quality - fewer bugs, instant validation of ideas, consistent approach and stricter adherence to team conventions;
better knowledge - [...]</description>
			<content:encoded><![CDATA[<p><img src="http://softwarecreation.org/images/2008/Cirque_du_Soleil.jpg" /></p>
<p>Pair Programming is a great way to build software systems. When Pair Programming works, it has significant benefits:</p>
<ul>
<li><strong>better ideas</strong> - continuous brainstorming, larger knowledge pool, less gaps in understanding and more brain power to solve design problems;</li>
<li><strong>better quality</strong> - fewer bugs, instant validation of ideas, consistent approach and stricter adherence to team conventions;</li>
<li><strong>better knowledge</strong> - experience and knowledge sharing, deeper understanding of <em>why</em>, <em>how </em>and<em> what </em>was done;</li>
<li><strong>increased productivity</strong> - better focus and higher intensity, pushing each other and motivating to achieve best results, less procrastination and wasting of time;</li>
<li><strong>more enjoyment</strong> - most people like to work in groups and solve together interesting problems.</li>
</ul>
<p>Extreme Programming leaders <a href="http://www.xprogramming.com/Practices/PracPairs.html" title="insist" id="kj93">insist</a> that all significant development should be done in pairs. But can we say that Pair Programming is the best method in all situations?</p>
<p> <a href="http://softwarecreation.org/2008/pair-programming-to-do-or-not-to-do/#more-78" class="more-link">(more&#8230;)</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=waLcnaCuc4A:q2al1JEJVNg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=waLcnaCuc4A:q2al1JEJVNg:cGdyc7Q-1BI"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?d=cGdyc7Q-1BI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=waLcnaCuc4A:q2al1JEJVNg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?i=waLcnaCuc4A:q2al1JEJVNg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=waLcnaCuc4A:q2al1JEJVNg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?i=waLcnaCuc4A:q2al1JEJVNg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=waLcnaCuc4A:q2al1JEJVNg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?i=waLcnaCuc4A:q2al1JEJVNg:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SoftwareCreation/~4/waLcnaCuc4A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://softwarecreation.org/2008/pair-programming-to-do-or-not-to-do/feed/</wfw:commentRss>
		<feedburner:origLink>http://softwarecreation.org/2008/pair-programming-to-do-or-not-to-do/</feedburner:origLink></item>
		<item>
		<title>The Elements of Pragmatic Programming Style. Approach.</title>
		<link>http://feedproxy.google.com/~r/SoftwareCreation/~3/wvqsAhSrB_I/</link>
		<comments>http://softwarecreation.org/2008/the-elements-of-pragmatic-programming-style-approach/#comments</comments>
		<pubDate>Wed, 03 Dec 2008 04:01:38 +0000</pubDate>
		<dc:creator>Andriy Solovey</dc:creator>
		
		<category><![CDATA[Practices]]></category>

		<category><![CDATA[Skills]]></category>

		<category><![CDATA[Design]]></category>

		<category><![CDATA[Productivity]]></category>

		<category><![CDATA[Concepts]]></category>

		<guid isPermaLink="false">http://softwarecreation.org/2008/the-elements-of-pragmatic-programming-style-approach/</guid>
		<description>Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away. - Antoine De Saint Exupery
The approach to programming is concerned with finding the best ways to translate programmer&amp;#8217;s intention into the good system design and code.

The programming is communication. The programmer continuously add, change and [...]</description>
			<content:encoded><![CDATA[<p><em>Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.</em> - Antoine De Saint Exupery</p>
<p>The approach to programming is concerned with finding the best ways to translate programmer&#8217;s <a href="http://softwarecreation.org/2008/the-elements-of-pragmatic-programming-style-intention/" title="intention" id="pd51">intention</a> into the good system design and code.</p>
<p><img src="http://softwarecreation.org/images/2008/hemingway.jpg" /></p>
<p>The programming is communication. The programmer continuously add, change and refine ideas in the code. Source code has two important goals: <strong>tell a computer what to do </strong>and<strong> tell people what the computer should do</strong>. The program code is the only true medium for storing and communicating ideas about the software system behavior. Quality of the ideas expression in the code directly affects overall quality of the system.</p>
<p>So, what are characteristics of the good code?</p>
<ol>
<li><strong>clear </strong>- easier to work with ideas;</li>
<li><strong>minimal </strong>- less effort to understand and change ideas;</li>
<li><strong>testable </strong>- easier to validate ideas.</li>
</ol>
<p>These are 6 top reasons for bad design and code:</p>
<ol>
<li>lack of expertise</li>
<li>unrestrained technical curiosity and creativity</li>
<li>missing big picture: system purpose and customer goals</li>
<li>blindly following popular methods and over-using technology</li>
<li>sloppiness; lack of attention to details</li>
<li>over-complicating design to have more work or increase job security</li>
</ol>
<p>The programmer can write better code (and avoid most of these problems) by improving programming style and approach.</p>
<p> <a href="http://softwarecreation.org/2008/the-elements-of-pragmatic-programming-style-approach/#more-77" class="more-link">(more&#8230;)</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=wvqsAhSrB_I:vlez8TIXnoA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=wvqsAhSrB_I:vlez8TIXnoA:cGdyc7Q-1BI"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?d=cGdyc7Q-1BI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=wvqsAhSrB_I:vlez8TIXnoA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?i=wvqsAhSrB_I:vlez8TIXnoA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=wvqsAhSrB_I:vlez8TIXnoA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?i=wvqsAhSrB_I:vlez8TIXnoA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/SoftwareCreation?a=wvqsAhSrB_I:vlez8TIXnoA:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/SoftwareCreation?i=wvqsAhSrB_I:vlez8TIXnoA:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/SoftwareCreation/~4/wvqsAhSrB_I" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://softwarecreation.org/2008/the-elements-of-pragmatic-programming-style-approach/feed/</wfw:commentRss>
		<feedburner:origLink>http://softwarecreation.org/2008/the-elements-of-pragmatic-programming-style-approach/</feedburner:origLink></item>
	</channel>
</rss>
