<?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>Chris Johnston &#187; Thoughts</title>
	<atom:link href="http://www.fuzzylizard.com/archives/category/thoughts/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.fuzzylizard.com</link>
	<description>Web development and design with a little VFX thrown in for fun</description>
	<lastBuildDate>Sun, 30 Oct 2011 14:23:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Let people be masters of their time</title>
		<link>http://www.fuzzylizard.com/archives/2009/03/11/1023/</link>
		<comments>http://www.fuzzylizard.com/archives/2009/03/11/1023/#comments</comments>
		<pubDate>Tue, 10 Mar 2009 17:16:58 +0000</pubDate>
		<dc:creator>Chris Johnston</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://www.fuzzylizard.com/?p=1023</guid>
		<description><![CDATA[&#8230;if you don&#8217;t keep your smartest people fully-informed, you&#8217;re going to wind up telling them what to do. And telling knowledge workers what to do is one of the biggest causes of mistakes, waste, and general low morale that I&#8217;ve ever seen. I really like this quote from an article about letting employees take control [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>
&#8230;if you don&#8217;t keep your smartest people fully-informed, you&#8217;re going to wind up telling them what to do. And telling knowledge workers what to do is one of the biggest causes of mistakes, waste, and general low morale that I&#8217;ve ever seen.
</p></blockquote>
<p>I really like this quote from an article about letting <a href="http://startuplessonslearned.blogspot.com/2009/03/employees-should-be-masters-of-their.html">employees take control of their time</a>. The two points I got from the article were, one, that in order to make this work, you need to give your employees ownership of the success of the company and, two, that leadership needs to be completely open about everything and tell employees not only the what but the why.</p>
<p>These two points, plus the quote above, translate directly to development teams. One of the practices of an Agile project is group ownership of the code. So if one development pair sees a problem in the code, it is their responsibility to fix it and not ignore it because it is someone elses problem. If there are bugs in the code or a project fails, then responsibility for that is shared by the entire team, not just the developers that implemented it.</p>
<p>Transparency in business decisions can be seen in the use of story cards. I worked on one project were the &#8220;so that&#8221; part of story cards was missing. We were implementing bits of functionality and not adding business value. This lead to a lot of debates with business as to why we were implementing certain things.</p>
<p>As for telling people what to do, this one drives me crazy. One project I was on, story cards were placed on a wall and given out by the tech lead. Dev pairs were not able to sign up for stories. You could request a story, but it amounted to asking for permission to work on a particular story. You could not just pick up the next story without asking if it was okay to play it first.</p>
<p>People need to feel that they are trusted and once you give them that trust, they will surprise you. Trust them, give them ownership of the project they are working on and allow them to understand both the what and the why and you will amazed at what people create, because now they are not creating something for you they are creating something for themselves.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fuzzylizard.com/archives/2009/03/11/1023/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Things I don&#8217;t understand about Agile</title>
		<link>http://www.fuzzylizard.com/archives/2009/02/04/1006/</link>
		<comments>http://www.fuzzylizard.com/archives/2009/02/04/1006/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 13:38:54 +0000</pubDate>
		<dc:creator>Chris Johnston</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://www.fuzzylizard.com/?p=1006</guid>
		<description><![CDATA[I have been trying to learn Agile software development for the past several years and there are several things I don&#8217;t quite understand and I&#8217;m hoping people can enlighten me. Why comments are evil? This one I think I might understand to a degree. I agree with the idea that comments can very quickly get [...]]]></description>
			<content:encoded><![CDATA[<p>I have been trying to learn Agile software development for the past several years and there are several things I don&#8217;t quite understand and I&#8217;m hoping people can enlighten me.</p>
<h3>Why comments are evil?</h3>
<p>This one I think I might understand to a degree. I agree with the idea that comments can very quickly get outdated and far removed from the code that they are suppose to comment. I also understand that if you write clean code then &#8220;what&#8221; comments are unnecessary. The thing I don&#8217;t understand is why this means that we should actively go through a code base and delete all comments? Or why we as developers should deride code that contains comments?</p>
<p>I personally think there is a place for &#8220;why&#8221; comments in a code base. I come across an odd bit of code, an odd business rule implementation, should I have to go and find the user story to find out why that particular odd decision was made? Or should I have a unit test explaining it: <code>shouldDoThisBecauseIn1973BusinessMadeAOneOffDealWith...()</code>. Where is the right place for this information to be captured? I would think that a story card would travel farther away from the code even faster then a comment.</p>
<h3>Why design is evil?</h3>
<p>This is probably my biggest pet peeve about Agile and the thing I really don&#8217;t understand. Why is design evil? We seem to have this idea that doing <a href="http://c2.com/xp/BigDesignUpFront.html">up front design</a> before starting a story is not allowed. You cannot be doing XP if you do design, &#8220;design is waterfallish, we have organically grown code here.&#8221;</p>
<p>Personally, I think that in order to have well designed, clean, layered code, you need to do some design up front and you need some kind of architectural model to which your organically grown code adheres to. Otherwise, instead of <a href="http://en.wikipedia.org/wiki/Multilayered_architecture">lasagne</a>, you get <a href="http://c2.com/cgi/wiki?RavioliCode">ravioli</a>.</p>
<h3>Why must you pair all the time?</h3>
<p>I have already stated that I don&#8217;t really know how to pair and this is an outcome of that. I have heard of shops were if <a href="http://blog.obiefernandez.com/content/2008/08/the-hashrocket-way-pair-programming.html">you are not pairing you are not coding</a>. Heaven forbid that either you or your pair are ever sick. Are there no kinds of coding jobs that can be done by one person? Is there no benefit or place for a single <a href="http://www.paulgraham.com/gh.html">programming sitting quietly in a room with the door closed focusing on a problem</a>? What about all those studies that have been done about flow and the fact that open offices promote sickness and disease? What about a little privacy during the working day?</p>
<h3>Why Agile principles become Agile rules?</h3>
<p>This is the thing I don&#8217;t understand the most. Why is it that for many people and many shops, Agile principles become rules and the only way to do things? I have met people and worked in shops were they have Agile all figured out and any deviation is heresy. If you are doing Agile this one way, then you are unprofessional and a very bad programming. I always though that principles were just that principles, guidelines, starting points, rules of thumb. Things to be discussed, to be examined, and possibly bent or even broken when the situation calls for.</p>
<p>Isn&#8217;t one of the prime tenants of Agile the idea that we should analyze what we are currently doing and make it better. Doesn&#8217;t this mean things need to change? Or does it mean we are not disciplined enough in our adherence to one true path of Agile?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fuzzylizard.com/archives/2009/02/04/1006/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>How to decide what is of value to say at a stand up?</title>
		<link>http://www.fuzzylizard.com/archives/2009/01/14/996/</link>
		<comments>http://www.fuzzylizard.com/archives/2009/01/14/996/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 12:37:12 +0000</pubDate>
		<dc:creator>Chris Johnston</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://www.fuzzylizard.com/?p=996</guid>
		<description><![CDATA[Sarah Taraporewalla’s post on &#8220;Improvements to the usual stand up meetings&#8221; got me thinking about what the point of stand up meetings actually is. In her post, she mentions that I only want you to tell the team what you think is valuable to them; what did you do or find yesterday that is of [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://sarahtaraporewalla.com/thoughts/agile/improvements-to-the-usual-stand-up-meetings/">Sarah Taraporewalla’s post on &#8220;Improvements to the usual stand up meetings&#8221;</a> got me thinking about what the point of stand up meetings actually is. In her post, she mentions that </p>
<blockquote><p>I only want you to tell the team what you think is valuable to them; what did you do or find yesterday that is of value sharing with the team; what do you know, that we need to know.</p></blockquote>
<p>Ever since I was on a project where we were told to not talk about anything technical, I have always wondered about what is of value to the team. I am a developer, valuable things to me are usually technical and of no value, or interest, to the business people. Does this mean I should say nothing at my stand up?</p>
<p>At my current project, our stand ups have gotten very dry and boring. They have basically devolved into status meetings about we did yesterday. We then have a dev huddle around the story wall and actually discuss things of possible value. In reality, this is also just a status meeting where we give our current status to the tech lead. He goes through the stories and we say where we are and when we will be finished.</p>
<p>This has always bugged me. First because I don&#8217;t really like giving my status twice and second because it seems a tad redundant. Shouldn&#8217;t I be saying in my stand up what I would say in the dev huddle? Also, because the dev huddle has no real rules assigned to it, it can get quite long and boring.</p>
<p>Okay, back on track and enough with the complaining. I merely offer up the above as an example of my question about what the point of a stand up is and how does one decide what is appropriate to say and has value?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fuzzylizard.com/archives/2009/01/14/996/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How do you pair?</title>
		<link>http://www.fuzzylizard.com/archives/2008/12/08/989/</link>
		<comments>http://www.fuzzylizard.com/archives/2008/12/08/989/#comments</comments>
		<pubDate>Mon, 08 Dec 2008 09:55:29 +0000</pubDate>
		<dc:creator>Chris Johnston</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://www.fuzzylizard.com/?p=989</guid>
		<description><![CDATA[Pair programming is something I have never figured out how to do. After almost two years at ThoughtWorks, this is still one skill I cannot do. I either end up watching someone else code or debating two different solutions trying to convince the other person that my way is right. I realize that both of [...]]]></description>
			<content:encoded><![CDATA[<p>Pair programming is something I have never figured out how to do. After almost two years at ThoughtWorks, this is still one skill I cannot do. I either end up watching someone else code or debating two different solutions trying to convince the other person that my way is right. I realize that both of these make me a horrible developer. </p>
<p>So, I would like some help. Hi, my name is Chris and I can&#8217;t pair.</p>
<p>There, I&#8217;ve said it. I have taken the first step and realized that I have a problem. Now if I could only figure out what the other 11 steps are to becoming a great pairer.</p>
<p>Here&#8217;s the thing, I keep hearing these stories about pairs who sit in front of a computer all day long, so much in the zone that they are able to right code telepathically. They never talk. They never argue. They never discuss and beautiful, simple code drips from the finger tips into the computer. Every line is surrounded by tests and their api&#8217;s will be studied from now to the end of time.</p>
<p>And then there&#8217;s me and my pair. I go to touch the keyboard and my pairs fingers are twitching above their keyboard like their life depends on entering one more line of code. I haven&#8217;t even written anything and they are correcting me.</p>
<p>So, I ask a simple question, &#8220;how do you pair&#8221;? How is it possible to work with someone so closely all day without stepping on each other&#8217;s toes and fighting about what it is that you are implementing?</p>
<p>I think my problem is that I am not an experienced developer (I&#8217;ve only been doing this for a few years compared to most of my pairs who have upwards of ten years under their belts) and I want to contribute something. I don&#8217;t really want to sit their and watch someone else type. However, the people I am pairing with don&#8217;t know how to pair either. They are used to sitting in front of a computer alone and banging out code.</p>
<p>And due to my inexperience and lack of pairing know how, I have no idea what to do?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fuzzylizard.com/archives/2008/12/08/989/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>It&#8217;s about doing things just a little better everyday</title>
		<link>http://www.fuzzylizard.com/archives/2008/12/03/987/</link>
		<comments>http://www.fuzzylizard.com/archives/2008/12/03/987/#comments</comments>
		<pubDate>Wed, 03 Dec 2008 12:08:33 +0000</pubDate>
		<dc:creator>Chris Johnston</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://www.fuzzylizard.com/?p=987</guid>
		<description><![CDATA[I was in a meeting a few weeks ago where we were discussing the role of an Interation Manager (IM) and whether we needed one. Right now, the role is split between the tech lead and the BA. One of the BAs on the team stated that what we had right now was working and [...]]]></description>
			<content:encoded><![CDATA[<p>I was in a meeting a few weeks ago where we were discussing the role of an Interation Manager (IM) and whether we needed one. Right now, the role is split between the tech lead and the BA. One of the BAs on the team stated that what we had right now was working and she didn&#8217;t understand why we were having the meeting.</p>
<p>This really rubbed me the wrong way. Agile is not about what works today, it is about making things better tomorrow. It is about identifying that little, or big, thing today that we can do just a little better tomorrow and implementing the change. If it works, we then find the next thing to improve and if it doesn&#8217;t work, then we try and figure out why and implemented the idea differently.</p>
<p>When it comes to the processes and practices we use everyday, &#8220;but it works fine now&#8221;, is simply unacceptable. It means that we have stopped moving forwards and have stagnated as a team. Regardless of how good things may seem, we always need to be asking how we can make thing better tomorrow.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fuzzylizard.com/archives/2008/12/03/987/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Of kickoffs and walk throughs</title>
		<link>http://www.fuzzylizard.com/archives/2008/12/02/985/</link>
		<comments>http://www.fuzzylizard.com/archives/2008/12/02/985/#comments</comments>
		<pubDate>Tue, 02 Dec 2008 10:41:04 +0000</pubDate>
		<dc:creator>Chris Johnston</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Application Development]]></category>
		<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://www.fuzzylizard.com/?p=985</guid>
		<description><![CDATA[My current project, on the surface, is great. We do Agile. We pair, we practice TDD, we have stories that the business prioritize for us, we have a nice card wall where we can see our cards move from the story backlog to completed. We have continuous integration with unit tests, integration tests, acceptance tests [...]]]></description>
			<content:encoded><![CDATA[<p>My current project, on the surface, is great. We do Agile. We pair, we practice TDD, we have stories that the business prioritize for us, we have a nice card wall where we can see our cards move from the story backlog to completed. We have continuous integration with unit tests, integration tests, acceptance tests and selenium tests. And we care when the build breaks. We also have weekly retrospectives even though our iterations last two weeks.</p>
<p>I should have nothing to complain about, and yet, I do. However, I would like some feedback on my complaints. I think the team could be doing things better and would like some other opinions on a gripe that I have.</p>
<p>We have a practice of kicking off stories before a pair can begin work. This involves getting the BA, the producer (the business representative), the tech lead, the tester, and the rest of the team together to discuss a single story that a pair is about to work on. The reason that I have been given for this is that stories change too quickly and frequently and, therefore, cannot be reviewed any earlier then just before the pair begins work.</p>
<p>People are busy though, especially the business representative, and thge pair ends up sitting around waiting until everyone is available. A few of us have put forth the idea of doing a kickoff of all the stories committed to for an iteration during the iteration planning meeting. Then simply letting the pair work on the story when they get to it. If there are changes, it is the devs responsibility to read the story and discuss those changes with the BA and business. The conversation shouldn&#8217;t end just because everyone has done a kickoff.</p>
<p>Management, however, squashed this suggestion pretty quickly for the reason stated above. My take is that they don&#8217;t trust the devs to properly read and implemented the story. Which brings us to walk through.</p>
<p>Walk throughs happen after a story is dev complete and once again involves the BA, the producer, the tech lead, the tester, and the pair. Everyone goes through the story, dissecting it to ensure that it has been implemented correct. The pair cannot work on anything else until the walk through has been done. In the end, this means that the devs have to wait for everyone to be available.</p>
<p>The interesting thing is that even with all this scrutiny, I am not convinced that it results in any less bugs or better code. As far as I can tell, it simply wastes everyone&#8217;s time. The amazing thing is that the team continually votes to keep kickoffs and walk throughs as part of the process and adds things to make then either longer or harder to perform.</p>
<p>I can see value in each of these practices. Once you have completed a story, it is nice to have another pair of eyes take a look and double check that you haven&#8217;t missed anything. And before you start, it is important to have that conversation with the BA and business in order to clarify exactly what it is that they want. Both of these are vital parts of software development.</p>
<p>I think the part that bugs me is the lack of trust that is implied by the way the two practices are carried out. I feel that as a dev I am assumed guilty until proven otherwise. Until I can repeat back to the BA and producer what is written in the story, I am deemed not worthy to begin work on it. Likewise, until the business, BA, and tech lead have all signed off on a story, it is deemed incomplete simply because it was implemented by a developer. Or I could be reading to much into things.</p>
<p>Other devs have also commented on the lack of trust they feel due to these two practices, so I don&#8217;t think it is just me. But how do you go about changing this kind of culture? And is it even worth changing? It gets frustrating when these issues come up in retro and either management simply says no or the rest of the team votes to make them even more complicated and time consuming. I am not sure how to change an entire teams mind, especially when it seems to most people that it is working fine.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fuzzylizard.com/archives/2008/12/02/985/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Who plays the role of technical producer on Agile teams?</title>
		<link>http://www.fuzzylizard.com/archives/2008/10/21/983/</link>
		<comments>http://www.fuzzylizard.com/archives/2008/10/21/983/#comments</comments>
		<pubDate>Tue, 21 Oct 2008 13:31:05 +0000</pubDate>
		<dc:creator>Chris Johnston</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://www.fuzzylizard.com/?p=983</guid>
		<description><![CDATA[This past weekend I was watching a television program the process Def Leppard when through in making their Hysteria album. When they were making their first three albums, a critical part of the process was their producer, Mutt Lange. From the show, the band really consider him just another member of the group. Initially, Mutt [...]]]></description>
			<content:encoded><![CDATA[<p>This past weekend I was watching a television program the process <a href="http://en.wikipedia.org/wiki/Def_Leppard">Def Leppard</a> when through in making their <a href="http://en.wikipedia.org/wiki/Hysteria_(Def_Leppard_album)">Hysteria</a> album. When they were making their first three albums, a critical part of the process was their producer, <a href="http://en.wikipedia.org/wiki/Mutt_Lange">Mutt Lange</a>. From the show, the band really consider him just another member of the group.</p>
<p>Initially, Mutt was not going to be a part of the album and the result was that Def Leppard were constantly faltering and second guessing themselves. They produced some great bits of music, but they were unable to pull everything together into either a song or an album. In the end, Mutt came back and they produced an album that debuted at number 1 on the charts and eventually sold 16 times Platinum (according to wikipedia).</p>
<p>So what is the point of all this? Well, I have been wondering about the need or role of a &#8220;producer&#8221; in a software development team. One thing that set Mutt Lange apart was that not only did he understand, capture, and carry the vision of the kind of album Def Leppard wanted to produce, he also pushed the band members to be the best they could and then go a little further.</p>
<p>I personally think every software development team needs someone like this. A team needs a leader who understands the technical aspects of things and is able to look at a snippet of code and see the possibilities and then push, guide, and direct the team to meet those possibilities. A team needs someone who looks at code after every check in and pushes the team to produce the best code possible. A team also needs someone who carries the vision for the software and only allows ideas through that conform to that vision. This ensures that code falling outside of the vision is removed.</p>
<p>Traditionally, I guess this role would be the architect, however, lately, most architects don&#8217;t code; they simply produce nice little pictures that don&#8217;t mean much. So perhaps this role should fall to the technical lead. My last project, the tech lead definitely fulfilled this role (thanks, Tim). It was a great learning experience. It was not possible to cut corners or leave out a refactoring because I knew my tech lead would spot it and say something. This pushed me to take more time and ensure my code was the best it could be.</p>
<p>I am currently on a project where no one really fulfills this role and I can definitely see a difference. I think the team suffers and the code suffers. The tech leads spend most of their time either in meetings or taking care of fringe problems instead of taking care of their teams and the code they produce.</p>
<p>With all that being said, there is one caveat to this discussion. Def Leppard went through two different producers before Mutt Lange returned. I don&#8217;t think just anyone can do the job of &#8220;producer&#8221; on a technical team. The team needs someone who cares about code quality, who understands and investigates new technologies and ideas, who has real experience to back up what he is thinking, and who has the ability to really bring the best out of people. and maybe that is the problem, there are simply not enough Mutt Langes in the world of software development.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fuzzylizard.com/archives/2008/10/21/983/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Potential Problem with Two-Pizza Teams &#8211; Compartmentalizing the solution</title>
		<link>http://www.fuzzylizard.com/archives/2008/05/15/943/</link>
		<comments>http://www.fuzzylizard.com/archives/2008/05/15/943/#comments</comments>
		<pubDate>Fri, 16 May 2008 03:09:24 +0000</pubDate>
		<dc:creator>Chris Johnston</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Application Development]]></category>
		<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://www.fuzzylizard.com/?p=943</guid>
		<description><![CDATA[I have been thinking about Two-Pizza Teams and some of the potential pitfalls companies might fall into implementing this idea. And I think I have found one based on the last project I was on. The last client I worked with had a factory style, compartmentalized view of software. They spent months working on the [...]]]></description>
			<content:encoded><![CDATA[<p>I have been thinking about Two-Pizza Teams and some of the potential pitfalls companies might fall into implementing this idea. And I think I have found one based on the last project I was on.</p>
<p>The last client I worked with had a factory style, compartmentalized view of software. They spent months working on the design and when they thought they had it right, they sliced it up into small components and farmed them out to the lowest bidder. When it came time to integrate those pieces back together, they were stunned when they didn&#8217;t fit and the application refused to run. Six teams then spent months fixing everything up to release a very fragile, but working, product.</p>
<p>Part of the problem was that they tried to implement and solve too much too quickly (well, in combination with the whole lowest bidder thing). The final application basically implemented the same thing four times. Instead of solving the problem for one product line and implementing a working, stable solution then moving on to the next product line, they did all four at once.</p>
<p>Moving this idea forward to two-pizza teams, I have a fear that companies could do the same thing. One trick to making small teams work is how you divide the problem. Each team, and thus each problem, needs to be completely atomic. Therefore, no two teams are implementing the same ideas. </p>
<p>If you have an application that does basically the same thing across multiple product lines, have a single team do the initial vertical implementation (i.e., end to end across all integration points). Once the initial implementation is completed and working, other teams can then build upon it sequentially, implementing the remaining product lines upon a proven solution. This will also provide business value back to the company earlier rather then later and give the user&#8217;s something to test.</p>
<p>I think the best way of dealing with this is to be constantly breaking up teams and not letting any team work on more then one problem together. As soon as a team has solved their problem, that team is disbanded and the team members move on to new groups. This way, you maximize knowledge sharing and allow everyone to learn about what that team did.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fuzzylizard.com/archives/2008/05/15/943/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>To store online or not</title>
		<link>http://www.fuzzylizard.com/archives/2008/04/11/930/</link>
		<comments>http://www.fuzzylizard.com/archives/2008/04/11/930/#comments</comments>
		<pubDate>Fri, 11 Apr 2008 05:57:41 +0000</pubDate>
		<dc:creator>Chris Johnston</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://www.fuzzylizard.com/?p=930</guid>
		<description><![CDATA[Over the last week I have been thinking about the benefits of storing data online. This includes things like email, calendar, news readers, bookmarks, and online backups. I use Google&#8217;s Gmail client. I have not opened a desktop email app in about a year. I originally made the switch because I was using several different [...]]]></description>
			<content:encoded><![CDATA[<p>Over the last week I have been thinking about the benefits of storing data online. This includes things like email, calendar, news readers, bookmarks, and online backups. </p>
<p>I use Google&#8217;s <a href="http://mail.google.com">Gmail</a> client. I have not opened a desktop email app in about a year. I originally made the switch because I was using several different computers and traveling a lot. Using Gmail allowed me to send and received email wherever I was on whatever computer I was using. The downside to this convenience is that I do not have a local backup of all my emails. A problem that is easily fixed for email, but not so easily done for things like calendars and news readers.</p>
<p>In addition to Gmail, I use &#8212; 37signals&#8217; <a href="http://www.backpackit.com/">Backpack</a> and <a href="http://www.highrisehq.com/">Highrise</a>, <a href="http://www.google.com/reader">Google reader</a>, and <a href="http://calendar.google.com">Google Calendar</a>. The data in the apps is not as easily replicated without entering it twice.</p>
<p>The last area I have been thinking about is online backups. I have looked at two companies; <a href="http://mozy.com/">Mozy.com</a> (I am trying their free account now) and <a href="http://elephantdrive.com/">ElephantDrive.com</a>. Both have very attractive plans at reasonable rates. The upside is that they provide offsite backup which is good to have. The downside is that if I ever loose my data locally, I may have to download 50 Gigs of data one file at a time. It almost makes more sense to buy a terabyte drive, fill it up, and store it in a bank vault.</p>
<p>The question I would like to pose is what do people think, do you use online applications or do you put all your data on your computer? In this age of online computing, does it makes sense to have all your data online, or is there still a place for desktop email clients and news readers?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fuzzylizard.com/archives/2008/04/11/930/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>New Year&#8217;s Story Cards (aka, resolutions)</title>
		<link>http://www.fuzzylizard.com/archives/2008/01/10/918/</link>
		<comments>http://www.fuzzylizard.com/archives/2008/01/10/918/#comments</comments>
		<pubDate>Thu, 10 Jan 2008 06:10:28 +0000</pubDate>
		<dc:creator>Chris Johnston</dc:creator>
				<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://www.fuzzylizard.com/archives/2008/01/10/918/</guid>
		<description><![CDATA[I have decided this year to set myself three New Year&#8217;s projects/story cards. Instead of creating some vague resolutions that are devoid of acceptance criteria or measurable goals, I am creating story cards and projects that have tangible and visible results. Blog a minimum of once a week. Resurrect my TeamDocs open source project and [...]]]></description>
			<content:encoded><![CDATA[<p>I have decided this year to set myself three New Year&#8217;s projects/story cards. Instead of creating some vague resolutions that are devoid of acceptance criteria or measurable goals, I am creating story cards and projects that have tangible and visible results. </p>
<ol>
<li>Blog a minimum of once a week.</li>
<li>Resurrect my <a href="http://code.google.com/p/teamdocs/">TeamDocs</a> open source project and bring it to a 1.0 release</li>
<li>Create and release my first <a href="http://www.rubyonrails.org/">Ruby on Rails</a> project</li>
</ol>
<p>I am also going to manage these three goals as one would manage projects. I am not sure if I am going to use <a href="http://www.basecamphq.com/">Basecamp</a> or some other software. For <a href="http://code.google.com/p/teamdocs/">TeamDocs</a>, I will probably use the space on Google Code. This means I will be updating the website and checking in new code in the very near future.</p>
<p>As for the third project, more information on that will come. I am not sure if I am going to make it open source or try to release a hosted web application.</p>
<p>I took a look back at 2007 and realized that I had not really accomplished anything. In a nutshell, 2007 was mostly a brain-dead year for me. I made the mistake of relying on all my learning coming from work. Although I have learned lots of things little of it was technical. Instead, most of it was people or soft-skills. This was a mistake on my part; no one should ever rely on their work as their sole source for learning.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fuzzylizard.com/archives/2008/01/10/918/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

