<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://interactiveasp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Tools or People? by Bruce Nielson</title><link>http://interactiveasp.net/blogs/softwarepsychology/archive/2009/11/25/tools-or-people.aspx</link><description>What matters more to the outcome of a software project? Good tools or good people? Okay, that one is a no brainer, right? We all know people matter more than tools, right? But try this thought experiment. Take an average group of programmers today and</description><dc:language>en</dc:language><generator>CommunityServer 2008 (Build: 30417.1769)</generator><item><title>Sure It’s the People – But Which People?</title><link>http://interactiveasp.net/blogs/softwarepsychology/archive/2009/11/25/tools-or-people.aspx#4349</link><pubDate>Fri, 11 Dec 2009 19:21:07 GMT</pubDate><guid isPermaLink="false">b80005ef-4071-4968-b08e-765d7d71b33e:4349</guid><dc:creator>Software Psychology</dc:creator><description>&lt;p&gt;So if we admit that software is really about human intelligence, not tools , then we know that human&lt;/p&gt;
&lt;img src="http://interactiveasp.net/aggbug.aspx?PostID=4349" width="1" height="1"&gt;</description></item><item><title>re: Tools or People?</title><link>http://interactiveasp.net/blogs/softwarepsychology/archive/2009/11/25/tools-or-people.aspx#3850</link><pubDate>Sat, 05 Dec 2009 01:07:15 GMT</pubDate><guid isPermaLink="false">b80005ef-4071-4968-b08e-765d7d71b33e:3850</guid><dc:creator>BruceNielson</dc:creator><description>&lt;p&gt;Interesting points, Nate.&lt;/p&gt;
&lt;p&gt;I think you are right that *in a sense* things get more complicated as the tools improve. For example, back in the 1980s, it was possible for a person to know literally everything there was to know about IBM PC computers. And they could do it by reading a single book.&lt;/p&gt;
&lt;p&gt;But nowadays, that&amp;#39;s impossible. In fact, specialization is a must. &lt;/p&gt;
&lt;p&gt;In that sense, I&amp;#39;d say things are more &amp;quot;complicated&amp;quot; now by far than back then.&lt;/p&gt;
&lt;p&gt;But in another sense, I might say that what is really happening is that we are &amp;quot;chunking&amp;quot; at a higher level of thought. We get more &amp;quot;thought units&amp;quot; because we now program at a higher level of abstraction. &lt;/p&gt;
&lt;p&gt;In that sense, we might say things are &amp;quot;less complicated&amp;quot; because it take fewer &amp;quot;thought units&amp;quot; to do equivalent work. In other words, it&amp;#39;s less complex. (Compare a description of a box by taking it&amp;#39;s measurements compare to a molecule by molecule description.)&lt;/p&gt;
&lt;p&gt;But, and this is the important part, because we are at a higher level of thought abstraction, we are capable of more complex thoughts. &lt;/p&gt;
&lt;p&gt;Thus we come full circle and end up with essentially equivalently complicated software to back in the 1950s, except now the information domain is spread over more people (more complex) and requires deeper and deeper levels of knowledge if you don&amp;#39;t want to be constantly fighting Sploski&amp;#39;s &amp;quot;Law of Leaky Abstractions.&amp;quot;&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://interactiveasp.net/aggbug.aspx?PostID=3850" width="1" height="1"&gt;</description></item><item><title>re: Tools or People?</title><link>http://interactiveasp.net/blogs/softwarepsychology/archive/2009/11/25/tools-or-people.aspx#3826</link><pubDate>Fri, 04 Dec 2009 17:55:05 GMT</pubDate><guid isPermaLink="false">b80005ef-4071-4968-b08e-765d7d71b33e:3826</guid><dc:creator>Nathan Zaugg</dc:creator><description>&lt;p&gt;Yes but 1,000 monkeys using Visual Studio for 1,000 years still couldn&amp;#39;t make anything nearly as crappy as Internet Explorer! ;)&lt;/p&gt;
&lt;p&gt;Interesting thought. &amp;nbsp;I&amp;#39;ve been playing around with some low-level device drivers and I&amp;#39;d say that there is perhaps another aspect. &amp;nbsp;When writing a win-forms application I have to be conscious of what thread is manipulating my GUI controls and some synchronization between other threads, data concurrency, etc., but more or less the business rules are expressed in a logical, straight forward way.&lt;/p&gt;
&lt;p&gt;When working on a device driver there are about 100 other things you need to keep in your head and if you forget one -- BAM, CRASH, ZING! So I think that being able to limit the number of things one has to tip-toe around helps a lot! &amp;nbsp;A beginner is going to be kind of like a bull in a china shop!&lt;/p&gt;
&lt;p&gt;Having said that there are ways for the programmer to compensate. &amp;nbsp;When I play the Saxophone I need to have correct application of pressure on the reed, the right amount of air flow coming from the correct muscles, phrasing, articulation, tempo, rhythm, pitch, fingering, etc. &amp;nbsp;It is said that to play properly there are 75 things your brain has to do at once! &amp;nbsp;It&amp;#39;s impossible to bring all of those things into conscious though so you actually have to program your brain to take care of some of those things automatically by practicing a lot! &amp;nbsp;Eventually it will be like typing where you don&amp;#39;t have to think about which keys to press you just think of the letter.&lt;/p&gt;
&lt;p&gt;That applies to programming. &amp;nbsp;When you first get started as a beginner you &amp;quot;sound&amp;quot; horrible! &amp;nbsp;Just like with the music, a beginner is violating rules left and right because they either can&amp;#39;t keep them straight in their head or are blissfully unaware of them. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;Even modern tools require a lot of training. &amp;nbsp;Once you have the tools figured out well enough you should be able to do your job effectively although the tools are becoming more complex but the number of other things you need to keep in your head goes down. &amp;nbsp;I suppose you could argue that one tools is becoming more complex while the other is becoming less complex but I don&amp;#39;t think you could say that is has become easier to program. &amp;nbsp;I can only see the complexity of tools going up while the ability to express &amp;quot;thought units&amp;quot; goes up. &amp;nbsp;Tools help but productivity, but sometimes at the cost of complexity.&lt;/p&gt;
&lt;p&gt;While writing device drivers is tricky because the environment in which I am writing the code is complex, .NET is tricky because there is a large number of tools and patterns that have to be mastered. &amp;nbsp;The interesting thing is that drivers aren&amp;#39;t really going change very much from year to year where a tool like .NET changes so frequently you have to re-learn a lot just to keep up. &lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://interactiveasp.net/aggbug.aspx?PostID=3826" width="1" height="1"&gt;</description></item></channel></rss>