<?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>Building Better Software &#187; Teams</title>
	<atom:link href="http://www.stellman-greene.com/category/teams/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.stellman-greene.com</link>
	<description>because users want their software to work</description>
	<lastBuildDate>Sat, 31 Jul 2010 18:57:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>When team members hate each other</title>
		<link>http://www.stellman-greene.com/2009/10/27/when-team-members-hate-each-other/</link>
		<comments>http://www.stellman-greene.com/2009/10/27/when-team-members-hate-each-other/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 13:58:39 +0000</pubDate>
		<dc:creator>Andrew Stellman</dc:creator>
				<category><![CDATA[Teams]]></category>

		<guid isPermaLink="false">http://www.stellman-greene.com/?p=430</guid>
		<description><![CDATA[We don&#8217;t always get to choose our teammates, especially at work. So what do you do when you just don&#8217;t get along with someone on your team? Not too long ago, I was doing our Beautiful Teams talk at a brown bag lunch for a big financial company here in New York. At the end [...]]]></description>
			<content:encoded><![CDATA[<p><em>We don&#8217;t always get to choose our teammates, especially at work. So what do you do when you just don&#8217;t get along with someone on your team?</em></p>
<p><img class="alignnone size-full wp-image-431" title="What's your point?" src="http://www.stellman-greene.com/blog/wp-content/uploads/2009/10/whats-your-point.png" alt="What's your point?" width="500" height="463" /></p>
<p>Not too long ago, I was doing our <a href="http://www.stellman-greene.com/2009/04/23/our-new-beautiful-teams-talk-at-boston-spin/">Beautiful Teams talk</a> at a brown bag lunch for a big financial company here in New York. At the end of the talk, I got a really good question:</p>
<blockquote><p><em>What do you do when you&#8217;re on a team with people who don&#8217;t get along?</em></p></blockquote>
<p>We don&#8217;t get to choose our teams, and while I&#8217;ve been on plenty of teams that gelled really well, I&#8217;ve definitely had to work with people who just rubbed me the wrong way or, worse, where the feeling was mutual. It&#8217;s a tough problem, but one that should be really familiar to anyone who&#8217;s been working with teams for a long time.</p>
<p>I have to admit that while I&#8217;ve had success working on teams with people who didn&#8217;t get along, there have definitely been a few times when I didn&#8217;t handle that situation as well as I could have. Luckily, those are the situations where we learn the most.</p>
<p>That&#8217;s actually one of the main reasons Jenny and I wanted to talk to Andy Lester when we were talking to contributors for <em><a href="http://www.amazon.com/Beautiful-Teams-Inspiring-Cautionary-Veteran/dp/0596518021/">Beautiful Teams</a></em>. Andy runs a great website called <a href="http://theworkinggeek.com/">The Working Geek</a>, where he talks about working life for programmers, sysadmins and other geek types. And he had some really interesting things to say about how people interact with each other — especially geeky types (like me), since we seem to be especially prone to interpersonal problems. (Imagine that!)</p>
<p>I really liked this quote from Andy, because I think it cuts to the heart of the matter:</p>
<blockquote><p><span style="color: #003366;">I was on a team once where I said, &#8220;At the very least, can we just have minimal respect for everyone here?&#8221; And I was asked quite seriously by someone else, &#8220;Well, what if not everybody on this team is worthy of respect?&#8221; And that&#8217;s baffling to me as a human, but it&#8217;s also not uncommon. And that minimal amount of respect is something that many just don&#8217;t get.</span></p>
<p><span style="color: #003366;">— <a title="The Working Geek" href="http://theworkinggeek.com/">Andy Lester</a>, <em>Beautiful Teams</em> (chapter 5)</span></p></blockquote>
<p>He&#8217;s right. When I look back over my own career, I find that many of my own conflicts with people on my team stemmed from a basic lack of respect. Since I was the top programmer on the team, I thought I knew better than everyone else about everything. Once someone got something wrong technically, I&#8217;d write that person off entirely because they didn&#8217;t have my respect.</p>
<p>Andy offers some really good personal advice for getting past those problems, both in his <em>Beautiful Teams</em> chapter and on his blog.</p>
<p>But I wanted to go a little further than that, because sometimes interpersonal problems aren&#8217;t going to be repaired. The person who asked me the question was in this situation: when I asked him about it, it sounded like some of his teammates were simply never going to get along with each other. So what do you do about that?</p>
<p>As it turns out, the answer I gave him comes from another part of <em>Beautiful Teams</em>. When Jenny and I were putting it together, we put a lot of thought into how to divide it into sections. And so many people talked explicitly about setting goals for projects that we ended up including an entire section called Goals.</p>
<p>So my answer to anyone who&#8217;s got insurmountable (at least, in the short run) conflicts between team members is to make sure that you&#8217;ve established what many of our contributors referred to as an &#8220;elevating goal.&#8221;</p>
<p>One of those contributors was <a href="http://www.stevemcconnell.com/">Steve McConnell</a>, who also happens to be one of my favorite authors. We asked another one of our favorite authors (and an old friend of mine), <a href="http://www.scottberkun.com/">Scott Berkun</a>, to interview him for the book, and out of that interview came this great quote:</p>
<blockquote><p><span style="color: #003366;">If you’re out digging ditches, that’s not very elevating or inspiring. But if you’re digging ditches to protect your town that’s about to be attacked by an enemy, well, that’s more inspiring, even though it’s the same activity. And so the leader’s job, really, is to try to determine or frame the activity in such a way that people can understand what the value is.</span></p>
<p><span style="color: #003366;">— <a href="http://www.stevemcconnell.com/">Steve McConnell</a>, Beautiful Teams (chapter 16)</span></p></blockquote>
<p>I think that really cuts to the heart of what it means to establish an elevating vision, and it should help show why that can help get past serious team problems. I have to admit that before working on this book, I hadn&#8217;t really given that much thought to establishing a vision. Yes, establishing a goal for a project is important, but I always thought about it in terms of the work that had to be done. I&#8217;d generally dismiss anything like an &#8220;elevating vision or goal&#8221; as a business-speak buzzword. A really valuable lesson for me was just how important it is to get everyone on the team on board with that one singular vision — and I mean actually understanding and embracing the vision for the project, and not just agreeing to some sort of lame mission statement.</p>
<p>What&#8217;s especially useful about getting everyone on the team to see the same vision is that you don&#8217;t need to be a manager or team lead to do it. All you need to do, minimally, is talk to people on your team. I&#8217;ve been brought onto projects where people on the team thought that there were serious architecture or requirements or quality problems. But once I started I talking to people, it turned out that everyone had a completely different idea of what they were building and why they were building it. I&#8217;ve found over and over again that just writing down what we&#8217;re building and who we&#8217;re building it for (using a <a title="Vision and Scope Document" href="http://stellman-greene.com/vision_and_scope">Vision and Scope Document</a>, for example) is enough to help the situation. It&#8217;s uncanny how often I&#8217;ve heard people say something like, &#8220;Wait, we&#8217;re building <em>what</em>? I thought we were doing something completely different!&#8221;</p>
<p>Anyone on the team can do that, and it&#8217;s a really valuable tool to help with serious teammate problems. The clearer everyone sees the real goal of the project, the easier it is to get past the disagreements and arguments and get on with the work. It&#8217;s something I&#8217;ve seen in real life many times, and it really does work: people are much more willing to settle disagreements and just get down to business if they can see that there&#8217;s a real end that they&#8217;re working towards.</p>
<p>When I look back at the times where I was able to successfully navigate serious team problems that were caused by people who didn&#8217;t like each other, I can see how this is exactly what I did. Even when people didn&#8217;t get along, I found that if I was able to get each person to see the bigger picture and work towards something he or she believed in, then most of the time they were able to put their problems on the back burner, at least long enough to get through, say, a meeting or a code review. And that was enough to save the project.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stellman-greene.com/2009/10/27/when-team-members-hate-each-other/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Secrets Of Great Teamwork</title>
		<link>http://www.stellman-greene.com/2009/05/13/the-secrets-of-great-teamwork/</link>
		<comments>http://www.stellman-greene.com/2009/05/13/the-secrets-of-great-teamwork/#comments</comments>
		<pubDate>Wed, 13 May 2009 17:58:55 +0000</pubDate>
		<dc:creator>Andrew Stellman</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Teams]]></category>

		<guid isPermaLink="false">http://www.stellman-greene.com/?p=260</guid>
		<description><![CDATA[Forbes picked up our Beautiful Teams interview with Tim O&#8217;Reilly and published it as an article called The Secrets of Great Teamwork.When Jenny and I talked to Tim, he had some intriguing things to say about what makes people work together. There&#8217;s plenty of good stuff in the interview, but one bit that really sticks [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-261" title="Beautiful Teams and Tim O'Reilly" src="http://www.stellman-greene.com/blog/wp-content/uploads/2009/05/bt-and-tim.png" alt="Beautiful Teams and Tim O'Reilly" width="600" height="500" /></p>
<p><a href="http://www.forbes.com">Forbes</a> picked up our <a title="Beautiful Teams" href="http://www.amazon.com/Beautiful-Teams/dp/0596518021/">Beautiful Teams</a> interview with <a href="http://oreilly.com/oreilly/tim_bio.html">Tim O&#8217;Reilly</a> and published it as an article called <a title="Forbes: The Secrets of Great Teamwork" href="http://www.forbes.com/2009/05/11/software-oreilly-media-technology-breakthroughs-software.html">The Secrets of Great Teamwork</a>.When Jenny and I talked to Tim, he had some intriguing things to say about what makes people work together. There&#8217;s plenty of good stuff in the interview, but one bit that really sticks in my mind is this excerpt:</p>
<blockquote><p><em>Andrew: Do you think it&#8217;s possible to have a great team that doesn&#8217;t have a great leader? That has more of a collective leadership?</em></p>
<p><strong>Tim: </strong>Yes, it is possible. But here&#8217;s the thing. Take Apache, because I think Apache is a great example of that. Tim Berners-Lee laid down the blueprint. He said, &#8220;I&#8217;ve created this idea for this hypertext server, this hypertext client.&#8221; And the genius of Apache was in embracing the constraints. I still remember back in the mid-&#8217;90s, this moment where Netscape had added this, Microsoft had added that, and everyone was saying, &#8220;Apache seems to be standing still. They aren&#8217;t adding all these features. They aren&#8217;t keeping up!&#8221; And the guys at Apache said, &#8220;Yup. What we do is a hypertext server, and we have this nice extension mechanism where people who want to do something else can add it on.&#8221;</p>
<p>And that goes back to that architecture of participation. They didn&#8217;t build this big, conglomerate, complex application. They kept to a pure vision. The vision did actually come from a visionary leader; it just wasn&#8217;t part of Apache. Apache came from a group of people who were abandoned by the NCSA server team when they all went to found Netscape. And there were a bunch of customers, so they said, &#8220;We have to maintain this, and keep it going.&#8221; What was wonderful about that kind of team was that they accepted the constraints that were laid down by the design of the system. They didn&#8217;t try to show off their ego or their creativity.</p>
<p>I think a lot of the work done by the IETF (the Internet Engineering Task Force) in the early years did the same thing. There were some wonderful principles laid down, and people really honored them. If you read some of John Postel&#8217;s stuff in the TCP RFC about the robustness principle, it sounds like something out of the Bible, for Christ&#8217;s sake! &#8220;Be conservative in what you do; be liberal in what you accept from others.&#8221; Literally, that&#8217;s what it says.</p>
<p>The point is that if you have the system architected right, you have a better chance of success for teams. You don&#8217;t want teams that are dependent on a single vision or leader, because if you lose your leader, the whole team goes &#8220;pop.&#8221;</p></blockquote>
<p>Something that came up over and over again throughout our many interviews and stories is the connection between teamwork and architecture.  I think Tim hit on exactly the right example with Apache, but there are a lot of other examples throughout the book. Peter Glück had some really interesting things about how the architecture restrictions of NASA projects affected the teams (and especially the practices they used). And Auke Jilderda talked about the &#8220;use-use-reuse&#8221; model for designing reusable code, and how it impacts teams. I have to be honest: before working on Beautiful Teams, I definitely didn&#8217;t make such a close connection between how great (or lousy) teamwork affects architecture.</p>
<p>You can read the entire interview — which, incidentally, is one of my favorites in the book! — on <a href="http://fyi.oreilly.com/2009/05/an-interview-with-tim-oreilly-.html">O&#8217;Reilly FYI</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stellman-greene.com/2009/05/13/the-secrets-of-great-teamwork/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Bringing a &#8220;teamwork feel&#8221; to your projects</title>
		<link>http://www.stellman-greene.com/2009/03/31/bringing-a-teamwork-feel-to-your-projects/</link>
		<comments>http://www.stellman-greene.com/2009/03/31/bringing-a-teamwork-feel-to-your-projects/#comments</comments>
		<pubDate>Tue, 31 Mar 2009 13:34:56 +0000</pubDate>
		<dc:creator>Andrew Stellman</dc:creator>
				<category><![CDATA[Q&A]]></category>
		<category><![CDATA[Teams]]></category>

		<guid isPermaLink="false">http://www.stellman-greene.com/?p=198</guid>
		<description><![CDATA[Jenny and I have been thinking a lot about teams lately. Working on Beautiful Teams really focused us on teamwork: what makes teams gel, what causes them to run into trouble, and what you can do to them. So when I got this question recently, it was really timely: I’ve been working on bringing more [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-202" title="When cheering fails" src="http://www.stellman-greene.com/blog/wp-content/uploads/2009/03/when-cheering-fails.png" alt="When cheering fails" width="497" height="400" /></p>
<p>Jenny and I have been thinking a lot about teams lately. Working on <em><a title="Beautiful Teams" href="http://oreilly.com/catalog/9780596518028/index.html">Beautiful Teams</a></em> really focused us on teamwork: what makes teams gel, what causes them to run into trouble, and what you can do to them. So when I got this question recently, it was really timely:</p>
<blockquote><p><strong>I’ve been working on bringing more of a teamwork feel to our projects for 2 years.  It has proven to be a non-trivial task. Any advice?</strong></p></blockquote>
<p>Now, just so we’re clear here, I know this guy pretty well. He’s a very good manager, and he runs a software development group with some of the smartest people I’ve met professionally.  They’re definitely a functioning group: they’ve been building software for years, and that software is used in production in critical applications at his company. By many accounts, his group is successful.</p>
<p>But when I took a closer look at how that particular team works day-to-day – and this should seem very familiar to a lot of developers – I definitely saw what he meant about it being a non-trivial task. There&#8217;s definitely a lack of a teamwork feel on the various projects his team works on. Everyone is really good at carving out his or her own piece of work, and is able to work on that piece independently. But even when multiple people would work on a single release of the same piece of software, they’d work independently of each other, not really talking amongst themselves. Don’t get me wrong – they definitely get their jobs done. But they’re working on individual tasks, not team projects. And even when those tasks add up to projects, it just feels like loosely connected tasks to the people working on them.</p>
<p>So what’s the harm in that, if they’re getting the work done? Well, for one, having a group of people working like that doesn’t exactly encourage innovation. There are some genuinely brilliant people on that team, and they do reasonably good work, but I would honestly expect more innovative work from this particular group of people. And I believe that having more of a “teamwork feel” would encourage more innovative work.</p>
<p>What’s more, I got the feeling that this particular team still runs into a lot of the same problems that many other, less talented teams run into, and I think those problems could be improved through better teamwork. They have some serious change management issues, where they often have to rework their code because it doesn’t quite meet the needs of the projects’ users. They have a few code quality problems – they’re trying to address them with better code reviews, which they’re having trouble getting off the ground. And they have an overall client relationship problem, where the people they build software for often feel like they’re somewhat disconnected, like they can’t quite the software that really meets their needs. Again, these are highly talented, very smart developers, with a manager who’s on the ball – and they’re still getting stuck on the same problems that hit everyone else.</p>
<p>Now, I don’t want to make the situation sound worse than it is. The manager has made some very good progress in getting the individuals working in a more team-like way. One thing he did that I really like (and I think it worked really well) was to really encourage everyone to write things down in the Wiki. And this wasn’t just a general edict (“Each person must add X wiki pages, or else!”). It was actual encouragement and support, treating documentation like it was a real and highly appreciated part of peoples’ jobs. Like a lot of new tools, there was a slow start to it, but once a few people dove in and started to embrace it, it started to really take off. And a funny thing happened: as people started sharing information with each other, they started to learn more about each others’ work, and some of them started to get that “teamwork feel” that they were looking for.</p>
<p>So what’s going on with this person’s group? And, more importantly, what can he do to help improve the “teamwork feel” for everyone?</p>
<p>Whenever I’m trying to help a group of effective but disconnected developers become a team, I like to start with this <a title="The Team Software Process (TSP)" href="http://www.sei.cmu.edu/pub/documents/00.reports/pdf/00tr023.pdf">great analogy from Watts Humphrey:</a></p>
<blockquote><p>There are different kinds of teams. In sports, for example, a basketball team’s positions are dynamic while baseball team members have more static roles. However, in both cases the members must all work together cooperatively. Conversely, wrestling and track teams are composed of individual competitors who do not dynamically interact, although the members support each other socially and emotionally.</p>
<p>In engineering, development teams often behave much like baseball or basketball teams. Even though they may have multiple specialties, all the members work toward a single objective. However, on systems maintenance and enhancement teams, the engineers often work relatively independently, much like wrestling and track teams.</p>
<p>A team is more than just a group of people who happen to work together. Teamwork takes practice and it involves special skills. Teams require common processes; they need agreed-upon goals; and they need effective guidance and leadership.</p></blockquote>
<p>When I reread that quote before pasting it in here, something in that last sentence stood out to me: <strong>they need agreed-upon goals</strong>. Now, I’ve been referencing that quote for almost a decade. But it’s really interesting to me that I always overlooked that last bit. But working on <em>Beautiful Teams</em> really taught me the value of agreed-upon goals. It was pretty remarkable, actually: contributor after contributor brought up the idea that the people on a project all need to be aligned to the project’s goals, and to have a single, overarching vision that the team can rally around.</p>
<p>So if I had to give a single piece of advice to this manager, it would be this: try to find ways to give everyone a good sense of their goals. Two different <em>Beautiful Teams</em> contributors – <a href="http://www.mountaingoatsoftware.com/">Mike Cohn</a> and <a href="http://www.stevemcconnell.com/">Steve McConnell</a> – talked about helping the team see an “elevating” goal. I really like how Steve put it:</p>
<blockquote><p>First, the team leader needs to establish an elevating vision or goal, and I think that this is truly a leadership function, not just management. It goes beyond the management function. An awful lot of thought should go in on the part of the team leaders into what is the team&#8217;s goal and what is it about it that is not just trying to trick the team into thinking they have a goal that&#8217;s elevating or inspiring, but to come up with one that truly is.</p>
<p>A classic example is if you&#8217;re out digging ditches, that&#8217;s not very elevating or inspiring. But if you&#8217;re digging ditches to protect your town that&#8217;s about to be attacked by an enemy, well, that&#8217;s more inspiring, even though it&#8217;s the same activity. And so the leader&#8217;s job, really, is to try to determine or frame the activity in such a way that people can understand what the value is.</p></blockquote>
<p>Now, that’s not an easy thing to do. But Jenny and I heard this message (or one similar to it) from so many of our <em>Beautiful Teams</em> contributors – Keoki Andrus, Neil Siegel and Mark Healey all come to mind, although other people talked about it too – that it actually changed the way I think about how teams work. In the past, I always looked at <a href="http://www.stellman-greene.com/vision_and_scope">defining a project’s vision and scope</a> as a straightforward tool for setting the top-level scope of the project and preventing changes. One thing I learned was that I wasn’t giving “vision” part of it nearly enough respect. Talking openly and often about that vision – and coming back to it when you do things like discuss project assumptions, come up with scenarios (or user stories, or use cases&#8230; however you figure out how your users will use the software) and plan out the work the team’s going to do – is the first step in really getting your team to have that “teamwork feel.”</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stellman-greene.com/2009/03/31/bringing-a-teamwork-feel-to-your-projects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
