<?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>Pivotal Labs &#187; Trace Wax</title>
	<atom:link href="http://pivotallabs.com/author/twax/feed/" rel="self" type="application/rss+xml" />
	<link>http://pivotallabs.com</link>
	<description>Agility Developed</description>
	<lastBuildDate>Tue, 21 May 2013 16:50:52 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Put the User in User Stories</title>
		<link>http://pivotallabs.com/put-the-user-in-user-stories/</link>
		<comments>http://pivotallabs.com/put-the-user-in-user-stories/#comments</comments>
		<pubDate>Tue, 21 May 2013 00:43:16 +0000</pubDate>
		<dc:creator>Trace Wax</dc:creator>
				<category><![CDATA[Labs]]></category>
		<category><![CDATA[ironblogger]]></category>
		<category><![CDATA[lean]]></category>
		<category><![CDATA[lean development]]></category>
		<category><![CDATA[pivotal tracker]]></category>
		<category><![CDATA[user story]]></category>
		<category><![CDATA[users]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/?p=19415</guid>
		<description><![CDATA[<p>I&#8217;ve often been in situations where people see user stories in Pivotal Tracker as just a punch list of to-dos, line items for snippets of code we can write that does one little thing in a product owner&#8217;s head. Even that much is useful for its prioritization and clarity, but thanks to a great chat last week with Lean User Experience wizard Josh Wexler, I&#8217;ve found myself paying closer attention to the reason they&#8217;re called User Stories in the first place: the users. Complicated business logic becomes much easier to grok when you have a clear scenario in mind for the person who&#8217;s using it. I was recently working on a piece of particularly thorny logic with a new client developer for Case Commons. It had to do with subtle requirements for when and how to get permission to update a foster family&#8217;s license. We read and reread the story and&#8230;</p><p>The post <a href="http://pivotallabs.com/put-the-user-in-user-stories/">Put the User in User Stories</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve often been in situations where people see user stories in Pivotal Tracker as just a punch list of to-dos, line items for snippets of code we can write that does one little thing in a product owner&#8217;s head. Even that much is useful for its prioritization and clarity, but thanks to a great chat last week with Lean User Experience wizard <a href="http://www.occomgroup.com/josh/">Josh Wexler</a>, I&#8217;ve found myself paying closer attention to the reason they&#8217;re called User Stories in the first place: the users.</p>
<p>Complicated business logic becomes much easier to grok when you have a clear scenario in mind for the person who&#8217;s using it. I was recently working on a piece of particularly thorny logic with a new client developer for <a href="http://www.casecommons.org">Case Commons</a>. It had to do with subtle requirements for when and how to get permission to update a foster family&#8217;s license. We read and reread the story and the explanation, but it was hard to communicate why we were doing the thing we needed to do. We were talking in circles, and as soon as that happened, we knew we were doing it wrong.</p>
<p>So I pulled out the <a href="http://pivotallabs.com/see-your-work-product-in-its-natural-habitat/">blog post</a> I wrote a month ago, and it turned out that my friend&#8217;s family and newly adopted children were in an almost identical scenario to the one we were working on. I pulled up pictures of my friends and their adopted kids to show to the guy I was pairing with, and described the social worker, Tania, who had connected them with their new family. From then on, it wasn&#8217;t some abstract user we were talking about, it was Tania.  My pair and I discussed what would happen if my friends became able to adopt more kids, the process Tania would have to go through to make that happen, and where that information would go on the physical, printed foster family license we were implementing. Having faces and names to go with our code made all the pieces click together, when we see as the story title in tracker: &#8220;Foster Family Licensing worker sees checklist only if capacity has changed&#8221;</p>
<p>I&#8217;m looking forward to putting more users into more user stories to make them come to life. When each story is complete, what new awesome thing will that person be able to do, and what need of theirs will it fulfill?</p>
<p>The post <a href="http://pivotallabs.com/put-the-user-in-user-stories/">Put the User in User Stories</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/put-the-user-in-user-stories/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On asking for help</title>
		<link>http://pivotallabs.com/on-asking-for-help/</link>
		<comments>http://pivotallabs.com/on-asking-for-help/#comments</comments>
		<pubDate>Tue, 14 May 2013 04:49:02 +0000</pubDate>
		<dc:creator>Trace Wax</dc:creator>
				<category><![CDATA[Labs]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/?p=19199</guid>
		<description><![CDATA[<p>Years ago in college, I took part in &#8220;The Game&#8221;: a 24-long scavenger hunt, driving all over the Bay Area, decoding clues that would lead us to the next location, each clue nerdier than the next.  If we ever got stuck, we could call Game Control and they&#8217;d help us to the next clue.  One clue was a matrix.  We figured out if we took the eigenvalues down the diagonal, it was a 10-digit phone number.  It didn&#8217;t come out right, and we spent 5 hours trying to recode and decode it.  No dice, so we finally called Game Control.  They apologized for their mistake; there was an error in the matrix, and they gave us the phone number.  It was for a bowling alley, which had just closed.  All the teams had been there a couple hours before, bowling for their next clue after having called Game Control much&#8230;</p><p>The post <a href="http://pivotallabs.com/on-asking-for-help/">On asking for help</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Years ago in college, I took part in &#8220;The Game&#8221;: a 24-long scavenger hunt, driving all over the Bay Area, decoding clues that would lead us to the next location, each clue nerdier than the next.  If we ever got stuck, we could call Game Control and they&#8217;d help us to the next clue.  One clue was a matrix.  We figured out if we took the eigenvalues down the diagonal, it was a 10-digit phone number.  It didn&#8217;t come out right, and we spent 5 hours trying to recode and decode it.  No dice, so we finally called Game Control.  They apologized for their mistake; there was an error in the matrix, and they gave us the phone number.  It was for a bowling alley, which had just closed.  All the teams had been there a couple hours before, bowling for their next clue after having called Game Control much sooner.  Our stubbornness caused us to miss out on bowling and we had to call Game Control again to get the location of the next clue.</p>
<p>Fast forward to last month.  I drink a lot of water and found myself often the one who took the last drop of water from the water cooler.  So I&#8217;d fetch and hoist the 5 gallon replacement jug from down the hall, sometimes several times per week.  I could have asked for help, but had thought, why be a bother when I can do it myself?  I didn&#8217;t really mind&#8230;until I found myself with a hernia from the lifting.  A minor outpatient surgery later, things are pretty well back to normal, but there will be no more carrying of the water jugs.</p>
<p>Fast forward to last week.  We were deep in someone else&#8217;s code and far down a rabbit hole of investigating things we didn&#8217;t quite yet understand.  There were many avenues we could explore, and we could have kept on down that rabbit hole for a long time.  But then my hernia scar twinged.  So my pair and I got up and asked the original dev, and we were on our way in minutes.</p>
<p>While the thrill of solving everything alone is tempting, we pair and share a team for a reason.  And if we need anything else, we can ask an entire office of Pivots every morning in the &#8216;helps&#8217; part of our daily standup.  Whether in a scavenger hunt, in transporting water, or in a sea of unfamiliar code, I&#8217;m looking forward to asking for help when I need it.</p>
<p>The post <a href="http://pivotallabs.com/on-asking-for-help/">On asking for help</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/on-asking-for-help/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A user metric is a terrible thing to waste</title>
		<link>http://pivotallabs.com/a-user-metric-is-a-terrible-thing-to-waste/</link>
		<comments>http://pivotallabs.com/a-user-metric-is-a-terrible-thing-to-waste/#comments</comments>
		<pubDate>Tue, 30 Apr 2013 03:59:43 +0000</pubDate>
		<dc:creator>Trace Wax</dc:creator>
				<category><![CDATA[Labs]]></category>
		<category><![CDATA[ironblogger]]></category>
		<category><![CDATA[lean]]></category>
		<category><![CDATA[metrics]]></category>
		<category><![CDATA[mvp]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/?p=18685</guid>
		<description><![CDATA[<p>When it comes to user metrics, what should you log when you don&#8217;t know what to log? Everything. When you&#8217;re first getting an MVP site off the ground, you don&#8217;t know quite what you might want to track.  And might not have time to think about it. If you log everything your users do, however, then weeks or months of data will be there for you when you need it most, to answer your questions right away.  That&#8217;s why I&#8217;m excited about companies like Heap are doing, logging every single user click. For those without Heap invites, or if you&#8217;d prefer to use Kissmetrics, I wrote a simple gem to do the same with KissMetrics, for all your user clicks that hit your web server:   km_everything. It logs all controller actions by default, but you can set up a whitelist to give them more meaningful  and product-manager friendly names, or a&#8230;</p><p>The post <a href="http://pivotallabs.com/a-user-metric-is-a-terrible-thing-to-waste/">A user metric is a terrible thing to waste</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>When it comes to user metrics, what should you log when you don&#8217;t know what to log?</p>
<p>Everything.</p>
<p>When you&#8217;re first getting an MVP site off the ground, you don&#8217;t know quite what you might want to track.  And might not have time to think about it.</p>
<p>If you log everything your users do, however, then weeks or months of data will be there for you when you need it most, to answer your questions right away.  That&#8217;s why I&#8217;m excited about companies like <a title="Heap" href="https://heapanalytics.com/">Heap</a> are doing, logging every single user click.</p>
<p>For those without Heap invites, or if you&#8217;d prefer to use <a title="KissMetrics" href="https://www.kissmetrics.com/">Kissmetrics</a>, I wrote a simple gem to do the same with KissMetrics, for all your user clicks that hit your web server:   <a title="km_everything" href="https://github.com/tracedwax/km_everything. ">km_everything</a>. It logs all controller actions by default, but you can set up a whitelist to give them more meaningful  and product-manager friendly names, or a &#8216;blacklist&#8217; to prevent certain actions from being logged that aren&#8217;t meaningful and would use too much of your KissMetrics event quota.</p>
<p>Also, from what I&#8217;ve observed on KissMetrics, server-side metrics have proven more reliable.  Metrics recorded via Javascript can be off if the user closes their browser too quickly after taking an action.  Logging the metrics server-side also won&#8217;t take up any of the user&#8217;s processing power or show signs that remind them they&#8217;re being tracked.</p>
<p>Excited about our brave new world of meaningful ad hoc analytics with reams of user data, powered by ubiquitous metrics.  This data will then show us how to make our sites even better for our users.</p>
<p>The post <a href="http://pivotallabs.com/a-user-metric-is-a-terrible-thing-to-waste/">A user metric is a terrible thing to waste</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/a-user-metric-is-a-terrible-thing-to-waste/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>See Your Work Product in Its Natural Habitat</title>
		<link>http://pivotallabs.com/see-your-work-product-in-its-natural-habitat/</link>
		<comments>http://pivotallabs.com/see-your-work-product-in-its-natural-habitat/#comments</comments>
		<pubDate>Tue, 16 Apr 2013 03:45:40 +0000</pubDate>
		<dc:creator>Trace Wax</dc:creator>
				<category><![CDATA[Labs]]></category>
		<category><![CDATA[ironblogger]]></category>
		<category><![CDATA[lean]]></category>
		<category><![CDATA[users]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/?p=18393</guid>
		<description><![CDATA[<p>I took a day off of work recently, and learned more about what I was working on than in several months of coding. My current Pivotal client project is CaseCommons, using web technology to modernize child welfare and foster care so social workers can spend more time with kids and families.  We&#8217;d just completed a large set of work about court hearings, and now I was attending one. I went to see my friends finalize their adoption of two little boys they&#8217;ve been fostering, with their wedding to immediately follow. Everything I&#8217;d done and learned paled compared to seeing the judge and social worker speak about how the kids&#8217; lives improved in my friends&#8217; care. One of the boys was in a wheelchair a year ago, and now here they were joyously laughing and running in circles around their new parents as the adoption was completed and wedding vows were&#8230;</p><p>The post <a href="http://pivotallabs.com/see-your-work-product-in-its-natural-habitat/">See Your Work Product in Its Natural Habitat</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>I took a day off of work recently, and learned more about what I was working on than in several months of coding.</p>
<p>My current Pivotal client project is <a title="Case Commons, LLC" href="http://casecommons.org">CaseCommons</a>, using web technology to modernize child welfare and foster care so social workers can spend more time with kids and families.  We&#8217;d just completed a large set of work about court hearings, and now I was attending one. I went to see my friends finalize their adoption of two little boys they&#8217;ve been fostering, with their wedding to immediately follow.</p>
<p>Everything I&#8217;d done and learned paled compared to seeing the judge and social worker speak about how the kids&#8217; lives improved in my friends&#8217; care. One of the boys was in a wheelchair a year ago, and now here they were joyously laughing and running in circles around their new parents as the adoption was completed and wedding vows were spoken.</p>
<p>I talked to the social worker at length and learned things I hadn&#8217;t yet come across, like how most adoptions are with extended family members, my friends were the exception. I also saw the clerk entering the details of the court hearing into their computer system, which looked like it hadn&#8217;t been updated since the 1990s but it still was blazing fast. They&#8217;re not using our product yet, which is much more streamlined. But they&#8217;ll expect it to be equally responsive.</p>
<p>Now, whenever I&#8217;m doing a feature or fix for social workers, I see Tania&#8217;s face as she hugs the children and speaks with my friends about the kids. When I work on court hearings, I see the clerk navigating so quickly to enter in all the many details.</p>
<p>I won&#8217;t always get to work on helping people help kids.  But when I move on to my next Pivotal project I can&#8217;t wait to set aside some time much earlier on, to look users in the eye and truly understand how what we&#8217;re building will make their lives better.</p>
<p>The post <a href="http://pivotallabs.com/see-your-work-product-in-its-natural-habitat/">See Your Work Product in Its Natural Habitat</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/see-your-work-product-in-its-natural-habitat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Student Asks about Pairing</title>
		<link>http://pivotallabs.com/a-student-asks-about-pairing/</link>
		<comments>http://pivotallabs.com/a-student-asks-about-pairing/#comments</comments>
		<pubDate>Mon, 18 Mar 2013 16:45:42 +0000</pubDate>
		<dc:creator>Trace Wax</dc:creator>
				<category><![CDATA[Labs]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/?p=16026</guid>
		<description><![CDATA[<p>I gave a talk the other day at the Flatiron School here in NY, and had a great follow-up discussion over email with one of the students, including a number of questions about Pivotal. She and I decided to open source the discussion so everyone could see one Pivot&#8217;s thoughts on the questions she had: Christina: I&#8217;m curious about pair programming and would like to learn more about your experience working at Pivotal Labs. How does pair programming actually work? Trace: Pairing just means we both work together simultaneously, but beyond that there are many ways to do it. When creating new code, a favorite idiomatic way to do it is ping-pong pairing. One person writes a test, then (sometimes) says &#8216;ping,&#8217; then the next person writes the code and the next test, then says &#8216;ping&#8217; etc. You can get a great groove going that way. There&#8217;s also &#8216;driver-navigator&#8217; where&#8230;</p><p>The post <a href="http://pivotallabs.com/a-student-asks-about-pairing/">A Student Asks about Pairing</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>I gave a talk the other day at the <a href="http://flatironschool.com/">Flatiron School</a> here in NY, and had a great follow-up discussion over email with one of the students, including a number of questions about Pivotal. She and I decided to open source the discussion so everyone could see one Pivot&#8217;s thoughts on the questions she had:</p>
<p><strong>Christina</strong>: I&#8217;m curious about pair programming and would like to learn more about your experience working at Pivotal Labs. How does pair programming actually work?</p>
<p><strong>Trace</strong>: Pairing just means we both work together simultaneously, but beyond that there are many ways to do it. When creating new code, a favorite idiomatic way to do it is ping-pong pairing. One person writes a test, then (sometimes) says &#8216;ping,&#8217; then the next person writes the code and the next test, then says &#8216;ping&#8217; etc. You can get a great groove going that way. There&#8217;s also &#8216;driver-navigator&#8217; where the navigator is the brains and doesn&#8217;t touch the keyboard, then tells the driver what to do and they type it. that&#8217;s a great way to teach and learn if the navigator has knowledge and context and the driver does not. Much of the time pairing is just free-form and collaborative, especially when planning architecture or investigating bugs.</p>
<p><strong>Christina:</strong> Do you work with the same person on every project? Do you choose who you work with?</p>
<p><strong>Trace:</strong> Our project has 20 devs in 5 teams of 4. We choose a new person to pair with every 1-3 days within our team, and rotate teams every 2-3 months. We also often cross-pair with members of other teams. At Pivotal it ranges from larger projects like mine to smaller 1-pair projects where the same two folks work together for a few weeks.</p>
<p><strong>Christina:</strong> Are you paired with someone with the same level of skills/experience?</p>
<p><strong>Trace:</strong> I&#8217;m sometimes paired with people who don&#8217;t know things I know, and I get to teach them while pairing. There are also a lot of people who know many things I don&#8217;t, and they get to teach me. Much of the time folks are about the same level but because breadth of knowledge is so vast, there are always things to teach and learn.</p>
<p><strong>Christina</strong>: What is the average length of a project? do you work on each one from start to finish or do you rotate and work on projects at various stages of development?</p>
<p><strong>Trace</strong>: Projects tend to be about 2-3 months. Some as short as 3 weeks for a startup&#8217;s Minimum Viable Product, sometimes 6 months or longer for a large government application or a project for an established business. Pivots often switch projects every three months or so, sometimes it takes a bit longer on the larger projects.</p>
<p><strong>Christina: </strong>How have you liked your experience working at Pivotal?</p>
<p><strong>Trace:</strong> &lt;3 &lt;3 !</p>
<p>The post <a href="http://pivotallabs.com/a-student-asks-about-pairing/">A Student Asks about Pairing</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/a-student-asks-about-pairing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>GORUCO 2012 Recap</title>
		<link>http://pivotallabs.com/goruco-2012-recap/</link>
		<comments>http://pivotallabs.com/goruco-2012-recap/#comments</comments>
		<pubDate>Wed, 04 Jul 2012 05:20:00 +0000</pubDate>
		<dc:creator>Trace Wax</dc:creator>
				<category><![CDATA[Labs]]></category>
		<category><![CDATA[goruco]]></category>

		<guid isPermaLink="false">http://pivotallabs.com/goruco-2012-recap/</guid>
		<description><![CDATA[<p><p>GORUCO outdid itself this year. Always the annual networking and social high point of the NYC Ruby Community, this year's talks and events exceeded my already high expectations. Here's a recap of some of the goings on: </p>

<p>Friday night, we warmed up with the GORUCO pre-party here at Pivotal Labs. Those who braved the thunderstorms to get here that night were treated to piles of chicken wings, bartenders serving directly from the Pivotal beer fridge where we all usually just help ourselves, a full open bar and some delightful Ruby-flavored conversation. I spoke with someone who had come all the way from India just to come to GORUCO, as well some of the Hungry Academy folks, up here from D.C. as a prize for winning a contest. The lights were turned on by 11pm so we could all be in good form for the long Saturday ahead of us.</p>

<p>Dr. Nic 'DrNic' Williams started us off in the morning with a talk about deployment. A key theme that stuck in my mind was to consider how the tools we use affect our thinking. For example, that's why we don't build enterprise on-prem versions of our apps. </p>

<p>Matt Wynne was next with his talk on Hexagonal Rails. He guided the way towards breaking down large interconnected Rails apps into modular, easily testable, maintainable components, making many references to Ruby's SmallTalk roots. Having recently worked on an app with a test suite that took over an hour to run, I clearly felt the pain he was describing and look forward to implementing his recommendations in upcoming projects.</p>

<p>Francis Hwang then took the stage to talk about our 'Front-End Future'. Thick Clients using Backbone.js, Ember.js and the like are becoming increasingly pervasive, and for good reason: it can make apps so responsive to users that they don't know they're using software. He described when using thick clients would or would not make sense. After the talk, there were several good-natured jokes about how much Javascript was being discussed at a Ruby conference, but that was exactly Francis's point: we can take the great values we've built as a Ruby community and continue to apply them even as we're using Javascript-based tools more and more in our apps.</p>

<p>All that was much food for thought and conversations over lunch. BBQ meat, tortillas and chips, and guacamole were all piled high with the food we got from the aptly named Mexicue. The line snaked through several rooms but moved quick, and while waiting we had a good chat about TDD in startups.</p>

<p>After lunch and later on in the afternoon there were a series of Micro talks: 10-minute talks on Javascript packaging, MacRuby, API caching and high performance caching, and several other topics. I enjoyed the format; the bite-size talks were well-prepared and were just long enough to go into some depth.</p>

<p>Justin Leitgeb had the first full-length talk of the afternoon, all about sensible testing practices, and walked us through a good mnemonic acronym to keep in mind as we write our tests. What's not to love about CUPID:
C: Consistent Distance &#40;Integration? Don't stub. Unit? Don't integrate.&#41;
U: Unstubbed. Don't stub anything that isn't yours
P: Pyramidal &#40;the most unit tests at the bottom of the pyramid, some integrated subset tests in the middle, and just a few end to end tests at the top&#41;
I: Idempotent &#40;Always run specs with --random and kiss test pollution goodbye&#41;
D: Distinct.
His talk had many quotable quotes. My favorite was: 'In a project that I worked on, one single bug caused 124 tests to fail. I was so perplexed I didn't know which bridge to jump from.'</p>

<p>David Chelimsky's presentation reminded us that while DRY stands for Don't Repeat Yourself, it really means 'Don't Repeat Yourself' unless that doesn't make sense. For example, if you reduce duplication but that creates a new dependency, that increases coupling of things that shouldn't be coupled and reduces the quality of your code. He also showed a great example where a Rails route file was de-duplicated completely, leaving a completely unreadable mess of CONST1 + CONST2 + CONST3 code on every line.</p>

<p>Jim Weirich gave the last presentation of the day, opening our eyes to the power of what Rake can do for us. For example, Rake has a lot of native support centered around file lists. He showed an example where he kept a set of images in one directory and had Rake create thumbnails for those images in another directory. Rake notices when a file hasn't changed, so running it a second time skips the thumbnails it's already built.</p>

<p><a href="http://confreaks.com/events/goruco2012">Video of all the talks</a> is available, and fellow Pivot <a href="https://pivotallabs.com/users/khicks/blog">Kris Hicks</a> uploaded his <a href="http://www.flickr.com/photos/krishicks/sets/72157630265679064">photos of the conference</a>.  Check 'em out!</p>

<p>Once the presentations were done, the GORUCO staff donned their sailor hats and we all headed over to Pier 40 to get on board our yacht cruise. Hungry devs and their significant others were talking about the best algorithm to most quickly make their way through the meat, salad, and pasta serving stations on the boat's 3 floors. The 210' vessel was brand new; the staff told us we were the first to spill our drinks on the carpet! The top-shelf open bar was well-provisioned and it's not surprising that when the very eclectic soundtrack started playing Adele's 'Someone Like You', a large group got an early start to the evening's karaoke by screaming it at the top of their lungs.  I saw the video, but it was deemed too hot for this blog post.</p>

<p>We had great conversations on that boat, technical and otherwise.  I spent a bunch of time hanging out with a large group of dev leads from NYC's hottest startups.  One guy was telling me about a day-long pairing exercise that can expand our horizons.  Can't wait to try it!</p>

<p>The boat ride ended with a pass by the Statue of Liberty, directly below a huge fireworks display.  The warm night and close view was perfection.</p>

<p>After we returned to Pier 40 and disembarked, many folks headed over to Karaoke Cave in the Village to sing until the wee hours.  I couldn't make it, but I heard that it was very fun and memorable.  So much so that the people I spoke with couldn't remember some of it! But apparently, Dr. Nic can really hold a tune.</p>

<p>Thanks again to the GORUCO organizers for putting together such a great event.  Looking forward to next year!</p> <a href="http://pivotallabs.com/goruco-2012-recap/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://pivotallabs.com/goruco-2012-recap/">GORUCO 2012 Recap</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>GORUCO outdid itself this year. Always the annual networking and social high point of the NYC Ruby Community, this year&#8217;s talks and events exceeded my already high expectations. Here&#8217;s a recap of some of the goings on: </p>
<p>Friday night, we warmed up with the GORUCO pre-party here at Pivotal Labs. Those who braved the thunderstorms to get here that night were treated to piles of chicken wings, bartenders serving directly from the Pivotal beer fridge where we all usually just help ourselves, a full open bar and some delightful Ruby-flavored conversation. I spoke with someone who had come all the way from India just to come to GORUCO, as well some of the Hungry Academy folks, up here from D.C. as a prize for winning a contest. The lights were turned on by 11pm so we could all be in good form for the long Saturday ahead of us.</p>
<p>Dr. Nic &#8216;DrNic&#8217; Williams started us off in the morning with a talk about deployment. A key theme that stuck in my mind was to consider how the tools we use affect our thinking. For example, that&#8217;s why we don&#8217;t build enterprise on-prem versions of our apps. </p>
<p>Matt Wynne was next with his talk on Hexagonal Rails. He guided the way towards breaking down large interconnected Rails apps into modular, easily testable, maintainable components, making many references to Ruby&#8217;s SmallTalk roots. Having recently worked on an app with a test suite that took over an hour to run, I clearly felt the pain he was describing and look forward to implementing his recommendations in upcoming projects.</p>
<p>Francis Hwang then took the stage to talk about our &#8216;Front-End Future&#8217;. Thick Clients using Backbone.js, Ember.js and the like are becoming increasingly pervasive, and for good reason: it can make apps so responsive to users that they don&#8217;t know they&#8217;re using software. He described when using thick clients would or would not make sense. After the talk, there were several good-natured jokes about how much Javascript was being discussed at a Ruby conference, but that was exactly Francis&#8217;s point: we can take the great values we&#8217;ve built as a Ruby community and continue to apply them even as we&#8217;re using Javascript-based tools more and more in our apps.</p>
<p>All that was much food for thought and conversations over lunch. BBQ meat, tortillas and chips, and guacamole were all piled high with the food we got from the aptly named Mexicue. The line snaked through several rooms but moved quick, and while waiting we had a good chat about TDD in startups.</p>
<p>After lunch and later on in the afternoon there were a series of Micro talks: 10-minute talks on Javascript packaging, MacRuby, API caching and high performance caching, and several other topics. I enjoyed the format; the bite-size talks were well-prepared and were just long enough to go into some depth.</p>
<p>Justin Leitgeb had the first full-length talk of the afternoon, all about sensible testing practices, and walked us through a good mnemonic acronym to keep in mind as we write our tests. What&#8217;s not to love about CUPID:<br />
C: Consistent Distance &#40;Integration? Don&#8217;t stub. Unit? Don&#8217;t integrate.&#41;<br />
U: Unstubbed. Don&#8217;t stub anything that isn&#8217;t yours<br />
P: Pyramidal &#40;the most unit tests at the bottom of the pyramid, some integrated subset tests in the middle, and just a few end to end tests at the top&#41;<br />
I: Idempotent &#40;Always run specs with &#8211;random and kiss test pollution goodbye&#41;<br />
D: Distinct.<br />
His talk had many quotable quotes. My favorite was: &#8216;In a project that I worked on, one single bug caused 124 tests to fail. I was so perplexed I didn&#8217;t know which bridge to jump from.&#8217;</p>
<p>David Chelimsky&#8217;s presentation reminded us that while DRY stands for Don&#8217;t Repeat Yourself, it really means &#8216;Don&#8217;t Repeat Yourself&#8217; unless that doesn&#8217;t make sense. For example, if you reduce duplication but that creates a new dependency, that increases coupling of things that shouldn&#8217;t be coupled and reduces the quality of your code. He also showed a great example where a Rails route file was de-duplicated completely, leaving a completely unreadable mess of CONST1 + CONST2 + CONST3 code on every line.</p>
<p>Jim Weirich gave the last presentation of the day, opening our eyes to the power of what Rake can do for us. For example, Rake has a lot of native support centered around file lists. He showed an example where he kept a set of images in one directory and had Rake create thumbnails for those images in another directory. Rake notices when a file hasn&#8217;t changed, so running it a second time skips the thumbnails it&#8217;s already built.</p>
<p><a href="http://confreaks.com/events/goruco2012">Video of all the talks</a> is available, and fellow Pivot <a href="https://pivotallabs.com/users/khicks/blog">Kris Hicks</a> uploaded his <a href="http://www.flickr.com/photos/krishicks/sets/72157630265679064">photos of the conference</a>.  Check &#8216;em out!</p>
<p>Once the presentations were done, the GORUCO staff donned their sailor hats and we all headed over to Pier 40 to get on board our yacht cruise. Hungry devs and their significant others were talking about the best algorithm to most quickly make their way through the meat, salad, and pasta serving stations on the boat&#8217;s 3 floors. The 210&#8242; vessel was brand new; the staff told us we were the first to spill our drinks on the carpet! The top-shelf open bar was well-provisioned and it&#8217;s not surprising that when the very eclectic soundtrack started playing Adele&#8217;s &#8216;Someone Like You&#8217;, a large group got an early start to the evening&#8217;s karaoke by screaming it at the top of their lungs.  I saw the video, but it was deemed too hot for this blog post.</p>
<p>We had great conversations on that boat, technical and otherwise.  I spent a bunch of time hanging out with a large group of dev leads from NYC&#8217;s hottest startups.  One guy was telling me about a day-long pairing exercise that can expand our horizons.  Can&#8217;t wait to try it!</p>
<p>The boat ride ended with a pass by the Statue of Liberty, directly below a huge fireworks display.  The warm night and close view was perfection.</p>
<p>After we returned to Pier 40 and disembarked, many folks headed over to Karaoke Cave in the Village to sing until the wee hours.  I couldn&#8217;t make it, but I heard that it was very fun and memorable.  So much so that the people I spoke with couldn&#8217;t remember some of it! But apparently, Dr. Nic can really hold a tune.</p>
<p>Thanks again to the GORUCO organizers for putting together such a great event.  Looking forward to next year!</p>
<p>The post <a href="http://pivotallabs.com/goruco-2012-recap/">GORUCO 2012 Recap</a> appeared first on <a href="http://pivotallabs.com">Pivotal Labs</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://pivotallabs.com/goruco-2012-recap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic (Feed is rejected)
Page Caching using apc
Database Caching using apc
Object Caching 823/866 objects using apc

 Served from: pivotallabs.com @ 2013-05-22 04:08:35 by W3 Total Cache -->