<?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>Professional PHP &#187; programming</title>
	<atom:link href="http://www.procata.com/blog/archives/tag/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.procata.com/blog</link>
	<description>PHP Programming, Web Development, PHP Advocacy and PHP Best Practices.</description>
	<lastBuildDate>Fri, 10 Dec 2010 17:23:30 +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>Software Development Team Diversity</title>
		<link>http://www.procata.com/blog/archives/2007/03/26/software-development-team-diversity/</link>
		<comments>http://www.procata.com/blog/archives/2007/03/26/software-development-team-diversity/#comments</comments>
		<pubDate>Mon, 26 Mar 2007 14:00:24 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Agile Methods]]></category>
		<category><![CDATA[Software Design]]></category>
		<category><![CDATA[agile-php]]></category>
		<category><![CDATA[extreme-programming]]></category>
		<category><![CDATA[hiring]]></category>
		<category><![CDATA[programmer-education]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.procata.com/blog/archives/2007/03/26/software-development-team-diversity/</guid>
		<description><![CDATA[Matt Mullenweg has a post about Hiring Diversity.    A successful software project must fulfill many competing goals and factors and meet a wide variety of challenges.   Diversity is the combined arms of software development.  In my personal experience, the diverse team performs better.  A diverse team allows the [...]]]></description>
			<content:encoded><![CDATA[<p>Matt Mullenweg has a post about <a href="http://photomatt.net/2007/03/24/kapor-vs-zuckerberg/">Hiring Diversity</a>.    A successful software project must fulfill many competing goals and factors and meet a wide variety of challenges.   Diversity is the combined arms of software development.  In my personal experience, the diverse team performs better.  A diverse team allows the most appropriate team member to step up to a challenge.  The interaction between team members with different points of view helps a project balance competing goals.</p>
<h3>Technical Background</h3>
<p>A team needs members with a technical background.  These guys are the ones that ensure everything works.  They can write the hard bits of code, keep everything performing and make sure the code is maintainable.  Without these guys, you will have problems.  On the other hand, sometimes those with a technical background view problems solving as a puzzle, where the solution is the end in itself.<br />
In my experience, team members with a less technical background are more empathic toward the user community.  They view problem solving as a means to a goal.  A customer focus is what makes a project successful.  Software can be successful despite technical problems, but it cannot be successful if doesn&#8217;t meet the customer&#8217;s needs.  Having some non-technical people helps prevent your resident technocrats from building a system that will service 10,000 concurrent users, but doesn&#8217;t meet the needs of the 329 users you have today.<br />
Perhaps at the extreme end of this spectrum is the extreme programming practice of including a customer on the development team.</p>
<h3>Experience</h3>
<p>In <a href="http://www.procata.com/blog/archives/2005/05/10/expert-programmers/">expert versus novice programmers</a>, I make the distinction between skill level and experience.  Age, skill and experience often correlate, but not always.  Your young apprentice programmers are important to have on a team.  They can react faster.  Sometimes not knowing better is a bonus.  They&#8217;ll do things more senior team members don&#8217;t want to do.  They do things they&#8217;re not supposed to do, sometimes for the benefit of the team.<br />
I think people underestimate how long it takes to actually become an expert, as I mention in my previous post.  But, then they also underestimate how similar all software projects are.  They also overestimate the impact of their toolset.  Generally the technologies in the laundry lists that form most job listings are not the critical success factors for that project.<br />
People want a programmer with who can hit the ground running, who is familiar with all of the teams tools, languages and libraries.  But, this is a monoculture as well.  Sometimes you need people who aren&#8217;t from your toolset culture to point out where you have swallowed the hook too deeply or to introduce new tools and techniques from their alternate background.  Sometimes their learning process can teach you something.<br />
While some experience is valued in programmers, age sometimes isn&#8217;t.  However, you need the older, more stable people as well.  They keep the young ones from repeating the mistakes of the past.  They keep the project on an even keel.  It helps to have an older perspective on the team.  I think they help keep attention focused on what matters.  The tension between the older and younger team members helps keep the team on track.</p>
<h3>Traditional Diversity Factors</h3>
<p>I have no opinion on the impact of race.  I have an opinion about women on software teams.  I wish there were more of them.  I have worked on software development teams with diverse nationalities.  I regard that experience as positive.  Different cultures have different tolerances for risk, different respect for authority or tradition.  I think cultural diversity on a team is a good thing.</p>
<h3>Managing Diversity</h3>
<p>Over the years, there have been many methods proposed of matching people with the jobs they are best at.  The solution that works best is to ask them.  People gravitate toward the tasks that require their special skill sets.  Good team management means hiring diversely and allowing that migration.  On a well managed, diverse team, people will self select the jobs they are best at.  As a result, the diverse team is more resilient and I believe potentially more successful.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.procata.com/blog/archives/2007/03/26/software-development-team-diversity/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>The Coding Apprentice</title>
		<link>http://www.procata.com/blog/archives/2006/03/29/the-coding-apprentice/</link>
		<comments>http://www.procata.com/blog/archives/2006/03/29/the-coding-apprentice/#comments</comments>
		<pubDate>Thu, 30 Mar 2006 04:16:53 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Misc]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[steve-jobs]]></category>

		<guid isPermaLink="false">http://www.procata.com/blog/?p=178</guid>
		<description><![CDATA[Ok, maybe I watch too much reality TV, but I&#8217;d like to see a show called &#8220;The Coding Apprentice.&#8221;
Starting with 18 candidates, each week, they are randomly divided into teams of 2, 3, or 4 (perhaps solo on odd weeks).  Then a charity is selected with a need for an application.  Each team [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, maybe I watch too much reality TV, but I&#8217;d like to see a show called &#8220;The Coding Apprentice.&#8221;</p>
<p>Starting with 18 candidates, each week, they are randomly divided into teams of 2, 3, or 4 (perhaps solo on odd weeks).  Then a charity is selected with a need for an application.  Each team is given a week to create a solution.  The charity reviews the solutions and picks the application they like best.  Then, the teams that weren&#8217;t picked go back to &#8220;the conference room&#8221; and make a presentation to Steve Jobs about the merits of their solution and the problems with the other teams solutions.  Then Steve fires one candidate.  At the end, the winner is given funding to start a software company and can hire some of the candidates that weren&#8217;t chosen.</p>
<p>What reality TV show would you like to see &#8220;Geekified?&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.procata.com/blog/archives/2006/03/29/the-coding-apprentice/feed/</wfw:commentRss>
		<slash:comments>43</slash:comments>
		</item>
	</channel>
</rss>

