<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>NotRocketSurgery: Tag gettingreal</title>
    <link>http://notrocketsurgery.com/articles_controller.rb/tag?tag=gettingreal</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>Relax.</description>
    <item>
      <title>Getting Real and Going Live:  Lovetastic.com</title>
      <description>&lt;p&gt;It&amp;#8217;s been a long road since I attended the &lt;a href="https://workshop.37signals.com/"&gt;Getting Real workshop&lt;/a&gt; last winter and decided to completely tear down and redesign the site that would become Lovetastic.com.&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;m proud to announce that this week we launched Lovetastic with:&lt;/p&gt;


	&lt;ol&gt;
	&lt;li&gt;Fewer features&lt;/li&gt;
		&lt;li&gt;A simpler, cleaner interface&lt;/li&gt;
		&lt;li&gt;Fewer requirements on &lt;a href="https://lovetastic.com/signup"&gt;sign up&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;Requests for all information from users pushed to the last minute we need them&lt;/li&gt;
		&lt;li&gt;A remarkably easy &lt;a href="http://lovetastic.com/guys"&gt;search page&lt;/a&gt;, which does the thinking for you&lt;/li&gt;
		&lt;li&gt;An elegant, maintainable, and &lt;a href="http://en.wikipedia.org/wiki/Don't_repeat_yourself"&gt;&lt;span class="caps"&gt;DRY&lt;/span&gt;&lt;/a&gt; Ruby on Rails back-end&lt;/li&gt;
		&lt;li&gt;The judicious use of javascript and xhr to make data-entry more intuitive and less tedious&lt;/li&gt;
	&lt;/ol&gt;


	&lt;p&gt;Many (if not all) of these ideas came directly from examples and ideas in the Getting Real workshop and &lt;a href="https://gettingreal.37signals.com/"&gt;book&lt;/a&gt;&amp;#8212;and the great examples set by applications like &lt;a href="http://www.basecamphq.com/"&gt;Basecamp&lt;/a&gt;, &lt;a href="http://www.campfirenow.com/"&gt;Campfire&lt;/a&gt;, and &lt;a href="http://www.backpackit.com/"&gt;Backpack&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;I look forward to blogging in more specificity, now that the site is launched, on how we built the site.&lt;/p&gt;


	&lt;p&gt;In the mean time, to enjoy more of my 37signals fanboyism, listen to my &lt;a href="http://www.twit.tv/itn36"&gt;interview on Leo Laporte&amp;#8217;s Inside the Net podcast&lt;/a&gt;, in which I talk about the building of Lovetastic and all the ideas that I love to write about here at NotRocketSurgery.&lt;/p&gt;</description>
      <pubDate>Thu, 05 Oct 2006 16:06:00 -0400</pubDate>
      <guid isPermaLink="false">urn:uuid:3f21a892-64f3-49be-bd99-ff230ec084ee</guid>
      <author>ryan</author>
      <link>http://notrocketsurgery.com/articles/2006/10/05/getting-real-and-going-live-lovetastic-com</link>
      <category>lovetastic</category>
      <category>launch</category>
      <category>37signals</category>
      <category>gettingreal</category>
    </item>
    <item>
      <title>Getting Real with Lovetastic: #1, Why We Chose Rails</title>
      <description>&lt;p&gt;When I left the &lt;a href="http://workshop.37signals.com"&gt;Getting Real Workshop&lt;/a&gt; on a cold evening last January, I walked around Chicago for several hours, contemplating how what I had just heard might change &lt;a href="http://lovetastic.com"&gt;my business&lt;/a&gt; and my company.  This series of posts is about those changes.&lt;/p&gt;


	&lt;p&gt;The first of these changes, and among the most significant, was my decision, made that very evening, to convert the site from &lt;span class="caps"&gt;PHP&lt;/span&gt; to Rails.  Not just a piecemeal conversion either, but a wholesale rewrite, including completely altering our database schema and URLs to conform to Rails conventions.&lt;/p&gt;


	&lt;p&gt;Why?&lt;/p&gt;


	&lt;p&gt;Rails creator &lt;span class="caps"&gt;DHH&lt;/span&gt; &amp;#38; 37signals partner Jason Fried presented that day the tenets that drive their own work.  Even though the workshop doesn&amp;#8217;t specifically advocate any particular technology, a lot of what they said (along with the beautiful code David presented in his slides) pointed me in the direction of Rails.&lt;/p&gt;


	&lt;h3&gt;Lowering the cost of change through rapid, low-overhead iterations.&lt;/h3&gt;


	&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Just_In_Time"&gt;Just In Time&lt;/a&gt; is a concept from the field inventory control.  It was originally implemented in Japanese factories to ensure that no additional inventory was kept on-hand beyond what was absolutely needed, thereby reducing costs and increasing return on investment.&lt;/p&gt;


	&lt;p&gt;The Getting Real workshop compellingly extended that metaphor to web application development.  The argument is that you don&amp;#8217;t have to release your product in huge monolithic versions.  Build features as you can, and as you and your customers need them.  Don&amp;#8217;t build a huge infrastructure anticipating all the conceivable needs of all potential customers before you release.  A lot of the features inherent in such an undertaking will turn out to be unnecessary.  Play, test, release, get feedback.  Rinse and repeat.  Quickly.&lt;/p&gt;


	&lt;p&gt;Rails is built around this concept of easy and small iterations.&lt;/p&gt;


	&lt;p&gt;Short release cycles, agility, and constant iteration are the secrets to good software.&lt;/p&gt;


	&lt;p&gt;We can look to open source to see innumerable examples of this.  Or consider how many Mac &lt;span class="caps"&gt;OS X&lt;/span&gt; iterations have been released since Longhorn/Vista has been fermenting inside the walls of its creator.&lt;/p&gt;


	&lt;p&gt;With Rails, deploying changes to a live production server sitting behind a web server, load balancer, and application server is as easy as typing &lt;code&gt;cap deploy&lt;/code&gt; into my terminal.  And with WEBrick/Mongrel, testing in the browser is as easy as &lt;code&gt;script/server&lt;/code&gt; or hitting &amp;#8220;refresh.&amp;#8221;&lt;/p&gt;


	&lt;h3&gt;&lt;span class="caps"&gt;DRY&lt;/span&gt; philosophy.&lt;/h3&gt;


	&lt;p&gt;The Don&amp;#8217;t-Repeat-Yourself philosophy inherent in the way Rails is written and &lt;a href="http://pragmaticstudio.com/"&gt;taught&lt;/a&gt; has been a tremendous inspiration to me.  Though I had written my own internal framework as a ham-handed gesture towards what Rails so gracefully achieves, the &lt;span class="caps"&gt;PHP&lt;/span&gt;-driven &lt;a href="http://scene404.com"&gt;Scene404&lt;/a&gt; was a mishmash of bright spots of DRYness along with copy-and-pasted code, unnecessary repetition, and superfluous coupling.&lt;/p&gt;


	&lt;p&gt;Rails inspires me to keep my code clean by making it hilariously easy to do so, and by maintaining an environment of code minimalism that makes my aesthetic alarm bells go off when I&amp;#8217;m being a bad programmer.&lt;/p&gt;


	&lt;p&gt;Thanks to Ruby and Rails, I avoid writing bad code because it &lt;em&gt;looks ugly&lt;/em&gt; to me now.  Of course, if I had had such an aversion to ugly code while programming &lt;span class="caps"&gt;PHP&lt;/span&gt;, I would never have written anything.&lt;/p&gt;


	&lt;h3&gt;Happiness-driven (productive) programming.&lt;/h3&gt;


	&lt;p&gt;Rails makes me want to write code.  &lt;span class="caps"&gt;DHH&lt;/span&gt; believes firmly in (and talks often about) &amp;#8220;beautiful code.&amp;#8221;  I&amp;#8217;ve been programming since I was about 10 years old (starting with the &lt;a href="http://en.wikipedia.org/wiki/Apple_II"&gt;Apple IIe&lt;/a&gt; and Apple &lt;span class="caps"&gt;BASIC&lt;/span&gt;), and I&amp;#8217;ve never seen anything so beautiful, so elegant, so expressive as Ruby or the &lt;a href="http://en.wikipedia.org/wiki/Domain_Specific_Language"&gt;Domain Specific Language&lt;/a&gt; that is Rails.&lt;/p&gt;


	&lt;p&gt;It doesn&amp;#8217;t hurt that &lt;span class="caps"&gt;DHH&lt;/span&gt; has labored to make TextMate the best text editor in the world.  (I switched from being a longtime Linux user to the Mac just for TextMate.)  Not only is it tremendously functional, it makes code a beauty to behold.  Combine the semantic beauty of Ruby with the visual beauty of text on the screen in TextMate and you&amp;#8217;ve got a Rubytastic nerdgasm.&lt;/p&gt;


	&lt;p&gt;As &lt;span class="caps"&gt;DHH&lt;/span&gt; says: &lt;em&gt;Beauty leads to happiness. Happiness leads to productivity.  Therefore beauty leads to productivity.&lt;/em&gt;&lt;/p&gt;


	&lt;h3&gt; Bad code smells.&lt;/h3&gt;


	&lt;p&gt;If I think my code is pretty, and I know it&amp;#8217;s easy to modify in fast iterations, then I&amp;#8217;m not afraid of it.&lt;/p&gt;


	&lt;p&gt;Perhaps the most important reason I chose to switch us to Rails as a part of our larger re-branding from Scene404 to Lovetastic was because I was afraid of our own code.  There were parts of Scene404 that were quickly written and read like terrible hacks.  I didn&amp;#8217;t want to touch them, improve them, or fix bugs in them because I was afraid that changing one thing would break five others.  And that the pain of reading what I had written would be worse than whatever benefit I might have gotten from making the change.&lt;/p&gt;


	&lt;p&gt;Aside from those presented in the Getting Real workshop, there are other concepts in the Rails philosophy that appeal to me:&lt;/p&gt;


	&lt;h3&gt;Convention over Configuration&lt;/h3&gt;


	&lt;p&gt;Convention over Configuration in Rails keeps me from having to think, and it prevents me from going down the path of obscurity by building my own idiosyncratic system (as was certainly the case in Scene404).  Software is more valuable when other coders can come along, understand it readily, and then extend or improve on it.  When code conforms to accepted conventions, the easier it can be read by someone with exposure only to the general conventions rather than the particular project in which that code resides.&lt;/p&gt;


	&lt;p&gt;Rails shows us the beauty of constraints.  When we are tied to certain ways of doing things, we don&amp;#8217;t have to think about them.  Instead, we get to focus on what makes our application special, on the business logic&amp;mdash;in our case, helping our customers find love&amp;mdash;rather than constantly reinventing the proverbial wheel.&lt;/p&gt;


	&lt;p&gt;This is why we&amp;#8217;re completely migrating the data from our old Scene404 schema into a new schema at Lovetastic, which conforms to Rails table naming conventions.  What it buys us is worth way more than the hassle of the initial data migration.&lt;/p&gt;


	&lt;h3&gt;The angel on my shoulder.&lt;/h3&gt;


	&lt;p&gt;Rails intentionally tries to be an angel on the shoulder of the programmer.  It certainly is on mine.  It nudges me to do tests.  It starts stink when I begin to write ugly code, which looks out of place in the parsimonious code environment of Rails.  It reminds me that programs should first and foremost be readable by humans, and only secondarily by computers.&lt;/p&gt;


	&lt;p&gt;Rails buys me as a programmer what Getting Real buys on me as a businessperson:  the beauty of constraints, agility, an appreciation for parsimony, and an actual explicit (and aesthetic) philosophy from which I can derive heuristics for making important everyday decisions.&lt;/p&gt;


	&lt;p&gt;Both Getting Real and Rails are the angels on my shoulder.&lt;/p&gt;</description>
      <pubDate>Fri, 25 Aug 2006 14:37:00 -0400</pubDate>
      <guid isPermaLink="false">urn:uuid:3076ede8-8738-4f2d-addc-5480934695e5</guid>
      <author>ryan</author>
      <link>http://notrocketsurgery.com/articles/2006/08/25/getting-real-with-lovetastic-1-why-we-chose-rails</link>
      <category>rails</category>
      <category>gettingreal</category>
      <category>lovetastic</category>
      <category>scene404</category>
      <category>dhh</category>
      <category>jasonfried</category>
    </item>
    <item>
      <title>Getting Real, and its Workshop</title>
      <description>&lt;p&gt;Last Feburary I attended the &lt;a href="https://workshop.37signals.com/"&gt;Getting Real Workshop&lt;/a&gt; on making web applications, presented by 37signals.&lt;/p&gt;


	&lt;p&gt;I had just brought on a partner in my company, and we were setting out on a comprehensive redesign, reprogramming, and re-branding of our product, &lt;a href="http://scene404.com"&gt;Scene404&lt;/a&gt;, in its new form as &lt;a href="http://lovetastic.com"&gt;Lovetastic&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;So I decided to plunk down the nearly $900 to see what they had to say.  It was a sort of intentionally ironic decision, though, really.  My joke at the time was that I was mainly going just to see if the guys at 37signals were kidding.&lt;/p&gt;


	&lt;p&gt;37s was starting to get a lot of press as an iconoclastic application design firm.  They had developed and thoroughly promulgated what was ostensibly a sort of schtick, which they had repeated numerous times and articulated in various ways on &lt;a href="http://37signals.com/svn"&gt;their blog&lt;/a&gt;.  Yet, just reading what these guys said, and hearing them occasionally on podcasts, I was a bit skeptical.  I thought maybe they were either the most shameless sort of substanceless self-promoters or just deluding themselves.  I couldn&amp;#8217;t tell if they were being genuine about their aesthetic and philosophy, or if they were just cigar chomping.&lt;/p&gt;


	&lt;p&gt;But I was willing to give them a chance.  I did like a lot of what they were saying.  They were proclaiming all the things I already wanted to believe but didn&amp;#8217;t think you could actually get way with.  Jason Fried, for example, was asserting that you don&amp;#8217;t need boatloads of venture capital and lots of enterprisey bullshit to earn a living making a product that your customers want.  And &lt;a href="http://www.loudthinking.com"&gt;David Heinemeier Hansson&lt;/a&gt; was assuring us that it&amp;#8217;s possible to be happy as a programmer.&lt;/p&gt;


	&lt;p&gt;What happened that day, as it turned out, would completely change the trajectory of my business, and it would lend me external validation for a lot of my own long-standing ideas about work, productivity, design, business, and craftsmanship.&lt;/p&gt;


	&lt;p&gt;Far from being smug or opportunist, it was obvious from the first words out of their mouthes that these guys really &lt;em&gt;cared&lt;/em&gt; about what they were doing.  They believed what they were saying.  And they could point to their own work (and success) as proof of the path they were advocating.   When you look people in the eye and hear them talk about something they care about for eight hours, you can tell if they&amp;#8217;re faking it.  Jason and David definitely weren&amp;#8217;t faking it.&lt;/p&gt;


	&lt;p&gt;Most of my postings here will be about those ideas.  NotRocketSurgery is about what happened to me when, seeing the 37signals guys speak with great passion and authenticity on these subjects in person, I became an adherent of their philosophy.  It&amp;#8217;s about calming down, and starting to care more about your customers than about the universe of moronic conventional wisdom you&amp;#8217;ll encounter as soon as you set into the world of &amp;#8220;business.&amp;#8221;&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;ll be posting regularly now, up to and past the launch of &lt;a href="http://lovetastic.com"&gt;Lovetastic&lt;/a&gt; (the new &amp;#8220;getting real&amp;#8221; version of our old product, &lt;a href="http://scene404.com"&gt;Scene404&lt;/a&gt;.)  I want us to be a guinea pig and proving ground for the Getting Real methodology.  I&amp;#8217;ll outline, step by step, how we&amp;#8217;ve applied specific principles laid out in both the workshop and book, in hopes of helping other business to learn from our experiences in the same way that 37signals has helped us.&lt;/p&gt;


	&lt;p&gt;Tomorrow, I&amp;#8217;ll begin by talking about our decision to recraft the site using Rails, and about the tremendous increase in happiness and comfort I&amp;#8217;ve felt both as a business owner and a developer in making that decision.&lt;/p&gt;


	&lt;p&gt;In the mean time, you can sign up for the latest &lt;a href="https://workshop.37signals.com/"&gt;workshop&lt;/a&gt; yourself, just announced today.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.flickr.com/photos/ilikeikea/99974022/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/27/99974022_7ca0446a65_m.jpg" width="240" height="160" alt="Getting Real Workshop, Chicago" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.flickr.com/photos/ilikeikea/99974023/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/41/99974023_7671f81413_m.jpg" width="240" height="160" alt="Getting Real Workshop, Chicago" /&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Wed, 16 Aug 2006 12:45:00 -0400</pubDate>
      <guid isPermaLink="false">urn:uuid:be96e5ff-f695-46f1-a7f2-a73ac055a0cc</guid>
      <author>ryan</author>
      <link>http://notrocketsurgery.com/articles/2006/08/16/getting-real-and-its-workshop</link>
      <category>37signals</category>
      <category>rails</category>
      <category>gettingreal</category>
    </item>
  </channel>
</rss>
