<?xml version="1.0" encoding="UTF-8"?><rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
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>Comments on: Building High Performance Software Teams</title> <atom:link href="http://hackerboss.com/building-high-performance-software-teams/feed/" rel="self" type="application/rss+xml" /><link>http://hackerboss.com/building-high-performance-software-teams/</link> <description>Developing software and managing development teams.</description> <lastBuildDate>Sun, 08 Aug 2010 20:15:47 +0000</lastBuildDate> <generator>http://wordpress.org/?v=</generator> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <item><title>By: Susanna Kaukinen</title><link>http://hackerboss.com/building-high-performance-software-teams/comment-page-1/#comment-1115</link> <dc:creator>Susanna Kaukinen</dc:creator> <pubDate>Tue, 06 Apr 2010 14:00:17 +0000</pubDate> <guid
isPermaLink="false">http://hackerboss.com/?p=1477#comment-1115</guid> <description>I think Losada&#039;s &lt;a href=&quot;http://www.sk3ptik.eu/blog/wp-content/uploads/2008/06/losada_results_on_high_performance_teams3.png&quot; rel=&quot;nofollow&quot;&gt;results&lt;/a&gt; on high-performance teams are interesting.Ref:
&lt;a href=&quot;http://www.sk3ptik.eu/blog/?p=143&quot; rel=&quot;nofollow&quot;&gt;Losada results on high-performance teams&lt;/a&gt;
&lt;a href=&quot;http://www.sal.hut.fi/Publications/pdf-files/systemsintelligence2007.pdf&quot; rel=&quot;nofollow&quot;&gt;Systems Intelligence in Leadership and Everyday Life 2007&lt;/a&gt;</description> <content:encoded><![CDATA[<p>I think Losada&#8217;s <a
href="http://www.sk3ptik.eu/blog/wp-content/uploads/2008/06/losada_results_on_high_performance_teams3.png" rel="nofollow">results</a> on high-performance teams are interesting.</p><p>Ref:<br
/> <a
href="http://www.sk3ptik.eu/blog/?p=143" rel="nofollow">Losada results on high-performance teams</a><br
/> <a
href="http://www.sal.hut.fi/Publications/pdf-files/systemsintelligence2007.pdf" rel="nofollow">Systems Intelligence in Leadership and Everyday Life 2007</a></p> ]]></content:encoded> </item> <item><title>By: Susanna Kaukinen</title><link>http://hackerboss.com/building-high-performance-software-teams/comment-page-1/#comment-1017</link> <dc:creator>Susanna Kaukinen</dc:creator> <pubDate>Mon, 22 Mar 2010 23:05:00 +0000</pubDate> <guid
isPermaLink="false">http://hackerboss.com/?p=1477#comment-1017</guid> <description>Yes, I guess that it&#039;s a management thing to protect against failing in the politically incorrect way. They do say that there are no good project managers, just lucky ones. So, it&#039;s just self-preservation.The downside of it is that it&#039;s also the beginning of the end when you start going that way. The spirit will fade away and all that will be left is mind-numbing drudgery, which is exactly what I wanted to avoid by becoming a programmer.Programmers get to create wonderful things and that&#039;s what the job should be a lot about. About creating something profoundly beautiful, about being able to transcend our everyday reality to something truly magnificent. Being a programmer is a wonderful thing and to have the people who truly appreciate the engineering and the art of it I think it is needed to keep the sense of wonderment about it all.The thing is, I think one might need to be a programmer to see what I mean. A lot of people don&#039;t have that and hence operate from different premises.</description> <content:encoded><![CDATA[<p>Yes, I guess that it&#8217;s a management thing to protect against failing in the politically incorrect way. They do say that there are no good project managers, just lucky ones. So, it&#8217;s just self-preservation.</p><p>The downside of it is that it&#8217;s also the beginning of the end when you start going that way. The spirit will fade away and all that will be left is mind-numbing drudgery, which is exactly what I wanted to avoid by becoming a programmer.</p><p>Programmers get to create wonderful things and that&#8217;s what the job should be a lot about. About creating something profoundly beautiful, about being able to transcend our everyday reality to something truly magnificent. Being a programmer is a wonderful thing and to have the people who truly appreciate the engineering and the art of it I think it is needed to keep the sense of wonderment about it all.</p><p>The thing is, I think one might need to be a programmer to see what I mean. A lot of people don&#8217;t have that and hence operate from different premises.</p> ]]></content:encoded> </item> <item><title>By: Ville Laurikari</title><link>http://hackerboss.com/building-high-performance-software-teams/comment-page-1/#comment-1012</link> <dc:creator>Ville Laurikari</dc:creator> <pubDate>Mon, 22 Mar 2010 11:31:58 +0000</pubDate> <guid
isPermaLink="false">http://hackerboss.com/?p=1477#comment-1012</guid> <description>When companies grow, they tend to start organizing work heavily based on financial decisions.  Traditional management wisdom says that operations are cheaper when you move similar functions to big units, thereby invoking economies of scale and whatnot.  Even if this may not be exactly true for software development, managers still tend to do these &quot;safe&quot; decisions.  If things go wrong, at least they won&#039;t be blamed if they did what everyone expected.  This is called failing conservatively.There&#039;s a fantastic post about this by Steve Blank on his blog: &lt;a href=&quot;http://steveblank.com/2009/12/21/the-elves-leave-middle-earth-–-soda’s-are-no-longer-free/&quot; rel=&quot;nofollow&quot;&gt;The Elves Leave Middle Earth - Sodas Are No Longer Free&lt;/a&gt;.</description> <content:encoded><![CDATA[<p>When companies grow, they tend to start organizing work heavily based on financial decisions.  Traditional management wisdom says that operations are cheaper when you move similar functions to big units, thereby invoking economies of scale and whatnot.  Even if this may not be exactly true for software development, managers still tend to do these &#8220;safe&#8221; decisions.  If things go wrong, at least they won&#8217;t be blamed if they did what everyone expected.  This is called failing conservatively.</p><p>There&#8217;s a fantastic post about this by Steve Blank on his blog: <a
href="http://steveblank.com/2009/12/21/the-elves-leave-middle-earth-–-soda’s-are-no-longer-free/" rel="nofollow">The Elves Leave Middle Earth &#8211; Sodas Are No Longer Free</a>.</p> ]]></content:encoded> </item> <item><title>By: Susanna Kaukinen</title><link>http://hackerboss.com/building-high-performance-software-teams/comment-page-1/#comment-1004</link> <dc:creator>Susanna Kaukinen</dc:creator> <pubDate>Sun, 21 Mar 2010 20:03:25 +0000</pubDate> <guid
isPermaLink="false">http://hackerboss.com/?p=1477#comment-1004</guid> <description>I see no other good way to go about software than small self-organising teams. Most software developers need to have knowledge and skills that overlap the neighbouring areas. Only then can they get the whole of their work done. It takes a lot of time and effort to learn to effectively work around all the red tape that some organisations have and it still never amounts to the same.I think it&#039;s clear that the best way to organise a software company is to use small startup like teams. It is well known that only the people actually creating the software know what needs to be done and they need the room and power to be able to do just that.However, not many larger companies really work this way. Maybe it&#039;s just in the DNA of organisations to grow into a halt. I guess that&#039;s just as well, because how would startups make it, if the existing companies would be as effective as they are?</description> <content:encoded><![CDATA[<p>I see no other good way to go about software than small self-organising teams. Most software developers need to have knowledge and skills that overlap the neighbouring areas. Only then can they get the whole of their work done. It takes a lot of time and effort to learn to effectively work around all the red tape that some organisations have and it still never amounts to the same.</p><p>I think it&#8217;s clear that the best way to organise a software company is to use small startup like teams. It is well known that only the people actually creating the software know what needs to be done and they need the room and power to be able to do just that.</p><p>However, not many larger companies really work this way. Maybe it&#8217;s just in the DNA of organisations to grow into a halt. I guess that&#8217;s just as well, because how would startups make it, if the existing companies would be as effective as they are?</p> ]]></content:encoded> </item> <item><title>By: Ville Laurikari</title><link>http://hackerboss.com/building-high-performance-software-teams/comment-page-1/#comment-735</link> <dc:creator>Ville Laurikari</dc:creator> <pubDate>Sun, 17 Jan 2010 19:26:42 +0000</pubDate> <guid
isPermaLink="false">http://hackerboss.com/?p=1477#comment-735</guid> <description>Thanks for your insights, Francisco.I&#039;m not saying there should not be division of labor.  I&#039;m saying the division of labor should be done as best fits the team and tasks at hand, not as dictated by an existing corporate hierarchy.The best team structure of course depends on what you&#039;re doing.  My experiences are chiefly with building software products.  And in my experience, small self-organizing teams work the best.  I&#039;m not trying to say that nothing else can ever work, even though it might have sounded like that :)</description> <content:encoded><![CDATA[<p>Thanks for your insights, Francisco.</p><p>I&#8217;m not saying there should not be division of labor.  I&#8217;m saying the division of labor should be done as best fits the team and tasks at hand, not as dictated by an existing corporate hierarchy.</p><p>The best team structure of course depends on what you&#8217;re doing.  My experiences are chiefly with building software products.  And in my experience, small self-organizing teams work the best.  I&#8217;m not trying to say that nothing else can ever work, even though it might have sounded like that :)</p> ]]></content:encoded> </item> <item><title>By: Francisco</title><link>http://hackerboss.com/building-high-performance-software-teams/comment-page-1/#comment-734</link> <dc:creator>Francisco</dc:creator> <pubDate>Sun, 17 Jan 2010 18:46:59 +0000</pubDate> <guid
isPermaLink="false">http://hackerboss.com/?p=1477#comment-734</guid> <description>An organization where everyone can do everything will likely be a great success or a great failure with little room for anything in between.When many people can be changing different parts of a system communication and documentation become critical. In the example of a developer adding a column he/she could be breaking existing programs if the programs were counting on multiple tables having the same structure. Of course the ideal situation would be if programs were designed to not have such requirement, but much too often the requirement is there.I think it is more important to have good communication than having the ability of all people in a team making changes all over the place without control or forethought.As for tearing down &quot;silos and replacing them with real teams&quot; it is an oversimplification at best. If management had the right leadership those &quot;silos&quot; would have been the right teams for the right tasks to begin with.I think the author of this blog entry has confused bureaucratic poorly organized structures with proper division of labor. There is absolutely nothing wrong with having a QA department just as there is nothing wrong with not having one. It is all about how a business structure is organized and the quality of the people in it.Moreover, asking all people to do all the different areas of work does not allow room for looking the best place where people fit. You could have a developer that is absolutely great at creating at entire new system that is mostly bug free, but he is not good at testing. Should you hire a less competent developer that is better at testing, but far less capable at getting the bulk of a new system up and running?There there is that little issue called budgets.. a company may not have the money to hire all senior developers. They may only be able to afford mostly junior people and a few Sr. So should the QA and last check be done by the Jr people or the senior people? In the fantasy world were it is always ok for all to do everything the Jr developers would be let free to debug their code and implement into production without having someone not only more experienced, but more familiar with the business and the requirements, do a final check.</description> <content:encoded><![CDATA[<p>An organization where everyone can do everything will likely be a great success or a great failure with little room for anything in between.</p><p>When many people can be changing different parts of a system communication and documentation become critical. In the example of a developer adding a column he/she could be breaking existing programs if the programs were counting on multiple tables having the same structure. Of course the ideal situation would be if programs were designed to not have such requirement, but much too often the requirement is there.</p><p>I think it is more important to have good communication than having the ability of all people in a team making changes all over the place without control or forethought.</p><p>As for tearing down &#8220;silos and replacing them with real teams&#8221; it is an oversimplification at best. If management had the right leadership those &#8220;silos&#8221; would have been the right teams for the right tasks to begin with.</p><p>I think the author of this blog entry has confused bureaucratic poorly organized structures with proper division of labor. There is absolutely nothing wrong with having a QA department just as there is nothing wrong with not having one. It is all about how a business structure is organized and the quality of the people in it.</p><p>Moreover, asking all people to do all the different areas of work does not allow room for looking the best place where people fit. You could have a developer that is absolutely great at creating at entire new system that is mostly bug free, but he is not good at testing. Should you hire a less competent developer that is better at testing, but far less capable at getting the bulk of a new system up and running?</p><p>There there is that little issue called budgets.. a company may not have the money to hire all senior developers. They may only be able to afford mostly junior people and a few Sr. So should the QA and last check be done by the Jr people or the senior people? In the fantasy world were it is always ok for all to do everything the Jr developers would be let free to debug their code and implement into production without having someone not only more experienced, but more familiar with the business and the requirements, do a final check.</p> ]]></content:encoded> </item> <item><title>By: Ville Laurikari</title><link>http://hackerboss.com/building-high-performance-software-teams/comment-page-1/#comment-687</link> <dc:creator>Ville Laurikari</dc:creator> <pubDate>Sat, 02 Jan 2010 18:25:43 +0000</pubDate> <guid
isPermaLink="false">http://hackerboss.com/?p=1477#comment-687</guid> <description>Thanks Michel, I agree with your points. This reminds me of &lt;a href=&quot;http://www.amazon.com/dp/1934356344?tag=hashedbits-20&quot; rel=&quot;nofollow&quot;&gt;The Passionate Programmer&lt;/a&gt; by Chad Fowler.   Fowler argues that you should be a generalist, and also that you be a specialist.   A specialist knows a subject very deeply, but that doesn&#039;t mean he should know nothing about everything else.The chapters of a very similar older book (called &quot;My Job Went to India&quot;) by the same author are available online:&lt;ul&gt;
&lt;li&gt;
&lt;a href=&quot;http://media.pragprog.com/titles/mjwti/generalist.pdf&quot; rel=&quot;nofollow&quot;&gt;Be a Generalist&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;http://media.pragprog.com/titles/mjwti/specialist.pdf&quot; rel=&quot;nofollow&quot;&gt;Be a Specialist&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;They are a good read.</description> <content:encoded><![CDATA[<p>Thanks Michel, I agree with your points. This reminds me of <a
href="http://www.amazon.com/dp/1934356344?tag=hashedbits-20" rel="nofollow">The Passionate Programmer</a> by Chad Fowler.   Fowler argues that you should be a generalist, and also that you be a specialist.   A specialist knows a subject very deeply, but that doesn&#8217;t mean he should know nothing about everything else.</p><p>The chapters of a very similar older book (called &#8220;My Job Went to India&#8221;) by the same author are available online:</p><ul><li> <a
href="http://media.pragprog.com/titles/mjwti/generalist.pdf" rel="nofollow">Be a Generalist</a></li><li> <a
href="http://media.pragprog.com/titles/mjwti/specialist.pdf" rel="nofollow">Be a Specialist</a></li></ul><p>They are a good read.</p> ]]></content:encoded> </item> <item><title>By: Michel Billard</title><link>http://hackerboss.com/building-high-performance-software-teams/comment-page-1/#comment-686</link> <dc:creator>Michel Billard</dc:creator> <pubDate>Sat, 02 Jan 2010 16:19:02 +0000</pubDate> <guid
isPermaLink="false">http://hackerboss.com/?p=1477#comment-686</guid> <description>I think it all depends on the how the teams are merged together, it could be very useful to have a database expert that reviews every modification to the database to ensure it&#039;s done correctly. The problem with being a generalist is that you can&#039;t be the expert in every development area. As a part of a startup, I need to be able to do pretty much everything, however as the team grows I can stop doing things I don&#039;t like and that I&#039;m not the best at and start focusing on my strengths.There is a problem with over-specialization too, but a few expert here and there can be useful depending on the situation. A database expert would be crucial for a high-performance application, though a programmer should not have to wait for a modification to the database schema. I think it all comes down to how the hierarchy is done and who decides, the more equal people are, the better and faster the work is done.</description> <content:encoded><![CDATA[<p>I think it all depends on the how the teams are merged together, it could be very useful to have a database expert that reviews every modification to the database to ensure it&#8217;s done correctly. The problem with being a generalist is that you can&#8217;t be the expert in every development area. As a part of a startup, I need to be able to do pretty much everything, however as the team grows I can stop doing things I don&#8217;t like and that I&#8217;m not the best at and start focusing on my strengths.</p><p>There is a problem with over-specialization too, but a few expert here and there can be useful depending on the situation. A database expert would be crucial for a high-performance application, though a programmer should not have to wait for a modification to the database schema. I think it all comes down to how the hierarchy is done and who decides, the more equal people are, the better and faster the work is done.</p> ]]></content:encoded> </item> <item><title>By: Tweets that mention Building High Performance Software Teams &#124; Hacker Boss -- Topsy.com</title><link>http://hackerboss.com/building-high-performance-software-teams/comment-page-1/#comment-683</link> <dc:creator>Tweets that mention Building High Performance Software Teams &#124; Hacker Boss -- Topsy.com</dc:creator> <pubDate>Thu, 31 Dec 2009 08:11:48 +0000</pubDate> <guid
isPermaLink="false">http://hackerboss.com/?p=1477#comment-683</guid> <description>[...] This post was mentioned on Twitter by PlanMill Ltd., Ville Laurikari. Ville Laurikari said: Building High Performance Software Teams: http://bit.ly/656pLy [...]</description> <content:encoded><![CDATA[<p>[...] This post was mentioned on Twitter by PlanMill Ltd., Ville Laurikari. Ville Laurikari said: Building High Performance Software Teams: <a
href="http://bit.ly/656pLy" rel="nofollow">http://bit.ly/656pLy</a> [...]</p> ]]></content:encoded> </item> <item><title>By: Ville Laurikari</title><link>http://hackerboss.com/building-high-performance-software-teams/comment-page-1/#comment-682</link> <dc:creator>Ville Laurikari</dc:creator> <pubDate>Thu, 31 Dec 2009 07:12:44 +0000</pubDate> <guid
isPermaLink="false">http://hackerboss.com/?p=1477#comment-682</guid> <description>Thanks Wes, that quote &lt;a href=&quot;http://hackerboss.com/do-you-speak-binary/#comment-476&quot; rel=&quot;nofollow&quot;&gt;really resonates with me&lt;/a&gt; probably because I guess I&#039;m a bit of a generalist myself.</description> <content:encoded><![CDATA[<p>Thanks Wes, that quote <a
href="http://hackerboss.com/do-you-speak-binary/#comment-476" rel="nofollow">really resonates with me</a> probably because I guess I&#8217;m a bit of a generalist myself.</p> ]]></content:encoded> </item> <item><title>By: Wes Shull</title><link>http://hackerboss.com/building-high-performance-software-teams/comment-page-1/#comment-680</link> <dc:creator>Wes Shull</dc:creator> <pubDate>Thu, 31 Dec 2009 02:34:19 +0000</pubDate> <guid
isPermaLink="false">http://hackerboss.com/?p=1477#comment-680</guid> <description>Kinda generically related, but:&quot;A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects.&quot;
-- Robert A. Heinlein (or so widely attributed; couldn&#039;t tell you where it was written)</description> <content:encoded><![CDATA[<p>Kinda generically related, but:</p><p>&#8220;A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects.&#8221;<br
/> &#8212; Robert A. Heinlein (or so widely attributed; couldn&#8217;t tell you where it was written)</p> ]]></content:encoded> </item> <item><title>By: Ville Laurikari</title><link>http://hackerboss.com/building-high-performance-software-teams/comment-page-1/#comment-678</link> <dc:creator>Ville Laurikari</dc:creator> <pubDate>Wed, 30 Dec 2009 20:34:55 +0000</pubDate> <guid
isPermaLink="false">http://hackerboss.com/?p=1477#comment-678</guid> <description>Everyone should do everything?  Yes and no.Yes: Teams should be cross-functional and self-organizing.  The team must have a shared goal, not multiple slightly different goals from different departments.  Everyone should be able to do anything within their abilities to achieve the team goals.No: People are different and have different strengths.  The team should decide amongst themselves how the work is divided.  Probably there will be people mostly concentrating on coding and others mostly concentrating on customer support, for example.  But it doesn&#039;t mean that coders should never touch a support case.</description> <content:encoded><![CDATA[<p>Everyone should do everything?  Yes and no.</p><p>Yes: Teams should be cross-functional and self-organizing.  The team must have a shared goal, not multiple slightly different goals from different departments.  Everyone should be able to do anything within their abilities to achieve the team goals.</p><p>No: People are different and have different strengths.  The team should decide amongst themselves how the work is divided.  Probably there will be people mostly concentrating on coding and others mostly concentrating on customer support, for example.  But it doesn&#8217;t mean that coders should never touch a support case.</p> ]]></content:encoded> </item> <item><title>By: lonelycoder</title><link>http://hackerboss.com/building-high-performance-software-teams/comment-page-1/#comment-677</link> <dc:creator>lonelycoder</dc:creator> <pubDate>Wed, 30 Dec 2009 20:25:54 +0000</pubDate> <guid
isPermaLink="false">http://hackerboss.com/?p=1477#comment-677</guid> <description>Are you saying everyone should do everything?  How is that supposed to work?</description> <content:encoded><![CDATA[<p>Are you saying everyone should do everything?  How is that supposed to work?</p> ]]></content:encoded> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced) (user agent is rejected)
Database Caching 1/19 queries in 0.053 seconds using disk

Served from: hackerboss.com @ 2010-09-05 20:34:19 -->