<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.dovetailsoftware.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Steven "Doc" List, Agile Novice</title><link>http://blogs.dovetailsoftware.com/blogs/slist/default.aspx</link><description>VP of Software Development learning to be agile</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.2)</generator><item><title>I Know and You Don't</title><link>http://blogs.dovetailsoftware.com/blogs/slist/archive/2008/02/13/i-know-and-you-don-t.aspx</link><pubDate>Wed, 13 Feb 2008 20:03:21 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:11008</guid><dc:creator>slist</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.dovetailsoftware.com/blogs/slist/comments/11008.aspx</comments><wfw:commentRss>http://blogs.dovetailsoftware.com/blogs/slist/commentrss.aspx?PostID=11008</wfw:commentRss><wfw:comment>http://blogs.dovetailsoftware.com/blogs/slist/rsscomments.aspx?PostID=11008</wfw:comment><description>&lt;p&gt;Today I gave a luncheon talk to a local networking group. The topic was &lt;em&gt;Full Circle Electronic Marketing&lt;/em&gt;&lt;sup&gt;&lt;em&gt;tm&lt;/em&gt;&lt;/sup&gt;.&lt;/p&gt;  &lt;p&gt;While I do have some expertise in this area, what struck me was the attendees' &lt;em&gt;perception&lt;/em&gt; of my expertise. What set us apart is that &lt;em&gt;I know and they don't&lt;/em&gt;.&lt;/p&gt;  &lt;p&gt;I don't mean that to sound arrogant or obnoxious. Just a statement of fact.&lt;/p&gt;  &lt;p&gt;Is this a key aspect of &amp;quot;expertise&amp;quot; - something that I know that you don't?&lt;/p&gt;  &lt;p&gt;How should this idea inform our work?&lt;/p&gt;  &lt;p&gt;We build CRM software. &lt;em&gt;Our&lt;/em&gt; customers provide expertise to &lt;em&gt;their&lt;/em&gt; customers. Their customers expect them to have knowledge and skills that those customers need.&lt;/p&gt;  &lt;p&gt;Should this idea inform our design and implementation decisions?&lt;/p&gt;  &lt;p&gt;I think it should. My experience is that people are frequently unhappy about having to ask for help, about having to depend on someone else. If we can find ways to make that less so - make it pleasant, maybe even enjoyable - I believe that we will achieve ongoing success.&lt;/p&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=11008" width="1" height="1"&gt;</description><category domain="http://blogs.dovetailsoftware.com/blogs/slist/archive/tags/marketing/default.aspx">marketing</category><category domain="http://blogs.dovetailsoftware.com/blogs/slist/archive/tags/knowledge/default.aspx">knowledge</category><category domain="http://blogs.dovetailsoftware.com/blogs/slist/archive/tags/expertise/default.aspx">expertise</category><category domain="http://blogs.dovetailsoftware.com/blogs/slist/archive/tags/customer+service/default.aspx">customer service</category><category domain="http://blogs.dovetailsoftware.com/blogs/slist/archive/tags/service/default.aspx">service</category></item><item><title>Endings and Beginnings</title><link>http://blogs.dovetailsoftware.com/blogs/slist/archive/2008/02/11/endings-and-beginnings.aspx</link><pubDate>Mon, 11 Feb 2008 21:55:00 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:11000</guid><dc:creator>slist</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.dovetailsoftware.com/blogs/slist/comments/11000.aspx</comments><wfw:commentRss>http://blogs.dovetailsoftware.com/blogs/slist/commentrss.aspx?PostID=11000</wfw:commentRss><wfw:comment>http://blogs.dovetailsoftware.com/blogs/slist/rsscomments.aspx?PostID=11000</wfw:comment><description>&lt;p&gt;From &lt;em&gt;Teamwork Is an Individual Skill&lt;/em&gt; by Christopher Avery:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;I won't pretend we can do much to avoid endings. They are as inevitable as beginnings. But I have observed that we can improve the quality of endings by avoiding three things:&lt;/p&gt;    &lt;ol&gt;     &lt;li&gt;Burning bridges&lt;/li&gt;      &lt;li&gt;Harming reputations&lt;/li&gt;      &lt;li&gt;Being inhumane to oneself and others&lt;/li&gt;   &lt;/ol&gt; &lt;/blockquote&gt;  &lt;p&gt;Reading this took me back to the first time I was an owner of a company. I had a partner, Duane Roberts, who is 12 years older than me. Our company was what would be called an outsource software developer these days, based in Silicon Valley. We had one customer who was becoming very troublesome and obnoxious.&lt;/p&gt;  &lt;p&gt;I wanted to just cut them off and tell them what I thought of them.&lt;/p&gt;  &lt;p&gt;Duane said &amp;quot;don't burn your bridges - you never know when it'll come back to bite you.&amp;quot;&lt;/p&gt;  &lt;p&gt;Wise man, Duane.&lt;/p&gt;  &lt;p&gt;It's so easy to leave the intimacy of a team, relationship, environment and figure you're just done. &amp;quot;Ah, hell, I'm gone - I don't have to worry about being &lt;em&gt;nice&lt;/em&gt; anymore!&amp;quot;&lt;/p&gt;  &lt;p&gt;Not so. You never know when someone you used to work with will be in a position to make a difference in your life or career.&lt;/p&gt;  &lt;p&gt;The golden rule: treat others as you would like to be treated (my phrasing).&lt;/p&gt;  &lt;p&gt;The platinum rule: treat others as they would like to be treated (also my phrasing).&lt;/p&gt;  &lt;p&gt;I don't know of any rules that say &amp;quot;treat others like crap.&amp;quot;&lt;/p&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=11000" width="1" height="1"&gt;</description><category domain="http://blogs.dovetailsoftware.com/blogs/slist/archive/tags/communication/default.aspx">communication</category><category domain="http://blogs.dovetailsoftware.com/blogs/slist/archive/tags/teaming/default.aspx">teaming</category><category domain="http://blogs.dovetailsoftware.com/blogs/slist/archive/tags/christopher+avery/default.aspx">christopher avery</category><category domain="http://blogs.dovetailsoftware.com/blogs/slist/archive/tags/relationships/default.aspx">relationships</category><category domain="http://blogs.dovetailsoftware.com/blogs/slist/archive/tags/respect/default.aspx">respect</category><category domain="http://blogs.dovetailsoftware.com/blogs/slist/archive/tags/teamwork/default.aspx">teamwork</category></item><item><title>Looking for an Agile Architect</title><link>http://blogs.dovetailsoftware.com/blogs/slist/archive/2008/02/06/looking-for-an-agile-architect.aspx</link><pubDate>Wed, 06 Feb 2008 20:49:00 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:10994</guid><dc:creator>slist</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.dovetailsoftware.com/blogs/slist/comments/10994.aspx</comments><wfw:commentRss>http://blogs.dovetailsoftware.com/blogs/slist/commentrss.aspx?PostID=10994</wfw:commentRss><wfw:comment>http://blogs.dovetailsoftware.com/blogs/slist/rsscomments.aspx?PostID=10994</wfw:comment><description>&lt;p&gt;Job posting is below.&amp;nbsp; Here are some of our references for this position:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.agilearchitect.org/agile/index.asp" title="http://www.agilearchitect.org/agile/index.asp"&gt;http://www.agilearchitect.org/agile/index.asp&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.agiledata.org/essays/enterpriseArchitecture.html" title="http://www.agiledata.org/essays/enterpriseArchitecture.html"&gt;http://www.agiledata.org/essays/enterpriseArchitecture.html&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;Agile Application Architect&lt;/h3&gt;  &lt;p&gt;Are you experienced with enterprise applications, tiered architecture, agile development, and Ruby on Rails? &lt;/p&gt;&lt;p&gt;Do you communicate well, work well in a team, and get satisfaction from both architecture AND hands-on development? &lt;/p&gt;&lt;p&gt;Are you able to translate business requirements and product vision into application architecture?&amp;nbsp; &lt;/p&gt;&lt;p&gt;If so, maybe you are just the person we’re looking for at Dovetail Software.&lt;/p&gt;  &lt;p&gt;&lt;a href="mailto:tech-jobs@dovetailsoftware.com"&gt;Send us a cover note&lt;/a&gt; telling us why you’re the person we need, and include your resume.&lt;/p&gt;  &lt;h4&gt;Agile Software Development&lt;/h4&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoPlainText"&gt;Dovetail software is a leading company in Customer Support &amp;amp; Service and Case Management systems&lt;br&gt; &lt;/p&gt;

&lt;p class="MsoPlainText"&gt;As an architect at Dovetail Software you will be expected
to:&lt;/p&gt;



&lt;ul&gt;&lt;li&gt;Define Customization, Extensibility and Integration
API's.&lt;/li&gt;&lt;li&gt;Talk to the business to understand business and technical
requirements.&lt;/li&gt;&lt;li&gt;Translate business requirements and product vision into
application architecture. &lt;/li&gt;&lt;li&gt;Communicate technical constraints and decisions to the business.&lt;/li&gt;&lt;li&gt;Define technical infrastructure.&lt;/li&gt;&lt;li&gt;Contribute as a hands-on developer.&lt;/li&gt;&lt;li&gt;Be able to clearly convey technical ideas to the
development team.&lt;/li&gt;&lt;/ul&gt;













  &lt;p&gt;Work for one of the most progressive development shops in the US, building a new software product line with pioneering technologies. &lt;/p&gt;  &lt;h5&gt;Experience in the following is a must:&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;Application Architecture using enterprise technologies&lt;br&gt;&lt;/li&gt;&lt;li&gt;Test-driven development &lt;/li&gt;            &lt;li&gt;Domain-driven design &lt;/li&gt;        &lt;li&gt;Ruby on Rails&lt;/li&gt;&lt;li&gt;Familiar with multiple programming paradigms&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;h5&gt;Experience in the following tools and technologies is a plus:&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;Continuous integration&lt;/li&gt;&lt;li&gt;Watir &lt;/li&gt;    &lt;li&gt;HTML, CSS, JavaScript &lt;/li&gt;    &lt;li&gt;CruiseControl.rb&lt;/li&gt;    &lt;li&gt;Subversion&lt;/li&gt;    &lt;li&gt;Mingle&lt;/li&gt;    &lt;li&gt;Capistrano / deployment tools&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Who we’re looking for&lt;/b&gt; || Dovetail Software is enhancing our team for an innovative software project. We’re looking for someone with a deep understanding of software architecture and design to work in our agile development lab in Austin, TX. We take these truths to be self-evident:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;You are already versed in patterns&lt;/li&gt;    &lt;li&gt;You write tests&lt;/li&gt;    &lt;li&gt;You believe that learning is a primary responsibility&lt;/li&gt;    &lt;li&gt;You understand that code is for communicating with other people rather than a compiler&lt;/li&gt;    &lt;li&gt;You understand that an application architect holds the vision of the product, jointly with the product manager and the business&lt;/li&gt;    &lt;li&gt;You are driven to translate the product vision into a product that exceeds all expectations&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;We’re hiring motivated people for a terrific opportunity with a team of recognized agile community leaders. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Our development methodology&lt;/b&gt; || We are a Scrum/XP shop. We work in one-week iterations and hold daily stand-ups. We have a collaborative relationship with our customers and a full-time, in-team product manager. We write tests before we write functional code to clarify our design intentions. We keep the build clean. We work in an environment that maximizes communication to minimize the volume of spec documents. We build software that can effectively respond to change. We use open source tools where appropriate, and proprietary tools where they make sense. We have executive support and visibility throughout the company. &lt;/p&gt;  &lt;p&gt;Email us and tell us why you’d make a great addition to our team: &lt;a href="mailto:tech-jobs@dovetailsoftware.com"&gt;tech-jobs@dovetailsoftware.com&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=10994" width="1" height="1"&gt;</description><category domain="http://blogs.dovetailsoftware.com/blogs/slist/archive/tags/agile/default.aspx">agile</category><category domain="http://blogs.dovetailsoftware.com/blogs/slist/archive/tags/leadership/default.aspx">leadership</category><category domain="http://blogs.dovetailsoftware.com/blogs/slist/archive/tags/work/default.aspx">work</category><category domain="http://blogs.dovetailsoftware.com/blogs/slist/archive/tags/opportunity/default.aspx">opportunity</category><category domain="http://blogs.dovetailsoftware.com/blogs/slist/archive/tags/job+opening/default.aspx">job opening</category><category domain="http://blogs.dovetailsoftware.com/blogs/slist/archive/tags/architect/default.aspx">architect</category></item><item><title>Lots of Events Coming Up</title><link>http://blogs.dovetailsoftware.com/blogs/slist/archive/2008/02/05/lots-of-events-coming-up.aspx</link><pubDate>Tue, 05 Feb 2008 16:45:50 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:10988</guid><dc:creator>slist</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.dovetailsoftware.com/blogs/slist/comments/10988.aspx</comments><wfw:commentRss>http://blogs.dovetailsoftware.com/blogs/slist/commentrss.aspx?PostID=10988</wfw:commentRss><wfw:comment>http://blogs.dovetailsoftware.com/blogs/slist/rsscomments.aspx?PostID=10988</wfw:comment><description>&lt;p&gt;Having entered the Agile community last summer, it seems I have both embraced and been embraced by that community, and some extensions of it.&amp;#160; Here's what's coming up:&lt;/p&gt;  &lt;h3&gt;APLN Leadership Summit, Dallas, TX, February 21-22&lt;/h3&gt;  &lt;p&gt;I'll be on a lunch panel talking about &amp;quot;What Keeps You Awake At Night&amp;quot;. Apparently my blogging convinced someone that I'd be interesting on a panel. Go figure.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://apln.org/summits.html" target="_blank"&gt;Learn more&lt;/a&gt;.&lt;/p&gt;  &lt;h3&gt;Microsoft Global MVP Summit, Seattle, WA, April 14-17&lt;/h3&gt;  &lt;p&gt;No, I'm not a Microsoft MVP. But I've been invited to facilitate one of the tracks as an Open Space, based on my work at the first Alt.NET conference here in Austin, TX.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://mvp.support.microsoft.com/MVPsummit" target="_blank"&gt;Learn more&lt;/a&gt;.&lt;/p&gt;  &lt;h3&gt;ALT.NET Conference, Seattle, WA, April 18-20&lt;/h3&gt;  &lt;p&gt;Following the Microsoft Global MVP Summit, the ALT.NET community is holding another conference. They, too, have invited me to facilitate their Open Space.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://altdotnet.org/events/seattle/" target="_blank"&gt;Learn more&lt;/a&gt;.&lt;/p&gt;  &lt;h3&gt;Agile2008, Toronto, Canada, August 4-8&lt;/h3&gt;  &lt;p&gt;This one's not a done deal (yet), but &lt;a href="http://judykat.com/ken/" target="_blank"&gt;Ken Judy&lt;/a&gt; and I have proposed &lt;a href="http://submissions.agile2008.org/node/1573" target="_blank"&gt;a session on ethics in agile practice&lt;/a&gt;.&amp;#160; &lt;a href="http://judykat.com/ken/2008/01/28/ethical-dilemmas-and-agile-software-development/" target="_blank"&gt;I'll let Ken tell you all about it&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=10988" width="1" height="1"&gt;</description><category domain="http://blogs.dovetailsoftware.com/blogs/slist/archive/tags/agile/default.aspx">agile</category><category domain="http://blogs.dovetailsoftware.com/blogs/slist/archive/tags/open+space/default.aspx">open space</category><category domain="http://blogs.dovetailsoftware.com/blogs/slist/archive/tags/conference/default.aspx">conference</category><category domain="http://blogs.dovetailsoftware.com/blogs/slist/archive/tags/calendar/default.aspx">calendar</category><category domain="http://blogs.dovetailsoftware.com/blogs/slist/archive/tags/schedule/default.aspx">schedule</category></item><item><title>What's In It For Them?</title><link>http://blogs.dovetailsoftware.com/blogs/slist/archive/2008/02/04/what-s-in-it-for-them.aspx</link><pubDate>Mon, 04 Feb 2008 20:01:25 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:10985</guid><dc:creator>slist</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.dovetailsoftware.com/blogs/slist/comments/10985.aspx</comments><wfw:commentRss>http://blogs.dovetailsoftware.com/blogs/slist/commentrss.aspx?PostID=10985</wfw:commentRss><wfw:comment>http://blogs.dovetailsoftware.com/blogs/slist/rsscomments.aspx?PostID=10985</wfw:comment><description>&lt;p&gt;As I'm reading (and sometimes re-reading) &lt;a href="http://www.christopheravery.com/blog/" target="_blank"&gt;Christopher Avery&lt;/a&gt;'s wonderful book &lt;em&gt;&lt;a href="http://www.amazon.com/Teamwork-Individual-Skill-Getting-Responsibility/dp/1576751554/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1202154965&amp;amp;sr=1-1" target="_blank"&gt;Teamwork Is An Individual Skill&lt;/a&gt;&lt;/em&gt;, my thinking gets stimulated. I really like Avery's perspective on things that relate to teamwork, team building, and our personal responsibility.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Here's a great excerpt:&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Examine the logic contained in the following five statements:&lt;/p&gt;    &lt;ol&gt;     &lt;li&gt;Everyone alive has hopes, dreams, and wants for themselves.&lt;/li&gt;      &lt;li&gt;People who have no hopes, dreams, or wants are dead.&lt;/li&gt;      &lt;li&gt;When people get out of bed and go to work, they have linked what they are going to do that day to their hopes, dreams, and wants in a way that makes sense to them. Or they wouldn't get up, would they?&lt;/li&gt;      &lt;li&gt;Therefore, all of us have our own excellent reasons for investing in work projects--even if we have learned to deny or hide those reasons, sometimes even from ourselves.&lt;/li&gt;      &lt;li&gt;The best way for me to serve fellow workers is to help them uncover and focus on their own motivations--even if they attempt to convince me they have none.&lt;/li&gt;   &lt;/ol&gt;    &lt;p&gt;If you agree with this logic, you can stop trying to dictate other people's motivation today. The next time you need to motivate someone, try asking, &amp;quot;What's in it for you to work on this project with this team?&amp;quot; and &lt;em&gt;keep the other person in conversation&lt;/em&gt; until he comes up with the personal benefits that motivate him.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;Isn't that simple and lovely, yet exceptional. &lt;em&gt;Ask the other person for their motivations.&lt;/em&gt; How well that ties into the concepts of teamwork.&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=10985" width="1" height="1"&gt;</description><category domain="http://blogs.dovetailsoftware.com/blogs/slist/archive/tags/agile/default.aspx">agile</category><category domain="http://blogs.dovetailsoftware.com/blogs/slist/archive/tags/teaming/default.aspx">teaming</category><category domain="http://blogs.dovetailsoftware.com/blogs/slist/archive/tags/christopher+avery/default.aspx">christopher avery</category><category domain="http://blogs.dovetailsoftware.com/blogs/slist/archive/tags/relationships/default.aspx">relationships</category><category domain="http://blogs.dovetailsoftware.com/blogs/slist/archive/tags/teamwork/default.aspx">teamwork</category><category domain="http://blogs.dovetailsoftware.com/blogs/slist/archive/tags/motivation/default.aspx">motivation</category><category domain="http://blogs.dovetailsoftware.com/blogs/slist/archive/tags/team/default.aspx">team</category></item><item><title>Working Through the Railscasts - #17 - HABTM Checkboxes</title><link>http://blogs.dovetailsoftware.com/blogs/slist/archive/2007/12/31/working-through-the-railscasts-17-habtm-checkboxes.aspx</link><pubDate>Mon, 31 Dec 2007 21:10:00 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:10899</guid><dc:creator>slist</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.dovetailsoftware.com/blogs/slist/comments/10899.aspx</comments><wfw:commentRss>http://blogs.dovetailsoftware.com/blogs/slist/commentrss.aspx?PostID=10899</wfw:commentRss><wfw:comment>http://blogs.dovetailsoftware.com/blogs/slist/rsscomments.aspx?PostID=10899</wfw:comment><description>&lt;p&gt;This one is just cool! I knew that there had to be simple and elegant ways of working with checkboxes on forms, but had no idea how to do it.&lt;/p&gt;  &lt;p&gt;One of the great values of watching all the Railscasts is that I'm gaining a greater understanding of what we can do with this technology / framework. Rather than saying "Gee, it'd be nice if...", I'll be able to say "Y'know, I saw in Railscast that we can..."&lt;/p&gt;  &lt;p&gt;This may annoy my developers, but it'll make &lt;i&gt;me&lt;/i&gt; quite happy.&lt;/p&gt;  &lt;p&gt;Anyway, back to this 'cast, I now understand that &lt;b&gt;I can easily use the has_and_belongs_to_many association to drive some fairly simple code to present checkboxes and use those checkboxes to persist many-to-many&lt;/b&gt; relationships.&lt;/p&gt;  &lt;p&gt;Most cool.&lt;/p&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=10899" width="1" height="1"&gt;</description></item><item><title>Working Through the Railscasts - #14 - Performing Calculations on Models</title><link>http://blogs.dovetailsoftware.com/blogs/slist/archive/2007/12/31/working-through-the-railscasts-14-performing-calculations-on-models.aspx</link><pubDate>Mon, 31 Dec 2007 17:58:00 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:10898</guid><dc:creator>slist</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.dovetailsoftware.com/blogs/slist/comments/10898.aspx</comments><wfw:commentRss>http://blogs.dovetailsoftware.com/blogs/slist/commentrss.aspx?PostID=10898</wfw:commentRss><wfw:comment>http://blogs.dovetailsoftware.com/blogs/slist/rsscomments.aspx?PostID=10898</wfw:comment><description>&lt;p&gt;It continues to amaze me how much &lt;i&gt;stuff&lt;/i&gt; the Rails team has built into Rails.&lt;/p&gt;  &lt;p&gt;In this case, it's being able to &lt;a href="http://railscasts.com/episodes/14" target="_blank"&gt;perform calculations on collections of model objects&lt;/a&gt;. While you can do that in any language, it usually requires a block of code.&lt;/p&gt;  &lt;p&gt;In this Railscast, Ryan shows us how you can do it with a single method, like&lt;/p&gt;  &lt;div style="border:1px solid gray;margin:20px 0px 10px;padding:4px;overflow:auto;font-size:8pt;width:97.5%;cursor:text;max-height:200px;line-height:12pt;font-family:consolas,'Courier New',courier,monospace;"&gt;   &lt;div style="border-style:none;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,'Courier New',courier,monospace;"&gt;     &lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,'Courier New',courier,monospace;background-color:white;"&gt;&lt;span&gt;   1:&lt;/span&gt; Tasks.sum&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;The implications are wonderful. Now I just need to look up the list of all of them - yet another opportunity to read the Rdocs! (Yes, really - I like it)&lt;/p&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=10898" width="1" height="1"&gt;</description></item><item><title>Working Through the Railscasts - #2 - Dynamic find_by Methods</title><link>http://blogs.dovetailsoftware.com/blogs/slist/archive/2007/12/31/working-through-the-railscasts-dynamic-find-by-methods.aspx</link><pubDate>Mon, 31 Dec 2007 17:18:00 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:10897</guid><dc:creator>slist</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.dovetailsoftware.com/blogs/slist/comments/10897.aspx</comments><wfw:commentRss>http://blogs.dovetailsoftware.com/blogs/slist/commentrss.aspx?PostID=10897</wfw:commentRss><wfw:comment>http://blogs.dovetailsoftware.com/blogs/slist/rsscomments.aspx?PostID=10897</wfw:comment><description>&lt;p&gt;Continuing with the &lt;a href="http://railscasts.com/episodes;archive" target="_blank"&gt;Railscasts&lt;/a&gt;, I found a good lesson through the example of &lt;b&gt;&lt;a href="http://railscasts.com/episodes/2" target="_blank"&gt;Railscast #2, Dynamic find_by Methods&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;  &lt;p&gt;The specific technical content was nothing new to me - the idea that &lt;b&gt;there are many variations on the find_by method,&lt;/b&gt; and that there are some fun and effective ways to use them. If, however, you haven't gotten your head around this feature of Rails, do so now!&lt;/p&gt;  &lt;p&gt;What happened, though, was that I decided to look at how we are using various find_by methods in our code. &lt;b&gt;I came upon a controller method that included exactly two statements, like this:&lt;/b&gt;&lt;/p&gt;  &lt;div style="border:1px solid gray;margin:20px 0px 10px;padding:4px;overflow:auto;font-size:8pt;width:97.5%;cursor:text;max-height:200px;line-height:12pt;font-family:consolas,'Courier New',courier,monospace;"&gt;   &lt;div style="border-style:none;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,'Courier New',courier,monospace;"&gt;     &lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,'Courier New',courier,monospace;background-color:white;"&gt;&lt;span&gt;   1:&lt;/span&gt; a = A.find(&lt;span&gt;params&lt;/span&gt;[:id])&lt;/pre&gt;

    &lt;pre style="border-style:none;margin:0em;padding:0px;overflow:visible;font-size:8pt;width:100%;color:black;line-height:12pt;font-family:consolas,'Courier New',courier,monospace;"&gt;&lt;span&gt;   2:&lt;/span&gt; b = B.find &lt;span&gt;params&lt;/span&gt;[:id]&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Of course, I already knew that in most cases, &lt;b&gt;parentheses around method arguments are optional&lt;/b&gt;. As an older programmer (wheeze, cough), I &lt;i&gt;like&lt;/i&gt; parentheses - they neatly encapsulate the arguments and make for clear reading, &lt;i&gt;to me&lt;/i&gt;. However, I accept that there's a different kind of readability that comes with a language that doesn't require them.&lt;/p&gt;

&lt;p&gt;Rails had, before 2.0, been seemingly somewhat inconsistent about when it did and did not require parentheses. At least, it seemed inconsistent &lt;i&gt;to me&lt;/i&gt;.&lt;/p&gt;

&lt;p&gt;Regardless of that, &lt;b&gt;my problem was in seeing two lines of code, one directly below the other, that did the same thing on two different models with two different coding approaches.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Given that not only our development team, but our customers, will be reading this code, &lt;b&gt;a certain consistency seems to me to be of value&lt;/b&gt;.&lt;/p&gt;

&lt;p&gt;So while I didn't learn anything new about find_by methods from this Railscast, I did have an opportunity to add something to our discussion of our programming &lt;i&gt;style.&lt;/i&gt;&lt;/p&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=10897" width="1" height="1"&gt;</description></item><item><title>Working Through RailsCasts - Picking Tasty Tidbits</title><link>http://blogs.dovetailsoftware.com/blogs/slist/archive/2007/12/31/working-through-railscasts-picking-tasty-tidbits.aspx</link><pubDate>Mon, 31 Dec 2007 17:03:00 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:10896</guid><dc:creator>slist</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.dovetailsoftware.com/blogs/slist/comments/10896.aspx</comments><wfw:commentRss>http://blogs.dovetailsoftware.com/blogs/slist/commentrss.aspx?PostID=10896</wfw:commentRss><wfw:comment>http://blogs.dovetailsoftware.com/blogs/slist/rsscomments.aspx?PostID=10896</wfw:comment><description>&lt;p&gt;&lt;b&gt;I'm slowly working my way through all of the &lt;/b&gt;&lt;a href="http://railscasts.com/episodes;archive" target="_blank"&gt;&lt;b&gt;Railscasts&lt;/b&gt;&lt;/a&gt;, with the goal of being able to understand more of what the team is up to, and maybe suggest some changes.&lt;/p&gt;  &lt;p&gt;Thanks to a suggestion by my friend &lt;a href="http://www.lukemelia.com/blog/" target="_blank"&gt;&lt;b&gt;Luke Melia&lt;/b&gt;&lt;/a&gt;, I'm going to identify my favorite tips and tidbits, and share my thoughts about why they're my favorites. This forces me to tread carefully the line between "I'm a techie/programmer" and "I'm a manager of an agile team". Hopefully, I'll manage okay.&lt;/p&gt;  &lt;p&gt;I'm delighted to say that my first favorite tidbit comes from &lt;b&gt;the first Railscast from March, 2007 titled "&lt;/b&gt;&lt;a href="http://railscasts.com/episodes/1" target="_blank"&gt;&lt;b&gt;Caching with Instance Variables&lt;/b&gt;&lt;/a&gt;&lt;b&gt;"&lt;/b&gt;. I should mention that the Railscasts are the work of &lt;a href="http://www.workingwithrails.com/person/6491-ryan-bates" target="_blank"&gt;&lt;b&gt;Ryan Bates&lt;/b&gt;&lt;/a&gt;, who is a Rails Core Contributor, among other claims to fame.&lt;/p&gt;  &lt;p&gt;In the first Railscast, Ryan suggests that it's more efficient to cache user information in the Application Controller rather than pulling it out of the database every time you need it.&lt;/p&gt;  &lt;p&gt;This rang a bell for me, since we have a nifty current_user helper that is pulling the user info from the database every time it's invoked. While usage is not a big deal right now, while we're in development, it could become so later on. And while we may eliminate this helper later on, why not use good practices now?&lt;/p&gt;  &lt;p&gt;There was an additional lesson in this for me - that &lt;b&gt;the Application is instantiated for each session&lt;/b&gt;, so storing the user in a cached instance variable makes sense. It may seem obvious, but I hadn't really thought about it before, and since we hadn't used any instance variables in the Application controller, I had no examples to lead me to ask the question.&lt;/p&gt;  &lt;p&gt;I checked in with my team, and asked if there was any reason we &lt;i&gt;shouldn't&lt;/i&gt; use this technique. The answer? &lt;i&gt;Try it and run the tests and if it passes, then it's okay.&lt;/i&gt; I did, they did, and it is.&lt;/p&gt;  &lt;p&gt;Thanks, Ryan!&lt;/p&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=10896" width="1" height="1"&gt;</description></item><item><title>How does an office move affect the team?</title><link>http://blogs.dovetailsoftware.com/blogs/slist/archive/2007/12/04/how-does-an-office-move-affect-the-team.aspx</link><pubDate>Tue, 04 Dec 2007 15:33:00 GMT</pubDate><guid isPermaLink="false">5c171a62-8cd2-4aac-8f20-46c3ac3f3269:10755</guid><dc:creator>slist</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.dovetailsoftware.com/blogs/slist/comments/10755.aspx</comments><wfw:commentRss>http://blogs.dovetailsoftware.com/blogs/slist/commentrss.aspx?PostID=10755</wfw:commentRss><wfw:comment>http://blogs.dovetailsoftware.com/blogs/slist/rsscomments.aspx?PostID=10755</wfw:comment><description>&lt;p&gt;We moved our office last week. In spite of everyone's best intentions, it was hard NOT to have the planning and preparation for the move affect the team.&lt;/p&gt;&lt;p&gt;Velocity is down.&lt;/p&gt;&lt;p&gt;People were distracted.&lt;/p&gt;&lt;p&gt;Then we get into the new office, and the space had to be arranged to suit the team, furniture reconfigured, equipment hooked up, and so on.&lt;/p&gt;&lt;p&gt;Some folks fell right back into their work patterns, just in a different location. Others took more time to get everything arranged, help out with moving stuff around, and generally get ready to get back to work.&lt;/p&gt;&lt;p&gt;I'm wondering how much of this is in any way specifically relevant to agileness.&lt;br&gt;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://blogs.dovetailsoftware.com/aggbug.aspx?PostID=10755" width="1" height="1"&gt;</description></item></channel></rss>